作为一个程序员,如果没有写过一个自己的网站,总觉这个职业生涯是残缺不全的。话说哪些做基础研究如算法或OS的大佬,尽可以鄙夷这样的思维,但如你我般普通非大神类程序猿,却没有深度,也应该有点广度。

回想第一个“网站”是我用VimWIKI生成的HTML,通过

file:///D:/vimwiki/html/links.html

来访问(到如今它依然管用!)。接着尝试了WAMP(把LAMP中的L改成W,即Linux变Windows),不错,依然可行,通过

localhost://127.0.0.1

可以访问了。但我仍旧喜欢file协议。接下来租了一个国内VPS,便宜但不够稳定。但个人网站就不计较了。不过同步的方法很傻,通过FileZilla文件传输过去。后来用SVN进行版本控制,感觉没那么山寨了。

这个阶段的工作很简单,学习VimWIKI的语法,写文档,生成HTML。整个网站也异常简单,申请一个域名,租用一个便宜的Linux VPS,安装一个Apache,用SVN控制版本与发布。那时对HTML都很陌生,更无论JavaScript、CSS之流。动态页面的概念,还很遥远。

过了不久,因为工作的需求,要自己写一个真正的网站了,那才第一次与LAMP亲密接触。应对一个陌生领域,我的基本对策就是买一打五星级的书。我最偏爱的图书就是以 XXX Programming Language 命名的图书,霸气且经久耐用(好比 C Programming LanguageC++ Programming Language 吧)。按这个原则,买了几本PHP、JavaScript、CSS、Mysql的书。HTML好书真的难找,我买的是图灵出版的《精通CSS与HTML设计模式》(选书的另一个原则就是看出版社)。不过要说这段时间的最强偏爱,还是图灵的另一本:《SQL反模式》(如果你偏爱 Effective C++或 Effective TCP/IP Programming,那这本书也不容错过了)。我没有在用什么语言写网站上花费什么时间,Java、PHP、以及MS的语言、环境对我而言同样陌生;Python虽然略会一点,但我仍随大流,以及参考以前同事的擅长。

这次租了Linode的VPS,稳定性绝佳。发送邮件的任务,起初用sendmail,很快切换到网易的免费企业邮箱,过了数月,发现很快超过网易邮箱限额,于是又切换到Google APP的免费邮箱服务。网站方面,用PHP交缠HTML,总觉得很丑陋,于是用了Smarty模版,把逻辑与展现分离;虽然没碰到性能方面的问题(嗯,访问量还太小),但等到在Smarty中也要用变量、循环等方式时,还是颇有些后悔。想想还是对PHP的使用不够熟练使然。至于那些XXX框架,每当我想要尝试时,就想起Randy Pausch《最后一课》中讲的:

基本功,基本功,还是基本功。基本功不好,上层花哨的东西你就玩不转。

从零开始,你才知道你真正需要的是什么;启用已有的成熟方案,已是后一步的事。四处打听什么好、什么强,真是很傻很天真;好比小马过河的教训,自己做了才知道。

后来了解了Bootstrap,运用后,又再次较大规模的改进了网站(前一次是用Smarty时)。嗯,现在问题的关键,又演变为怎么拆分、组织数据,这才是根本之道。近日买了《淘宝技术这十年》,说到底,依然是数据拆分、组织的问题。什么语言、框架、协议,最后都要让位于最基本的业务逻辑。

又后来,Linode北美服务器大规模不能访问,甚至从北美Linode访问国内也有问题。只好租了另一个Linode日本VPS作为跳转。某些函数调用改为HTTP远程调用;用Git替换了SVN;SSH每次要通过日本中转。等等。

现在网站很少有独立存在者,与其他大网站的API交互也是势在必行。要学习的东西也很多。就如古话说的,你了解的东西越多,不了解的东西就越多。像王兴说每年毕业季总推荐胡适伯伯的《赠与今年的大学毕业生》,保持自己的兴趣、好奇心才更为重要 ;)