Saturday, February 14, 2015

以行动力为上

    我有时候写代码时,容易犹豫。一段代码写了改,改了写,之后又觉得不够好,还再想改;结果半天下来,效率很低下。而且,随着时间的推移,知识的变化,我甚至会觉得自己一个月之前写的代码太难看,也想改动。

    举个简单的例子。在Game Shop 的代码里,先前的代码有很大的重复性。同样要加载template,对于不同的URL,每个URL可能都有一份代码。另外,学到新的技术后,会觉得以前的代码不好。比如当我习惯了RESTful 的代码之后,看到不是RESTful的代码,觉得不好。还有,当我看到Javascript被写入HTML 文件里面之后,也有想要改动的冲动。

    我对于代码的整洁性是很看重的。毕竟一段好的代码,维护起来容易——出错了容易找到错误在哪里,改需求时也简单。然而局限性在于,由于我个人的实力不济,想要写出易读、简短、易维护的Code 不容易。另外,我的知识一直在变,在某些方面的知识会增多,所以看旧Code也有不同眼光。更有甚者,时间也是一个方面。如果仅仅是因为个人喜好而花费过多时间在此,不太值得。

    下面谈谈指导思想。

    首先,要清楚需求。有了清晰的需求再去设计和开发;如果不清楚,不要浪费时间。

    其次,写代码时要精力高度集中。需要休息时要休息好,以充沛的精力,尽量写出没有明显错误的代码。

    再次,对于不好的Code, 时间、精力允许的情况下,可以做出改善。但以可以运行、可以通过测试为主。


    最后,以一个故事结尾。

    有一个老师教了一班陶瓷班的学生,学生学习关于如何做出好的陶瓷制品。在开学时,老师告诉同学们,对于每个学生的陶瓷制品,学期末会有比赛,角逐出陶瓷制品的排名。
    老师将同学们分成两组。第一组的学生,老师跟他们说,你们要设计出最理想的蓝图,根据这,再做出最理想的安排,最后,做出最完美的陶瓷制品——于是,同学们便投入到了辛苦的设计中。对第二组,老师让他们直接去做陶瓷;做各种各样的陶瓷。老师没提设计、改进这些东西。同学们投入到陶瓷的制作中了。
    结果,在最后的评选中,好的陶瓷制品几乎全部来自第二组。

    作为一个初学者,水平比较低,当然要努力提高自身姿势水平。这是毋庸置疑的。然而,水平有限的情况下,做更多的制品,才能让自己更加精进。写Code,对于程序员也一样。

No comments:

Post a Comment