进入新公司有近半年时间了,期间作为开发主力参与了几个项目,真的学到不少东西,现在做个小小回顾。
Linux/Mac OS
时间回退到三四年前,我可以说是一个Windows的忠实使用者与拥护者。但随着逐步接触Web开发及各类开源软件,特别是看到近两年前端工具、JavaScript框架的发展壮大以及Nodejs的流行,我越来越觉得基于linux/unix的开发机才是最适合我的。我的理由:1.各种开源软件首选开发平台大都是linux;2.各种新兴前端工具如bower, grunt等都是基于Nodejs的,而Nodejs在linux下开发相对更方便(注:Nodejs早期其实也只有linux版本)。
而进入新公司后,IT部门统一标配Mac mini,在经过一到两周的实际使用后,坚定了我告别Windows的决心,毫不犹豫的入手MacBookAir作为个人开发机。在基于unix的Mac上,从后端开发到前端,从数据库到各式开发语言,我都能够很容易的进行安装,开发及调试。特别是使用终端(Terminal/Shell),再配合homebrew,iTerm,Git等,彻底颠覆了我以前在windows上那种开发体验。当然,在经过一段时间的使用后,我也认识到我对linux的使用还是比较基础的,后面应该花时间系统学习下它。
Magento
Magento是一个功能强大的,在国外非常流行,且已被ebay收购的电子商务系统。我在上一家公司开始接触它,开始只是做前端样式与布局修改,然后慢慢尝试修改简单的模板代码,到今年初进入新公司后,才有机会做后台模块(module)的开发。算下来,使用Magento的时间也不算少,但是我真的不敢说对它很熟悉,也没有办法喜欢上它。因为在我眼里,对比大部分的PHP框架,基于ZendFramework的Magento实在是个异类,它的开发工作异常繁琐,应该是我用过的最难开发的一个系统。
经常在网上看到同道人抱怨Magento,配置多并且都是xml,文件多嵌套深,文档不齐全,服务器要求高等等,我表示不能赞同更多。我自己在开发的时候也经常被它搞得头疼,甚至郁闷到不想工作;但是后面又想到,如果magento不复杂,那它就不能拥有异常强大且全面的功能了。在可以预见的一到两年内,我都将继续使用它,所以我暂且只能把它理解为一个“甜蜜的负担”,我虽然不喜欢它但我会尽力掌握好它,不让它阻扰我的工作。
Laravel
应该是在一年多前就听说过Laravel的大名,但是直到最近才真正使用它。它非常全面,跟有名的RoR(RubyOnRails)非常相似(Laravel的推出比Rails晚很多年,它应该借鉴了很多后者的设计),从MVC到ORM,从前端模板到数据库migration,开发的方方面面它都为你考虑到。而它的官方文档也比较详细,所以我上手也算比较快,用起来也觉得非常舒服,我打算以后将它作为我PHP开发的主力框架。
此外,通过学习Laravel,也让我接触到了Composer,Namespace等PHP语言的新标准跟新特性,也让我认识到,对比其他语言(如Java,Nodejs),PHP可能有比较多的缺点,但不可否认,近两年它也在慢慢变好,Laravel就是其有力的支持者之一。真心希望有越来越多的人去认识使用Laravel,进而更好的推动PHP发展。
Commentics
在接到改造Commentics的任务时,心里有些没有底。因为commentics是一个在国内、国外都不太流行的,比较传(lao)统(tu)的留言系统。它没有用Composer,没有MVC,没有ORM,只是PHP加HTML,想要把它改造成一个异步刷新的现代型的留言系统恐怕有些难度。
但是,在折腾它一番后,发现它的后台还是做得比较完善的,前台的功能界面也都是可配置的,除了不现代(ajax)之外,确实算得是一个比较好的留言系统。了解清楚commentics的优缺点,改造的工作思路就清晰了。我们将它后端简化整理成API,重做了前端HTML与样式使之兼容移动端,前端逻辑也使用jQuery重写,比较顺利的将commentics改造成一个功能外观类似于“多说”的、“现代化”的留言系统。同时,通过改造Commentics,我真正认识了什么叫“传统型”的PHP应用,以后再碰到类似的老旧系统时,应该会比较得心应手了。