关于代码能跑就不要动的观点的信息

本文将向大家介绍代码能跑就不要动的观点相关的知识,同时也会讨论相关的话题。我们希望这篇文章能够帮助到你,解答你的疑惑。别忘了将本站加入收藏夹哦!

一位 20 年老程序员分享的 20 条编程经验火了:不要与工具作斗争等

转载自it之家同名文章

一位 20 年老程序员分享的编程经验突然火了,在 Hacker News 上,一天之内就收获了 467 热度。

其实这篇帖子所包含的观点大都是编程圈子里较常见的概念,但是这些年来有的话题一直很具备争议性。对他的大多数经验,网友很赞同。比如:代码终究还是给人写的,注释是为了让未来的自己和其他同事能看懂

20 年浓缩成 20 条经验

1. 不要与工具作斗争

所谓工具,包括库、语言、平台等。尽可能多地使用原生的开发方式。这样可以保证程序或软件的数据都存在于本地,能够及时检索,保证程序或软件的合作速度和流畅度。不要被技术捆绑,也不要被问题捆绑。应该为工作选择合适的工具,而不是为了工具寻找合适的工作。

举个例子:编程实现在一个文件中找到给定单词出现的位置并统计出现次数。如果用 C++ 写的话需要 92 行代码,而使用 Python 的话只用 26 行代码就可以完成了。

由此可见,对于同一个问题,换一个工具也许可以简化编程,提高效率。

2. 写让人可以看懂的代码

程序员们不是为机器编写代码,而是为了同行们和未来的自己编写代码。写代码的终极目标往往是完成一个项目或给后来者作为参考。

3. 善于合作

任何重要且有价值的软件都是协作的结果,有效沟通和公开合作很重要。能用众智,则无畏于圣人矣。

4. 对各模块分而治之

编写相互联系却又彼此保持独立的单个模块。先分别测试每个部分,然后一起集成测试。既要保证测试接近实际,也要测试边缘实例。

6. 安全是分层的

分层安全是一种应用多种安全措施的实践,每一层都与前一层和下一层重叠,以创建一个安全控制网络,这些网络可以一起工作以保护技术系统。每一层都需要单独评估,但也需要与整体相关。

7. 代码也有生死

要认识到,每段代码都有一个生命周期,并且会最终失效。有时,一段代码甚至还没上线发布就被废弃了。程序员要学会放手,弄明白 4 类特征的区别,然后想清楚应该在哪些方面投入时间和精力:

核心:就像 汽车 的引擎。没有它,产品就没有意义。

必要之处:就像 汽车 的备用轮子。它很少被使用,但当需要时,它的功能决定了系统的成功。

附加值:就像 汽车 的杯座。有它很好,但产品没有它也完全可用。

独特卖点:人们应该购买你的产品而不是你的竞争对手的主要原因。

8. 保护好个人信息

程序员不要将个人身份信息附加到代码中,也不要把其他人的身份附加到他们的代码上。人是独立于他们的工作产出物之外的。不要把别对代码的批评当成是针对个人的,当然也在批评他人的代码时也要谨慎。

9. 尽量规避技术债务

技术债务是开发团队在设计或架构选型时,为了快速地解决问题,而采取的不规范的方案。偶尔的技术债务是可以接受的,但如果长期负债往往会快速地扼杀产品。

10. 可参考以下优先级

为解决方案做决定时,假设其他条件都是一样的,可以按照这个优先级:

安全性 可用性 (可访问性和用户体验) 可维护性 简单性(开发人员体验 / DX) 简短性(代码长度) 性能

但是也不要盲目地遵循这个规则,还要考虑到产品的性质。例如,在设计 游戏 引擎时,性能是最重要的;但在创建银行应用程序时,安全性是最重要的因素。

11. 复制粘贴会带来 Bug

有时复制粘贴后,会出现 Bug,这个几乎无法避免。为了检查是否有问题,每次都需要搞明白复制过来的内容,并审核导入的内容。

12. 不要只为乐观场景写代码

还要写出好的错误提示,回答其为什么会发生,如何检测到它,以及如何解决它。

13. 尽量不要使用依赖库

若调用一个动态库 A 时,A 需要调用动态库 B,则 B 是 A 的依赖库。

