今儿的题目,有些标题党色彩,各位莫怪,算是有感而写。

回顾一下我的代码生涯,毕业之前,主要用的Visual Basic,毕设是自学Java写的,刚开始工作时,Proc写的Tuxedo应用,Java写过应用程序,Python写过一些小功能,还使用Android开发过小工具(业余,纯的),Shell当然也用过,有些杂,但确实算不上精通这种的。

初入职场的时候,给了个任务,通常上来就写,写着写着,发现不太对,回来再对需求,改了继续写,反反复复,浪费精力的同时,很可能做的未必是需要的,事倍功半。

最近因为工作需要开始写代码了,我可不算是专业码农,相比很多人,我的经验很欠缺,所以这个过程,对我来说,还是很具挑战的,或者可以说“无知者无畏”。但是这些年接触了一些系统设计、排查问题跟踪过代码、学习过前辈的经典示例,俗话说“没吃过什么,还没见过什么跑?”,虽然是句玩笑,但是蕴含着一定的道理,很多牛人做事的过程,还是值得我来借鉴学习的。

如果我们想事半功倍,应该怎么做?

这个话题很广,可能每个人都有自己的见解,我就闲聊下自己的一些不成熟的见解,欢迎各位牛人,评论补充,给我们些指引。

无论是写代码,还是其他工作,最重要的一点,就是先得想清楚,包括你的目标、范围、逻辑、流程。

首先,你这项工作的目标是什么,如果太多,可以划成小目标、阶段性的目标,最重要的是结合自己的能力可落地的目标,如果设定的目标,靠自己根本不可能完成,这个事情,或者当前做事的路径,就是无意义的,需要调整。

其次,明确阶段性需求,罗马不是一日建成的,无论是工具,还是系统,至少对我这个凡人来说,不太可能做到一步到位。这就得根据阶段性目标,梳理阶段性需求,为了达到目标,我们的需求是如何设定的,范围是什么,合理不合理?

第三,就是设计,无论是底层代码,还是数据字典,无论是数据维护,还是问题排查,这个阶段其实是很重要的,日志写什么?数据表怎么定义?数据一致性怎么保证?运行异常怎么看?加个规则怎么做?流程图是什么?事务控制是什么?这些都是隐藏在设计之中的。正所谓“磨刀不误砍柴工”,因为这些工作,是真正做代码开发的基础,当然,作为凡人,我认为设计一步到位,也是很困难的,但至少需要保证方向正确,细节的调整,还是可以接受的。设计除了满足当前的需求外,应该尽可能考虑一些未来可能的扩展,未必想得太多,至少不让扩展的代价太高。

做了这三个步骤,才是开始写代码,写的过程中,肯定会碰到各种的问题,这是很正常的,心理预期和心理建设要做好,这个其实很重要,记得开始工作时,碰到一些技术问题不知道怎么解,可以说吃不香睡不甜,消耗自己,还可能影响他人,其实有时候,换换脑子,劳逸结合,可能就会碰到灵光一现,就像前天,碰到个技术问题,没想明白,早上梦中惊醒,给了我个思路,你说这是巧不巧?

P.S. 有朋友说多睡会,可能能解决更多的问题,这个不就是传说中的毛利小五郎?可以尝试下:)

写代码如何事半功倍?_人工智能

以上从需求到开发的过程,说起来很容易,好像我们日常工作都是这些阶段,但是能将每个阶段做好做扎实,确实不容易,经验积累更是不能少,可能很多都得让我们自己体会,才会形成我们自己的知识体系。

不光是写代码,对其他事来说,想清楚了再做,总会比没想清楚就开始做,目标性更强,我们慢慢体会了。