开发实践思考(六)

本篇接上一篇《开发实践思考(五)》,继续汇总日常总结点,每篇10个。

1. 奥卡姆剃刀原则

如无必要,勿增实体。如果一个现象,可以通过两种方法来解释,有简单的解释,也有复杂的解释,那么,选择简单易理解为好

2. 最小知识原则

每个模块只需要了解与当前模块紧密联系的模块接口,去掉无关紧要的依赖。它为设计带来两个好处:

  1. 更好的信息隐藏
  2. 更少的信息过载

3. 技术方案讨论

就某个问题,提出具体解决方案时,有以下几点注意:

  1. 方案个数要适合,1个太少,4个太多,最佳候选方案个数为2~3个。
  2. 列举出每个方案的优缺点以及适用场景,简要描述清楚
  3. 列举上述方案后,由上级来做最后的决定
  4. 一旦领导选定方案,那么需要通知全组人员,就该问题的解决方案达成共识,在后续落地中,小细节可以调整,但大方向不能偏

4. 对封装的进一步理解

封装,笔者认为当做聚合来理解更好,把数据和对数据的操作聚合到一起,把类型和对类型的转换聚合到一起,只对外暴露必要的数据。

当遇到重复逻辑时,可将操作中的变化部分抽离出来,当做参数传入,内部实现通用处理。聚合业务处理逻辑,通过将数据与处理数据的逻辑隔离开,使之更具有通用性。

5. 技术不是万能的

经过长期的开发工作,明白 "技术不是万能的",这一客观事实。

笔者自己拒绝别人的能力还是不够,通过平时工作中细心观察周围同事,学习到如下方法,在此总结下:

总体思想:话不能说死,不要贸然给出承诺,凡事三思而后行。

  1. 这个需求能否实现,我要看下代码才知道。
  2. 这个需求不合理,我觉的对用户没价值。如果要上,请和领导再讨论下。
  3. 这个需求和之前的XX实现有冲突,如果这样做,那之前的XX流程就不再成立,你有考虑到这点吗?
  4. 这个需求改动涉及面太大了,不建议全部做。如果要上,要先限定范围,按重要性进行优先级排序,先做最重要的部分,其他的往后放。

6. 枚举变量命名

枚举变量的类型定义和内部成员定义使用相同的前缀说明,方便阅读和检查,以下载状态检测为例子:


enum DOWNLOAD_TASK_STATUS
{
    DOWNLOAD_TASK_STATUS_NOEXIST = 0,   // 下载任务不存在
    DOWNLOAD_TASK_STATUS_STOP    = 1,   // 未开始或已停止
    DOWNLOAD_TASK_STATUS_DOING   = 2,   // 正在下载
    DOWNLOAD_TASK_STATUS_PAUSE   = 3,   // 暂停
    DOWNLOAD_TASK_STATUS_FINISH  = 4,   // 已完成
    DOWNLOAD_TASK_STATUS_WAITING = 5,   // 等待
}

7. 期权业务知识

对于期权策略的编写,看了网上的众多介绍,介绍的书单很全很专业,但这些对工作上是否有帮助呢?

仔细想了下,受限于时间、业务范围以及知识结构,期权等衍生品涉及的知识太多,贸然通过各种书籍的识去打基础,一来耗时太久,二来目标不明确,估计效果不佳。

参照之前的学习方法,问题驱动型学习,先看代码,看到不同的知识点或者名词,再去查相关资料,查找过程收敛于该知识点即可,不要被旺盛的好奇心扰乱了自己的视线。搞明白一个知识点,好过囫囵吞枣看众多知识点,结果一团乱麻。

在搞清楚若干个知识点后,尝试寻找各个知识点的内在逻辑关系,通过思维导图等方式将其连接成线,最后结合立体的、完备的知识体系。这事儿快不得、急不得。

对于入门学习来说,知识是螺旋上升的,一下子学太多很容易遭受知识洪水而感早早放弃。

8. 只做必要的事

在自己能力范围以及能力边界上,只做必要的事。如果某项功能或者工作做了额外的事情,那么要从结果上尝试分离,职责内的和职责外,职责内的自己负责,职责外的要告知相关人员知晓变动以及可能的影响。

9. 状态的明确性

在代码的世界中,一切都要有明确定义,不应该存在模糊地带。例如,一个对象,要么已经初始化,要么未初始化,不应该存在初始化一半或者初始化1/3的情况,这种中间态是未定义的,一旦程序进入到这种状态,会发生意想不到的错误。

10. 偷懒心态

如果找到某种可行的方法,感觉心理上有种抗拒尽其他解决方法的思想。特别是在某个问题上困扰很久,之后找到某个方法可以解决,这种感觉就在黑暗的枯井中抓到了一根救命绳,抓到后就使劲往上爬,不会在寻找有没有其他逃生的通道。

这是一种偷懒心态。我们要承认这种心态是客观存在的,找到的某个方法,在没有和其他有效方法进行对比的前提下,是不能够认为是最佳方案。要多想想有没有其他可行的方案,找到几种方案后进行对比,根据具体情况选择最佳方案。这样,即使最终选择的方案就是最初找到的,我们也可以拍拍胸脯地说,用这个方案,而不是最初只找到这个方案时那种孤注一掷、小心翼翼的感觉。

眼光要高些,凡事多想几个方案,没坏处。

posted @ 2022-02-12 10:40  浩天之家  阅读(32)  评论(0编辑  收藏  举报