尽量不要使用依赖库,除非导入、维护、处理边界情况时出现 Bug,或者当代码不满足需求时,重构的成本远远低于你拥有的代码。

14. 不要盲目跟风

可以去了解热炒的新技术,但不要被拽着走,要坚持自己对技术的品位。

15. 坚持学习

16. 最好的代码都有良好的注释

一些人认为,代码写的够好,就不用写注释了。但最优秀的的代码中往往都包含着良好的注释。这样,即使是没有经历过这段代码的调试、测验过程,且暂时不具备写出此代码能力的人都可以使用它。

可以说,未文档化的功能是不存在的功能,不存在的功能不该有代码。

17. 尽量避免重写、继承和隐藏信息

写纯函数 (Pure Function)。对于纯函数,相同输入总是会返回相同的输出,执行过程中不产生副作用,且不依赖于外部状态。它们更容易测试和推理。

在执行一个非纯函数时,除了得到函数的返回值以外,还在函数调用时产生了附加的影响,如:修改了全局变量的状态,修改了传入的参数等。

任何非纯函数都应该是类,任何具有不同函数的代码构造都应该具有不同的名称。

18. 弄清楚问题后再开始编程

面对一个问题,首先要弄清解决思路,再开始编程。在编程过程中还需要逐步经历“编码-测试-改进”周期,并不断深入 探索 ,直到完成。

19. 不要去解决不存在的问题

不要进行投机性编程。只有在确定代码将来会被扩展时,才去花功夫提高代码的扩展性。

因为当代码要被扩展时,有很大的可能性问题定义已经与代码初次编写时不同了。

20. 巧用社区、积极探讨

参考链接

[1].

[2].

写代码已经感觉写不动了,一写代码就好累,这种时候是瓶颈期,还是需要停下来休息的讯号?

这种情况很多见的,设想下你的两种情况

第一:坚持下去。你会享受到其中的乐趣,克服困难,享受解决问题的感觉(每个程序员都有这种感觉,特别是修复bug的时候)

第二:遇到瓶颈就此停止。这好像是程序员最大的禁忌,碰到问题就不愿面对了,不仅是在写代码上,生活任何一件事都是遇到瓶颈期就不愿继续下去,如果你有这种想法,建议立刻消除,不然就当程序员了。

你这种情况确实没压力,试着出来闯闯

低代码开发平台有什么特点

一、低代码开发平台是什么?

低代码开发平台是一种无需编码或使用少量的代码就可以快速搭建应用系统的开发平台。它跟传统的编写代码方式不同,低代码的强大之处在于,它能允许终端客户使用并快速理解的可视化开发,能轻松搭建客户自己需要的应用程序。

随着智能手机的崛起,移动互联网技术得到了高速发展,很多企业为了高效管理公司开始尝试使用应用软件实现信息化管理。而低代码平台的出现,正好可以帮助企业提高应用程序开发的速度,降低开发成本。这也是低代码开发平台的一大特点,那么除了这个特点之外,低代码开发平台还有什么其他的特点呢?下面小编就带大家详细了解一番。

二、低代码具备什么特点?

1、为开发团队提供支持图形化和编码混用的工具

开发人员可能喜欢手工编码,尽管他们通常并不喜欢重新制造轮子。如果能有一种易于使用、功能强大且图形化的方式设计网页,或者采用图形化方式配置流程参数,那么自然会有开发人员乐意使用它。当然,也总会有人不想甚至不需要这类“易用”的工具。如果给开发人员自由,可以选择用他们喜欢的Javascript库创建该网页,或者使用XML文件来配置流程参数,那么真正喜欢编码的开发人员也可以使用这个低代码方法。面向开发人员的低代码平台,为具有不同偏好和技能水平的技术团队提供了有效的支持。

2、通过可扩展性实现灵活性,进而提供更大自由

开发人员和其他人一样都喜欢自由。对于一个构建应用的完整平台,开发人员应可以从中选择他们仅需的组件。例如,开发人员仅需流程引擎,或者流程引擎和用户界面设计器。平台应提供多种灵活性,其中包括:通过可扩展性提供扩展库、框架或平台并对其进行改进的自由。提供将一个服务或组件替换为另一个服务或组件的自由。提供将当前平台与其他选解决方案结合的自由。对于面向开发人员的低代码平台,仍然需要提供是否支持编码的自由。

