经常见到一些开发人员在讲,使用框架(例如Spring、ORM)是为了解决复杂度的问题,系统太复杂、业务太复杂,如果不用这些,做起来岂不是非常困难?
对此,我的看法是,期望工具解决系统复杂度的问题非常不现实,它们起到的是实现(代码)阶段的一些规范化和减少代码量,使程序员对于一些通用类型的模块和工具不再重复工作,但是对真正的系统复杂度,大体上是无能为力的。
复杂度的问题,我更赞成的是“系统复杂,实现复杂;系统简单,实现简单”,复杂系统设计和实现非常简单,是不切实际的幻想;简单系统,做的无比复杂,设计师难辞其咎。
真正的复杂度降低,应该是靠系统分解来做到的,完整系统切分为一系列相互依赖和通信的子系统组成,合理切分,合理定义依赖和通信是关键;子系统如果还复杂,要切分为模块,模块间一样存在依赖和通信,也需要合理定义;如果模块还是非常复杂,要定义其中的子模块,再往后,定义其中的程序单元(例如包、类、函数等等)。
说整个系统是复杂的,这个是常见的现象,甚至说,一个子系统复杂,也很正常,但是你要是经过多次切分,到了一个程序单元那里,还复杂无比,那说明架构师不称职。
就像做一把椅子,设计师定义好椅子面、腿、靠背的样式、尺寸以及它们相互对接的部分的明确要求,每个部分实现都不复杂,每个部分只要按照架构师给它的“部件需求规格说明”来设计自己的部分即可。而且,架构师也不用管部件的设计细节,定义先用锯子还是先用刨子。在一个“椅子产品”的设计和实现中,架构师和部件设计实现者各司其职就可以了。
实际的软件系统当然比作一把椅子复杂得多,但是这个例子中的方法,是解决复杂度问题的正道。没有工具能够解决你特定业务的的复杂度,因此,应该把一个称职的、优秀的架构师,作为系统设计和开发的核心,这样,才能做到《道德经》说说“挫其锐,解其纷”,做出好的产品。
相关推荐
总的来说,"正道律师事务所管理系统v2.0"这个实例涵盖了ASP.NET开发的多个方面,包括但不限于Web应用程序设计原则、数据库交互、用户认证与授权、数据安全、前后端交互以及用户体验设计。通过学习和分析这个源码,...
李兵、罗峥尹等人提出的基于物联网技术的分区式停车引导系统设计与实现在这些方面做出了创新,它利用简易的图像识别技术与电子指示牌结合,显著降低了部署成本,同时提高了系统的智能化程度和使用效率。 1. 物联网...
compiler为2024年“华为毕昇杯”编译系统设计赛-编译系统实现赛,“正道的光”队的参赛作品。_Compiler2024
庞门正道课程-平面设计如何转型互联网设计.pptx
主要内容包括控制系统导论、系统数学模型、状态空间模型、反馈控制系统的特性、反馈控制系统的性能、反馈系统的稳定性、根轨迹法、频率响应方法、频域稳定性、反馈控制系统设计、状态变量反馈系统设计、鲁棒控制系统...
3. **KOL与网红营销**:关键意见领袖(KOL)和网红通过自身影响力引导粉丝消费,他们发布的商品推荐、评测等内容成为社交电商的重要推动力。 4. **社群营销**:通过建立兴趣社群,商家可以精准定位目标客户,提供...
总结来说,社交电商的正道在于回归商业的本质——诚信和质量,通过不断提供优质产品和内容,以及良好的服务来吸引和留住用户。同时,经营者需要紧跟行业发展的趋势,不断创新运营模式和营销手段,以适应不断变化的...
作者张正道和胡寿松分别作为博士研究生和教授,他们在故障检测和控制领域有着深厚的理论基础和实践经验。 总结来说,基于未知输入观测器的不确定非线性系统故障检测是一种创新的技术,它可以有效地处理复杂的非线性...
内容创新将成为互联网传媒企业的关键竞争力,通过提供高质量的内容吸引和留住用户。 **融合**: “融合”趋势下,内容形式的边界将日益模糊。长视频、中视频、短视频的区分将变得不那么明显,平台会更加重视迷你剧...
总结来说,企业文化建设是一项系统工程,它要求企业从自身的实际出发,以正确的方法来塑造和传播企业文化。企业文化不应仅仅是口头上的口号,也不应只是一种形式上的装饰,它应该是一种能够内化于员工行为、反映企业...
初中语文文摘历史行正道何必拘小节
通过对图纸内容的分析,我们可以得出结论,中电投项目中涉及了复杂的DCS系统和多个PLC设备,这些设备通过精准的布线和配置实现自动化控制。同时,整个系统的设计充分考虑了供电稳定性、信号传输的准确性和系统的可靠...
智能家居:找准方向是正道.pdf