本次共找到 41软件设计 相关的文章

5年前
理解软件设计的基本原则
任何软件唯一不变的真理是变化,毕竟软件是"软"的。软件研发需要快速响应市场、需求的变化。为了快速响应,我们可以通过增加人手来达到部分目的,但软件开发属于知识密集型工作,当人数增加到一定数量后,不仅不能够提升研发效能。反而增加管理成本,沟通成本及由于人与人沟通、理解上产生的歧义而最终造成软件实现的混乱和复杂度。所以软件本身需要能够轻易的扩展,适应各种需
5年前
软件设计模式-创建型模式之工厂进阶版
简介:所谓工厂模式,创建一个对象的接口,让子类决定实例化哪一个工厂类,使其创建过程延迟到了子类。所谓的万能工厂类,通过反射调用的方式,获取到子类对象,并实例化返回,此外本案例还通过重载的方式,允许了有参和无参两种获取到实例的方式。language/@author:demo@date:2021/8/7@describe:/public
5年前
敏捷软件开发背景下的软件设计
在目前大部分的软件开发组织中,敏捷开发已经成为毋庸置疑的标配。随着数位技术大神和布道师的宣扬和数量庞大的敏捷教练的身体力行式推广,商业环境和客户需求变更速度的日益加快,采用端到端交付周期更短的敏捷开发过程基本已经成为项目成功的必要条件。软件设计的刚需被敏捷了吗?工作流程的变更以及开发节奏的加快并不能绕开一个很核心的问题
5年前
软件设计模式概述
01软件设计模式概述01软件设计模式概述软件设计模式的产生背景"设计模式"这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。1977年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心
5年前
软件设计和开发人员梳理和评价需求的利器-“三横三纵”矩阵
作为软件设计和开发人员,经常关心的问题是:自己对需求的掌握是否全面?对需求的了解是否存在遗漏环节?如何帮助软件设计和开发人员解除以上困惑呢?本文提出了“三横三纵”的矩阵检查方法,以一种直观易行的逻辑思维矩阵帮助软件设计和开发人员全面梳理和评价需求。如下图所示:“三横三纵”矩阵首先,需求是分层次的。从不同的需求提出者和需求跟踪两个角度出发,将需求划分为
5年前
聊聊软件设计原则
软件设计知识是一名软件开发人员必须要懂的知识,最近几天今天看了bob大叔的《敏捷软件开发》一书和软件设计相关的一些blog和资料,自己做了一个学习笔记设计目标正确性、健壮性、灵活性、可重用性、高效性降低复杂性所谓复杂性,就是任何使得软件难于理解和修改的因素。复杂性的来源主要有两个:代码的含义模糊和互相依赖
4年前
2017下半年软件设计师考试要求
希赛小编为大家介绍一下2017下半年软件设计师考试(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.educity.cn%2Frk%2Fprog%2Findex.html)要求,希望对大家有所帮助。   考试要求   (1)掌握计算机内的数据表示
4年前
2019下半年软件设计师考试大纲
来源:希赛网(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.educity.cn%2Frk%2F1982632.html)考试范围考试科目1:计算机与软件工程知识(上午题)1.计算机科学基础知识1.1数制及其转换二进制、八进制、十
1年前
由 Mybatis 源码畅谈软件设计(二):MappedStatement 和 SqlSource
作者:京东保险王奕龙本节我们来介绍org.apache.ibatis.mapping.MappedStatement(映射SQL语句声明的类),它是MyBatis框架中的一个核心类,也是向后不断学习Mybatis源码的基础。在这部分源码中,最值得关注的设计
1年前
由 Mybatis 源码畅谈软件设计(五):ResultMap 的循环引用
作者:京东保险王奕龙本节我们来了解Mybatis是如何处理ResultMap的循环引用,它的解决方案非常值得在软件设计中参考。另外作为引申,大家可以了解一下Spring是如何解决Bean的循环注入的。以单测org.apache.ibatis.submitt
1年前
业务复杂度治理方法论--十年系统设计经验总结
作者:京东物流尹昊喆一、复杂度综述1、什么是复杂度软件设计的核心在于降低复杂性。\《软件设计的哲学》业界对于复杂度并没有统一的定义,斯坦福教授JohnOusterhout从认知负担和工作量方面给出了一个复杂度量公式子模块的复杂度cp乘以该模块对应的开发时间
2年前
DDD学习与感悟——向屎山冲锋 | 京东云技术团队
软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计中的其中一种思想,旨在提供一种大型复杂软件的设计思路和规范。通过D
2年前
软件兼容性测试要考虑什么?
兼容性测试兼容性测试报告软件兼容性测试要考虑什么?1、向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。并非所有的软件都要求向前兼容和向后兼容,这是软件设计者需要决定的产品特性。2、不同版本之间的兼容。不同版本之间
1年前
业务复杂度治理方法论--十年系统设计经验总结
一、复杂度综述1、什么是复杂度软件设计的核心在于降低复杂性。\《软件设计的哲学》业界对于复杂度并没有统一的定义,斯坦福教授JohnOusterhout从认知负担和工作量方面给出了一个复杂度量公式子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得
1年前
DDD学习与感悟——向屎山冲锋
软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计中的其中一种思想,旨在提供一种大型复杂软件的设计思路和规范。通过D
1年前
「软件设计哲学」于延保代码改造中的实践
作者:京东保险王奕龙本文主要给大家分享软件设计中的两个理念,为什么我称软件设计是“理念”而不是“方法”或“原则”呢?这个想法主要受《Aphilosophyofsoftwaredesign》的影响,它将软件设计称为“哲学”,而哲学本身没有严格的定论,同样地,
1年前
DDD学习与感悟——向屎山冲锋
作者:京东科技孙黎明软件系统是通过软件开发来解决某一个业务领域或问题单元而产生的一个交付物。而通过软件设计可以帮助我们开发出更加健壮的软件系统。因此,软件设计是从业务领域到软件开发之间的桥梁。而DDD是软件设计中的其中一种思想,旨在提供一种大型复杂软件的设
1年前
由 Mybatis 源码畅谈软件设计(一):序
作者:京东保险王奕龙从接触软件开发以来,一直对写出优雅的代码抱有执念,工作半年时,偶然接触到《代码整洁之道》,爱不释手,一口气读完,并在很长的时间内践行其中的观点,但是在这践行期间缺少思考和复盘,更多的是一味地信奉和遵守其中的原则,写了不少当时自认为不错而