3、支持多学科开发团队

在企业实施中,开发团队工作的变更管理工具至关重要。如上所述,开发团队通常由承担不同职能的人员组成,例如前端开发和后端开发,他们更倾向于使用混合开发方式。一些开发人员可能更喜欢使用图形化工具开发用户界面,而另一些开发人员更喜欢使用HTML5手动编码,还有一些人更喜欢使用JavaScript。低代码平台支持团队中的异构协作,有助于解决“缺乏可用的开发人员来支持所有需要完成的项目”的问题。

4、为协作和持续集成提供工具

数字化转型的关键在于快速构建新功能、判断新功能的有效性,并根据反馈和利用敏捷方法做出改进。低代码平台应该支持开发人员使用他们喜欢的方法和框架。

5、支持在做出决策前试用、学习并分享

开发人员当然和其他所有人一样,更愿意参与到选择所用开发工具的过程中。开源和免费增值模式平台当然是优先的选择。开源产品的优势在于任何人都可以下载并上手使用。通常开源产品背后多具有社区支持,可提问、反馈并分享实践。

6、灵活选择架构和可扩展性

应用无论是本地部署、通过SaaS部署,还是在公共、私有云或混合云上部署,专业开发人员都希望能够清楚地了解,将使用低代码平台构建的应用的体系结构。这使得专业开发人员能够针对性能和扩展对应用进行建模和设计,改善应用程序组件和服务间的通信,以及将用户界面与数据和业务流程分离。开发人员若想构建可在不同环境中运行和扩展的企业应用,需清晰了解具有可扩展功能和自由编码的体系架构,这至关重要。

7、省钱

如果您是开发管理软件给自己使用的用户,当您需要软件的时候,需要升级软件的时候,不需要再找软件开发商,自己就可以完成。这样,您就再也不用支付大量的软件开发费用,维护费用,升级费用了。而且,简搭(jadbp)低代码开发平台是一次购买终身可以使用的,也就是说,您永远不用再花钱去找人开发软件了,从长期来说,省下来的钱,是一笔不菲的费用。

如果您是软件开发商,那么当您给客户开发管理软件的时候,就再也不用投入大量的成本在程序员、产品经理、UI设计上面了,您只需要招聘基础的开发人员就可以了,如果碰到难题,平台所提供的的技术支持也能帮您解决。

8、省时

简搭(jadbp)低代码开发平台,重点在于“快”。以前开发一个管理软件的周期可能是3个月,现在只需要几天,大大地减少了工作量。同时,平台还可以让您批量地生产管理软件,这样就可以不用因为项目多而招聘大量员工了。并且基于平台,可以随时随地为客户升级软件,后期的维护和升级成本也大大地减少,从而增加收入。

9、省力

简搭(jadbp)低代码开发平台是一种新型开发工具,相比传统的开发模式,不仅节省了成本,也让技术人员的要求降低了。一些基础的功能非技术人员也能进行配置,不用再因为代码而烦心。

大家怎么理解“业务代码”?为什么有人觉得写业务代码很low?

在我眼里,也经常会把程序员分成两类:一种是我等这种写业务代码的程序员,另外一种是研究高深算法、造“轮子”的“科学家”...

将他们称之为科学家是有些夸张,第一次冒出这样的想法是参加一个技术大会,当别的嘉宾都在分享开发、设计、架构、管理方面的经验时,一名在腾讯工作的算法工程师(应该已经是一个小领导了),他上台分享了一些诸如:滑动平均自回归模型、神经网络基因表达式编程、SVM回归机集成学习...坐在台下的我第一次冒出这样的念头:“这**是科学家研究的东西吧。”

当然,倒也不能说写业务代码就很 low,写业务代码也不是想象中那么简单的。

写业务相关的代码,必须了解业务流程,还需要了解业务人员心里是怎么想的,也就是业务出发点是什么样子的。

比如我最近遇到一个需求,过程大概是这样的:销售人员在卖一款产品,这款产品非常火,有些优秀的销售人员一周可能能卖出去几百上千单;结果我们接到一个需求,要限制每个代理人的销售数量,比如每人只能卖 10 个(之前已经卖掉的不算);这就让我们非常奇怪,本来卖的好好的,为什么要做这个限制呢?这个需求看起来就非常的不合理。

