好的程序员做不出好的软件设计
本文是从 Good Programmers Make Bad Designers 这篇文章翻译而来。 你不能看到一个程序员还不错,就把他推到系统分析师、软件设计师或软件架构师的位置上。 如果你在团队或公司里寻找一个能胜任软件架...
本文是从 Good Programmers Make Bad Designers 这篇文章翻译而来。 你不能看到一个程序员还不错,就把他推到系统分析师、软件设计师或软件架构师的位置上。 如果你在团队或公司里寻找一个能胜任软件架...
在上一篇文章《.NET应用框架架构设计实践 - 概述》的评论部分,有网友提出了一个在面向领域驱动架构的实践中比较常见的问题:“DDD使用聚合根访问,那例如那些通用查询如何实现?难道都要经过聚合根多步得到么...
我研究领域驱动设计已经近4年时间了,在这4年里,我从了解领域驱动设计的基本思想开始,系统地学习了与领域驱动设计相关的概念、开发模式以及应用系统架构风格,并将其运用在了实际的项目架构与开发中。在此之前,我...
好久没有写文章了,最近比较忙,另一方面也是感觉自己在这方面没什么实质性的突破。但是今天终于感觉自己小有所成,有些可以值得和大家分享的东西,并且完成了两个可以表达自己想法的Demo。因此,趁现在有点时间,是写...
英文原文: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 在 QCon SF 2009 的一次演讲,...
用户活跃度是检验产品成功与否的重要指标之一,传统行业的商家极为重视门面的装潢,因为一个好的门面可以聚集人气,招揽更多的顾客。古时候的大户人家院子门口的石狮子或其他的摆件的摆放极为讲究,有一定的风水学...
这个图来自于《JavaScript语言精髓与编程实践》第三章P184页。最近在改第二版,这张图重做了,需要的可以对照着看。 此外,补充一下图中用到的概念: 1、内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是...
这个图来自于《JavaScript语言精髓与编程实践》第三章P184页。最近在改第二版,这张图重做了,需要的可以对照着看。 此外,补充一下图中用到的概念: 1、内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是...
Javascript是一个类C的语言,他的面向对象的东西相对于C++/Java比较奇怪,但是其的确相当的强大,在 Todd 同学的“对象的消息模型”一文中我们已经可以看到一些端倪了。这两天有个前同事总在问我Javasc...
Javascript是一个类C的语言,他的面向对象的东西相对于C++/Java比较奇怪,但是其的确相当的强大,在 Todd 同学的“对象的消息模型”一文中我们已经可以看到一些端倪了。这两天有个前同事总在问我Javasc...
在前文《软件自我识别》中,我们讨论了如果使软件做到自我识别,以促进自动化部署和版本检测等工作。 随着互联网的飞速发展,以及基础设施的改进,越来越多的业务被放在了“云”端。管理数千台服务器和各...
在前文《自动化部署》中,我们讨论了自动化部署。通过对部署操作脚本化、部署验证自动化、部署环境版本控制、生产部署全自动化等诸多实践,可以让部署完全处于受控状态。然而,作为运维人员,是否曾经有人走过来问...
尽管Thoughtworks的首席科学家Martion folwer 为“持续集成 ”下了定义,但由于自身背景与经历的不同,每个人对其都有不同的理解。从狭义上讲,持续集成可以认为是一种基于某种或者某些变化对软件系统...
为什么要谈品牌?这是源于一件让我印象非常深刻的事情:有一个大公司的设计师,在公司官方博客上发表了一篇有关 iPhone 的文章,由于他在文章中把“iPhone”拼成了“iphone”,遭到了一个读者愤怒的...
Brad Feld 的一篇文章 The Rise of Developeronomics 中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving 在读了之后受到启...
在Brooks的最新力作《设计原本(The Design of Design)》一书中,提及“一致性”对软件的重要性。他认为:“一致性应该是所有质量原则的根基。好的架构应该是直接的,人们掌握了部分系统后就可以推...
很多团队都有这个问题,一个项目的代码本来开始设计得好好的,一段时间以后,代码就会变得难以理解,难以维护,难以修改。为什么?我一直在思考这个问题。 让我们先看一个人的情况。 1. 程序员的成长 新手的代...
HTTP Caching 用好了,可以极大的减小服务器负载和减少网络带宽。十分有必要深入了解下 http 的 caching 协议。 先来看下请求/响应过程:http 请求/响应 1、用 Last-Modified 头 在第一次请求的响应头...
HTTP Caching 用好了,可以极大的减小服务器负载和减少网络带宽。十分有必要深入了解下 http 的 caching 协议。 先来看下请求/响应过程:http 请求/响应 1、用 Last-Modified 头 在第一次请求的响应头...
最近公司来一个非常虎的DBA,10几年的经验,这里就称之为蔡老师吧,在征得我们蔡老同意的前提下 ,我们来分享一下蔡老给我们带来的宝贵财富,欢迎其他的DBA来拍砖。 目录1、什么是执行计划?执行计划是依赖于什么信息
2、...
英文原文:How to beat the CAP theorem CAP 定理是数据系统设计的基本理论,目前几乎所有的数据系统的设计都遵循了这个定理。但 CAP 定理给目前的数据系统带来了许多复杂的、不可控的问题,使得数据系统的设...
最近组内进行HTML5标签的学习,方法呢就是大家每人挑选几个标签,自己先去学习,然后给大家作讲解。这个过程大家还是挺有收获的。但是现在HTML5还处在草案阶段,有些新的标签元素的解释也是经常有变化,甚至标签加入/...