大家好,欢迎来到IT知识分享网。
前言
关于开发,可能绝大部分人都听过或说过“开发效率”这个词,在大多数情况下大家都期望开发效率要高,质量要好。可能有些人已经做到了,有些人还在努力。对于没有做到的人来说,应该怎么去做?应该做些什么才能提高“开发效率”?是一个有点难度的问题。
要回答这些问题就需要先了解清楚“开发”到底是什么?是指程序员?是指编码?是指产品设计?其实不然,想要对“开发”做一个明确的定义很难,网络上也有很多各种类型的答案,每个人对“开发”的理解也不尽相同,所以出现多个版本也可以理解。
本文并不是要尝试对“开发”做一个明确的定义,也不是要提出一套完备的、通用的解决方案帮助大家解决“开发效率”的问题。本文仅从个人经验出发,总结一下个人对开发及其相关部分的理解。当然,不保证内容正确性,还请根据个人实际情况出发自行判别。
开发
从个人的从业经验来看,我认为:开发实际上是对现实社会业务逻辑进行抽象、梳理,然后使用特定的编程语言对业务逻辑进行描述,以达到计算机能够识别并正确执行的过程。
开发是一个过程,开发的基础是业务逻辑,开发的结果是计算机可识别并执行的代码。那么程序员在这中间做了什么呢?实际上程序员的工作就是一个翻译工作,将已知的业务逻辑用特定的开发语言,按照特定的格式、结构描述出来,交给计算机去执行。
用政治正确的方式来讲,“一个中心,两个基本点” 是开发的核心内容。一个中心是指以“业务逻辑”为中心,两个基本点是指“开发过程”与“团队管理”两点都要硬。一个中心两个基本点是一个相互联系、相互依存、不可分割的统一整体。
简单来讲,“业务逻辑”描述了做什么,“开发过程”体现了做的过程,怎么去做,而“团队管理”负责了怎么才能做好这件事。
在不清楚业务逻辑的情况下,如何开发?这个请谁来也没法做,会魔法的没几个吧?所以,“业务逻辑”是中心,是开发的基础,必然需要明确“做什么”之后才能谈得上“怎么做”和“怎么才能做好”的问题。
“怎么做”实际上指的就是开发过程,是敏捷开发还是传统开发模式?采用什么样的架构?开发流程是什么?这些问题都是在“开发过程”中要解决的问题。
“团队管理”当然不会是只负责谁去做的问题,实际上涉及管理的就没一个是简单的,人员的素养、状态能极大的影响开发过程。如何让团队保持高效,同时不断提示质量都是需要不断去探索研究的问题。
话不多说,下面就 “一个中心,两个基本点” 展开来聊聊。
业务逻辑
开发中涉及到的业务逻辑来源于现实社会已知的业务。
比如说,各类管理类软件的开发必然来源于现实社会已经存在的管理流程、管理办法。
比如说,自动驾驶,其业务逻辑就来源于人类的驾驶经验。
比如说,电商平台,来源于从古至今都存在的交易行为。
可能没有人去统计过,但是我相信绝大部分应用软件开发的内容都是来源于现实社会已存在的业务逻辑。
这里有一个问题,如果说现实社会已经存在的业务逻辑,现在使用计算机来实现一套有什么意义吗?如果是完全照搬,那确实没有多少意义,只能是给大家增加负担。但是在现实生活中我们可以看到,很多成功的应用都是超越了原有业务逻辑的范畴,给大家带来方便,提供帮助,甚至直接获利。比如说,以前炒股要到交易大厅,现在手机上就能搞。比如说交易支付行为现在简直不要太简单。由此可见,对现实社会业务逻辑进行抽象、梳理的过程,实际上就是一个优化、升华的过程。让整个业务逻辑更流畅、更简洁、更完善、更合理是开发中的核心目标。
有一点需要说明,需求和业务逻辑并不是可以直接画等号的。经常会看见“以客户为中心”的说法,这个说法没有任何问题,但是到了具体的理解上就有问题了。总有人说“客户就是这么要求的”这样的话,没问题,但这并不代表就得按客户的要求完全实现。没有自己的理解,没有逻辑的优化,没有流程的梳理,这样做只能是给自己挖坑。
对于我来说,需求讲的是要什么,而业务逻辑讲的是做什么。“要什么”和“做什么”并不是等同的两件事,“要什么”更多的是表达想要的结果,可能很清晰,也可能很模糊。“做什么”在开发这里来说就需要清晰、明确、无歧义。如果是由人来做一件事,接受一些模糊的需求是可以的,但是对于计算机来说是行不通的。做过开发的相信都很清楚这个概念,你不可能直接告诉计算机“下午执行”这个命令,如何定义“下午”?“下午”是一个时段,是要这个时段都执行吗?还是在某一个时间执行?
因此,就“业务逻辑”来讲,清晰、明确、无歧义是首先要解决的问题。相信因为业务逻辑不清晰导致工作反复的情况绝不少见,总是能听到例如:“我以为”,“我觉得”,“可能”,“差不多”之类的对话。实际上这种情况非常普遍,并不是每个人都能写一本毫无歧义的书,每个人都有自己对业务的理解这才是应有的正常现象。就好像不可能要求所有人都写一篇一字不差的读后感,所以一定要明确接受这一点,否则受伤的总会是自己。
关于业务逻辑可以举个例子,比如说每天都有很多人会在同一件事上烦恼&#
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/156133.html