当前位置:首页 > 实用技巧 >

为什么开发软件装起来那么复杂(开发一个软件有那么容易吗)

来源:原点资讯(www.yd166.com)时间:2023-04-22 16:22:53作者:YD166手机阅读>>

洋葱架构

3.4 注释与文档

注释与文档往往在开发过程中会被忽视,作为知识传递的载体,其实是很重要的存在,他们能够帮助我们更快速的理解实现逻辑。

注释能够帮助理解逻辑,注释是开发过程中思维逻辑最直接的体现,因为其和代码绑定在一起,相对于文档阅读更方便,查看和理解代码时有助于理解。

文档能够帮助理解架构设计,在团队的合作或者交接过程中,很难用几句话就能够讲清楚,此时需要通过文档帮助合作方来更好的理解每一处细节以及整体的架构设计方案的全貌。

3.5 重构

如果日常开发过程中已经很注意了,但是多年之后发现其实之前的实现并不是最优,此时,就可以通过系统重构来解决。

当你维护一个多年生长成的系统时,一定会发现系统中一些不合理的地方,这是软件复杂度问题长期积聚的结果,此时就需要我们在日常的开发过程中对系统内部的实现逻辑进行适当的重构以使得系统对未来具备更好的扩展性和可维护性。

重构:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。使用一系列重构手法,在不改变软件可观察行为的前提下,调整结构。傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码的,才是优秀的程序员。

-- Martin Fowler 《重构 改善既有代码的设计》

看一个简化版本的例子,下面的代码部分是一个查询报告详情数据的接口,会发现中间有一大段的信息是在转换aliId,但实际上这个行为并不是当前方法的重点,所以这里的单纯针对这一段我觉得应该单独抽取一个公用的方法出来。

public ReportDetailDto getDetail(ReportQueryParam queryParam) { if (null == queryParam) { log.error("queryParam is null"); throw new BizException(PARAM_ERROR); } Long aliId = queryParam.getAliId(); if (null == aliId) { if (StringUtils.isBlank(queryParam.getToken())) { log.error("aliId and token are both null. queryParam: {}", JSON.toJSONString(queryParam)); throw new BizException(PARAM_ERROR); } aliId = recommendAssistantServiceAdaptor.getAliIdByToken(queryParam.getToken()); if (null == aliId) { log.error("cannot get aliId by token. queryParam: {}", JSON.toJSONString(queryParam)); throw new BizException("ALIID_NULL", "aliId is null"); } } ​ // 获取同步数据 // 数据结构转换 return convertModel(itemEList); }四、总结

本文主要阐述了个人对软件复杂度的思考,分析了导致软件复杂度的原因、软件复杂度的度量方式以及阐述了自我理解的如何避免软件复杂度的问题。

只要每个人在每一个需求的开发中秉持匠心,持续提升自身架构设计的能力,先战略设计后战术实现,并针对开发过程中遇到的问题代码能够积极的进行重构,相信软件复杂度的问题也会不断的被我们击溃,胜利的旗帜永远属于伟大的程序员。

参考阅读

[01] 系统困境与软件复杂度,为什么我们的系统会如此复杂

https://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247507488&idx=1&sn=fb365890920245ad627df364cafc3550

[02] 《A Philosophy of Software Design》

[03] 《Clean Architecture》

栏目热文

软件开发哪个版本最好(软件开发语言哪个最好用)

软件开发哪个版本最好(软件开发语言哪个最好用)

  工欲善其事,必先利其器。我们要做好一件事,准备工作非常重要。在开始学习使用Python之前,先要搭建好Python的...

2023-04-22 16:06:19查看全文 >>

宝马x5大轮胎是哪款(宝马x5推荐什么轮胎)

宝马x5大轮胎是哪款(宝马x5推荐什么轮胎)

全新宝马X5提供四种车型选择,搭载2.0T/3.0T发动机,拥有出色的操控性,定位为中大型豪华SUV,让我们一起看看这款...

2023-04-22 16:17:05查看全文 >>

宝马x5用什么品牌轮胎好(宝马x5使用哪种轮胎最好)

宝马x5用什么品牌轮胎好(宝马x5使用哪种轮胎最好)

我喜欢宝马X5,是从看到它的第一眼就开始的。我看上X5的第一个原因是它霸气的外表,线条丰富,肌肉感强,处处赏心悦目。我去...

2023-04-22 16:03:32查看全文 >>

宝马x5原装什么轮胎(18款宝马x5原装轮胎什么牌子)

宝马x5原装什么轮胎(18款宝马x5原装轮胎什么牌子)

2019年4月22日,在全球汽车领域,来自德国的汽车代表了最高的造车水平,尤其是其宝马,奥迪,奔驰等享誉全球,得到了广泛...

2023-04-22 15:39:21查看全文 >>

宝马x5原装轮胎什么品牌(18款宝马x5原装轮胎什么牌子)

宝马x5原装轮胎什么品牌(18款宝马x5原装轮胎什么牌子)

本期是2022年10月份长期评测的第三篇,由宝马客长测组撰稿人榴莲君和Charles呈现,亮相车型为宝马X5(G18)和...

2023-04-22 16:14:44查看全文 >>

为什么有些软件开发工具那么多(常用的软件开发工具有哪些)

为什么有些软件开发工具那么多(常用的软件开发工具有哪些)

随着业务的发展和公司规模的不断扩大,企业所需的软件开发需求也在不断增加,而传统的软件开发方式已经无法满足这种需求。但是,...

2023-04-22 16:05:45查看全文 >>

软件二次开发升级容易吗(软件的二次开发难不难)

软件二次开发升级容易吗(软件的二次开发难不难)

很多通用传统的 ERP厂商经常会有这样的抱怨:起初的几个月进行项目分析和讨论,用户也认可了,ERP系统做出后,结果这时候...

2023-04-22 16:17:22查看全文 >>

为什么软件要定制开发(软件定制为什么难做)

为什么软件要定制开发(软件定制为什么难做)

1、软件定制开发降低了对企业的资金要求,通用软件一般功能比较多,有一些功能其实有的时候也用不上(例如:一些app商城的购...

2023-04-22 16:08:45查看全文 >>

为什么要不断开发新的软件(大型软件都是用什么开发的)

为什么要不断开发新的软件(大型软件都是用什么开发的)

互联网时代,软件开发大势所趋。软件能够提高效率,按照固定的逻辑不间断的运行,能够承载企业的商业模式。随着移动互联网时代的...

2023-04-22 16:05:55查看全文 >>

软件开发完成后需要升级吗(开发软件要不要申请)

软件开发完成后需要升级吗(开发软件要不要申请)

很多客户朋友在开发完APP时,除了如何运营,还会关心软件做好了维护怎么办?这个问题其实被问的挺多的,因为大多数开发软件的...

2023-04-22 16:13:00查看全文 >>

文档排行