
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
模型化设计是软件开发程序员在开发软件的时候会经常用到的一个编程技术,下面我们就通过案例分析来了解一下,软件开发模型都有哪些类型。
1.抽象
抽象也许是设计复杂系统的重要的工具,抽象能力的高低是软件工程师优秀与平庸的重要的区别之一,抽象能力的强弱直接决定了我们解决问题的规模大小和复杂度。当我们在设计一个通信系统的时候,简单来说会做如下抽象:
接入网
|-IP接入
|-安全网关
|-应用层接入
核心网
|-注册服务
|-业务管理
|-应用服务器
|-用户数据库
|-路由管理
这些都是在一个层面上的抽象,使得开发者在开发系统的时候可以专注于当前抽象的模块,业务流程更为清晰,降低开发时的心智负担。
抽象在具体实现过程中,有两种重要的模型,一是分层,二是分治。
2.分层
分层就是把一个复杂系统划分成若干个层次,每一层专注于解决某一领域的问题,并向上层提供服务,上层解决的问题依赖于下层提供的抽象。有些层解决的问题可能会需要与其他所有层进行交互,这种层体现在层次图上就是一个纵向的层(比方说监控、配置管理等)。
我们整个人类社会其实都是分层设计,比方说在企业里,下面是底层劳动者,中间有各级经理、总监等管理者,上面是一堆CXO,再往上还有董事会。
3.分治
分治就是分而治之,是人类自古以来应对复杂问题的直观的解决方案。
当我们面对一个复杂的大问题,我们可以把这个问题分解成若干个较小的问题,如果这些小问题还是太复杂,我们就进一步分解,知道每一个小问题都可以通过可行的步骤解决为止。在小问题解决以后,我们再一步步把每一个小问题的解决方案以及结果组合起来,终解决那个复杂的大问题。
简单来说,MapReduce包括两个步骤,一是Map,二是Reduce。通过Map,把一个输入数据映射为多个数据,然后对这多个数据同时进行运算处理,然后通过Reduce把运算的结果综合起来得到输入数据的终结果。
分治思想其实体现在我们生活的方方面面,从政治上的封建诸侯、郡县制到现代公司里的分公司、产品线,可以说如果没有分治思想,人类就不可能进行大规模协作,因此也不可能发展出当前的文明。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。