后来业务人员和我们解释了一下原因:因为这款产品公司不挣钱,销售人员为了推这个产品,花在别的产品上的时间就少了,所以出这个功能,就是让销售人员“收收心”,把精力放在其他产品上。

这么一解释,我们就立刻明白了;所以如果你不明白业务的时候,看着需求敲代码也是非常容易出错的。

有些人会认为业务逻辑就是一堆 if-else,但是我认为在实际工作中,这些 if-else 也是非常难做到的。

业务逻辑是人设计的,业务逻辑难不可怕,可怕的是它不严谨和变化快;业务逻辑和那些确定性的东西不一样,比如我们写好的代码 if-else 两个分支,那么再怎么也不会跳出这个范围,业务逻辑就不一样了,它是非常灵活的、不确定的,业务机会来的快消失的也快,我们很难开发出来一套全面的、完善的、灵活的的系统,去应对将来可能会发生的需求。

所以在开发过程中,如果可以将业务流程拆分成多个组件模型,组件和组件配合完成一个完成的业务流程;当业务发生变化或有新业务的时候,只需要重新编排这些组件,或对某一个组件做少量更改,就可以满足业务变化;如果能做到这个程度,也是非常不容易的。

在这个过程中,你需要做到高内聚低耦合,避免过度抽象,从业务流程和动机出发,已满足业务需要为主;既然做不了“科学家”,我们就努力把业务代码写好把。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

首先,我认为写业务代码不“low”,但是大部分不假思索拷贝粘贴的业务代码比较“low”,换句话说就是所谓的五年工作经验就是把第一年的工作重复了五遍。

技术人员成长一般有两条线,一条是成为技术专家,一条是成为领域专家。所谓的转管理我理解也就是领域专家,毕竟不懂得领域知识是无法做好管理的,比如说你是互联网金融某个业务部门的leader,那么你肯定要懂金融。领域知识就是在不断的写业务代码和思考中积累起来。

还有一个问题就是如何定义业务,比如说“实现一个修改订单功能”,这是一个业务需求,看起来很low,但是如果业务需求改成“实现一个修改订单功能,要求在有限资源的情况下并发10k,响应时间不高于10ms”,那这个需求就有挑战。说这个问题想说明白一件事情,如果做业务不要停留的在业务表面,仅仅满足于实现功能,要主动思考。

最后总结一下,没有最好的技术,只有最适合业务的技术。技术是内功,业务是招式,内功不足,后续成长乏力,没有招式,内功也不能发挥威力。这是也很多互联网创业公司做大了之后要技术转型的原因。

作为一个程序员,我也是写代码的,我不觉得写业务代码很low。

1.首先大家所认为的业务代码就是一些和业务相关的增删改查,涉及到的技术点相对来说是固定的,写熟了之后,就是复制,粘贴,不存在什么技术阻碍,很多人就觉得非常的简单,没有技术含量,做这些工作的人也显得非常的low,如果你也是这样认为的,那你就错了,因为写业务代码的基本都是初级,中级的程序员,工作经验有限,不具备写一些公共方法和接口的能力,但是并不代表以后能力不会提升,如果持续努力,也会成长为高级程序员或是架构师,谁天生就是高级程序员呢,不都是一点点积累起来的吗?而且就算是写业务代码也不能就是low呀,有些业务场景是非常复杂的,逻辑必须十分严谨,稍有差错可能就会出现bug,对公司造成巨大的损失,不是写业务代码就是很容易的。

2.除了业务代码就是非业务代码了,比如开发数据库,开发框架,或是写一些公共的方法或是接口,供初级开发者调用。写非业务代码的人技术也不一定就非常的厉害,因为就算是开发框架或是数据库之类的项目,也不一定都是高级开发,也会有一些水平较低的开发,因为写业务代码还是非业务代码和项目也有关系,如果你们团队开发的是开发框架或是数据库这种的项目,那么你们团队没有人写业务代码,也不能说明你们团队每个人技术都很厉害,只是项目性质不一样罢了。

