原创 讓你的軟件永生的7個規則

生命會逝去,但一個好的軟件不會。 要想寫出一個“永垂不朽”的軟件,關鍵是你能否遵循以下規則: 1.模塊化 規則1:模塊化。在一個模塊中找bug總比在整個代碼庫裏找簡單得多。 人腦是極其複雜的生物,可以設計出能處理複雜問題的CPU,

原创 A year with Go

So, it has been a year I’ve been working with Go. Last week I removed it from production. Re-reading my impressions a

原创 The Log

前言 這是一篇學習筆記。 學習的材料來自Jay Kreps的一篇講Log的博文。 原文很長,但是我堅持看完了,收穫頗多,也深深爲Jay哥的技術能力、架構能力和對於分佈式系統的理解之深刻所折服。同時也因爲某些理解和Jay哥觀點吻合而略沾沾

原创 KAFKA分佈式消息系統

Kafka[1]是linkedin用於日誌處理的分佈式消息隊列,linkedin的日誌數據容量大,但對可靠性要求不高,其日誌數據主要包括用戶行爲(登錄、瀏覽、點擊、分享、喜歡)以及系統運行日誌(CPU、內存、磁盤、網絡、系統及進程狀態)。

原创 C++的函數重載

函數重載的重要性不言而明,但是你知道C++中函數重載是如何實現的呢(雖然本文談的是C++中函數重載的實現,但我想其它語言也是類似的)?這個可以分解爲下面兩個問題 1、聲明/定義重載函數時,是如何解決命名衝突的?(拋開函數重載不談,usin

原创 比CMD更強大的命令行WMIC

先決條件: a. 啓動Windows Management Instrumentation服務,開放TCP135端口。 b. 本地安全策略的“網絡訪問: 本地帳戶的共享和安全模式”應設爲“經典-本地用戶以自己的身份驗證”。 1. wm

原创 你真的很熟分佈式和事務嗎?

微吐槽 hello,world. 不想了,我等碼農,還是看看怎麼來處理分佈式系統中的事務這個老大難吧! 本文略長,讀者需要有一定耐心,如果你是高級碼農或者架構師級別,你可以跳過。 本文注重實戰或者實現,不涉及CAP,略提ACID。 本文

原创 分佈式發佈訂閱消息系統 Kafka 架構設計

我們爲什麼要搭建該系統 Kafka是一個消息系統,原本開發自LinkedIn,用作LinkedIn的活動流(activity stream)和運營數據處理管道(pipeline)的基礎。現在它已爲多家不同類型的公司 作爲多種類型的數

原创 github優秀開源項目大全-iOS

前言 本文旨在蒐集github上優秀的開源項目 本文蒐集的項目都是用於iOS開發 本文會持續更新… 完整客戶端 ioctocatgithub的iOS客戶端,目前開源代碼是V1版本,V2版本在appstore上可以下載 ChatSec

原创 Erlang語言的作者教你如何入手

我是個守舊派 — 你不需要任何強大的開發工具。只需要一個文本編輯器和一個erlang shell。 打開你的文本編輯器: 輸入下面的程序。 -mod

原创 分佈式系統設計原理與方案

  一直在思考分佈式系統設計的問題,業務對象原封不動的情況下部署在客戶端和服務器端,可以根據配置文件選擇是連接服務器還是連接本地的數據庫,這個問題讓我絞盡腦汁,我總是設想的客戶端與服務器端通信的方式是最低端的Socket。花了兩個晚上研

原创 網站的消息通知系統設計漫談

現在的很多網站都有消息通知系統,比如新浪微博頁面右上角的小黃籤,比如Facebook頁面左上角的Notifications。但是消息通知系統的說法是個籠統的概念,我理解的其本質功能是網站把某些對用戶有價值的信息及時告知用戶。比如常見的SN

原创 int main(int argc,char* argv[])詳解

argc是命令行總的參數個數       argv[]是argc個參數,其中第0個參數是程序的全名,以後的參數      命令行後面跟的用戶輸入的參

原创 爲什麼我希望用C而不是C++來實現ZeroMQ

開始前我要先做個澄清:這篇文章同Linus Torvalds這種死忠C程序員吐槽C++的觀點是不同的。在我的整個職業生涯裏我都在使用C++,而且現在C++依然是我做大多數項目時的首選編程語言。自然的,當我從2007年開始做ZeroMQ時,

原创 Storm源碼淺析之topology的提交

    原文:http://www.blogjava.net/killme2008/archive/2011/11/17/364112.html