课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件架构是大多数软件开发程序员都在学习的一个编程开发技术,而今天我们就通过案例分析来了解一下,软件架构原则与实现方法。
什么是糟糕的架构?如何识别出糟糕的架构?
为了提高开发速度,开发人员经常会偷懒写一堆乱七八糟的代码,也就是我们通常所说的意大利面条式代码。这些代码经常会隐藏很多bug,时不时造成功能瘫痪,而重新构建代码的成本甚至比修复现有代码的成本更低。这些代码包含下述特征:
不必要的复杂性——具有讽刺意味的是,编写复杂的代码很容易,任何人都能做到,但编写简单的代码却很困难。
刚性/脆弱性——因为代码复杂,所以不容易理解,因此维护很困难,即使是很小的代码更改也很容易出错。
不可测试性——代码耦合紧密,通常不会遵循单一责任原则,难以测试。
不可维护性——测试覆盖率较低的脆弱代码演变成维护的噩梦。
什么是好的架构?有什么特征?
简单——容易理解。
模块化/分层/清晰——这点很重要,对某个层进行修改不会影响到其他层,层与层之间的耦合小。
灵活/可扩展——可以很容易适应新的演进需求。
可测试/可维护——易于测试,方便添加自动化测试,鼓励TDD文化,因此更容易维护。
为什么要重视架构、原则和实践?
降低成本——虽然初的开发速度可能会降低,但终,构建和维护的总成本会降低。
构建重要的东西——我们需要构建重要和必要的部分。只在必要的时候构建必要的东西,这一点很重要。这种方法通过只构建必要的内容,从而减少代码维护的开销,有助于清理混乱。
优化——优化以获得更好的可维护性,对于开发者和用户来说,优化应该提前完成。
性能优化——在规划和设计可以为性能而演进的系统时,请记住,针对性能的代码级优化应该推迟到LRT。
后负责时间——LRT是从精益原则中借鉴的概念,在精益原则中,决策/变更被推迟到某个时间点,超过这个时间点,不做决策的成本将比做决策的成本更高。当需求不够紧迫/重要的时候,设计决策应该推迟到LRT,这样我们就有足够的知识来做出合理的设计决策。
适应性/进化——当软件不断适应业务和规模的新需求时,总是遵循进化模式。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。