自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 组织结构的领域建模 (0): 写在前面

对于软件开发来说,领域建模是最重要的活动,领域模型是最重要的产物。领域模型反映了软件所要服务的现实业务领域的本质,体现了我们对业务领域的认识、理解和洞见。领域模型应该是一切领域开发活动的出发点和依归。本系列文章以组织结构的领域建模为例,演示领域建模的方法和技巧。领域模型的重要性领域模型...

2016-09-28 11:43:00 198

转载 OOAD范例:配置类设计

在很多应用程序中,我们都需要一个配置类Configuration,通常从一个文本文件中读入配置信息,根据配置调整应用的行为。通过这样的方式,我们可以用相同的代码来适应不同的环境,达到灵活性的目标。本文探索如何设计好这样的配置类。我们的重点不在于设计的产物——配置类——本身,而是在设计中的权衡...

2016-06-30 20:08:00 161

转载 正确区分属性和字段

在进行Java软件开发的时候,很多人都没有搞清Java对象中属性(Property)和字段(Field)的区别,以为属性就是字段。本文试图对这两个概念作一个澄清。1 范例首先上一个例子:平面直角坐标系中的矩形。一个矩形的形状可以用宽(width)和高(height)来表示,而它的位置可以...

2016-06-27 18:22:00 202

转载 函数式编程与行为参数化

废话少说,从实例开始,Show me the code。我们的实例就是从一堆苹果中选出符合某种条件的苹果。我们知道,苹果有很多属性,都可以用来作为筛选的标准。简单起见,我们只选择三个属性:颜色,大小、产地。属性的取值范围是:颜色:红色,绿色大小:大,小,中等产地:陕西,甘肃,山东,进...

2016-04-27 14:06:00 253

转载 DDD与分层架构

DDD是一种设计思想,它本身不绑定到任何一种具体的架构风格,可以应用在多种不同的架构风格中。本文探讨在经典的分层架构中如何应用DDD,以及在DDD的语境下,分层结构每一层的具体职责。分层架构是企业应用开发中采用率非常高的一种架构风格。它将软件系统的不同职责划分到不同的逻辑层中,并严格定义这些...

2014-10-10 10:22:00 368

转载 软件开发大图景:两个维度,四个象限

软件开发,尤其是大型软件开发是非常复杂的,涉及非常多的组件元素,需要作出大大小小的各种决策。软件开发的根本矛盾是不断增长的系统规模和复杂性与开发人员有限的大脑容量和处理速度之间的矛盾。:)为了了解软件开发的全貌,让我们上升到3万米的高空,对软件开发内容做一个全景式的鸟瞰,对我们要了解和实现的...

2014-10-08 22:36:00 361

转载 软件开发要时刻关注三种角色的需求

当我们开发一个类库、框架,或者业务软件的领域层,即那些被其他开发人员而不是最终用户所使用的代码时,对于我们要编写的每一个模块、每一个类、甚至每一个方法,要时刻把三种人的需求记在心里:代码使用者、实现者和扩展者,他们对代码的需求和约束各不相同。对于代码的使用者来说,我们要为他们提供最小化的接口...

2014-08-07 11:09:00 174

转载 不变的东西最重要

要比较两个东西所含物质的多少,应该选择哪个度量标准?一个容易想到的度量标准是体积。两立方米水肯定比一立方米水多。但是,在不同的状态下,相同数量的水的体积会发生变化。例如一立方米的冰就比一立方米的液态水的含水量少,而一立方米水蒸气的含水量更远远少于一立方米的液态水。另外,一立方米的铁和一立方...

2014-07-16 23:06:00 155

转载 敏捷价值观之二:可以工作的软件胜过完备的文档

传统的软件开发过程对文档的要求往往达到变态的程度:每个方面、每个阶段都需要大量的文档,每份文档都要求非常详尽,每份文档都要经过多次评审-修改循环。大量的时间和精力耗费在文档上面。大家都习以为常,没人想到过要改变。文档的主要作用是作为沟通的工具,把一个人的想法、意图以及关于软件产品的知识传达给...

2014-07-14 17:31:00 853

转载 敏捷价值观之一:个体和交互胜过过程与工具

工业化大生产一直有一个梦想:就是由一些聪明的人来设计过程和工具,然后教会笨蛋们使用工具,并通过过程来规范他们的行为,这样就可以用最低的成本来进行生产,并且能够迅速扩大生产规模。肯德基、麦当劳就是这种模式的典型例子。他们通过这样的方式消除了招聘技艺高超的大厨师的需要——大厨师薪酬太昂贵,而且由于...

2014-07-08 17:26:00 1650

转载 我理解的敏捷价值观

2001年2月11日到13日,十七位软件开发领域的领军人物聚集在美国犹他州的滑雪胜地Snowbird雪场。经过两天的讨论,敏捷(Agile)这个词为全体聚会者所接受,用来概括一套全新的软件开发价值观。这套价值观,通过一份简明扼要的《敏捷宣言》,传递给世界,宣告了敏捷开发运动的开始。宣言内容如下...

2014-07-07 16:40:00 161

转载 程序员关键能力之一——抽象

激光与金鱼有什么共同之处?——它们都不会唱歌。“横看成岭侧成峰”,苏轼的这句诗是对“抽象”的最好隐喻。对同一个事物,你看待它的视角不同,就会呈现不同的面貌。每一个视角,代表该事物某一个维度的抽象。如果你觉得这个“抽象”的概念很“抽象”,我以汽车为例子来进行说明。一辆汽车,在汽车厂里制...

2014-07-03 23:33:00 188

转载 在Scientific Linux 6.4(64位)上安装Redmine 2.5.1

Redmine是一款优秀的项目管理和Bug跟踪软件,基于RoR(Ruby on Rails)开发。下面记录安装过程。安装依赖项sudo yum install vim-enhanced git mysql-server mysql-devel ImageMagick ImageMagic...

2013-09-21 10:41:00 117

转载 在RHEL6/CentOS6/ScientificLinux6上安装GitLab 6.0.2

因开发需要,我需要安装一个Git服务器供公司内部做代码托管之用。当前最著名的Git服务器就是GitLab。Scientific Linux是重新编译的Red Hat Enterprise Linux,由费米国家加速器实验室、欧洲核研究组织以及世界各地的大学和实验室共同开发。下面记录下我在Sc...

2013-09-14 13:00:00 131

转载 什么是领域驱动设计DDD

“领域驱动设计(Domain Driven Design)”是Eric Evans在他的经典著作《领域驱动设计——软件核心复杂性应对之道》中首次提出来的概念。这本书于2003年8月30日出版,至今刚好整整十年了。在国内的几个论坛和社区(例如JDON,JavaEye,OSChina等)那里都曾经...

2013-09-13 15:16:00 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除