标记:ieeeSoftware
从2001年到2005年,我编辑了一个关于设计的专栏IEEE软件.除了自己写几篇专栏文章外,我还设法拉拢了一群非常杰出的撰稿人。
企业架构师加入团队
企业架构组经常与日复一188比分直播网 坚持原创日的开发分开。这可能导致他们对开发工作的认识过时,开发团队没有从公司范围的角度来看待问题。看到这种情况经常发生后,我的同事(Thoughtworks CTO) Rebecca认为,企业架构金宝搏亚洲体育博彩师通过加入开发团队可以更加有效。
适应变化的设计
表格驱动技术允许系统在没有主要代码更改的情况下进行更改。
你的咖啡店不使用两阶段提交
咖啡师不做同步处理——他们的原因可能也是你选择异步处理的原因。
之前清晰
清晰的代码是好的,但是您应该为了可测试性而牺牲清晰性吗?
快速失败
如果软件正在走下坡路,Jim在本专栏中解释了为什么软件应该尽快崩溃。
最重要的设计指南?
每个人都有自己的重要设计指南列表。Scott专注于接口以及如何设计它们,使它们易于正确使用,难以不正确使用。
MDA:建模者的报复还是UML乌托邦?
在OOPSLA 2003上,Dave Thomas (OTI的创始人)对模型驱动架构提出了一个有思想且有力的批评。188比分直播网 坚持原创在本专栏中,他解释了为什么他认为通用模型驱动的方法可能失败,并指出UML和领域特定语言仍然有价值。
连续的设计
重构、诸如JUnit之类的工具以及诸如极限编程(X188app彩票iosP)之类的敏捷方法的日益流行为人们带来了一种新的设计风格。持续设计是使用重构来不断改进程序设计的过程。188app彩票ios在本专栏中,Jim讨论了他在连续设计方面的经验,特别是那些看起来很棘手的设计问题,如国际化和事务。
数据访问例程
封装的一个常见部分,特别是面向对象系统,就是隐藏数据结构。然而,在数据访问例程之后公开这些数据也是很常见的。在本专栏中,我将介绍一些编写数据访问例程的指导原则。但是不要忘记,如果您可以将数据隐藏起来,那通常会更好。
谁需要建筑师?
什么是架构,究竟188比分直播网 坚持原创谁是架构师?这些问题似乎让每个人都很恼火。因此,在这个IEEE软件专栏中,我让Ralph Johnson解释了关于架构的内容:架构的定义与其他所有人都不一致。188比分直播网 坚持原创我还谈到了建筑师的两个亚种:Architectus Reloadus和Architectus Oryzus.
市场结构与建筑的区别188比分直播网 坚持原创
当我们考虑软件架构时,我们通常会考虑它的技术架构。188比分直播网 坚持原创但还有另一个重要的架构——我们用来与软件客户沟通的架构:市场营销架构。188比分直播网 坚持原创忽视这种“市场结构”及其与“架构”的关系,会给开发项目带来很多麻烦。188比分直播网 坚持原创
组件和混沌世界
为什么混沌理论认为组件组装可能不像人们吹捧的那么容易。
模式
我的IEEE专栏是关于模式对理解软件设计的有价值贡献的。
何时制作字体
关于何时为值创建新的用户定义类型(或类)的指导原则。
使用元数据
您可以使用基于元数据的方法来消除繁琐的面向数据的任务的痛苦。
.NET的自定义属性如何影响设计
Jim和Alexei带头开发了NUnit的新版本。由此,他们思考了。net语言新特性属性对设计的影响。
另一篇优化文章
让我感到惊讶的是,许多关于性能优化的成熟原则并不为人熟知。本文将再次尝试介绍这些内容。
公共接口与发布接口
许多现代语言对模块中的公共特性和私有特性进行了区分。公众功能和公开功能之间的区别并不经常被发现:而这可能是一个更重要的区别。
避免重复
在软件中避免重复的简单规则可以引导出良好的设计,这有时是非常值得注意的
分离用户界面代码
我学到的第一个经验教训就是始终将用户界面代码与其他代码分开。这不仅是一个很好的建议,而且令人惊讶的是它经常被遗忘。
保护变异:封闭的重要性
Craig在专栏的文章中讨论了开放-封闭原则和受保护的变体的重要性,以及为什么Parnas的信息隐藏比封装更重要。他还提供了一些关于实现受保护变体的方法的提示。
缩径管接头
考虑如何可视化和减少耦合。
是明确的
通常,设计技术被用来使系统更灵活,但最终却难以使用。原因之一是,在设计中,显式是一个经常被遗忘的属性。
测试总线命令
可测试性是一个非常重要的优点,您应该做出架构决策来提高系统的可测试性。
模块组装
模块化编程不仅仅是对接口进行编程,它还涉及将模块组装在一起,而各个模块不知道它们正在与哪个具体模块进行通信。
有目的性的建模
你所画的模型的类型取决于你想让它们达到的目的。John描述了概念模型、规范模型和实现模型之间的有用区别。