业务代码和非业务代码的区别?

2020-10-16 08:40:22 +08:00
 hambman
大部分代码应该都是业务代码,只有少数基础设施才是非业务代码,比如数据库啊之类的 ?

大家的经验,写这两类代码的区别是什么, 需要怎样不同的风格?
4653 次点击
所在节点    程序员
19 条回复
p1094358629
2020-10-16 08:46:58 +08:00
业务代码只能自己写,非业务代码 cv 大法
eric1202
2020-10-16 08:59:41 +08:00
@p1094358629 言简意赅
crclz
2020-10-16 09:07:13 +08:00
非业务代码 = xx 环境的安装与搭建
skrskrskrskr
2020-10-16 09:11:20 +08:00
一个赚钱,一个不赚钱
zunceng
2020-10-16 09:38:38 +08:00
正好相反

业务代码初写很多 随着迭代 会被浓缩成一个配置或者一种语言 精简扼要的描述业务

剩下的都是非业务代码
vindurriel
2020-10-16 09:59:00 +08:00
我的经验是 code repo 不一样 测试 评审标准不一样 团队甚至都不一样
coderxy
2020-10-16 10:16:08 +08:00
非业务代码一般质量会好一点,没那么严格的工期逼着你。
hitmanx
2020-10-16 10:51:12 +08:00
以前听 George Hotz 的说法是,看这个事情距离 computer science 那些核心知识点的远近,核心知识点就是 cs 那些经典的专业课咯,比如操作系统、编译原理、数据结构与算法、计算机网络等等。
iyangyuan
2020-10-16 10:59:11 +08:00
业务代码随着需求的不断变化,再加上业务的复杂性(比如大的表单验证、数据导入),可能会比较冗余(不重构的前提下)。
而非业务代码,架构设计完成之后,很容易写出漂亮的代码。
securityCoding
2020-10-16 11:21:43 +08:00
好不好看
CODEWEA
2020-10-16 11:37:17 +08:00
其实没有太大的区别,只是需求不一样

业务代码服务的是可能不断变化的需求,是阶段性的
非业务代码服务的是技术架构,需要考虑长远

业务代码讲究务实,千万不要花里胡哨,遵循最小资源实现即可 ,太多的设计反而维护成本太高,导致产出比失衡
非业务代码讲究整体性,要考虑以及未来技术架构的发展,代码结构是需要设计的。
imn1
2020-10-16 13:06:26 +08:00
很久很久以前,我就是专写非业务代码的,写了很多字符串相关的函数
例如编码转换、拼音排序、日语汉字与汉语汉字转换……等等
给别人用时,他们就不需要相关知识(现在不少人还搞不定正则和 Unicode ),也不用考虑相关逻辑,一进一出就是了

以前一个同事也是专门写非业务代码,他熟习的是文件处理
别人用就"write(文件, 内容)"就够了,连内容的类型(str, number, bytes...)都能在函数内部识别并处理,使用的人完全不用考虑逻辑,以及异常处理
ericgui
2020-10-16 13:12:12 +08:00
@coderxy 毕竟非业务代码也不会经历大量的变动,不会今天加个需求,明天改个需求,后天删个需求
所以可以慢慢重构,讲求质量
zzzzzzggggggg
2020-10-16 13:39:30 +08:00
并没有严格的区分,业务代码写多了,提炼出公共的、可复用的专门维护,就成为了非业务代码。
如果实在要区分,非业务代码可以在多处使用,业务代码只使用一次;非业务代码服务于业务代码
CoderGeek
2020-10-16 15:53:22 +08:00
业务代码是业务逻辑, 框架, 组件扩展 比如 DB 同步一些通用组件 都可以不叫业务 可以复用
CoderGeek
2020-10-16 15:54:05 +08:00
非业务代码需要沉淀 大部分业务代码用完就废弃了
DoctorCat
2020-10-16 16:01:31 +08:00
同意 1 楼的说法。

补充个场景,新接手 repo 看到的情景,Service 、DAO 代码:这特么写得啥玩意,我还得贴需求上去贴哪里好呢?
非业务代码:白嫖这 helper 、utils 真香
YYYeung
2020-10-16 23:11:50 +08:00
业务代码:业务面向客户
非业务代码:业务面向同行
hambman
2020-10-17 05:43:22 +08:00
谢谢大家讨论 @CODEWEA 的理解很我最接近。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/715447

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX