2016年9月8日星期四

如此理解面向对象编程

转载自:http://coolshell.cn/articles/8745.html#more-8745
作者:
不知道为什么,复制过来的文章就是无法保存,仅仅转了皓哥的《我的理解》
希望看原文的,可以点击上面的连接自行查看。
最后说一句,真心的不错

我的理解

我觉得,这篇文章的例子举得太差了,差得感觉就像是OO的高级黑。面向对象编程注重的是:1)数据和其行为的打包封装,2)程序的接口和实现的解耦。你那怕,举一个多个开关和多个电器的例子,不然就像STL中,一个排序算法对多个不同容器的例子,都比这个例子要好得多得多。老实说,Java SDK里太多这样的东西了。
我以前给一些公司讲一些设计模式的培训课,我一再提到,那23个经典的设计模式和OO半毛钱关系没有,只不过人家用OO来实现罢了。设计模式就三个准则:1)中意于组合而不是继承,2)依赖于接口而不是实现,3)高内聚,低耦合。你看,这完全就是Unix的设计准则
(全文完)
题外话:这篇文章太好,我就不好意思转载了!

五大基于JVM的脚本语言

转载自:http://coolshell.cn/articles/2631.html
作者:
还记得以前本站的一篇文章《如何在Google App Engine上运行PHP》吗,其实那是借用 Quercus, 一个 100% 的用Java 实现的一个 PHP 引擎。今天,这样的东西太多了,能运行在Java的虚拟机JVM上的程序意味着有天然的跨平台性,现在JVM并不单单只能运行Java程序,在JVM上出现了若干使用Java虚拟机运行的脚本程序,比如什么PHP, Python, Ruby等等,这里有一篇文章评论了在JVM上的可以运行的排名前五脚本语言。他们分别是:
  1. Groovy。构建在强大的Java语言之上 并添加了从Python,Ruby和Smalltalk等语言中学到的诸多特征,为Java开发者提供了现代最流行的编程语言特性,而且学习成本很低(几乎为零),在开发Web,GUI,数据库或控制台程序时, 通过减少框架性代码 大大提高了开发者的效率。支持单元测试和模拟(对象),可以简化测试。无缝集成 所有已经存在的 Java对象和类库。直接编译成Java字节码,这样可以在任何使用Java的地方 使用Groovy。
  2. JRuby。一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。很多Java编写的Ruby IDE都是使用JRuby来解释语法的。
  3. Scala。一种多范式的编程语言,设计意图是要整合面向对象编程和函数式编程的各种特性。Scala编程语言近来抓住了很多开发者的眼球。它看起来像是一种纯粹的面向对象编程语言,而又无缝地结合了命令式和函数式的编程风格。Scala的名称表明,它还是一种高度可伸缩的语言。Scala的设计始终贯穿着一个理念:创造一种更好地支持组件的语言。
  4. Fantom 。Fantom 前身是 (Fan) 是一个基于 Java 和 .NET 平台的编程脚本引擎,用来在运行时产生 JVM 和 .NET 平台的字节码,该语言是面向对象的,跟 Groovy 和 JRuby 有点类似,可通过特定的接口来集成 Java 的类库。
  5. Jython。Jython由于继承了Java和Python二者的特性而显得很独特。其是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。Jython也有很多从CPython中继承的模块库。最有趣的事情是Jython不像CPython或其他任何高级语言,它提供了对其实现语言的一切存取。所以Jython不仅给你提供了Python的库,同时也提供了所有的Java类。这使其有一个巨大的资源库。
下面是一张表格比较了这五大JVM脚本语言:
GroovyJRubyScalaFantomJython
风格类型OO / 动态OO / 动态OO, 过程/ 静态OO / 静态OO / 动态
源语言JavaRubyN/AN/APython
运行编译型编译型,
解释型
编译型半编译型编译型
平台JVMJVMJVMJVM, .Net CLRJVM
Java集成极好极好极好极好
运行速度极好很好
工具支持广泛还可以广泛几乎没有几乎没有
其它一些JVM的脚本语言也我们可以关注一下,如:ClojureJavaFX, 和IBM的 NetRexx
(全文完)
题外话:这篇文章太好,我就不好意思转载了!

