写点什么

分解的三要素,从经典中感悟

用户头像
顿晓
关注
发布于: 2021 年 05 月 07 日
分解的三要素,从经典中感悟

理解分层(纵向分解),插件(横向分解),开闭原则(正交分解)

对 CPU 来说,工作流是取指-译码-执行(闭),指令类型是其插件(开),上层/指令改变不影响底层/CPU 工作流;

对编译器来说,工作流是语法分析-抽象树优化-指令翻译,语法表达支持是其插件;

对 IO 来说,工作流是读取和写回,IO 类型是其插件;

对 CPU 调度来说,工作流是调度算法,线程/进程是其插件;

对函数来说,工作流是函数体内的语句,回调函数是其插件;

对 OO 来说,工作流是接口,实现接口的对象是其插件;

对 FN 来说,工作流是高阶函数,函子是其插件;

对数据/协议处理来说,工作流是序列化和反序列,schema 是其插件;

对工作流来说,工作流是状态机,状态是其插件。


回调、接口,可以看做是插件的简化版。


【开闭】是继【只读】后我们谈的第二个顶级原则。

这类原则一般 10 个就足够用了,特点是到哪都能说上话,是软件界的公理。反过来,碰到一个软件问题,你脑袋里应该能想起来几个符合的原则。


具体一点,有的函数是实现工作流的,这类函数会比较大/重,一般一层只需一个这类函数,或者说这类函数自身就能代表一层。剩下的大部分函数,是实现插件功能,一般只完成一件事,是大家平常理解的函数。当然也不排除插件函数里实现工作流函数,这样就形成了 3 层。


虽然是学习编程规范,但编程原则避不开:规范是原则的实践,原则是规范的理论指导。

发布于: 2021 年 05 月 07 日阅读数: 10
用户头像

顿晓

关注

因观黑白愕然悟,顿晓三百六十路。 2017.10.17 加入

视频号「编程日课」 知识星球「俺的死党顶」

评论

发布
暂无评论
分解的三要素,从经典中感悟