好的程序員做不出好的軟件設(shè)計(jì)
本文是從 Good Programmers Make Bad Designers 這篇文章翻譯而來(lái)。 你不能看到一個(gè)程序員還不錯(cuò),就把他推到系統(tǒng)分析師、軟件設(shè)計(jì)師或軟件架構(gòu)師的位置上。 如果你在團(tuán)隊(duì)或公司里尋找一個(gè)能勝任軟件架...
|
本文是從 Good Programmers Make Bad Designers 這篇文章翻譯而來(lái)。 你不能看到一個(gè)程序員還不錯(cuò),就把他推到系統(tǒng)分析師、軟件設(shè)計(jì)師或軟件架構(gòu)師的位置上。 如果你在團(tuán)隊(duì)或公司里尋找一個(gè)能勝任軟件架...
在上一篇文章《.NET應(yīng)用框架架構(gòu)設(shè)計(jì)實(shí)踐 - 概述》的評(píng)論部分,有網(wǎng)友提出了一個(gè)在面向領(lǐng)域驅(qū)動(dòng)架構(gòu)的實(shí)踐中比較常見的問(wèn)題:“DDD使用聚合根訪問(wèn),那例如那些通用查詢?nèi)绾螌?shí)現(xiàn)?難道都要經(jīng)過(guò)聚合根多步得到么...
我研究領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)已經(jīng)近4年時(shí)間了,在這4年里,我從了解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的基本思想開始,系統(tǒng)地學(xué)習(xí)了與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)相關(guān)的概念、開發(fā)模式以及應(yīng)用系統(tǒng)架構(gòu)風(fēng)格,并將其運(yùn)用在了實(shí)際的項(xiàng)目架構(gòu)與開發(fā)中。在此之前,我...
好久沒有寫文章了,最近比較忙,另一方面也是感覺自己在這方面沒什么實(shí)質(zhì)性的突破。但是今天終于感覺自己小有所成,有些可以值得和大家分享的東西,并且完成了兩個(gè)可以表達(dá)自己想法的Demo。因此,趁現(xiàn)在有點(diǎn)時(shí)間,是寫...
英文原文:Google engineer: What I learned in the war Dan Cross,34歲,是Google退伍軍人網(wǎng)絡(luò)(VetNet,Google Veterans Network)的一名活躍分子。VetNet社區(qū)有將近400名退伍軍人以及其他Google員工參與。以下是...
Bob大叔和Simon Brown關(guān)于描述系統(tǒng)架構(gòu)時(shí)基礎(chǔ)架構(gòu)(infrastructure)所起的作用展開了討論。 在之前標(biāo)題為 《尖叫的架構(gòu)(Screaming Architecture)》的文章中,Robert Martin(也就是Bob大叔)闡述了這樣的觀點(diǎn):軟件產(chǎn)...
英文原文:If Software Is Eating The World, Why Don't Coders Get Any Respect? 正如網(wǎng)景公司創(chuàng)始人馬克·安德森最近在他的著名言論中所說(shuō),軟件在我們?nèi)粘I钪姓紦?jù)了越來(lái)越大的部分,明白了軟件有...
Thoughtworks 的 Sam Newman 在 Mythoughtworks 的 Software Development 小組中給出了 Evolutionary Architecture 的一些資源。其中一個(gè)是 Martin Fowler 與 Rebecca Parsons 在 QCon SF 2009 的一次演講,...
用戶活躍度是檢驗(yàn)產(chǎn)品成功與否的重要指標(biāo)之一,傳統(tǒng)行業(yè)的商家極為重視門面的裝潢,因?yàn)橐粋€(gè)好的門面可以聚集人氣,招攬更多的顧客。古時(shí)候的大戶人家院子門口的石獅子或其他的擺件的擺放極為講究,有一定的風(fēng)水學(xué)...
這個(gè)圖來(lái)自于《JavaScript語(yǔ)言精髓與編程實(shí)踐》第三章P184頁(yè)。最近在改第二版,這張圖重做了,需要的可以對(duì)照著看。 此外,補(bǔ)充一下圖中用到的概念: 1、內(nèi)置(Build-in)對(duì)象與原生(Naitve)對(duì)象的區(qū)別在于:前者總是...
這個(gè)圖來(lái)自于《JavaScript語(yǔ)言精髓與編程實(shí)踐》第三章P184頁(yè)。最近在改第二版,這張圖重做了,需要的可以對(duì)照著看。 此外,補(bǔ)充一下圖中用到的概念: 1、內(nèi)置(Build-in)對(duì)象與原生(Naitve)對(duì)象的區(qū)別在于:前者總是...
Javascript是一個(gè)類C的語(yǔ)言,他的面向?qū)ο蟮臇|西相對(duì)于C++/Java比較奇怪,但是其的確相當(dāng)?shù)膹?qiáng)大,在 Todd 同學(xué)的“對(duì)象的消息模型”一文中我們已經(jīng)可以看到一些端倪了。這兩天有個(gè)前同事總在問(wèn)我Javasc...
Javascript是一個(gè)類C的語(yǔ)言,他的面向?qū)ο蟮臇|西相對(duì)于C++/Java比較奇怪,但是其的確相當(dāng)?shù)膹?qiáng)大,在 Todd 同學(xué)的“對(duì)象的消息模型”一文中我們已經(jīng)可以看到一些端倪了。這兩天有個(gè)前同事總在問(wèn)我Javasc...
在前文《軟件自我識(shí)別》中,我們討論了如果使軟件做到自我識(shí)別,以促進(jìn)自動(dòng)化部署和版本檢測(cè)等工作。 隨著互聯(lián)網(wǎng)的飛速發(fā)展,以及基礎(chǔ)設(shè)施的改進(jìn),越來(lái)越多的業(yè)務(wù)被放在了“云”端。管理數(shù)千臺(tái)服務(wù)器和各...
在前文《自動(dòng)化部署》中,我們討論了自動(dòng)化部署。通過(guò)對(duì)部署操作腳本化、部署驗(yàn)證自動(dòng)化、部署環(huán)境版本控制、生產(chǎn)部署全自動(dòng)化等諸多實(shí)踐,可以讓部署完全處于受控狀態(tài)。然而,作為運(yùn)維人員,是否曾經(jīng)有人走過(guò)來(lái)問(wèn)...
盡管Thoughtworks的首席科學(xué)家Martion folwer 為“持續(xù)集成 ”下了定義,但由于自身背景與經(jīng)歷的不同,每個(gè)人對(duì)其都有不同的理解。從狹義上講,持續(xù)集成可以認(rèn)為是一種基于某種或者某些變化對(duì)軟件系統(tǒng)...
為什么要談品牌?這是源于一件讓我印象非常深刻的事情:有一個(gè)大公司的設(shè)計(jì)師,在公司官方博客上發(fā)表了一篇有關(guān) iPhone 的文章,由于他在文章中把“iPhone”拼成了“iphone”,遭到了一個(gè)讀者憤怒的...
Brad Feld 的一篇文章 The Rise of Developeronomics 中提到了“10倍效率的開發(fā)者(10x developer)”的概念(偉大的開發(fā)者的效率往往比一般的開發(fā)者高很多,而不只是一點(diǎn)點(diǎn)),Adam Loving 在讀了之后受到啟...
在Brooks的最新力作《設(shè)計(jì)原本(The Design of Design)》一書中,提及“一致性”對(duì)軟件的重要性。他認(rèn)為:“一致性應(yīng)該是所有質(zhì)量原則的根基。好的架構(gòu)應(yīng)該是直接的,人們掌握了部分系統(tǒng)后就可以推...
很多團(tuán)隊(duì)都有這個(gè)問(wèn)題,一個(gè)項(xiàng)目的代碼本來(lái)開始設(shè)計(jì)得好好的,一段時(shí)間以后,代碼就會(huì)變得難以理解,難以維護(hù),難以修改。為什么?我一直在思考這個(gè)問(wèn)題。 讓我們先看一個(gè)人的情況。 1. 程序員的成長(zhǎng) 新手的代...
HTTP Caching 用好了,可以極大的減小服務(wù)器負(fù)載和減少網(wǎng)絡(luò)帶寬。十分有必要深入了解下 http 的 caching 協(xié)議。 先來(lái)看下請(qǐng)求/響應(yīng)過(guò)程:http 請(qǐng)求/響應(yīng) 1、用 Last-Modified 頭 在第一次請(qǐng)求的響應(yīng)頭...
HTTP Caching 用好了,可以極大的減小服務(wù)器負(fù)載和減少網(wǎng)絡(luò)帶寬。十分有必要深入了解下 http 的 caching 協(xié)議。 先來(lái)看下請(qǐng)求/響應(yīng)過(guò)程:http 請(qǐng)求/響應(yīng) 1、用 Last-Modified 頭 在第一次請(qǐng)求的響應(yīng)頭...
最近公司來(lái)一個(gè)非常虎的DBA,10幾年的經(jīng)驗(yàn),這里就稱之為蔡老師吧,在征得我們蔡老同意的前提下 ,我們來(lái)分享一下蔡老給我們帶來(lái)的寶貴財(cái)富,歡迎其他的DBA來(lái)拍磚。 目錄1、什么是執(zhí)行計(jì)劃?執(zhí)行計(jì)劃是依賴于什么信息
2、...
英文原文:How to beat the CAP theorem CAP 定理是數(shù)據(jù)系統(tǒng)設(shè)計(jì)的基本理論,目前幾乎所有的數(shù)據(jù)系統(tǒng)的設(shè)計(jì)都遵循了這個(gè)定理。但 CAP 定理給目前的數(shù)據(jù)系統(tǒng)帶來(lái)了許多復(fù)雜的、不可控的問(wèn)題,使得數(shù)據(jù)系統(tǒng)的設(shè)...
最近組內(nèi)進(jìn)行HTML5標(biāo)簽的學(xué)習(xí),方法呢就是大家每人挑選幾個(gè)標(biāo)簽,自己先去學(xué)習(xí),然后給大家作講解。這個(gè)過(guò)程大家還是挺有收獲的。但是現(xiàn)在HTML5還處在草案階段,有些新的標(biāo)簽元素的解釋也是經(jīng)常有變化,甚至標(biāo)簽加入/...