我的技术线路历程

微软线路

从95年开始接触电脑,那个时期个人PC系统属于DOS 6.x 与 Windows 3.x时代,Windows 95还没出来,随后Win95, Win97, Win98, Win Me, Win 2000, 以及开发工具
VB 3.0 -> VB 4.0 -> VB 5.0 -> VB 6.0 -> VB.Net

VC++1.0 -> 1.5 -> 2.0 -> 4.0 -> 5.0 -> 6.0 (VC++ 并没有 3.0版本)

Delphi 3 -> 4 -> 5 -> 6 -> 7 (7基本上可以算是Borland的终章了)

.Net PreAlpha (2000年) -> Alpha -> Beta -> 1.0 final -> 1.x -> 2.x

组件技术:
VBX -> OCX
OLE -> ATL/COM -> DCOM -> MTS COM -> COM+

解决方案:
单机应用组件(COM) - 分布式组件(DCOM) -> Windows DNA (MTS COM, COM+) -> Microsoft .Net

Borland MIDAS 。。。。

95年到04年整整10年我都在Windows平台上度过,而且微软情结严重,让我一度认为,我离不开微软了。

2003年之后,Microsoft .Net方案可以算是windows平台的唯一方案了,其他的(如Delphi MIDAS)基本上是日落西山。

但是,直到05年之前,Microsoft的东西,一直都是一堆离散的且封闭的技术堆砌,缺乏完整的整套的解决方案。许多东西都需要自己处理。

05年之后,才有Spring.Net, NHibernate 等优秀框架的移植。


JAVA线路

从04年开始接触Java,顿时被Java众多的开源解决方案所吸引,各种框架的集成,各种设计模式的应用,单元测试用例,对象模拟,重构,TDD,BDD 。。。。

Struts + Spring + Hibernate
WebWork + Spring + IBatis
Tapestry + Hibernate
JUnit -> TestNG
JMock, EasyMock
AOP
.....

感谢Java及其众多优秀的开源节流框架、思想,极大丰富了我的知识与技术。


Ruby & RubyOnRails

06年开始接触RubyOnRails,说实话,一开始我是抗拒的,原因是Ruby的作者是个日本人,别笑,我也在忍着笑。

期间,也还在继续.Net Java PHP,直到09年,才全部投入学习RubyOnRails,逐步从Java转移到Ruby。

不可否认,Java的生态很强大,就职机会也是最大的。而且也是04年到12年期间任职公司中用的最多的,但是,这么多年,我面试过、接触过、认识过 很多JAVAers, 有一两年经验的,也有六七年经验的,然而,我发现,大部分人都只能在Windows上用MyEclipse( or Eclipse + 一堆插件),用代码生成器生成一堆SSH代码,然后堆积代码, 极少数人会去思考,去看这些框架的源代码,去了解它们是如何工作的。 离开代码生成器 IDE Baidu, 就无法工作了。

当我要他们 编写个控制台程序,单独驱动Spring去创建对象; 单独驱动Hibernate 初始化映射配置、链接、操作数据;讲清楚Struts的工作流程等等;能说的清楚的,寥寥无几。更别说回去挖框架源代码研究学习。

了解UML,JUnit/TestNG,设计模式,测试驱动开发,行为驱动开发 之类的,就更少了。

可以说,java的程序员众多,大部分人确实没有技术追求的,这类人我称为没有“灵魂”的码农。缺乏求知欲,每天工作的最大产出,就是在制造一坨坨屎一样的代码,和一堆堆的BUG。然后归功于JAVA的强大,才使得这些代码磕磕碰碰的能运行。

上面这个说法,也非常适用于伟大的PHPer。

JAVA中少部分有技术追求的人是非常牛逼,这才不断有优秀的框架,技术文章层出不穷。

欢迎JAVAer和PHPer喷我,但请证明你属于那少数部分的人。

大部分公司首选 JAVA 与 PHP 的理由,是市场中有众多的开发人员。容易获取替代资源。

当我进入Ruby(RoR)的各种社区时,有个有趣的发现,大部分人员的技术追求意愿,高于 Java PHP的,他们在使用各种构件的同时,也都在研究学习并分享这些构建是如何工作的。会去学习如何提高代码质量,寻找更优实现方式,如何通过测试驱动开发,来保证质量与重构。

当然,RoR提供了全栈的框架及各种构件,对测试驱动开发的支持更加友好,更加容易不无关系。

Ruby语言的特性与目标,是让写程序变成一种乐趣。
RoR非常适合创业型项目,完成一个项目的工作量,远低于Java与PHP的。

国内的环境与国外不同,国外使用RoR的公司很多,岗位也有多。国内使用Ruby的公司就少得可怜,如上面提到的,公司选用Ruby担心的是人员招聘。

国内大部分Ruby开发人员,都是从JAVA、PHP等转过来的,敢于选择Ruby,都是属于有勇气的。

当然Ruby(RubyOnRails), 也有其弱项,由于Ruby 是全动态语言,造成内存占用大,运行效率低下,GIL架构的多线程无法利用多核。对于大多数系统,这些不是问题。

如果你面试人员(即使是JAVA)时,如果这个人有接触过Ruby Python等语言的,并对其有兴趣的,说明这个人对技术是有兴趣的,就是他当时的水平与经验不多,也值得你聘用他, 没错的。


Elixir & Phoenix Framework

不过现在我比较推荐使用Elixir,在保留类似Ruby的能力的同时,有解决了Ruby的痛点。

由于Elixir的底层是Erlang,因而运维成本将会是最低的,这个话题足够单独写上一篇。

有在深圳的Elixir伙伴,欢迎联系交流。

你可能感兴趣的:(我的技术线路历程)