期間:2012
資訊卡
當我對同事抱怨幻燈片文件的缺點時,我確實聽到了有用的反駁。現在許多人喜歡透過幻燈片簡報進行溝通,這些簡報並非用於簡報,而是用於閱讀。像我這樣的人可以諷刺現在的經理人無法閱讀任何看起來不像項目符號的東西,但這些資訊卡確實有其優點。
機率文盲
在我撰寫這篇文章時,美國總統大選即將結束,出現了一場關於Nate Silver所做的預測的辯論。許多共和黨人聲稱他是民主黨的打手,他預測歐巴馬有 85% 的勝算根本是胡說八道。我有一部分希望認識更多不懂數字的共和黨人,這樣我就可以和他們打賭。或許更好的願望是民意調查結果相反,因為我比較多民主黨傾向的朋友。但實際上,無論哪一種情況,我都不會得到太多好處,因為我認識的大多數人都懂數字。遺憾的是,這並非普遍情況 - 這個插曲說明了大多數人對機率的文盲程度有多深,這對整個社會和軟體開發特別是一些重要的影響。
跨媒體應用
在過去幾年,行動應用一直是軟體開發的熱門項目。與許多軟體交付公司一樣,Thoughtworks 收到許多客戶要求我們為他們建置行動應用。然而,大多數時候,當一家公司要求我們(或任何人)建置行動應用時,他們一開始就走錯了方向。我想爭論的是,在大多數情況下,即使你希望使用者與行動裝置互動,你也絕不應該考慮建置行動應用。相反地,你需要考慮建置一個單一的應用,可以在多種裝置上呈現:行動裝置、桌上型電腦、平板電腦 - 或使用者可能使用的任何裝置。
啟動主要指令
回顧主要指令是回顧實務中重要的部分,而且自從 Norm Kerth 首次推出此實務以來,就一直是回顧思考中不可或缺的一部分。最近我讀了 Pat Kua 的新版回顧手冊,此手冊是根據 Pat 在 Thoughtworks 擔任技術主管時所累積的豐富回顧經驗所撰寫。我發現 Pat 對主要指令的建議令人反感,但不得不說他幾乎肯定正確。
Thoughtworks 技術雷達常見問答集
大約每半年,我都會與 Thoughtworks TAB(我們全球組織中選出的資深技術人員)聚會。我們會議的主要成果之一就是我們的 技術雷達。雷達獲得許多關注,並引發一些常見問題,此常見問答集希望能解答這些問題。
前往奧胡斯 2012
過去幾個月來,我行程滿檔(接近尾聲時,我計算出過去 44 天中,有 40 天都在出差),這也是我的網站一直沒有更新的原因。現在我已回到家,可以回顧一些行程,而 goto 會議總是充滿值得回顧的事物。
NoSQL 簡介
在 goto 奧胡斯,我們有一條軌道是關於 NoSQL 的一些實際經驗。我受邀進行一場開場演講,說明 NoSQL 資料儲存的基本原則。我談到了 NoSQL 的起源、NoSQL 資料模型的形式、許多 NoSQL 資料庫考量一致性問題的方式,以及多語持久性的重要性。
人民大戰 NoSQL 資料庫:小組討論
在 goto Aarhus 的其中一個軌道中,NoSQL 供應商有機會討論他們的各種工具。在軌道結束時,不同的講者被安排在一個小組中,討論 NoSQL 中的一些常見問題。儘管我沒有參與該軌道(我的演講 在幾天後進行),但我參與了小組討論。
NoSQL 精華中的重點
當我們設計這本書時,NoSQL 精華,我們在大部分章節的結尾都總結了一些重點,作為人們重新閱讀這本書時的複習。我們已將這些重點包含在網站中,作為讀者提醒自己這些重點的另一種方式。
現代模擬工具和黑魔法
現代模擬工具對我們處理舊程式碼的能力產生的正面影響,以及使用這些工具可能的負面影響。
BigQuery 的概念驗證
Google 的新 BigQuery 服務是否能為客戶提供大數據分析能力,而無需昂貴的軟體或新基礎架構?Thoughtworks 和 AutoTrader 進行了一週的概念驗證測試,使用一個海量資料集。測試顯示在 7-10 秒範圍內對 7.5 億列資料集進行一致的查詢效能。我們使用 REST API 與 Java、JavaScript 和 Google Charts 來建立一個網路前端,其中包含查詢結果的互動視覺效果。整個練習在五天內由三個人完成。結論:BigQuery 表現良好,並且可以使預算較小的組織受益於大數據,特別是那些沒有資料倉儲或資料倉儲使用受限的組織。
公共儀表板
隨著對數據分析和視覺化的興趣日益增加,我們看到更多精力投入到有趣的視覺化中,這些視覺化允許人們從組織中流動的數據中獲得見解。這些儀表板大多數都是針對個人使用,但將它們用於更公共的目的的趨勢正在增長。
Snowflake Server
讓生產伺服器持續運作可能是一項繁瑣的工作。您必須確保作業系統和任何其他依賴軟體都已正確修補,以使其保持最新狀態。託管應用程式需要定期升級。需要定期進行組態變更,以調整環境,使其能有效率地執行並與其他系統正確通訊。這需要一些命令列呼叫、在 GUI 畫面之間跳躍,以及編輯文字檔。
結果就是獨一無二的雪花 - 對於滑雪場來說很好,但對於資料中心來說很糟。
Phoenix Server
有一天,我幻想著為營運啟動一項認證服務。認證評估將包含一位同事和我出現在公司資料中心,並用棒球棒、電鋸和水槍設定關鍵生產伺服器。評估將根據營運團隊讓所有應用程式重新啟動並執行的時間長度為基礎。
多個行動裝置
行動裝置越來越重要,成為客戶和員工使用軟體服務的平台。許多人忙於建置行動應用程式,但也有許多供應商忙於建置行動裝置。這些行動裝置的範圍提出了挑戰 - 您要如何支援許多行動裝置?
SE Radio 關於敏捷資料庫開發的 Podcast
Pramod Sadalge 領導敏捷資料庫技術的開發,我們現在在 Thoughtworks 習慣性地使用這些技術。SE Radio 訪問我們,瞭解我們如何使用這些技術與使用它的應用程式一起反覆地演化資料庫的設計。我們討論如何將資料庫納入持續整合系統,如何透過可重複的腳本遷移進行資料庫變更,以及資料庫重構如何運作。
選擇行動實作策略
過去五年行動科技的突然與快速爆發提供了巨大的機會。雖然看起來許多行動平台會持續蓬勃發展,但行動客戶對其應用程式要求極高的使用者體驗。本文提出兩個實作行動頻道的策略,有助於平衡使用者體驗與平台涵蓋範圍,同時也為你的應用程式提供前進的道路。
Orm 仇恨
幾個月前我在倫敦參加 QCon 會議時,似乎每場演講都包含一些對物件/關聯性對應 (ORM) 工具的尖酸評論。我想我應該更仔細閱讀寄給講者的會議電子郵件,毫無疑問其中一定有東西告訴我們每 45 分鐘至少要對 ORM 鄙視一次。但正如你所見,我想對這種 ORM 仇恨稍稍反擊一下 - 因為我認為其中許多都是不合理的。
編輯出版分離
在過去一年左右與 Thoughtworks 專案團隊的對話中,一個常見的主題是內容管理系統 (CMS) 的影響力越來越大。它們通常不被視為有幫助的,確實有明確的跡象表明它們正成為一種令人擔憂的侵入性工具 - 用於超出其核心目的的方式,以致於阻礙整體開發。
在其他惱人之處中,一個常見的缺點是它們保留每篇文章的一個副本。此單一副本在建立內容時會編輯,並發布給讀者(通常在某種狀態變更旗標上)。
資料的演變全景
我們在 QCon London 2012 的主題演講探討資料在我們生活中扮演的角色(而且它所做的不只是變得更大而已)。我們從資料世界如何改變開始探討:它正在成長、變得更加分散且更具連結性。接著我們轉移到產業的回應:NoSQL 的崛起、轉向服務整合、事件來源的出現、雲端和新分析的影響,以及視覺化的重要角色。我們快速瀏覽資料如何被使用,Rebecca 特別強調開發中國家的資料。最後我們思考所有這些對我們作為軟體專業人員的個人責任有何意義。
測試涵蓋範圍
時不時我會聽到有人詢問他們應該追求什麼樣的測試涵蓋範圍(也稱為程式碼涵蓋範圍),或自豪地陳述他們的涵蓋範圍層級。這樣的陳述錯失了重點。測試涵蓋範圍是尋找程式碼庫中未測試部分的有用工具。測試涵蓋範圍作為數值陳述,對於評估測試的優劣幾乎沒有用處。
簡報臭味
我已經做了許多簡報,而且由於我參加許多研討會,所以我看得也很多。這表示我看到許多問題,人們做的事情降低了他們演講的效能。我沒有試圖提出一個全面的清單,所以我在此提出的只是我腦中想到的幾件事。就像大多數的臭味一樣,這些並不總是錯的,但應該總是讓你思考。
未來不是 NoSQL,而是多語持久性
關於企業中資料儲存未來的資訊簡報,主要寫給參與應用程式開發管理的人員。說明為什麼關係資料庫一直是主流,為什麼 NoSQL 對此假設提出挑戰,並勾勒出多語持久性的未來,在其中將根據應用程式的不同需求使用多種資料儲存技術。
SE Radio Podcast 討論領域特定語言
Thoughtworks CTO Rebecca Parsons 加入我,她是 DSL 書籍的貢獻者,與 Markus Völter 討論 DSL。我們討論什麼是 DSL、內部和外部 DSL 之間的差異,以及你應該(和不應該)使用 DSL 的時機。
慈善程式碼競賽
在過去幾年,我的幾位同事一直在組織程式碼競賽活動,讓開發人員齊聚一堂,為慈善事業撰寫軟體。一個很好的例子是紐約定期舉辦的程式碼競賽,專門處理 RapidFTR。克里斯喬治是 ThoughtWorker,任職於紐約,他協助在 2010 年 8 月於紐約組織了一場一次性的活動。該小組當天完成的工作不如預期,但在事後於酒吧中決定嘗試更定期地聚會。從那時起,他們每週都會聚會。這是一個小團體,仍然主要是 ThoughtWorkers 和朋友,核心成員 3-4 人,當我們在城鎮有大型專案時,人數會增加到十幾人。(克里斯很樂意有更多人加入該小組,所以如果您有興趣,請寄電子郵件給他。)
許多人發現這些活動是一種令人愉快的管道,可以將我們的技能用於我們認為比許多日常工作更令人滿意的目的,同時也是學習新技能和向不同群體學習的方法。因此,我想分享我們關於如何設定一個活動的想法。
聚合導向資料庫
當我們處理 精餾的 NoSQL 時,第一個浮現在腦海中的主題之一是 NoSQL 資料庫使用與關聯模型不同的資料模型。我所看過的大部分來源至少提到了四組資料模型:鍵值、文件、欄位家族和圖形。檢視此清單,前三者之間有很大的相似性 - 它們都有一個基本的儲存單元,是一個緊密相關資料的豐富結構:對於鍵值儲存,它是值,對於文件儲存,它是文件,對於欄位家族儲存,它是欄位家族。在 DDD 術語中,這組資料是一個 DDD_Aggregate。
多元性失衡
雖然我們很容易習慣它,但顯而易見的是,軟體開發界在多元性方面有一些嚴重的問題。我的意思是,與一般人口相比,我們在人員比例方面有一些顯著的差異。最明顯的差異之一是女性比例低,這在全世界都是如此(儘管在中國明顯較少)。在我花費大量時間的美國,非裔美國人的缺乏也很明顯。關於為什麼會存在這種失衡以及可以採取什麼措施,已經有很多文章寫過。但這裡我想專注於一個更基本的問題 - 這重要嗎?
NoSQL 定義
當我們開始著手撰寫 精餾 NoSQL 時,我們就面臨一個棘手的難題 - 我們在寫什麼?什麼才是 NoSQL 資料庫?對於這個概念沒有明確的定義,沒有商標,沒有標準組織,甚至沒有宣言。
關於 SOPA/PIPA 的公開信給 Pearson
當我們得知我們的出版商 Pearson 是有爭議的 SOPA 立法的支持者時,Jez Humble 和我寫了一封公開抗議信。這封信在發表後,有其他一百位 Pearson 作者共同簽署。