David Fowler :actor框架為什麼沒能流行起來?
眾說紛紜:
如果您正在尋找更好的方法,並且已經找到了CQRS/ES,那麼它們是多餘的。
如果actor用作聚合或事件投射,可以很好地與CQRS/ES一起工作,我過去曾在奧爾良做過。
因為這與人們被教導為Web應用程式的好東西(無狀態計算)的模型相反?如果一個人的背景全是關於將狀態問題推送到資料庫的,那麼可能很難理解Actor為什麼有用。
抽象得過於複雜。構建一次性或一次性應用程式並不容易。這需要大量的學習投入。
我正在使用Actor系統。血腥的很難除錯。為什麼狀態更改發生或沒有發生。為什麼一條訊息從未得到答覆。DI不能很好地工作。特別是對於MS DI或EF。由於沒有作用域(我們將作用域定義為訊息),因此必須為EF進行復雜的操作。
大多數應用都是CRUD。人們編寫應用程式將資料扔到資料庫中,並讓它照顧併發性(無論是天真還是樂觀)
而且仍然大多數人會弄錯它並導致資料不一致。我都程式碼邏輯推理沒有問題,但還是不確定,不如將資料扔到資料庫中並假定它將解決所有併發問題。
在我的經驗(非常有限)中:它除錯困難,可組合性有限
因為雲原生工具贏了。雲產品中存在建立群集,服務發現,pub sub,監視,PaaS託管等功能。Actor框架中存在零退出策略。
難以引導(前期設計成本高,而“我將開始在此Web應用程式中丟擲端點”要簡單得多)和除錯困難是兩個主要原因。
如果在水平擴充套件時建立狀態服務,則會變得非常複雜。
在大約4年使用.NET(fw和Core)中的actor框架構建各種應用程式後,我的個人感覺是:由於缺少呼叫棧,並且僅透過呼叫固有的清晰介面/型別安全性,很難除錯應用程式傳送訊息。
與傳統應用程式(DDD,洋蔥架構)相比,其優勢尚不清楚。難以推斷整個系統狀態。強制執行特定的程式設計方式。模型並非每個人都喜歡或適合。想想如何將所有現有領域模型重構到一組Actors?
強烈推薦 http://nact.io
這是程式設計思考的正規化轉變。以我的經驗,大多數人對OOP並不完全精通,因此正規化轉換會帶來額外的提升。
定義一個類專門來傳送資料,這有點設計過頭,這是一種思考問題的方法,這是大多數人不習慣的另一種方式。但是,如果您的解決方案很複雜並且需要可伸縮性,那就太好了。
我們不需要Actor帶來的額外框架複雜性。我認為,只有在複雜性和併發性達到一定程度時,它們才能帶來收益,而收益要超過模型的成本。在90%的情況下,crud很好。
actor的組合不及函式。如果將事情解耦得太多,則可能會失去型別安全性的許多好處。
相關文章
- 為什麼Lisp沒有流行起來Lisp
- 為什麼純函式式語言至今無法流行起來?函式
- 為什麼線上辦公套件越來越流行套件
- 全域整合與鏈路興起下,短劇能為品牌帶來什麼?
- iPadPro為什麼沒能拯救iPad?iPad
- 為什麼我的mysql配不起來MySql
- 解析:Python為什麼這麼流行?Python
- 起、承、轉、合全賦能:華為應用生態為開發者帶來了什麼?
- 為什麼使用Scrapy框架來寫爬蟲?框架爬蟲
- GoCN為什麼沒有使用beego來搭建呢?Go
- 為什麼C++ 並沒有"王者歸來"?C++
- 為什麼移動辦公APP火不起來APP
- 前端ui框架為什麼沒有一枝獨秀前端UI框架
- 解析大資料能為媒體帶來什麼?大資料
- 為什麼網站使用CDN加速這麼流行?網站
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 低程式碼平臺能為企業帶來什麼?
- TensorFlow Research Cloud能為你帶來什麼好處?Cloud
- 我們們一起來談談,redis為什麼快?Redis
- Twitter能為你做什麼?
- 為什麼Hook沒有ErrorBoundary?HookErrorORB
- 為什麼Google沒有客服?Go
- 為什麼要使用框架框架
- Python能幹什麼?為什麼會火?Python
- 說了這麼久的“Linux 桌面年”,為什麼還沒來?Linux
- 除了“好玩”,電子遊戲還能為我們帶來什麼?遊戲
- 工作流自動化能為企業帶來什麼?
- 軟體能為我們帶來什麼???今天算開張!
- “區塊鏈”技術為賦能數字化金融能帶來了什麼?區塊鏈
- 沒了IDE,你的Java專案還能Run起來嗎~IDEJava
- Python能幹什麼?為什麼會這麼火?Python
- 什麼是資料分析,資料分析能為企業帶來什麼?_光點科技
- 程式設計沒點為什麼,生活就是十萬個為什麼程式設計
- JavaScript 為什麼能活到現在?JavaScript
- 為什麼Docker能迅速躥紅Docker
- 我能為開源做些什麼?
- Twitter為什麼沒有當機?
- 為什麼選擇Guice框架GUI框架