Tanenbaum對於構建產品,網路和生活的一些建議
標題可能有些誤導,技術上說此文是Andrew Tanenbaum和David Wetherall關於RFC 1958的改變。此外,此文也簡化了兩位大師的思想(關於如何設計一個成功網路協議的原則)。
然而,我相信他們的思維大綱不但更具有普遍性,而且也適用於構建成功的產品,甚至包含了生活的哲理。
1.保證它能工作。不要釋出設計或者標準直到多個原型已經成功的互相互動了。有太多時候,設計者一開始寫了1000頁的標準,使它通過了稽核,然後發現它有著根深蒂固的缺陷而且不能工作。然後他們寫了1.1版本的標準。這不是一個好主意。
2.保持簡單。當你有疑惑的時候,使用最簡單的解決方案。奧卡姆在14世紀的時候提出了這條原則(奧卡姆剃刀)。用現代人的話講:如無必要,勿增實體。如果某一個特性不是最基本的,拋棄它,尤其當這個特性可以通過組合其他特性來達成的時候。
3.選擇明確。如果有多種方法能夠達成同一件事情,(只)選擇一個。有兩個或更多的方式去做同一件事情只會帶來麻煩。標準通常有多種選擇或者模式或者引數,只因為幾個有權利的組織堅持各自堅持他們的方法才是最好的。設計者應該強烈地抵制這個趨勢。果斷對多選說NO。
4.使用模組化。這個原則直接導致了協議棧思想的產生,每一層協議都獨立於其他層協議。通過這種方式,如果環境中某一個模組或者協議層發生改變,其他的部分將不會受到影響。
5.預估異構。不同的硬體,傳輸裝置和應用程式都會出現在任何一個大型的網路當中。為了處理他們,網路設計必須保持簡單,常規和靈活。
6.避免靜態選項和引數。如果某些引數是必須的且是不固定的(比如:最大網路包長度),最好的方式是讓傳送者和接收者通過協商來得到一個值,而不是預先定義幾個固定的選擇。
7.追求好的設計;不要過分苛求完美。通常,設計者們都有一個不錯的設計,但是這個設計卻不能處理一些超乎常理的特殊情況。與其對設計修修補補,設計者們應該繼續這個良好的設計,同時將擔子交給那些有超乎常理需求的人自己去處理。
8.嚴於傳送寬於接收。換句話說,傳送那些嚴格遵從標準規範的包,但是容忍那些可能不完全遵守規範的回包,並且嘗試去處理他們。
9.思考擴充套件性。如果一個系統要高效地處理數百萬主機和數十億使用者,沒有任何一箇中央集權的資料庫有能力承受的了,負載應該儘可能地均勻分佈到所有可用的裝置上。
10.考慮效能和開銷。如果一個網路的能行低下或者開銷高昂,那麼沒有人會去使用它。
去iTran樂譯參加活動,讀好文章!
相關文章
- Suggestion(搜尋建議)產品和技術
- 對於新成立的網路部門的構建感想
- 【功能建議】鑑於人人網對於80後和90後的影響,建議增加人人網的分享功能
- 對做“網際網路產品”的一些想法
- [技術] CDM技術分析和產品選擇建議
- 關於學習的一些建議
- 關於網際網路創業的三個建議創業
- 送給從業網際網路的學生一些建議
- 針對行動網路開發的優化建議優化
- 網路媒體對企業人力資源(HR)的影響和建議
- 陶哲軒對數學學習的一些建議
- 對SGA和PGA的優化建議優化
- [筆記]關於調整的一些建議筆記
- 構建Docker Image的五個建議Docker
- 大城市求職生活建議薦求職
- 生產環境中使用Docker Swarm的一些建議DockerSwarm
- 對程式設計師職業的一些建議程式設計師
- 圖靈社群改版的一些建議和思考圖靈
- 關於介面可維護性的一些建議
- iOS開發學習路徑的一些建議iOS
- 閘道器防毒產品選購建議與分析(轉)防毒
- 對程式設計師職業的一些建議--轉程式設計師
- 零信任安全網路構建
- keras構建神經網路Keras神經網路
- HarmonyOS:基於Web元件構建網路應用(1)Web元件
- Oracle學習的一些建議Oracle
- 用智慧財產權保護專案,構建產品的護城河
- 網際網路時代,6年架構師針對web前端小白,作出的職業規劃建議架構Web前端
- 優化 Webpack 構建效能的幾點建議優化Web
- 優化Webpack構建效能的幾點建議優化Web
- 000:自我介紹(對於“構建之法”的希望和目標)
- 對於嵌入式初學者建議讀的書
- 網路投遞簡歷的10個建議
- 七條對於中國大學軟體專業同學一些建議
- 網際網路產品運營入門談:怎麼做內容建設?
- 關於程式碼版本管理的思考和建議
- 產品觀察家:社交網路的邏輯、產品和未來
- 對網路中安全審計產品的理解