3.业务代码这个词看你的理解吧,我认为其实所有的代码都可以成为是业务代码,无论开发什么产品,都是有业务需求的,有了需求才有开发的动力,对于开发数据库来说,数据库的需求就是业务,对于开发框架来说,框架的功能就是业务,所以我认为广义上来讲都是业务代码,没有非业务代码这一说,所以具体看你认为业务的定义是什么了。不过无论如何也不应该去嘲笑或是去贬低别人吧,嘲笑或是贬低一类人就更不应该了。

业务程序开发相对于底层基础架构层的程序开发有所不同:

业务开发的时间比较紧,变化快。

这个特点导致程序员没有时间重构代码,或者不愿意重构代码,而是用最简单粗暴的复制黏贴的方式快速实现业务逻辑。其实所有的复制黏贴都意味着需要重构。

底层系统的开发,一般是架构师和高级程序员来设计和控制项目时间。相对来说,开发周期长,变化缓慢。会更加注重架构的合理性和稳定性,而且会不断重构和改进。

业务开发一旦完成,只要平稳运行就不会有人再回来补技术债务,不会把它写得更好。除非这个业务爆发了,不得不从新架构以支持更高的并发。如果上线之后表现不佳,很可能下线不再维护。所以公司也不太愿意花太多精力在一个还没有被市场认可的产品项目上。

而底层架构框架的项目会在不同的产品项目中不断应用。不断地进化。就像Spring之类的开源框架一样,不断的升级和完善。

相对来说,业务开发程序员会花大量的时间学习和理解业务知识;而底层框架程序员更多的时间在学习技术架构。如果业务知识在行业内通用,比如财务,金融行业知识。那么长期的积累对业务开发也是很有帮助的。如果业务是很小众的,甚至,这几个月做这个业务,下半年又做另一个业务,做的时候也一知半解,就像很多外包一样,那就没有什么业务沉淀了。

我就是写业务代码的,不过我觉得这很正常啊,不知道你是怎么就觉得low啦?

所以,做为一个企业,支撑发展的肯定是他的业务,不管是卖什么服务,都要通过业务来赚钱,可能针对业务,企业内部还会做一些细化。比如说,有人会是做一些前端,一些人做后端,还有运维,运营,产品的配合。前端再细化,一部分人会做一些页面的展示,呈现,还有一部分人会做一些适合业务的工具,来提升开发效率。

那如果你自己的定位是只是单单写页面的,那只能说你对自己的要求有点低,你没有去考虑如何做一些提升工作效率的事情。举个例子,比如说常见的后台管理系统,因为功能都很类似的,那你有去考虑如何做一个通用的模版吗,还是就是不断地去重复。

这个别人的产出,做了一个vue的后台管理系统的模版,现在的GitHub star在6万多,通过这个项目,他就可以得到更多人的认可,也能得到更多的好的工作机会。

所以,不要觉得业务代码就是low的,要善于去总结,然后再分享自己的经验,没准你也能成为一个领域内的Top。

不要太在意所谓low与不low,需要在意的是做了这个项目或业务后,对自己的能力有没有长进,如果有,那说明不low。如果没有,那说明你只是在机械的劳动而已。

每个大佬都是从业务代码做起的,大佬们注重的是能否成长,学习实践的机会,以及平台的大小和未来是否和自己的目标相匹配。

总结来说,只要能提升自己能力的任何工作,都是值得的。

我觉得首先大家要理解什么是“业务代码”,业务代码是一个相对的概念。

1.对于一个一般的物联网应用型公司来说,业务代码就是根据客户需求基于一个MCU或者MPU的应用控制逻辑的实现。

2.对于一个做纯上层应用的公司来说,业务代码就是基于一个操作系统为客户量身定制对应的app,并实现对应的应用逻辑。

3.对于一个微型控制器设计厂商,业务代码就是底层架构裸机的具体实现和各个外设驱动的框架设计。

4.对于一个设计操作系统的开发人员来说,业务代码就是架构设计、内存管理、调度机制优化、优先级管理、进程间通信机制优化、线程管理和内核完善等等。

所谓”业务代码”都是相对的,没有参考系怎么谈。像操作系统,站在操作系统内核提供方的角度看,上层所有的应用框架,进程服务,都是业务代码,我是为他们服务的。技术只是工具,业务实现才是目的,站在不同供应商的角度,只要涉及代码的地方都可以称之为业务代码。所以站在这个维度,如果要说业务代码“LOW”,那就没有代码是不"LOW"的了。

