您的位置:知识库 » 软件设计

“软件设计”文章列表

重构最大的敌人不是技巧与能力,而是懒惰,或者说是态度。许多细小的重构看似无足轻重,例如方法重命名、提取方法。即使重构了,似乎对代码的结构也没有太大的影响,于是就决定淡然处之,心里想“事情还未到不可挽回的地步,实现功能要紧,至于重构,还是以后再做吧!”这样一想,于是就会滋生得过且过的想法,等到代码...
作者: 张逸   2012-07-04 13:04:54 阅读:3418 标签:重构
这几天,要对我半年前写的代码进行一些整理工作,在看代码时发现当时有很多地方写得不够好,俗称的有“坏味道”,呵呵,重构,必须的。 几年前通读过《重构,改善既有代码的设计》一书,虽然对各种重构模式或方法记忆有限,但精髓还是记住了:改代码而不改变软件的外在表现,循序渐进。 其实,重构是一个开发人员...
作者: caowenbin   2012-06-19 13:32:04 阅读:3964 标签:代码重构
程序设计语言的抽象机制包含了两个最基本的方面:一是语言关注的基本元素/语义;另一个是从基本元素/语义到复合元素/语义的构造规则。在C、C++、Java、C#、Python等通用语言中,语言的基本元素/语义往往离问题域较远,通过API库的形式进行层层抽象是降低问题难度最常用的方法。比如,在C语言中...
作者: Todd Wei   2012-06-05 21:48:02 阅读:4018 标签:API DSL
英文原文:I give the orders around here! 自从 9 岁那年得到第一台 Commodore 64 家用电脑起,我就开始编程。然而,当面对如何写出好的代码时,我仍然感觉自己还有很多要学的。 在探索如何提高自己的过程中,我学了很多种语言。大多数是以面向对象为主的(OO...
2012-05-31 06:53:15 阅读:3704 标签:面向对象
英文原文:Strategic Domain Driven Design with Context Mapping 作者:Alberto Brandolini 译者:韩锴 发布于 2010年4月6日 简介 当应用程序逐渐变得庞大和复杂后,很多面向对象建模的方法都达不到非常好的可伸缩性。上下...
作者: Alberto   2012-05-30 22:38:53 阅读:2385 标签:领域驱动开发 DDD
最近多次看到系统设计与实现的文章与讨论,再加上以前读过的其他资料以及自己的一些实践教训,让我觉得应该把这些资料汇总整理一下。如果要从讨论不同系统的众多资料中总结一条黄金法则的话,那只有一个词——“简单”;如果用一个英语单词来表达的话,那就是——KISS (Keep It Simple, Stup...
作者: 包云岗   2012-05-19 13:06:47 阅读:4736 标签:系统设计
假设我们身边的一切都是用制造材料加以描述的:“空调”不是“空调”,而是“由金属和塑料做成的物体”;“书”不是“书”,而是“由纤维和墨做成的物体”。沟通时我们也不用“空调”和“书”这样的词汇,而是“金属和塑料做成的物体”和“纤维和墨做成的物体”。 可以想象大脑在面对这些信息时会让我们觉得多么的痛...
作者: 李云   2012-05-14 08:56:44 阅读:3734 标签:软件设计
文/Todd Wei 需求又变了,怎么办? 先上一个轻松的段子:程序员 XX 遭遇车祸成植物人,医生说活下来的希望只有万分之一,唤醒更为渺茫。可他的 Lead 和亲人没有放弃,他们根据 XX 工作如命的作风,每天都在他身边念:“XX,需求又改了,该干活了,你快来呀!”,奇迹终于发生了,XX ...
作者: Todd Wei   2012-05-10 13:26:59 阅读:3666 标签:IoC 需求
英文原文:Tips for Effective Software Reuse 作者:Vijay Narayanan 译者:王丽娟 发布于 2009年12月30日 构建软件的每个人都会告诉你,实现软件重用极具挑战性。大规模、系统级的重用更是如此。开发人员要在最后期限内满足需求、交付功能,同时还...
2012-04-28 16:26:19 阅读:2356 标签:软件重用
英文原文:A practical guide to developing enterprise architecture 文/Franki Schafrik, 资深企业架构师, IBM 企业架构是业务及其支持数据、应用程序和 IT 基础架构的逻辑组织,为未来的业务成功明确定义了目的和目标。典...
2012-04-23 21:04:24 阅读:6059 标签:架构 企业架构
MVC和MVP的区别? MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是...
2012-04-01 13:38:57 阅读:21677 标签:微软MVP 设计模式
英文原文:Model Driven Development Misperceptions and Challenges 多年以来,采用模型驱动开发(MDD)的水平似乎仍没预期的那么好。阻碍、限制MDD使用的因素有很多,例如对实际的MDD成功案例缺乏认知、不确定如何在平常使用MDD、缺少预先投资...
2012-03-07 13:14:04 阅读:4924 标签:模型驱动开发 MDD
相关文章:可伸缩性原则 英文原文:Scalability Worst Practices 引言 在扩展大量大型的分布式系统期间,我有机会观察(并实践)了一些最差实践。这些最差实践中的大部分在开始时都没有危害,但如果疏忽大意,它们就会对系统的发展和可伸缩性构成危害。很多文章都聚焦于最佳实践,...
2012-03-01 13:18:57 阅读:1626 标签:可伸缩性
英文原文:Scalability Principles 从最简单的水平来看,可伸缩性就是做更多的事情。更多的事情可以是响应更多的用户请求,执行更多的工作,或处理更多的数据。设计软件这件事本身是复杂的,而让软件做更多的工作也有其特有的问题。这篇文章针对构建可伸缩软件系统提出了一些原则和方针。 ...
2012-02-29 12:03:52 阅读:2958 标签:可伸缩性
英文原文:Architecture as Language: A story (作者:Markus Völter,译者:张逸) 2008年4月16日 通常,架构要么是在Word文档中描述的一些软件系统中无形的、概念性的方面,要么就完全是由技术驱动的(“我们使用了一个XML架构”)。这两种方...
2012-02-26 22:18:45 阅读:3995 标签:架构设计
英文原文:Aspects of Domain Model Management (作者:Mats Helander,译者:王丽娟) 2007-12-23 导言 正如从像《领域驱动设计》[Evans DDD]和《领域驱动设计和模式应用》[Nilsson ADDDP]这些书中学到的一样,在应...
作者: Mats Helander   2012-02-24 18:31:59 阅读:4610 标签:领域驱动设计 DDD AOP
英文原文:Domain Driven Design and Development In Practice 背景 领域驱动设计(DDD)的中心内容是如何将业务领域概念映射到软件工件中。大部分关于此主题的著作和文章都以Eric Evans 的书《领域驱动设计》为基础,主要从概念和设计的角度探讨...
作者: Srini Penchikala   2012-02-20 22:47:21 阅读:8965 标签:领域驱动设计 DDD
序列图主要用于展示对象之间交互的顺序。 序列图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。 消息用从一个对象的生命线到另一个对象...
作者: tianhai110   2012-01-30 15:57:47 阅读:57016 标签:UML
用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下: 1.参与者(Actor) 表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人...
作者: tianhai110   2012-01-30 15:33:01 阅读:259700 标签:UML
在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1.泛化(Generalization) 【泛化关系】:是...
作者: tianhai110   2012-01-30 14:59:55 阅读:49504 标签:UML