好单位与坏单位

可以延伸到很多方面
积极向上才是好的。








换个思路,焕然一新

最近,一件工作上的事情老烦着我,网站无法正常登录,但是可以正常浏览,查了下原因,是因为文件系统变为只读,使用的vps,也没法查看宿主机,让运营商去看,运营商说运行正常,没办法,我有监控,本来想监控URL,模拟登录,根据无法登录进行报警来达到目的,但是一个小难点把我卡住了,就是登录需要验证码,因此这个想法搁浅了,昨晚做梦忽然想到了解决办法,其实想法很简单,因为无法登录是因为文件系统只读完成的,那么我可以创建一个shell脚本,这个脚本主要作用就是创建一个临时文件,写测试数据,检验读,然后删除,配合监控,就能做到事故发生后进行报警了,也可以在第一时间解决,免得我事故发生好长时间了,却还不知道。

2016年9月7日星期三

手机上发布博文

我现在在手机上,也许你很惊讶吧!
为了在手机上发布,我千辛万苦,还专门安装了google play,没办法,现在墙的厉害。手机无法直接安装,不过,现在还是安装上了

一首歌,一个画面

 有几首歌每逢听到,都会浑身一颤,想起一段情景。
1,《月牙湾》 FIR

小说《美女江山一锅煮》
听到这个歌,都能想起江湖豪情,人间情义,爱恨离愁。
心揪在一起。

2,《画好月圆》 任贤齐、杨千嬅


独自在郑州的日子

 转眼间,在郑州已经八年了,即使抗日,也看到胜利了。
不知道为什么,我反而越觉得孤独,郁闷,前景迷茫。
 最近郑州的房价涨的太厉害,房租也跟着疯长。经济不大好,工资都发不下来。现在吃饭都已经成了问题,愁,愁的都长了白头发。
快憋疯了。
 我很想说出来,虽然有些自我安慰。


行走在路上博客诞生日

 让我记住这一天。
2016年9月7日,在中国郑州,开设了“行走在路上”这个博客。
博客网址为
https://walkingontheroad2016.blogspot.com

    Eagle
        写于郑州!

High一下!

2015年7月27日星期一

电梯吃人事件感想

  腾讯推送的新闻:电梯吃人时间,过程仅9秒,在最后时刻母亲将儿子推到安全地带

看完新闻后,我内心再一次震撼。

我又一次感动,感动母亲的伟大,但是我不喜欢这种感动,因为这是以生命为代价的。
同时我也感到生命的渺小,生命的脆弱。
最后,我很想说,只要大家不对生命再进行漠视,对自己的工作负责任。
相信悲惨的时间会发生少一些。
最后,祝那位母亲能够安息!
最后,我想说,这个社会不仅仅需要良心的谴责,更需要有严重的惩罚!

2015年1月20日星期二

I am only a user ,not a developer

如果你和我一样,那么你很早就开始利用HTML进行“开发”,正因如此,你接触到了这个叫JavaScript有趣的东西,而对于JavaScript,你只会基本的操作——为web页面添加交互。
而你真正想要的是“干货”,你想要知道如何构建复杂的web站点 —— 于是,你学习了一种诸如PHP、Ruby、Java这样的编程语言,并开始书写“后端”代码。
与此同时,你还始终关注着JavaScript,随着通过一些对jQuery,Prototype之类技术的介绍,你慢慢了解到了很多JavaScript中的进阶技能,同时也感受到了JavaScript绝非仅仅是window.open() 那么简单。 .
不过,这些毕竟都是前端技术,尽管当想要增强页面的时候,使用jQuery总让你觉得很爽,但到最后,你顶多是个JavaScript用户,而非JavaScript开发者
这句话让我认识到我自己的浅薄,原以为自己能够调用类库,就是开发者了,才知道自己不过是一个使用者而已,而使用者和开发者所最大的区别,我个人感觉开发者更有创造的思想和能力。