不过,真正接触底层或者实现RTOS底层业务框架的工程师其实是很少的。大部分工程师基本上都是对于客户需求做一些非驱动底层非操作系统框架的应用型的开发,所以大多时候“业务代码“又单一的被指向了那些只是对客户的上层应用的需求做开发、调整或者迭代的代码。

而这部分代码究竟"LOW"还是不"LOW"呢,我的答案是:不"LOW"。但是现实却是很“LOW”,之所以会被想成LOW,是因为:

1.判断一个程序员的优秀程度已经不单单看你写了多少应用型的代码,设计了多少应用框架,而是你懂不懂底层驱动逻辑,懂不懂操作系统内核,懂不懂内核裁减等等。所以这种情况会经常出现在面试过程中,面试官会因为你不懂底层驱动、不懂内核而给你比较低的薪水。

2.懂得写业务代码的人,他的程序员基础并不一定就牢固。因为上层应用可能对业务比较看重,但是对于一些特定的语言的编程并没有那么严谨。能用就可以,所以会自然而然的认为这样的程序员“LOW”。而一个会写底层驱动的人,他考虑更多的是基础代码的安全、严谨性和容量问题等等,他们的语言基础相对来说要牢固很多。

3.技术负责人一般都是全能型的人。会写底层驱动或者更懂操作系统内核的人更容易成为技术的领头人。而那些只会“业务代码”的人,放在大部分公司,一般都不会有太多的上升空间。

根据以上分析过后呢,做“业务代码”的程序员基本上会被想的很“LOW”,但是结合我的亲身经历,不同的人对于这个事情却会有不同的看法。

比如对于领导来说,那就不一样了。你将“业务代码”的需求迭代了,完善了,提前任务完成了,客户很满意。那领导不会认为你是一个很“LOW”的程序员。你很高级,领导很欣赏,“后果”很舒服。但是对于一个面试官来说,你就会点上层应用的调用和设计。我为什么要给你这么多薪水?虽然会被想成很"LOW",但是也是现实。

业务代码不一定low,能完成用户需求的代码就是好代码。

另外,对于我们搞嵌入式软件、EDA工具软件的来说,业务软件反而是更有技术含量的,更具科学意义的代码,而软件可能只是载体,你啥时候透过代码理解了它们背后的物理概念、数学公式,你就超越了程序员,能向科学家又迈进一步。

互联网软件其实也一样,软件实现的是一个业务流程的自动化,你完全可以透过你写的程序还原甲方用户的业务流程,而这种流程是老板制订的,认识会上一个层次,将来可以向老板迈进

我发现很多程序员对于处理业务逻辑都是「嗤之以鼻」。感觉自己天天写业务逻辑代码,改 Bug 都没有时间学习,没有时间实现个人成长?

但是,作为程序员来讲,如果不是做底层基础技术研发的话,大部分的工作不就是做这些拧螺丝的工作吗?其实拧螺丝有那么容易吗?可能拧螺丝很容易,但是拧好螺丝就不那么简单了。

别小瞧业务逻辑代码,如果真正写好,要把逻辑写得清晰简单易用,功能健壮稳定,性能同时达到要求的话,其实是挺难的。

其实很多程序员都跟他一样,都在痛苦的编程,一方面对自己有更高的要求,一方面又嫌弃现在写的代码没有技术含量。又有更高的要去和希望,又嫌弃现在的工作,就是不思考出现的原因,不去付诸行动。还不停的抱怨: 感觉自己天天写业务逻辑代码,改 Bug 都没有时间学习,没有时间实现个人成长?

到这里,我们不禁一问:那我们该如何摆脱这种现状呢?其实很简单,我们应该摆正自己的态度和观点,正确看待写业务逻辑这些代码就行了。

坚持不懈的写好业务逻辑代码

就像我在上面说的: 别小瞧业务逻辑代码,如果真正写好,要把逻辑写得清晰简单易用,功能健壮稳定,性能同时达到要求的话,其实是挺难的。

所以,我们要正确看待写业务逻辑的代码,应该摆正心态,坚持不懈的去写,所谓量变引起质变,就是这个道理。写业务代码,积累代码量,一力降十会,在积累了巨量的代码量之后,几乎任何所谓的有技术含量的东西都构不成挑战性。当然,要想真正的通过自己写业务代码,写好业务代码还应该有接下来的这个思考。

