4

第三次的时候把事情做好

 3 years ago
source link: https://yuguo.us/weblog/make-it-better/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

第三次的时候把事情做好

余果 2013-05-05 书

我的经验是,如果刚开始做一件事情,只有在第三次的时候才有机会把事情做的很完美。而第一次和第二次的时候,仅仅能抱着“不出错”的目标去进行罢了。

这里的事情包括很多,比如第一次用nodejs写一个程序,比如第一次带团队,第一次谈判等等……

我在做33号铺的时候(去年中),完全不了解codeigniter,PHP也非常粗浅地知道一些基本语法,还需要查书,对于MVC也是一知半解。但是最终还是靠各种“试错”来把程序做出来了。由于在商业上它算一个不错的点子,所以也获得了一些知名度和成功,但是就代码本身来看,它是非常粗浅和糟糕的:

  • 比如在view层还直接调用了model模块来进行查询和计算,这是MVC的禁忌;
  • 比如在判断用户输入上太过相信用户,没有考虑SQL注入和xss注入;
  • 比如函数的返回值没有考虑各种异常,导致在大家下载到自己环境下运行的时候,偶尔会出线未知的问题,而没有足够的报错信息……

当然现在进行了一些优化,已经好一些了。

为什么当时没有能力写好代码,而现在有一些能力进行优化呢,因为之后又用codeigniter做了一些系统,而且学习ios开发的时候,斯坦福老头也让我对MVC有了进一步的了解。

其实人学习知识是基于正确的、能运行的系统来学习,我不知道这句代码会运行什么结果,我先echo出来,保证它的结果之后,再删掉这句,进行一些处理,再判断……所以我相信只有在反复练习之后才有机会把事情做的很完美。

当然也不是所有的事情做3次都能完美,因为只是重复地做一件事的话,“并不是有3年的经验,而是有把一件事情重复做了3年的经验”,所以有一些方法来让自己真的可以在第3次的时候把事情做好:

  1. 把自己的代码和作品,或者做的事情给别人看,虚心接收批评(比如开源)
  2. 方法论和实践并行,如果没有时间的基础上就一天到晚看best practice,就不会有深刻的理解,也是过目即忘。这里的方法论或者是一本书,或者网站,或者一些培训
  3. review自己以前的作品,然后改进

我写字的地方迁移到公众号啦~欢迎关注我的公众号:余果专栏


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK