08 | 代码与分类:工业级编程的代码分类与特征
胡峰
该思维导图由 AI 生成,仅供参考
编程,就是写代码,那么在真实的行业项目中你编写的这些代码可以如何分类呢?回顾我曾经写过的各种系统代码,按代码的作用,大概都可以分为如下三类:
功能
控制
运维
如果你想提高编程水平,写出优雅的代码,那么就必须要清晰地认识清楚这三类代码。
一、功能
功能代码,是实现需求的业务逻辑代码,反映真实业务场景,包含大量领域知识。
一个程序软件系统,拥有完备的功能性代码仅是基本要求。因为业务逻辑的复杂度决定了功能性代码的复杂度,所以要把功能代码写好,最难的不是编码本身,而是搞清楚功能背后的需求并得到正确的理解。之后的编码活动,就仅是一个“翻译”工作了:把需求“翻译”为代码。
当然,“翻译” 也有自己独有的技术和积累,并不简单。而且 “翻译” 的第一步要求是 “忠于原文”,也即真正地理解并满足用户的原始需求。可这个第一步的要求实现起来就很困难。
为什么搞清楚用户需求很困难?因为从用户心里想要的,到他最后得到的之间有一条长长的链条,如下所示:
用户心理诉求 -> 用户表达需求 -> 产品定义需求 -> 开发实现 -> 测试验证 -> 上线发布 -> 用户验收
需求信息源自用户的内心,然后通过表达显性地在这个链条上传递,最终固化成了代码,以程序系统的形态反馈给了用户。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文总结了如何写出工业级强度的“优雅”程序系统。作者将程序代码分为三类:功能、控制和运维。功能代码是实现需求的业务逻辑代码,需要清晰地认识需求并正确理解用户的原始需求。控制代码是控制业务功能逻辑执行的代码,与程序运行的性能、稳定性、可用性直接相关。运维代码是方便程序检测、诊断和运行时处理的代码,让系统具备工业级的可运维性。作者强调了这三类代码在程序实现中的重要性,以及它们之间的边界与距离的重要性。文章通过举例和分析,深入浅出地阐述了如何写出优雅的程序系统,为读者提供了宝贵的技术指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员进阶攻略》,新⼈⾸单¥68
《程序员进阶攻略》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(27)
- 最新
- 精选
- WolvesLeader怎么判断一个代码的好坏,我总是不知道自己写的代码是不好还是好
作者回复: 那就看看一些标准库或开源代码,找找好的感觉
2018-08-2313 - 艾尔欧唯伊感觉运维代码是最复杂,但是前期是最看不到收益的的。。。 但是却很重要,特别是项目规模上去之后。。。
作者回复: 很多时候,运维类代码都成了技术债
2018-08-2013 - third突然想起了,福特曾经说过的一句话,如果我们去问顾客想要什么,他们会告诉我们想要一辆更好的马车,而不是汽车。
作者回复: 😄,哈哈,经典的福特之问
2018-08-2211 - 钱恩,讲的很好!一门语言学会后,编程的困难在于对业务逻辑的理解,尤其对于业务背景和整体流程的理解,决定了业务抽象的层次的高低,和看问题的深浅程度! 大厂应该都有基础架构平台,各种维护性代码应该比较容易加,让业务工程师专注于业务。
作者回复: 恩;业务大了后,都会工具化和平台化,才会有规模效应
2018-08-206 - 阿信总结: 对于最终需要交付运行的程序代码, 从代码的用途(or使用场景)上将作者代码分为三种:功能代码、控制代码、运维代码。 功能代码,满足于用户需求,为实现特定的业务功能而开发。 控制代码,对代码执行流的控制,如并行、异步、限流、熔断、超时控制等。RPC、中间件、代理服务器等,应该是对代码执行流的控制。控制代码的需求,是从众多(已有的或预见的)功能开发中提炼而来,基于一些共性的特征抽取。源于功能而高于功能。 运维代码,用于解决运行过程中出现的问题,或者为解决问题提供必要的信息。 结合工作,我们做的防重组件,是控制代码。基于pinpoint实现链路跟踪,是对业界已有的运维代码成果的使用
作者回复: 嗯,理解很对
2019-03-104 - 胖项目时间太紧的一个后遗症就是deadline 只能保证功能代码调通。运维代码缺失,大量fixme:有空时再补日志,有空时再补错误码,有空时再补国际化,有空时……
作者回复: 有空时,就忘了……😂
2018-08-204 - 予悠悠没有完全理解控制代码究竟是哪一类代码。胡老师可以举更多的例子解释吗?
作者回复: 比如并发,互斥,流控,隔离等控制代码执行的代码
2019-01-2623 - 吴封斌第二次拜读这篇文章,但对于控制,和运维还不是很明白😭,作者可以在形象化点说明吗?😊
作者回复: 那可能是你还没怎么写过类似的代码,所以觉得抽象,不着急,多做些事情,多写点代码,会恍然的😄
2019-04-182 - 杨城老师对代码分类的很清晰👍 接触到的大部分程序员都希望更多的编写高技术含量的控制代码,会觉得写业务代码比较枯燥没啥技术含量,而且每个公司业务并不通用,请问老师我们平时学习中应该怎么平衡在学习两者上投入的时间精力呢?
作者回复: 不用太刻意去平衡,哪里的需求更强烈就投入到哪。业务和技术是价值链上的两个环节,两个环比一个环更有价值
2018-09-112 - liangjf刚出来工作的我只想尽快熟悉各个业务功能,然后串起来,理清整个框架
作者回复: 恩,刚开始都是这样的
2018-09-062
收起评论