业务逻辑代码同样可以玩出很多花样

其实业务逻辑代码一样可以玩出很多花样,而这才是能够提升你能力的本质。比如:你写了一个处理单任务的业务逻辑,虽然满足了用户的需求,但是你这时能不能对自己有一个更高的要求呢?单任务虽然是功能实现了,但是效率可能不行,处理慢,那搞个多任务处理的逻辑怎么样?任务池、线程池、内存池、并发、同步等等这些技术点都来了。如果你对自己有这样的要求,而你自己有追求的话,就会进一步思考如何去做到这些,你做到了,你能力就提升了。

同样,很多人感觉处理业务逻辑,就是一些各种循环,条件判断,只要逻辑稍微严谨点,功能就都没问题,就都实现了,确实是这样的。这就是你对于业务逻辑没有兴趣的根点所在。

那你为什么不想想: 如何使用循环和条件判断可以提升效率呢?满足了功能的那些需求,是不是有些地方可以优化一下呢?是不是可以提升一下性能呢?

其实,这个技术的进步和积累,就在于自己内心对自己有没有更高的要求和追求。这是大实话,也是大白话。很多人就感觉只要实现了功能需求就够了,满足了用户就行了。然后,这个项目完事了,下个项目遇到差不多的逻辑,还是这么处理,又完事了,每个项目,每个功能都是这样重复的处理,从来不思考最优的实现方式,你感觉能够进步吗?你能不烦气吗?十年如一日的工作,10 年也就积累了一年的工作经验,在重复使用。

业务逻辑的最优方式,就是思考如何大道至简

通过一个业务逻辑实现一个功能,基本上只要是程序员,脑子不笨,都能做出来,做出来是一回事,但是做好是另外一回事。大道至简,我们要做就得想办法做到最好。这里的好有很多层意思。

比如: 你写的业务逻辑代码 是否能够做到准确,稳定,高效,易读,易扩展,易维护,兼容性强呢? 问自己一句,如果你能做到这些,那确实是好。如果做不到,你还是处理初级水平,当然不行,这就是你在工作中提升能力的机会。别说没时间,都是借口。

精益求精是对代码大道至简的永恒的追求,也是我们在处理业务逻辑代码中不断提高自己能力的过程。

明明自己水平初级,就容易骄傲自满,感觉可以了,我想学更高的技术,那么更高的技术是自己在处理业务逻辑中一步一步积累出来的,不是干了初级的活,不用积累,直接学高级的技术,就能高级了。

我特别喜欢网上有个网友写的一段话:

其实很多技术大牛和技术专家,都是从业务逻辑做起,慢慢积累思考起来的。比如:在处理业务逻辑之前,会思考如何设计这个架构,可以让代码更好的扩展和维护。在处理业务逻辑的时候,思考如何的处理才能提高性能和效率?一步一步的实验和总结,积累,才成就了今天的成绩。

所以,不要对处理业务逻辑嗤之以鼻,不要以为能够满足需求就够了。你重复不思考的粘贴和复制肯定是不行的,必然会对编程失去兴趣,自然无法更好的成长和进步。应该在编程的过程中追求更高的要求,寻找更高的兴趣,这样才能让你持续进步,从而进阶。

林子大了什么鸟都有,不知道你说的有人是指多少比例的人。我的理解代码可以分为两类:1:工具栏或者框架类2:业务类。写工具类偏重于健壮可拓展可复用;写业务类偏重于逻辑严谨没有漏洞,化繁为简。毕竟有些时候需求或者业务都不甚清楚他们想要的逻辑。有时候复杂的业务流程你捋都不顺,更别说代码写的好了。当然,工具类到高深,工具好用,框架优秀确实需要的技术功底深厚,比业务类要考虑的东西也多,但不代表写业务类代码很low。当然,不管写什么代码,完全复制黏贴而不去考虑与实际场景结合,不去想为什么?有没有更好的处理方案是比较low的

感谢你阅读本文,我们希望我们提供的关于代码能跑就不要动的观点和的信息能够对你有所帮助。如果你还有其他问题或需要更多帮助,别忘了在本站进行查找。

展开全文