夜深了,抱着我的ThinkPad,躺在床上,写写今天对互联网感悟的心得。
我是一个搞Web开发的前端工程师,在某些公司,被认为是最低级的程序员,那里的C++牛人们,认为像我们这样的人就配写几行HTML,只有他们才配每天把算法、架构和高性能挂在嘴边。
我只是觉得,你有这样的想法,只能反映出你那井底之蛙的知识面和对前端技术的无知。
一件事,不同层次的人,会得出不同层次的看法。
就好像清朝的人第一次看见轮船,认为那就是一堆大铁皮,轮船内部的东西,他是看不到的,以他的见识,也理解不了轮船为什么能装载那么多人在海上航行。
今天看到“写给 WEB2.0 站长 不仅仅是泼冷水”,感触挺深。
什么是Web2.0呢?
我的理解,就是用户产生内容吧,在技术上说,就是有数据库保存用户提交内容的网站程序。
很肤浅的理解。
就像那个文章提到的,“典型的WEB程序员”的作品。有些人,确实是只会那么一点点SQL语句,就敢出来做个网站。
他们只是认为,把内容能存起来,能读出来,就OK了。
什么架构、部署、集群、稳定性、安全性、扩展性和可维护性,管那么多干嘛?搞了半天,能用几天还不知道呢。
现在的状况确实也是这样。中国的互联网环境一片浮躁。
有了PHP这样的语言,Unix、Apache和MySQL这样的开源软件,实现个小想法,很快就可以搞定。
曾经有个人,清华的,跟我说,他曾经拿着PHP的手册,看了2天,就出去给人家讲课了。
难怪么,高材生啊,老厉害了,没有他不会的。
照着手册的实例,写几个SQL语句,简单得很。
小想法2天就实现了,然后觉得没有盈利模式,换一个吧。
然后另一个2天开始了……
很多公司就是这样,有的公司,以前做那个3721,很成功,老总给后来人传授经验说:人一生只能做好一件事,我认为让大家用中文上网是个很有意义的事,我就做了这件事,我成功了。
没错,是成功了。
后来,他又做搜索引擎,那个公司,还有自己的门户,还有专杀恶意软件的客户端, 还有针对于阿里巴巴的B2B平台……据我所知的只有这些……,5000万美金,说是做搜索引擎,结果反倒是客户端出名了,B2B平台赚钱了。
主业到没什么起色,网站产品,做了一个又一个,败了一个又一个,本来一个创意很好的产品,几个优秀的工程师, 和几个勤勤恳恳的产品人员,努力了半年多,每天加班到12点,到最后的结果是部门给撤了,产品不做了。
我们辛辛苦苦设计的架构、方案、想法全都不值一提。
有的人写代码,真的是敷衍了事,目的性很强,就是把眼前的功能实现了完事儿,谁管什么可读性、安全性、稳定性、扩展性和隐藏的bug,QA人员发现一个我就改一个,发现不了,那代码烂死在那里我也不再看一眼。
这样的人“效率很高”,说1天完成的任务,绝对半天就搞定了,不会拖时间。也能得到老总的赏识。
而有的人,写的每一个变量,都会考虑到命名是否合理,是否会存在安全隐患,是否做了有效性检验,是否可以保证执行效率;定义一个函数,会考虑是否能够重用,是否做了足够的单元测试。
这样的人,承诺1天的工作,可能做了3天都没做完,只能加班加点少睡觉,换来的还是老总的指责甚至谩骂。
最让人无法接受的,是辛辛苦苦积累的代码和设计的架构,被老总一个昙花一现的闪念,瞬间划上了无奈的句号。
“效率高”的人,他可以每天朝九晚五的,周末还可以尽情的享受时光;
“效率低”的人,只能忍受无理的指责和自由的牺牲。
但,他得到的锻炼,和积累的经验,学到的东西,是任何人都抢不走的。
这个公司不需要“效率低”的人,那他只有离开。
剩下“高效率”工程师的公司,去继续上演快餐一样的互联网闹剧吧,你有的是时间,有的是钱,有的是人,慢慢玩儿吧。
回到正题。
其实做Web开发的人,会考虑很多事,从后往前说吧,后台的操作系统,我们需要很熟悉,至少要能配置Apache、PHP、MySQL、memcached、squid、apc、ea等等,还有安全性配置等等;在程序级,还要保证程序不会出现bug,要设计部署架构,如何使用MySQL,是Master-Slave,还是其他方案,如何做到冗余备份,数据量极速增加的时候,如何无缝扩展;数据库的库和表如何设计,字段编码的选择,优化查询,优化索引,合理分库分表;PHP程序还要考虑算法,安全性,如何构造代码,一个类如何定义,如何抽象出一个类,实现接口,如何扩展,避免重复DRY(Don’t Repeat Youself),要用xdebug查错和优化性能;PHP与缓存程序的接口,如何清除缓存,如何保证同步,还有网通电信跨网段的问题;到前端,如何在服务器上部署代码,图片、上传等要用单独的服务器,如何引用外部链接,HTML要符合W3C标准,要用CSS把页面框架和布局分离开,要用Javascript写AJAX,要做到跨浏览器,还有如何与PHP实现MVC框架,还有配置URLReWrite使搜索引擎认为链接是很友好的,还有……太多的内容,样样都要比较精通才行,请问这容易么?
最可怕的是,老板还不给你足够的时间去一样一样地做这些事。
我自己深有体会,人们在尝试做一件从来没做过的事的时候,刚开始一点感觉都没有,不知道如何做,不知道怎么做。
随着时间的推移,你会慢慢理解你做的事,你会比别人在更深的层次上看待你要做的事,这个时候,你就有感觉了,你自己心里已经知道该如何去做,但似乎有时候说不明白。
这时,你最需要的就是时间,给你机会,让你把那朦朦胧胧的刚刚领悟的真谛,慢慢地表现出来,让大家都可以理解。
至少我通常是这样。
但每次都是在这最关键的时候,被釜底抽薪,项目被取消,这事儿不让做下去了,因为老总又有新想法了,对这事儿没耐心了。
我已经恨透了这种事,我只知道,百度,从1999年到现在,一直在做搜索引擎,核心的业务一直是主业,百度人会慢慢体会搜索引擎,慢慢领悟其中的奥妙。没有很长的时间作为基础,任何人也无法想明白其中隐藏的巨大商机。
下面再给Google点时间吧。
我这个Blog,也用了流量分析系统,是Godaddy提供的付费服务,也许是我太少见多怪,最近刚发现 Google Analytics 这个东西,试用了一下,发现里面的分析十分全面,也更准确,更好用。
刚才在使用的时候,突然想和朋友一起分享数据,我就想,要是这个也有Google Docs提供的那种多人协作模式就好了,我可以邀请别人看我的网站流量统计数据。
后来一想,这个功能估计比较复杂,牵扯到用户中心,权限,通知,界面,管理等等一大堆相关功能,开发起来工作量应该很大,而且分支很多,也更容易出bug。
如果最开始没有很好地设计系统架构,加上这么一个用户看来很简单很必要的功能,代价非常大的。
这时我又想到symfony这种框架的价值所在,他是由很多经验丰富的人,根据以往的开发经验,设计的一个开发框架,已经把很多问题都考虑得很全面了。
要是用这种框架来做,估计工作量就会明显减少。
大伙儿注意了,到这里,我还都是在思考,在设想。
突然,我在Analytics的底部,居然发现了我想要的功能,就是设置用户,我可以把流量分析报告共享给其他Google用户!
看来,Google真的做到了想用户之所想,做用户之所求。
这也证实了我的另一个想法:
互联网,目前的状态,就是一片还未开垦的荒地,全球几十亿互联网用户,他们的需求,加起来,估计IPV6的总量都装不下,要满足这些用户的需求,目前的互联网,还太初级,太简单。
而作为Web开发人员,或者说互联网公司,最重要的,我认为是解决这么几个问题:
1、有成熟的设计理念
2、从简单,单一,小需求做起
3、采用高效率的开发方式,比如使用成熟的开发框架
4、坚持不懈、锲而不舍
5、质量第一,绝不为了速度牺牲质量
6、等待您的补充……
今天先到这儿吧,啰嗦一大堆,如果您觉得我说的有点道理,请给个回复,谢谢!
本文还会继续,如果转贴,麻烦注明出处,让俺也在互联网混个脸熟,拜托了!
才疏学浅,不知所云
太深刻了,呵呵,看起来很有共鸣!
非常同意,感触颇深