高效开发的核心

以一敌百定律:大神程序员开发效率可以百倍于萌新程序员……

高效开发,是程序员的基本功。 因此,第一篇就来探讨一下高效开发的方方面面。

代码录入

编程是把脑海中思路转化为代码的过程,而代码录入到计算机中应该是同时完成的,这是个自然而然的过程,不应该让自己能感觉到其存在。 绝不能让思维去等待键盘录入,因为这样会打断思维,严重影响思路的连贯性,不单大大影响编程速度,更会在思路的不断打断、恢复中产生大量bug。 这件事说起来很自然,但实际上要做到是需要非常多技巧和努力的,具体如下:

  1. 熟练盲打 ,从而让打字时间消失
  2. 有强大的编辑器 ,从而让代码编辑时间消失
  3. 语言语法烂熟于心 ,从而让思路转化为代码的语法适应时间消失
  4. 代码结构在编程之初便清晰明了 ,从而避免实现期间重构这个会把思路完全推翻的可能

除去第一点可以在几年之内成为习惯,后两点都是不可能完成的任务,因为编辑器至今还没有一个足够完善的,而语言语法更是无穷无尽。

核心

因此,我们无论代码录入能力如何,都必须学会如何在无法自然连贯录入的状态下编程,这事说起来也很简单:

所以,你才会看到很多程序员都会先在纸上写写画画,然后再去写代码,因为他们要保证自己的思路连贯啊!

思路整理

那么,如何写思路呢?常见的工具有:

  1. 伪代码 ,和源代码同样的精细程度,又避免了源代码的语法纠缠
  2. 流程图 ,比伪代码更粗粒度、更专注的思路描述
  3. 架构图 ,用来描述工程各模块及其关系的方式
  4. 各种随性的写法、画法 ,来描述各种奇奇怪怪的思路

代码重用

这些,就是编程领域的代码重用。 说起来很简单,可实际做起来全都是编程能力的体现。你需要:

  1. 对代码的复杂逻辑进行无遗漏的分析,从而 提取出重用的部分
  2. 对重用的部分单独抽离出来, 用通用的方式抽象成模块 ,这时涉及的语法难度、见识广度要求都上升了一个档次
  3. 你可能还需要把这种模块 提供成跨进程、跨主机的服务 ,这样对你操作系统、网络的知识又有了要求
  4. 最后,为了保证其可用性,你必然是需要 不断维护 的,这就是个无底洞……

下文预告

高效开发可能是日常编程最关心的问题, 但往往随着水平的提高,当你已经有了自己的一套高效开发习惯,足够满足日常工作之后; 你的关注点会越来越偏向于很多其他地方,比如:

这些问题很常见,而且也会伴随着你的整个编程生涯,绕不开。 那么下一篇,就让我们来聊聊:很多平时看不到的内功

Page created on 2020-12-06