我是在去年11月入职的,一家法国公司,RendezvousCheznous,项目蛮有趣的,简单地说就是共享经济形式的旅游活动平台。在这个平台上你可以找到非常多深入体验当地生活的活动,比如马赛的渔夫带你出海捕鱼、参观并亲手制造薰衣草的各种副产品等等。

项目是两年前开始的,用的是 Symfony 2.1,后来更新了一次,目前使用的版本是 Symfony 2.3 / PHP 5.5,我参与到这个项目的时间只有半年,零零散散的加了一些东西,有前端的,有后端的。抛开 PHP 不谈,和同事们在一起工作的过程还是蛮不错的,起码法语说得更溜了。

Web 开发中普遍会出现的问题

不得不承认,很多问题并不是语言的锅,比如说项目结构混乱、代码臃肿,这些问题会出现在任何一个编程语言的代码中。不过以我的经验来看,开发一个体积类似的项目(我毕竟没有用两种语言开发过同一个项目,所以只能毕竟主观的去比较),Rails 确实会比 Symfony 用的代码少。而通常更少的代码意味着更高的可读性和可维护性,尤其是对于我这种不喜欢用 IDE 的同学来说。

在 Rails 中一个核心概念是 “Convention over configuration” 很好理解,就是减少配置,而约束开发者的行为。这体现在很多方面上,比如命名规则、文件的路径这些最基础的东西一定要严格。这样做有一个最明显的好处就是有效的解决了开发者的“选择困难症”,因为几乎90%的事情都已经约定俗成了,开发者“被迫”去遵守这些约定,这使得社区的文档质量、生态圈处在一个良性循环中。

而 Symfony 中有一个我最头疼的事就是 configuration,而且,官方提供了添加一个配置文件的三种可能性:xml, yml, PHP。这真是要狗命了,因为说好听点这是给了开发者选择的空间,其实是增加了开发者的学习成本,这三种格式的配置方法你都必须去了解。想象一下,一个团队里有人喜欢用 xml, 有人喜欢 yml,有人喜欢直接写 PHP,然后项目中就充斥着各种格式的配置文件!你说大家统一一下,规定使用其中一种就好了呀。嗯,然后你就会发现某一天你想用一个新的第三方包,网上找到的文档用的也是各种各样的格式,这就很痛苦了。

关于琳琅满目的“新技术”

最近几年新技术有点多,尤其是作为一个 Web 开发者感受就更深了。随着 Node.js 的日趋成熟,JavaScript 获得了前所未有的能力。它不再是一个用来操作一下 DOM 的编程语言,而变成了 Web 开发中不可或缺的技术。也许再过几年,JavaScript 就要一统江湖了也说不定。不过有一点我可以确定,作为一个程序员一直学习“新技术”是保证个人竞争力的有效途径,但不意味着程序员都喜欢“新技术”,程序员不能不计成本的去频繁更换技术栈,只因为“这看上去很酷啊不是吗”。

PHP 是个怎样的存在

有一句话说的非常对,存在即合理。PHP 群众基础很大程度上得益于在 window 上的简单易用。你问要怎么学 ruby 啊,大牛上来就说一句,“买 Mac 去”,不得不说这打消了大部分人的热情。而 PHP 不一样啊,下载一个 xampp 就可以轻松写一个网页,多傻瓜式的体验啊!但凡用户体验简单的东西都容易获取不俗的用户群体。

有一个陷阱

我认为一个非技术型创业者最容易陷入的一个陷阱就是“PHP 程序员容易招,而且还便宜”。如果你单纯为了省钱而信了这句话,你要付出的代价比省到的钱多得多。

首先,水平高的程序员,工资都是跟水平成正比的。如果一个做 PHP 三年的人,能力和一个 JavaScript 程序员一样,但是赚的没他多,他一定会转行。 所以招到的程序员工资不高,只说明一件事,你招到的人水平也不高,这跟使用什么编程语言没有一点关系。

接下来的半年

投入更多的时间在 JavaScript 上,远离 PHP,爱上 ruby。然后去旅游,去西班牙、希腊、日本。