期间:2003
发布接口
发布接口是我使用的一个术语188足球比分直播)来引用在定义它的代码基之外使用的类接口。因此,它在Java中不仅仅意味着公共,在c#中甚至比非内部公共更重要。在我为IEEE软件撰写的专栏中,我对此进行了论证公开的和公开的区别实际上比公开的和私有的区别更重要。
一旦Upona一次在西
我的朋友们都是极客,所以他们中的许多人都期待着2003年11月的那一天,《双塔奇缘》的DVD加长版发行(在我的朋友中,加长版DVD是唯一值得拥有的)。但对我来说,那天标志着另一个释放,在很多方面同样重要,塞尔吉奥·里昂的西部大终于成功了到DVD。
导出信息
你怎么代表在UML中得到的信息?
提供服务的存根
对于任何建筑服务的一个重要思想为面向服务的架构。当你建立你的服务,还建立服务存根你的客户可以用它来对测试。这样的存根应提供罐装应对一组固定的要求,模拟错误条件,并且是客户端的机器上运行的。您需要确保存根模仿真实系统行为正常。通过提供为您的客户存根,你使它更容易为你的客户使用你的服务;这当然意味着你的服务更容易使用。
贫血的域模型
这是一种已经存在了很长一段时间的反模式,但目前似乎有一个特别的激增。我和Eric Evans聊过这个话题,我们都注意到他们似乎越来越受欢迎了。作为一个适当的伟大的推动者领域模型,这是不是一件好事。
命令面向接口
模块最常见的接口样式是使用过程或对象方法。因此,如果您希望一个模块为一个契约计算一堆费用,您可以使用一个BillingService类,该类带有一个执行计算的方法,可以像下面这样调用它
aBillingService.calculateCharges(aContract)
面向命令的接口对于每个操作都有一个命令类,并且可以像这样调用
CalculateChargeCommand.new(aContract).RUN()
迭代开发的历史
大多数客户的我碰上没有听说过迭代开发的,或认为这是一个新的,相对未经试验的现象。相比之下迭代开发已经出现了名目繁多的很长一段时间。一种最近的一篇文章由Craig Larman与和维克巴西利在IEEE软件总结努力抓住这个历史,让您在使用迭代开发方法成功项目的长篇故事是个好主意。
不需要的建模语言
在UML意味着不同的事情不同的人,这就是为什么我使用一个不同的发现人的概念UmlMode有用。我跟大多数人有兴趣UmlAsSketch而这一群体是不是很深刻的印象与UML 2。
数据访问程序
封装的共同部分,特别是与面向对象的系统中,是隐藏的数据结构。然而,它也很常见得多公开数据访问例程这背后的数据。在本专栏中我将介绍写数据访问例程的一些准则。但是不要忘了,如果能留下隐藏的数据,这通常是更好的。
C - Refactory
至今188足球比分直播重构工具已经出现在许多语言中。在Smalltalk的领导下,我们已经看到了一些用于Java和一些用于c#的工具。尽管如此,一种明显缺乏的语言是c++上诉。尽管第一次重构是由188足球比分直播比尔Opdyke,谁的背景是在C ++中。
介绍域分离
其中最有用的设计原则,我发现,随后是保持程序(bet188足球用户界面)功能,和其余的呈现方面之间的良好分离。在那里,我看到了这一点做了几年,我已经看到了很多的好处:
企业架构
就在最近,我在亚马逊上找到了一些不好的评论EAA的对因为这本书中没有任何关于企业架构的内容。当然有一个很好的理由——这本书是关于企业的应用程序建筑,那就是如何设计企业应用程序。bet188足球企业架构是一个不同的主题,如何组织企业中的多个应用程序到一个连贯的整体。
类图中的局部变量
如何显示局部变量(参数,临时工等)上UML类图?
搬走从XSLT
所有这些网站是用简单的XML文件,并转换成HTML。我觉得这个作品真的很好,而且手段我从来没有关于处理HTML格式的烦恼。(不花哨布局是我的风格,你可以告诉)。我甚至写整本书都是这样。
依赖和关联
是什么依赖和关联之间的区别?
平台飞白辞格独立
这是关于模型驱动架构(MDA)是它允许你开发技术,如.NET或Java的平台无关模型(PIM),然后可以转化为平台相关模型(PSM)的系统。一个细心的读者应该说这样的:“挂了一下,是不是Java的整点独立于平台那么,为什么我要生成另一个平台独立的技术平台,一些自主技术?”
应用边界
软件开发中尚未确定的问题之一是确定软件的边界是什么。(浏览器是不是操作系统的一部分?)许多面向服务架构的支持者认为,应用程序正在消失——因此,未来的企业软件开发将是将服务组装在一起。
我不认为申请要离开同样的原因,为什么应用程序边界是那么难画。实质上应用是一种社会建构:
Seedwork
在面向对象的最早的天,二OO提倡像我投入了很多关注到有利于重用的争论。早期我们谈论的类重用。然后,我们发现,重用单独的类,虽然在某些情况下工作,没有工作,所以在其他地方。因此,我们得到成可重用的框架,这让我们的部分功能构建的应用程序。
重构的词源188足球比分直播
那个词在哪里?188足球比分直播来自?
无法衡量生产力
我们看到软件的过程中,设计实践和等等这么多的情感讨论。bet188足球许多这些参数是不可能解决,因为软件行业缺乏衡量一些软件开发的有效性的基本要素的能力。特别是我们没有的合理衡量生产力的方式。
货币作为价值
有许多常见的例子的ValueObject,我最喜欢的是钱- 和一个紧密相连的钱是货币。
取悦客户
所有敏捷方法都强调系统开发人员和最终受益者客户之间直接交互的重要性。敏捷宣言中说“业务人员和开发人员必须在整个项目中每天一起工作”,这就强调了高频率的交互。极限编程通过它的实践强调这一点OnsiteCustomer。
建筑设计师
当人们使用术语“软件架构师”时,他们是在使用构建结构中的隐喻来帮助人们理解架构师的角色。具有讽刺意味的是,他们这样做误解了建筑设计师的实际角色。
多重不基数
当数据建模方法谈论关系,他们所使用的术语基数指示有多少实体可以连接在一起。因此,您可能在order和customer之间存在一种关系,并且假定这种关系的基数是一对多的。或者您可能听说一个订单的客户基数是0对多人。
固定长度的字符串
查看大多数在应用程序编程语言和关系数据库之间对话的库,您会注意到它们将数据库中的字符串类型(char或varchar)映射为编程语言中的字符串类型。这很简单,很明显,但也许是错的。
唱歌的侦探
唱歌神探是由英国广播公司在1980年制作的电视剧(6个一个小时节目)。很多人,包括我在内,认为这是他们所见过的最好的一块电视。这是一个复杂,最原始的艺术作品电视有史以来的可能之一。因此,它不是茶的每个人的杯子,但我看过很多次了。它最显着与作家丹尼斯·波特,谁做了很多具有挑战性的电视节目有关。它最近成为可在DVD。
固定价格
许多人认为在敏捷项目中不可能签订固定价格的合同。因为敏捷过程的全部意义在于你不能预测未来,所以这并不是一个不合理的假设。然而,这并不意味着你不能提出一个固定价格的敏捷合同,它真正的意思是你不能提出一个固定范围的合同。
多个典型模型
刮开任何大型企业,你通常会发现某种群体的专注于企业级概念建模。最常见的是这将是一个数据管理组,他们偶尔可能是参与制定企业范围的服务。他们是企业范围,因为而不是专注于他们专注于集成多个应用程序的单一应用程序的努力。
历史不是空话
历史或多或少是胡言乱语
- 亨利·福特
我最近买了一个不幸的电子邮件从UML精粹的读者。这是从来没有一个良好的开端我一天一个愤怒的读者后悔购买时,更别说看书,我偶尔至理名言。但是,有一些特别有趣的关于这个读者的牛肉。他具体的投诉是关于我的“不必要的历史”。
Marketecture和Tarchitecture的区别
当我们想到软件架构,我们通常会想到它的技术架构。但也有另一种重要的建筑 - 我们使用的软件的客户进行沟通的一个:市场营销架构。忽视这一点,“marketecture”,其与“tarchitecture”的关系,可以得到开发项目进入了很多麻烦。
谁需要架构师?
什么是架构,到底谁是架构师?这些问题似乎让每个人都很恼火。因此,在这个IEEE软件专栏中,我让Ralph Johnson来解释架构:用一个与所有其他定义相匹配但又没有人同意的定义。我还谈到了建筑师的两个亚种:Architectus的Reloadus和Architectus Oryzus。
类型集合
当人们开始工作,对象,特别是在强类型语言,共同的问题是他们是否应该有不同的域类型的特定集合类。所以,如果你有存储员工的集合类公司,你应该使用常规的集合类从您的图书馆,或者你应该创建一个特定的EmployeeList
类 - 一个类型的集合。
制作存根
测试增强设计的一个常见问题是,如何在测试模式下创建服务存根,同时让真实的bet188足球东西存在于生产环境(以及一些测试)中。我的一些同事分享了他们的想法。
Uml2
上周,OMG采用上层建筑文档UML 2。在实践中,这意味着UML 2商定。有在UML 2的UML许多变化 - 它代表了最大的检修的UML,因为UML最初同意。对于一般用户来说最明显的变化是可能:
包括和扩展
UML用例图定义了用例之间的一组关系。最著名的两个是include和extend。这两种关系似乎比用例的任何其他部分,甚至是UML中的任何东西都有更多的问题。
基础框架
一个基础框架是在这之前都是建立在它之上的任何应用程序建立了一个。这个想法是,你分析需要的框架,那么您构建框架的各种应用需求。一旦框架已经完成,你则建立在它上面的应用程序。问题的关键是,该框架确实需要有一个稳定的API,你开始对应用程序的工作之前,否则更改为框架,将很难管理,因为它们连锁与应用效果。
188足球比分直播重构畏缩
最近的一次Robert Cringely报道最近在重构社区引起了小小的骚动,因为他批评了重构。188足球比分直播Phlip总结了对188足球比分直播重构邮件列表用一种不寻常的克制语气说……他给自己无意读的书写评论,听起来像个‘怀疑论者’。”
收获框架
要通过收获构建框架,首先不要尝试构建框架,而要构建应用程序。在构建应用程序时,您不会尝试开发泛型代码,但要努力构建一个经过良好分解和设计的应用程序。bet188足球
UML模式
虽然我一直在寻找在UML 2,它发生,我认为不同的人关于应该是什么样的UML,因为有不同的关于UML应该是什么样的基本观点。当我想到这个问题,我想出了思考UML三个主要类别:UmlAsSketch,UmlAsBlueprint和UmlAsProgrammingLanguage。(有趣的是史蒂夫·梅洛独立想出了相同的分类。)
什么伊萨Bliki
我一直在看博客的现场开发了一段时间,这是不可能的,不想加入。但有些事情我不那么热衷于博客。一开始的名字,正如我的同事麦克二所说,“博客听起来象是我应该付出的医生移除”。除了名字,但有博客文章的非常短暂性。写作的短脉冲,当他们读这可能是有趣的 - 但很快时代。我觉得写太难要花钱的事情上消失。
语言的学习对象
如果我想教人面向对象,我应该使用哪种语言?
框架建设
您可以使用重构来建立一个188足球比分直播框架?
聚合和组合
在UML事业比聚合和组合更惊愕几件事情,尤其是他们如何从普通的关联变化。
受保护的数据
它的好处是面向对象的设计有在bet188足球我的课与数据保护AccessModifier吗?
访问修饰符
面向对象的语言把一个程序分成模块调用的类。每个类包含的功能,其由数据(字段)和方法。(并非所有的语言都使用这些术语,但他们会为这个事。)语言有什么其他的类可以访问类的特征的各种规则,这些通常是基于适用于一类访问修饰符。
类图上的集合
假设你有一个相册类它有一个曲目的ArrayList。如何在UML类图中显示它呢?
大型敏捷项目
一个常见的问题是,无论是大型项目可以用灵活的技术来完成。毕竟很多敏捷方法是专为较小的项目,他们抵御权重股的想法更需要在更大的项目bet188足球。
组件和混乱的世界
为什么混沌理论认为,组件装配可能不那么容易,因为它标榜的那样好。
对不按架构
软件开发杂志适应企业应用架构的我的书模式的第7章(分销策略)在他们的杂志上的一篇文章。我怀疑他们喜欢它,因为它的语气和分布式对象设计第一定律的包容性。bet188足球
模式
我的IEEE专栏介绍了模式对理解软件设计的有价值的贡献。bet188足球
关于扩展XP/敏捷方法的加拿大研讨会
随着XP和其他敏捷方法的流行,关于如何将XP扩展到10-12人的团队之外的问题开始浮出水面。2003年2月中旬,在加拿大班夫阿尔伯塔省举行了一个专门讨论这个问题的讲习班。在本文中,我们报道了Ken Schwaber和Martin Fowler以及其他主要实践者的主题演讲。188bet足球充值
域逻辑和SQL
在过去的几十年里,我们看到面向数据库的软件开发人员和内存应用软件开发人员之间的差距越来越大。这导致了关于如何使用SQL和存储过程等数据库特性的许多争议。在本文中,我将研究是将业务逻辑放在SQL查询中还是在内存代码中,基于一个简单但丰富的SQL查询示例,主要考虑性能和可维护性。
当使一个类型
关于何时为值创建新用户定义的类型(或类)的指南。
编写使用XML
很长一段时间以来,我一直在使用XML编写我的大部分内容——甚至到了用XML编写我的最后一本书的地步。当我向别人提到这一点时,他们问了我很多关于我的经历的问题,这就足够促使我写这篇关于整个事情的小文章了。