这些天最受全社会关注的话题就是火车票,最让网民无奈地就是12306购票网站,最让程序员痛快的就是大骂12306网站的架构里的诸多愚蠢的做法。
老实说刚开始的时候,单从用户体验上已经让我对12306的售票网站失望之极:每次都要登录,每次登录都告诉我访问人数过多,每次的失败信息还显示在不同的位置(一会儿在登录表单下面,一会儿弹出),好不容易定上了两张票还不能连号……
事情过后,静下心来,仔细想想,反复问自己一个问题:如果让我来做,我又能做到几分?!也许我可以优化我发现的问题,但是可能很多地方更超出了我的技术能力。与12306形成鲜明对比的就是淘宝在光棍节和双12的出色表现。去年10月份,在杭州上的QCon中见识了阿里的水平,包括架构、业务和底层优化,深深赞佩。可是地冻三尺,非一日之寒。阿里数年的技术沉淀才造就了今日的辉煌。在架构的专题讨论中,淘宝的架构师程立分享了淘宝的架构演化过程,从最初的“烟囱式”到SOA,再到如今多层次架构,但是这个架构的演化并没有停止。淘宝的另外一位工程师莫枢分享他们在JVM优化方面的经验,除了常规的修改JVM的参数,他们还是尝试修改了JVM的代码,自己编译。我想阿里这么多年的技术沉淀不是随便一个公司可以比得了的。
老家有句俗话:一瓶子不满,半瓶子晃荡。这些年来我深深感到自己技术的匮乏,不敢轻易点评任何人或者事。如今真正需要做的是“拿来主义”,在自己的架构中尽量避免这些问题,学习尽可能多的知识,来填满自己的半瓶子。
说到修养,这个话题太大了。只是有几点和大家分享,最重要的是说给我自己。
1. 要谦虚
记得曾经有一位名人说过:“人的知识就好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道得越多,圆圈也就越大,你不知道的也就越多”。通过这么多次的面试,也发现一个问题:本科生总是会表现更强的“自信心”,好像什么都知道(希望各位不要误会,没有任何歧视的意思)。而硕士生可能就会保守一些。我自己这些年来的胆子也是越来越小,因为发现自己不懂的东西越来越多,不敢对任何事情妄加评论。
QCon上那些知名的讲师都很谦虚,即使有些问题他们已有定论,也是用讨论语气和你讲话。
2. 学会倾听
如果不够谦虚,就不可能用心倾听, 也不会真正了解别人在什么情况,做出了那样的决定。
3. 持续学习
学习是广大程序猿们必须坚持不懈的。不但要学习别人成功的经验,还要学习别人失败的教训。当然了,自己的失败和成功更要学会总结。很多东西只有自己经历过才能留下深刻的印象。
补记:
看到了很多朋友的留言,很是感谢大家的关注和指导。每个人看问题的角度都不一样,这里只不过和大家分享一点自己的看法,欢迎拍砖。
最近看到了几篇博客:
http://hi.baidu.com/caoz/blog/item/f4f1d7caee09b558f21fe780.html
http://blog.codingnow.com/2012/01/ticket_queue.html