工作以来一直做互联网相关的项目,但一直都不喜欢前端技术。为什么呢?
1,代码是面向过程式的,没有抽象和封装,代码结构非常粗旷,难以阅读和维护。
2,因为浏览器和版本的不同,要维护多份代码。
3,难以Debug
4,随着Ajax的流行,代码中有大量的回调,阅读起来非常耗脑子。
5,没法进行unit测试
可是随着时间推移,前段技术也慢慢人性化起来。
1,现在的前端框架可以通过方法来模拟抽象和封装
2,前端框架统一提供接口,开发者不必维护针对不同浏览器的代码
3,现在的浏览器都支持js的Debug方法了。
4,这点还是没有多少改观,只能改变思维方式了。
5,一些框架实现了mvc,mvvm的分层,支持对于前端逻辑的unit测试了。
当然以上只是开了个好头,
参加工作之初总是在纠结学习什么语言,但结果java,C#,php,object C,C++,VB,VBA都学过,用过。
原因是工作需要,万恶的外包公司从来不考虑员工的个人发展,有什么项目就上什么技术。
经过这么多年的经验,发现有两项技术是相对稳定,一个是js,如果是B/S结构的系统,前端用的都要用到JS。
另一个是SQL,后端的数据库产品可能用的不一样,但各种数据库产品的SQL语言大致差不多。
而且,学习了那么多语言后发现,各种OO语言的实现方式各不相同,但解决具体问题的思路却很接近。
都是用设计模式解决具体问题,然后以框架作为开发模板向导。开发人员就可以按照模板进行无脑式开发。(注:SSH是这种无脑式开发的典型。)
那么只要掌握一种语言的设计模式,学习其他OO语言也就会快很多。
随着nodejs的兴起,js语言不但可以做前端也可以进行后端的开发了。
所以我决定以JS为主开启新的学习之路。