成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

“軟件教父”又開始整理模式了!

開發 開發工具
我在之前的文章中寫過,他是《重構》、《分析模式》、《企業應用架構模式》、《領域特定語言》等一系列知名書籍的作者,他很少談論操作系統,數據庫,網絡這些底層的東西,也很少聽他談什么高并發,海量用戶, 他也沒有開發過什么知名軟件,但是卻被奉為軟件開發的“教父”。

[[348713]]

 Martin Fowler是誰?

我在之前的文章中寫過,他是《重構》、《分析模式》、《企業應用架構模式》、《領域特定語言》等一系列知名書籍的作者,他很少談論操作系統,數據庫,網絡這些底層的東西,也很少聽他談什么高并發,海量用戶, 他也沒有開發過什么知名軟件,但是卻被奉為軟件開發的“教父”。

[[348714]]

 

如果把軟件分層的話,他其實生活在最上層:

 

這一層擠著很多程序員,因為越往下層,路越難走。必須得能耐得住寂寞,經得起誘惑,對某個領域有著極為精深的研究才可以。

但是Martin Fowler在應用層卻能呼風喚雨,因為他具備一個特殊的能力:擅長把一些軟件開發實踐總結成“概念”。

很明顯,這需要極強的抽象能力。

Martin Fowler最為知名的作品可能就是《重構》,他把軟件編程中各種修改代碼的方法抽象、總結、命名,影響了全世界每一個開發人員。

他還有一本書叫《企業應用架構模式》, Martin Fowler把企業應用開發中的一些最佳實踐分門別類地總結了出來。

比如講領域邏輯模式的“事務腳本”,“表模塊”,“領域模型”,“Service Layer” 等。

講ORM的“單表繼承”,“類表繼承”,“活動記錄”等。

Martin Fowler 絕對是在應用層開發的程序員的榜樣!

前天在瀏覽Martin Fowler的個人網站(https://martinfowler.com/)時,發現了這么一個寶貝:“分布式系統模式”(Patterns of Distributed Systems)。

我不由得心頭一喜:看來Martin Fowler沒閑著,又開始整理模式了,這一次更加宏觀,直接進入了分布式系統!

但仔細一看,略有失望,不是Martin Fowler親自操刀的!是一位叫做Unmesh Joshi 的ThoughtWorks顧問寫的,Martin Fowler給了一些模式方面的指導和幫助。

這兩天看了一下,我覺得質量還是挺高的,比如開篇先講了分布式系統的幾個通用問題:

  • 進程崩潰
  • 網絡延遲
  • 進程暫停
  • 非同步的時鐘

進而引出分布式系統的模式是如何解決這些問題的 。

比如非常經典的Write-Ahead Log 模式,可以用來解決進程崩潰時數據的持久化問題:

 

先把數據當作Command放入持久化的日志文件中,這樣即使KVStore進程崩潰,在重啟以后依然可以從日志中恢復數據。

人家很清楚程序員的交流語言是代碼, 所以馬上給出了簡單的代碼片段來幫助理解細節,真是很貼心。

  1. class KVStore… 
  2.   public KVStore(Config config) { 
  3.       this.config = config; 
  4.       this.wal = WriteAheadLog.openWAL(config); 
  5.       this.applyLog(); 
  6.   } 
  7.  
  8.   public void applyLog() { 
  9.       List<WALEntry> walEntries = wal.readAll(); 
  10.       applyEntries(walEntries); 
  11.   } 
  12.  
  13.   private void applyEntries(List<WALEntry> walEntries) { 
  14.       for (WALEntry walEntry : walEntries) { 
  15.           Command command = deserialize(walEntry); 
  16.           if (command instanceof SetValueCommand) { 
  17.               SetValueCommand setValueCommand = (SetValueCommand)command; 
  18.               kv.put(setValueCommand.key, setValueCommand.value); 
  19.           } 
  20.       } 
  21.   } 
  22.  
  23.   public void initialiseFromSnapshot(SnapShot snapShot) { 
  24.       kv.putAll(snapShot.deserializeState()); 
  25.   } 

現在已經整理出來的分布式系統模式有這些:

 

為什么向大家推薦這個資料呢?是因為網上有很多分布式理論的文章,干巴巴的,看不了一頁就想放棄。

網上也有很多源碼分析的文章,專注于貼代碼,糾纏于細節,讓人云里霧里。

Unmesh Joshi的分布式系統模式則是個很好的平衡:既有理論,又有代碼細節。

如果你是一個剛入行的新手,看這些東西可能有些吃力,因為需要有分布式系統的基礎,不妨先收藏,等待以后再看。

如果是一個經驗豐富的老手,我強烈推薦你去看一看,觀摩下這些大牛們是怎么從各種復雜的場景中抽取出通用的模式的,絕對受益非淺, 你可能有這樣的感覺:這種工作我怎么就沒想到呢?

當然,這是英文的材料, 會有一定的障礙,不過你看了就知道,并沒有用什么高級的詞匯,我列幾句大家感受感受:

Processes can crash at any time. Either due to hardware faults or software faults. There are numerous ways in which a process can crash.

It can be taken down for routine maintenance by system administrators.

It can be killed doing some file IO because the disk is full and the exception is not properly handled.

并不難,對吧?嘗試看一下吧,閱讀英文資料也是一項重要的技能。

鏈接在此:https://martinfowler.com/articles/patterns-of-distributed-systems/

【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2013-09-27 10:44:47

iOS 7用戶

2023-07-18 19:11:21

配置信令系統

2021-09-09 18:12:22

內存分段式網絡

2012-03-17 21:45:02

JavaScript

2023-03-11 22:24:11

2021-11-05 11:10:13

MyBatisSQL查詢

2017-12-28 10:44:08

JavaScript瀏覽器網頁

2023-03-06 10:36:47

2014-07-23 10:19:02

小米4

2023-10-30 22:23:12

Cacherkube版本

2022-12-07 07:35:20

B站裁員隱情

2023-03-10 08:24:27

OOMdump線程

2022-10-17 10:13:58

谷歌云游戲

2020-03-31 16:02:23

戴爾

2021-07-22 07:50:47

刪庫系統數據

2019-05-27 08:09:43

WiFi無線信道上網

2022-11-18 07:34:12

Docker項目目錄

2020-07-30 07:47:32

互聯網

2022-10-14 08:18:07

Guavaweb應用

2023-11-26 09:04:10

Vue性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜久久av | 天天插日日操 | 欧美激情一区二区 | 日韩视频一区二区在线 | 免费一二区| 亚洲精品二区 | 亚洲欧美国产毛片在线 | 国产情侣啪啪 | 亚洲乱码一区二区三区在线观看 | 日本在线视频中文字幕 | www久久爱| 日日天天| 亚洲高清在线播放 | 蜜桃av鲁一鲁一鲁一鲁 | 免费一区二区三区 | 国产在线观看一区二区三区 | 国产激情视频在线 | 欧美精品福利视频 | 天天色官网 | 欧美色专区 | 国产成人精品久久久 | 国产一区久久久 | 久久久91精品国产一区二区三区 | 一区二区亚洲 | 日韩在线小视频 | 国产91视频一区二区 | 久久精品视频网站 | 久久久九九 | 一区精品视频在线观看 | 精精久久| 精品欧美一区免费观看α√ | 成人欧美一区二区三区视频xxx | 国产伦一区二区三区久久 | 亚洲精品一区二区三区中文字幕 | 天天曰夜夜| h视频在线免费看 | 亚洲一区二区三区观看 | 99精品视频网 | 中文字幕一区二区三区四区五区 | 国产精品色哟哟网站 | 欧美激情视频网站 |