Agile批评过度设计(over-engineering)的声音很大,但对于设计不足(under-engineering)同样是持坚决的否定态度
的。修改过度设计的应用比修改设计不足的程序要容易的多。因为简化的途径是明确的,而走向复杂的途径却往往是难以控制的。Refactoring To
Patterns试图引入一些经验,但这些可预见的调整多半只在细节处,其影响是局部的。一个复杂性低层次的设计要支持一个复杂性高的应用,所需的代码量
不是线性的堆砌,而是几何级数式的增长,重构的时候需要做出的改变往往也是影响全局的。而事实上,设计不足是比过度设计更加常见的情况。真实的情况也许
是,在真正需要我们做出创造性设计的地方我们因为无知和无能而设计不足,而在那些渴求简单的地方,我们却自诩为先知而加上很多华丽的设计来维护虚幻的可扩
展性。这里的度是很难把握的。高段位的棋手可以比低段位的棋手预见到更多的步数,而一个优秀的软件架构师也需要比普通的程序员更早的预见到系统发展的障
碍。在我们明确可预见的范围内,当然是要把所有的设计做好,而在我们思维的边界处,"行"就变得比"思"重要了。
大谈"over-engineering"的主多半都有着丰富的过度设计的经验,千万不要把他们回顾时的话语当成是普遍的真理。所谓大巧若拙,精炼的小诗
可比长篇大论难写的多了。有时采用一种简单的处理方式,是因为我们感觉到它不会成为障碍,虽然此时并没有明确的设计过程。你必须有能力进行过度设计,才能
真正理解简单设计的精妙之处
分享到:
相关推荐
1. **响应式设计**:平板电脑屏幕大小介于手机与桌面之间,因此界面设计需适应不同方向和分辨率。设计师应确保界面在横屏和竖屏模式下都能正常工作。 2. **触摸优先**:平板用户主要通过触控进行操作,因此按钮、...
信息技术在教育领域的应用已经变得越来越普遍,特别是在...在设计导入环节时,教师应结合ARCS模型,灵活运用各种导入策略,结合适合学生年龄和兴趣的技术工具,创造生动、有吸引力的课堂环境,以达到最佳的教学效果。
作者通过学习和实践,发现了之前设计中的不足,如未设置规则导致线宽不一,认识到理论与实践结合的重要性,增强了对硬件设计的理解和技能。 本报告详尽地记录了从设计到完成单片机最小系统PCB的全过程,包括遇到的...
它能依据管道特性、扬程需求、功率限制等因素,推荐适合的水泵型号,避免过度设计或者选型不当带来的问题。这不仅有助于节省初期投资,也能减少运行过程中的能耗,提高系统整体效率。 除此之外,软件通常会提供图形...
此外,对于大量并发的异步操作,可以考虑使用线程池或者事件循环的队列管理,以避免系统资源过度消耗。 总结来说,导入Excel文件并利用异步线程加载数据是一种常见的优化策略,尤其适用于大数据量和高并发场景。...
第五,过度依赖技术,轻视教学设计。微课创作的重点在于选题、内容创意、教学设计等核心环节,而非单纯的技术应用。技术应当服务于教学目标,而非主导教学过程。 第六,单兵作战,缺乏团队协作。微课的创作和资源...
【主要功能模块设计】中,如“生产计划单管理”是关键部分,它可能包括以下子功能:计划编制(预测需求,制定生产计划)、计划执行(跟踪生产进度,调整计划)、资源调度(分配人力、物力)、库存管理(监控原料和...
在Photoshop中,可以利用滤镜、图层样式或导入纹理图像来添加这些元素,但要注意不要过度使用,以免干扰主要信息的传递。 8. **插图创作**:原创插图可以提升网站的独特性。Photoshop提供了多种绘图工具,如画笔、...
6. **导入/导出兼容性**:为了与其他CAD系统协作,凸轮设计软件通常支持多种文件格式,如STEP、IGES、 Parasolid等,方便数据交换。 7. **教学资源与支持**:许多软件提供丰富的教程、示例库和在线社区,帮助新手...
数字化教学资源的设计与应用 数字化教学资源的设计与应用是现代教育发展的重要趋势。在教学过程中,数字化教学资源的设计和应用可以激发学生的学习兴趣和提高教学效果。为此,教师需要从教学目标、教学内容、学生...
4. 导入设计的原则: - 符合学生年龄特点和心理特征:导入方式应适应学生的认知发展水平,易于理解和接受。 - 多变与多样:避免单一模式,保持导入的新鲜感,以持续吸引学生的注意力。 - 服务课堂主题:导入应...
3. **库存管理**:库存管理模块实时监控物资的库存量,通过预警机制防止物资过度积压或短缺。它还可能包含库存盘点功能,定期核对实物与账面库存的差异。 4. **物资查询**:用户可以通过输入物资名称、编号、供应商...
6. **代码生成与导入**:能将设计好的布局导出为XML代码,也可以导入现有的XML布局文件进行编辑。 7. **组件库**:拥有丰富的Android原生控件和第三方组件,便于添加到布局中。 8. **性能优化提示**:可能提供性能...
综上所述,小学数学课堂导入应当注重实效性、生活气息、自然性和针对性,避免过度追求新颖性,同时要激发学生参与和建立积极的学习氛围。教师在设计导入时,需结合学生的实际情况,选择最合适的教学方法,使导入成为...
在源码层面,该框架可能采用了以下几种技术与设计: 1. **工作流引擎**:框架可能内置了一个工作流引擎,用于管理和调度不同的导入导出任务。工作流引擎可以分解大型任务为多个小任务,并按照预定义的顺序或依赖...
然而,由于对软件参数的理解不足,设计者可能会忽略一些重要的设置,从而导致设计不准确或者过度设计。 首先,基础设计时荷载的读取是至关重要的。在完成上部结构计算后,通过SATWE(或 TAT)导入到JCCAD模块,系统...
- 可扩展性:设计时应考虑到未来的扩展需求,避免过度设计。 - 性能:合理设计索引,优化查询,减少冗余数据,提高读写速度。 5. 数据库设计工具: - 工具如MySQL Workbench、Oracle SQL Developer等可以帮助...
9. **下载与使用**:用户可以通过在线平台或专门的网站下载PPT模板,下载后将其导入到PowerPoint软件中,替换文字和图片即可快速创建专业的演示文稿。 10. **版权问题**:在下载和使用模板时,必须注意版权问题。...
"通俗易懂的数据库设计技巧"这一主题旨在帮助初学者和经验不足的开发者掌握数据库设计的核心概念,通过实用的方法和清晰的解释,使复杂的理论变得简单易懂。 一、关系型数据库基础 1. 关系模型:数据库设计的基础是...