最新文章
.NET应用框架架构设计实践 - 概述 软件设计
我研究领域驱动设计已经近4年时间了,在这4年里,我从了解领域驱动设计的基本思想开始,系统地学习了与领域驱动设计相关的概念、开发模式以及应用系统架构风格,并将其运用在了实际的项目架构与开发中。在此之前,我一直被一些应用程序架构设计上的问题所困扰,比如:在数据持久层,如何让数据持久化机制能够支持不同...
分享一些如何分析和设计具有动态行为的领域模型的经验 软件设计
好久没有写文章了,最近比较忙,另一方面也是感觉自己在这方面没什么实质性的突破。但是今天终于感觉自己小有所成,有些可以值得和大家分享的东西,并且完成了两个可以表达自己想法的Demo。因此,趁现在有点时间,是写文章和大家分享的时候了。 首先给出这两个Demo的源代码的压缩包的下载地址,因为之前有博...
Google软件工程师:从战争中得到的启示 程序人生
英文原文:Google engineer: What I learned in the war Dan Cross,34岁,是Google退伍军人网络(VetNet,Google Veterans Network)的一名活跃分子。VetNet社区有将近400名退伍军人以及其他Google员工参...
关于架构的讨论:烦人的细节 软件设计
Bob大叔和Simon Brown关于描述系统架构时基础架构(infrastructure)所起的作用展开了讨论。 在之前标题为 《尖叫的架构(Screaming Architecture)》的文章中,Robert Martin(也就是Bob大叔)阐述了这样的观点:软件产品的架构应该让所有人都...
如果软件正在占领全世界,为什么程序员得不到任何尊重? 程序人生
英文原文:If Software Is Eating The World, Why Don't Coders Get Any Respect? 正如网景公司创始人马克·安德森最近在他的著名言论中所说,软件在我们日常生活中占据了越来越大的部分,明白了软件有多么重要,你一定会认为那些工作是开发和维...
建设全功能团队——实践篇 项目管理
在上篇文章中我们一起回顾了分工历史,对于技术团队影响以及建设全功能团队的必要性 ,在实践篇中我将详细分享一些实践以及我们团队的经验数据。 吃自己的狗粮 当开发人员坐在测试工作站前,你将会诧异于多少开发人员因为繁琐的步骤而不会安装/升级自己参与制作的软件,多少人认为自己设计的复杂配置是荒唐的。...
建设全功能团队 项目管理
简介 团队的开发人员撇开需求沉浸在想象中的“完美”程序中;测试人员迷茫的点击着按钮试图搞明白这到底是个什么功能;设计师造出了没有尽头的楼梯,更糟的是,客户爱上了这个设计;团队领导四处救火,力有不逮。种种迹象表明,我们得打破分工带来的壁垒,建设全功能团队——大多数人能完成大多数种类工作的团队。 ...
设计恰如其分的架构 软件工程
Thoughtworks 的 Sam Newman 在 Mythoughtworks 的 Software Development 小组中给出了 Evolutionary Architecture 的一些资源。其中一个是 Martin Fowler 与 Rebecca Parsons 在 QCo...
拒绝平庸——浅谈WEB登录页面设计 Web前端
用户活跃度是检验产品成功与否的重要指标之一,传统行业的商家极为重视门面的装潢,因为一个好的门面可以聚集人气,招揽更多的顾客。古时候的大户人家院子门口的石狮子或其他的摆件的摆放极为讲究,有一定的风水学说道理,更能彰显主人家的身份地位.由此可见,“门面’就如人的脸面之于人的形象一样重要,而 WEB ...
Dino Esposito: 一个领域模型的设计 .NET技术
英文原文:Design of a Domain Model 最新发布的 Entity Framework 4.1 和新的 Code First 开发模式打破了服务器程序开发的基本规则:如果数据库没有准备就绪,不要轻举妄动(Don’t take a single step)。Code First...
《黑客帝国》完全解析 其他分类
万事皆有始亦有终——《The Matrix》影评之终结篇 一、前言 从 Matrix I 到 Matrix III,整整四年,一对名叫沃卓斯基(导演加编剧)的兄弟给科幻电影带来一次史无前例的冲击,无论从思想上还是视觉效果上都超过了以往任何一部科幻电影,从来没有一部科幻电影能够创造这么多的...
外语学习的真实方法及误区 其他分类
目录前言 1.对外语学习的主要误区 2.造成“哑巴英语”的最主要原因 3.英语环境的问题 4.特殊群体 5.语言关键期之争 6.语言条件反射 7. 关于记忆力 8. 中国“英”雄 9. 二律背反? 10. 世纪之战 11. “学得”-“获得”之辩 12. 克氏理论实践篇 第...
当心那些有歧义的命名 编程基础
关键点 “别人还能把这个名字理解成什么意思?”通过不断的问自己这个问题来积极检查每一个命名。 事实上,这种富有创造性的、不断尝试“......
一个失败软件项目的思考 项目管理
一、对一个估计撑不了多久的项目的抱怨(原文) 项目概况 甲方:A公司 乙方:本人所在公司(称B公司) 项目:X项目是A公司外包到B公司的电子商务项目。 ......
JavaScript 类型总览(图) Web前端
这个图来自于《JavaScript语言精髓与编程实践》第三章P184页。最近在改第二版,这张图重做了,需要的可以对照着看。 此外,补充一下图中用到的概念: 1、内置(B......
Javascript 面向对象编程 Web前端
Javascript是一个类C的语言,他的面向对象的东西相对于C++/Java比较奇怪,但是其的确相当的强大,在Todd 同学的“对象的消息模型”一文中我们已经可以......
持续集成之“Everything is code” 软件工程
在前文《软件自我识别》中,我们讨论了如果使软件做到自我识别,以促进自动化部署和版本检测等工作。 随着互联网的飞速发展,以及基础设施的改进,越来越多的业务被放......
持续集成之“软件自我识别” 软件工程
在前文《自动化部署》中,我们讨论了自动化部署。通过对部署操作脚本化、部署验证自动化、部署环境版本控制、生产部署全自动化等诸多实践,可以让部署完全处于受控状态......
持续集成之戏说Check-in Dance 软件工程
尽管Thoughtworks的首席科学家Martion folwer为“持续集成”下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解。从狭义上讲,持续集成可......
什么是闭包,我的理解 .NET技术
首先,我觉得,一个概念,如果不理解也不影响使用的话,那么,就没必要去理解它、去学习它。闭包就是这样一个概念,你不理解它也能很好的用它。俺这两年写as3程序,是天......