设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

从模拟真实世界中理解软件设计原则

2014-12-18 13:55| 发布者: joejoe0332| 查看: 1627| 评论: 0|原作者: 小峰|来自: 码农网

摘要: 软件设计原理的理论在大多数学生眼里既枯燥又乏味——那是因为他们从没做过真正的软件项目,以致于这些概念在他们眼里似是而非。例如,他们了解耦合性、内聚性、MVC和ESB。但是当被问到为什么要掌握这些概念以及何时 ...

  软件设计原理的理论在大多数学生眼里既枯燥又乏味——那是因为他们从没做过真正的软件项目,以致于这些概念在他们眼里似是而非。


  例如,他们了解耦合性、内聚性、MVC和ESB。但是当被问到为什么要掌握这些概念以及何时使用的时候就一问三不知哑口无言了。记住一些UML图是一件很容易的事,但是要想掌握具体使用情况以及如何稍作修改以便于适应具体应用需求就难了。


  为了更好地理解软件的设计理念,有些教授想出了一些很有意思的点子——那就是模拟真实场景,这使得这些概念更易于学生的理解和掌握。


举个关于低耦合原则的真实事例:

  Mike想要申请一本护照,他到了相关部门之后遇到了Jack


  两天后,他将所需要的资料带来,但是却是Patricia接待了他


  在现实世界中,Patricia的行为明显毫无逻辑可言,因为该服务并不是依赖Jack才能办理的,作为服务的提供者,她应该也为Mike办理护照。


  其具体流程也非常简单,如果你想要申请护照,那就准备好具体的资料即可。但是没说一定要让Jack受理。


  这个故事的寓意是:如果此服务高度依赖于Jack,那么一旦出现突发情况就会产生问题。而如果Jack一直在那,我们是意识不到他的重要性的,但是一旦他没在,那就会影响服务系统了。


  这个道理很浅显,是吧?但是在软件设计中,很多开发人员还是会犯这种错误,因为他们没有考虑到高耦合是否符合逻辑。然后,等以后因为做某种改变导致整个架构出现问题的时候,就追悔莫及了——不得不投入更多的时间和资金去解决这些问题。


  我们最好能够可视化这些软件编程概念,而不仅仅只是让学生掌握理论。此外,有些图表工具,例如依赖图、依赖矩阵和树映射技术等,可以让我们可视化源 代码发生的各种变化。例如对于Java,可以使用JDepend,JArchitect和Structure101,对于C / C++,CppDpend则很不错。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部