我设计这一套教材的目的是要让所有新进的开发者,在最长两周时间内要学完基本 Linux 指令、Git、Rails 所有基础的知识、部署、SCSS 撰写等等,一个月之内就能上战场跟我们一起开发功能开发新网站。这样的进度很夸张吗?不,不夸张。这里的每一个开发者都有这样的程度,他们有些人应聘时是连 Rails 都不会写的。你能相信连T 客邦的PM 和 ART 他们也会写 Rails 吗?( no kidding)
写 Code 规则怎么规范?同事和我从社群中吸收了很多最佳实践,我们把这些东西整理出来变成新手指南、最佳实践,甚至是包装成 Gem 和 Generator,越后进的开发者能花越少的时间追上前辈,在短时间他们的作品也能跟前辈一样预先搭载 Best Practices。我最近也开始在撰写另外一本书 Essential Rails Pattern for Beginners。
Rails 本身还有丰富的生态系统,和预设的架构最佳实践就更不用说了。
新创团队资源很少,人事预算没有这么够,反而要巧妙的运用天然资源并让团体战力很高才行。
2. 功能设计给当下使用,考虑一定程度的扩充性:
我也不相信在新创团队有人可以预知未来,即使很多东西看起来未来往那个方向扩充很合理。对我来说,我在设计功能时并不会 overthinking,甚至我也禁止同事 overthinking。因为专案中最高的原则是 get things done,not over design。
不可否认有些开发者效能和想象力技术实在追求过头,比如说甚至一开始就用 Backbone 写整个网站,或者是从头到尾使用 Node.js 写网站。这都是一开始就打算写 mobile 版 web service 给 mobile phone 使用才需要做的事。因为 3G 的 Latency 实在太大,要尽力的压缩频宽使用量和追求页面 response time。
而网站的指标和 用户体验并不是说打的开就好。比如说网站开的速度会直接影响 Search Engine 和 Alexa 排名,不知道这到底有多少人晓得?还有一般使用者对于 Blog / Album 和 Video 各自能够忍受的 response time 根本是不同的,Video 大家可以忍个5 秒还没打开都能接受,但是相册和博客开一页要 5 秒这大概就没人要用了吧…