您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
程序员如何避免写过多的业务逻辑代码?
业务,逻辑,项目程序员如何避免写过多的业务逻辑代码?
发布时间:2016-12-08加入收藏来源:互联网点击:
问题补充: 最近产品那边需求堆得很厉害,大部分时间都花在了业务逻辑的实现上了,感觉很难从中学到更多新东西,反而总是重复比较机械化的工作。不知道各位前辈在这样的情况下会怎么做?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
题主提出这个问题非常好,该问题是绝大部分程序员学习过程中都会遇到的困惑。这个阶段的选择很大程度上决定自己今后职业生涯的发展方向。小编建议你先踏踏实实把业务逻辑代码写好,然后再寻求技术方面的突破。
究其本质,技术是工具,业务是根本,技术为业务服务,业务促进技术发展。小编结合自身及周边同事的经历总结出了一点浅薄认识分享给大家,以供参考。
此问题要从程序员发展必经的几个阶段说起。
首先是入门阶段。立下flag要在编程领域有一番作为,于是苦读了编程相关书籍,也选择了一门开发语言,并且能把书本上的示例程序使用编译器正确的运行出来。假如让写一个100以内口算的小程序,十有八九会写不出来,主要原因还是没有具备编程思维。形象点来说就是你手里现在有把刀,到底是用来杀猪还是宰羊,还是削水果,自己也没想好。
可用一句话来形容这个阶段,“路漫漫兮其修远,吾将上下而求索”。
其次是上道阶段。基本上就是刚参加工作那阵,每完成一个需求或者解决一个问题,都有很成就感。项目组中能解决各种疑难杂症的大神让自己崇拜的五体投地。随着工作年限的增长对业务也越来越熟练,已掌握的技术足以应付绝大部分业务场景,时间久了就会有与题主类似的困惑。
再往后发展就涉及到职业生涯规划。一是业务专家,跟随行业发展方向,深耕业务细节,进可跳到甲方,退可做产品经理。二是技术专家,业务在熟悉业务细节的同时提高自己的技术深度和广度。掌握产品的底层细节原理是必要条件,多接触不同的编程语言,做到一主多从地步。项目经理、架构师都是可选择的岗位。三是转向管理或销售岗位,充分利用自己的技术背景,也能做出一番成绩。
这个阶段也可用一句话来概括,“众里寻他千百度,蓦然回首,那人却在灯火阑珊处。”
然后是高手阶段。到了这个阶段,你会发现技术不再是你解决问题的障碍。只要有利于解决问题,短时间内可让各种编程语言和框架齐上阵。相应地你完成了从具体执行者到整体设计者角色转变。
“手中无剑,心中有剑”是对此阶段最好的形容。
最后再强调一下业务的重要性。现在大家接触到的各种技术框架,标准库等都是为解决特定的业务场景而生的。我所在的证券交易更是有“七分业务,三分技术”之说。总之,技术和业务的关系与鸡和蛋关系类似。
我是@代码Go说科技 ,码农的视角看科技,带给大家不一样的感受。欢迎大家阅读评论转发加关注。
声明:图片来自网络,如有侵权,联系必删!
回答于 2019-09-11 08:43:50
我是工作多年的软件开发工程师经历过后端开发和前端开发,对于"程序员如何避免写过多的业务逻辑代码"这个问题,职场新人时期也感同身受,往往提出问题时,你应该已经花费很多时间,深陷庞大复杂的业务逻辑迭代过程中而苦恼。
没关系,下面我来通过几个方面不论开发语言的通用解决方案帮你答疑解惑,助你抽丝剥茧,化繁为简,优雅的开发、迭代业务逻辑。
我的观点有以下几个方面:
项目前期:三思而后行,做好开发前的“设计”工作项目中期:严格区分和抽离业务逻辑和通用逻辑项目中期:解决重复、机械化的工作利器:面向对象、抽象思维项目后期:善于”发现“工作中"收获"项目未来:核心业务服务化项目前期:三思而后行,做好开发前的“设计”工作
编程只是软件的具体实现,软件设计才是重点工作,决定项目的实现方向,前期的系统设计、概要设计、详细设计也能一定程度避免后期开发中的思路不清晰实现方式问题提前预判。在软件工程理论中,前期的需求分析、系统设计、详细设计也是占了很多比重的,实际工作中也是如此,真正按标准化软件开发流程的公司是需要开发人员编写概要设计设计、详细设计文档的。我经历的工作也是如此,设计文档很重要,一方面工作团队能够通过文档讨论可行性实现、是否存在问题和改进及后期的维护交接和需求迭代,另一方面可以帮助开发者整理思路流程,罗列所需资源。
项目中期:严格抽离业务逻辑和通用逻辑
坚持严格抽离业务逻辑、通用逻辑,可以从是否具有可移植性,不同类型项目是否可以使用来思考。比如,我们需要一个方法是否为金额,那判定是否为金额的方法在本项目中可以用,在其他项目中也可以用。我们就可以抽出为独立的文件、方法。具体的语言实现可能不同,但思路相同。JavaScript语言可以抽离出为方法,Java可以抽离出为通用静态类。当我们严格按照代码逻辑性质区分的思想工作时,你会发现前期的封装,抽离,就是为了后期能够方便调用做铺垫,代码量也减少了,业务也清晰,开发效率得到提高。
项目中期:解决重复、机械化的工作利器:面向对象、抽象思维
主流的编程开发语言都是支持面向对象,用设计模式把业务抽象能够有效避免重复工作,汇集通用的逻辑。比如,我们想要批量造车,车子又有不同的颜色、外形,如果纯手工一个一个造会花费很大成本,而实际工厂造车,肯定是先设计模型,根据市场需求造出不同类型车子的样板模型,然后再批量根据模型制作。编程开发也是一样,如果按照面向对象的思维去思考问题,基本不会有太多重复劳动,重复的逻辑只需要写一次,其他都是调用。
项目后期:善于”发现“工作中"收获"
只要努力付出工作肯定会有所得,只是缺少善于发现的眼睛。工作中无论是做什么事,我们都是可以从中有所收获,但需要你善于总结和发现,其实收获不仅仅是物质上的、精神上的,还有经验、做事的经历、方法、心得,只要对你有所帮助,对未来有意义,及时是潜在的提高也是收获。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |