淺談我對 Domain-Driven Design 的理解和 Rails 中的實作

Domain-Driven Design (DDD)是一門不明覺厲的軟體架構設計理論,本文整理了我的理解,以及在 Ruby on Rails 中怎麼派上用場。

我發現 DDD 每個人看到的重點都不一樣,我到現在還是覺得有種瞎子摸象的感覺。

我想這是因為 DDD 是個大雜燴,把軟體需求管理、大架構、小架構 在同一個理論下解釋。因此三個部分,看你愛講哪一塊,每個人看的重點不同。

1. 和領域專家的共通語言,重點放在與領域專家的溝通 。我認為這一塊就是需求管理、軟體規格、建模方法等。有很多其他書(例如 User Story Mapping)跟這部分重疊了,講的也比 DDD 詳細完整。

2. 大架構戰略層次: 拆解不同領域,例如用 microservice 來做,或是用 Modular 來做(下述) 。我認為這一塊是 DDD 比較精彩的部分,也是我認為最重要的部分。

3. 小架構戰術層次: 例如 Service Object。我認為這一塊偏向物件導向理論,我覺得也不是重點,有很多其他講物件導向的書在講了,例如 SOLID 和各種 Design Pattern 等等。用了這些招數,也不表示就是 DDD。這塊還有出一些很進階的大架構常跟DDD一起討論,例如 Hexagonal Architecture, Clean Architecture 等等,但我覺得都太難理解導入了,已經遠離DDD的本質。

閱讀全文〈淺談我對 Domain-Driven Design 的理解和 Rails 中的實作〉

郝旭烈專案管理 讀後感

都已經是很有經驗的的軟體工程師了,參與過很多軟體專案,對於 agile 敏捷式專案管理也都看過N遍了,對PM還能有什麼新的體會嗎?

但我還是一直好奇非軟體業,是如何做專案管理? 這本算是入門書,也不是針對軟體專案。但卻有作者特別的本質見解,用生活化和接地氣的描述專案管理,而不是照抄敏捷宣言和吹噓 Scrum 作法。

雖然有些金句不是很喜歡,例如作者定義專案管理是 玩一場從不確定到確定的遊戲,這句我反而就不太喜歡,哈。

不過金句還是不少的:

  • 以前技術不好只能接受 “最終可見” 的結果,現在技術可行,當然是盡快 “最小可用” 的 敏捷式專案管理 比 瀑布式專案管理 好
  • 朝夕令改本來就是常態,既然過程不確定,那麼改來改去的修正,當然是個常態
    • 如何讓大家調整心態面對?
      • 知其然,知其所以然: 讓大家都知道原因
      • 既然改,大家一起來: 讓大家一起想對策
  • 專案經理
    • 與其在他人身上找問題的答案,不如建議一個解決問題的系統
    • (面對跨部門的專案) 降低成員現有工作負擔、幫助成員重新和直屬老闆排序工作內容、幫他留白他才有時間參與專案。解決最基本的工作壓力和時間管理問題,是最直接的。
  • 沒有任何數字的話,很容易落入主觀判斷,而非客觀事實。有數字大家才能知道事情嚴重性,是否需要討論。
  • 數位轉型: 數位是紀錄客觀數字,轉型是為了測試更好的執行方法
  • 不是足夠強大才能解決問題,而是不斷解決問題才能足夠強大
    • 即使失敗,也只是暫時停止成功。因為沒有經歷過那個階段的養成,本來就不容易一下子達標
  • 別抱怨老闆改來改去沒有提前告知了,因為從來都是員工向老闆報告的。要定期主動找老闆聊天,一是要報告、二是要了解老闆有沒有新的資訊。
  • 最後一章談如何跨部門成立專案團隊的秘訣: 除了主攻的專案成員,還需要安排助攻的成員,要幫忙主攻成員分擔他本來的例行工作

不過可惜的是,作者並沒有具體舉例專案內容有哪些,不同類型的專案有不同的關注點,我想多看看這些見解。像我本身對軟體開發專案比較有經驗,但比較難想像其他不是開發的專案會是什麼內容跟管理秘訣? 例如流程改善的專案、行銷推廣專案,實作內容會是什麼? 除了產品開發,還會有怎樣類型的專案呢?

同個作者還有寫 財務思維課、商業獲利思維課 兩本書,都是類似的生活化口語風格,喜歡的話可以接著找來讀。

大器可以晚成 讀後感

書前半花了很大篇幅說這個社會對英雄出少年太執迷,而且各種智力考試評量是個錯誤,社會對大器晚成者太苛刻。每個人都有自己不同多元發展步調,作者論述大腦發展要到25-30 認知能力才算完整,因此有人得是大器晚成。

大器晚成的優勢是智慧增長: 智力分兩種。流質智力: 不受過往知識所限,推理與解決問題、辨識抽象能力、運用邏輯歸納與演藝,這種能力在早年最達到高峰,30歲之後開始下降。晶體智力: 運用技能、知識和經驗,包括職業知識和業餘愛好,中年之後這種能力仍會持續上升。兩種智力相加減,可能在 40-60 之間才是高峰。

作者給大器晚成者的建議是: 若沒有熱忱就放棄吧 !…. orz 因為人的意志力是有限的,放棄反而有益健康,結果通常更好。

快速失敗,越常失敗,越快成功。少考慮沈沒成本。

大器晚成者更容易自我懷疑(就是冒牌者症候群吧)。這需要搭配 自我效能 才是好事: 個人對自身能否利用所擁有的能力去發展策略、完成任務、憑各種努力取得成功的自信程度 ã€‚
如何提供自我效能? 透過自我對話,重設框架(我覺得就是正向思考而已)
如何處理自我懷疑 ? 透過自我疼惜,知道自己其實已經夠好了。(不就是自我感覺良好?)

換環境是個人再造的辦法,因為舊環境的人已經對你有偏見。要去能支持天份、性情和熱忱的環境。雖然有些人在任何環境都能成功,但有些人就是需要特定環境。創業也算一種自己打造環境的方式。

最後一章又強調恆毅力的重要,成就大事需要堅持 (但前幾章明明要你放棄,咦)

作者結語說他書還沒寫完就跟朋友分享了新書計畫,結果很多人都說他們也是大器晚成,包括作者認為明明早年就很優秀的學霸朋友,哈哈。我覺得真是好笑的橋段,結果人人都是大器晚成,因為沒有成功人士會覺得自己一帆風順,都是經歷過種種挫折和困難,所以當然都會覺得是很晚才成功的。畢竟承認太早成功,不就是在表達自己現在是在走下坡嗎… XD

看完才注意到書名真的叫做 “大器可以晚成”,而不是 “大器如何晚成”。書的內容主要在講 “你可以”,而不是教你 “如何”大器晚成。

好吧,果然還是一本勵志書。

想看正常的純雞湯讀後心得的話,可以看這篇 《大器可以晚成》成為自己喜歡的樣子,我的讀後心得

窮查理的普通常識 讀後感

非常有名的一本書,很多人推薦。因為有點厚所以擺在書架上好幾年,其實不難讀。

作者有些論點我覺得是非常武斷的,例如關於公平正義、對於批評軟科學等等。我甚至覺得他沒有好好了解別人的領域,就亂下結論瞧不起別人,而且他也不學習新的東西,就妄下結論(包括他對比特幣的看法,以及他到最後一篇收錄的演講2007年當時還不會用電腦)。不過他已經快100歲惹,本書的演講內容當時也有 72~82 歲吧,想起來還是非常厲害。

作者強調跨領域學習和多元思維模型,特別是心理學領域很重要,這些論點還是很吸引人的,目標掌握100個模型!

還有投資不需要每個機會都抓到,重點是把握你知道的機會! 這也是為何他這麽自以為是卻還可以賺大錢的原因,覺得懂的地方囂張,但也不做自己沒把握的事情。

其他一些我的心得:

閱讀全文〈窮查理的普通常識 讀後感〉

升級定位24講 心得摘要

原先認為品牌就是高大尚的東西,有錢的公司才能玩。看了馮衛東的升級定位課程之後,覺得小品牌也能有小品牌的玩法,那就是要實用。

這書教的是品牌經營的乾貨知識,非常實用的告訴你原理和應該怎麼做,哪些不要做,更精彩的是舉例,不斷打臉一些企業跟品牌,看的拍案叫絕。

看完最大的收穫是 “品牌形象論” 是不OK的,你必須假定潛在客戶對你的品牌一無所知,而品牌形象廣告因為缺乏品牌三問的答案,是低效的溝通。只有家喻戶曉的領導品牌,才可以用形象廣告來保持存在感,或是打造彰顯價值。

以前覺得品牌就是做形象,看完這課才了解的品牌要如何使用。品牌戰略應該要去佔據一個價值獨特的定位,這個定位必須基於某個品類。換品類就要換品牌。而一切運營活動都應該指向品牌的定位。

另外就是品牌跟企業是兩回事,品牌就該專攻一個定位,如果企業要持續擴張去做不同事業,應該發展不同品牌,而不是在同一個品牌下去亂搞。

書的重點涵蓋:

定位理論

  1. 商業競爭的終極戰場是顧客心智
  2. 競爭的基本單位是品牌而非企業
  3. 品牌是品類及特性的代表

品牌三問

1.「你是什麼」——明確品類
2.「有何不同」——找到你的定位
3.「何以見得」——信任狀

接著講
品類命名、品牌起名、廣告用語法則
品類可以分成三大類: 產品、渠道、導購,各有不同的特性
品牌戰略五階段節奏

書的內容很多,以下是一些重點節錄。知乎上也有人寫了讀書筆記。
我看的是高維學堂的版本,後來作者也有出書,目錄結構一樣。

1. 企業經營的核心成果是什麼?

企業經營的核心成果在顧客的心智中,左右著顧客的選擇,這就是品牌。

舉例: 王老吉 v.s 加多寶,分手時前者什麼都沒有只有品牌跟配方,但後來王老吉還是贏了。只靠產品主義不行的(靠網路也不能解決的,競爭對手可以用水軍差評你啊,網路信息量太多,客戶最後也只是靠品牌來選擇),還需要會用品牌宣傳,在顧客心智中建立極致的品牌認知,不然產品做再好只是產生內部成本而已。

閱讀全文〈升級定位24講 心得摘要〉

極簡市場營銷 心得摘要

很不錯的一本基於科特勒理論的行銷書籍,很喜歡這本的編排架構,光是目錄就是整本書的精華摘要 。書名叫做極簡,內容果然也沒有廢話太多,幾乎都有抓到行銷學的關鍵重點。雖是從行銷學理論來當作主結構,但作者還加上了現代數位營銷應該要談的成長駭客、數據指標跟團隊架構 。書中搭配理論的案例也不錯,稍微可惜好幾個舉例都重複用作者做的 TurboABC 就是了。

  • 作者推薦行銷最重要的五本經典
    • 科特勒 行銷管理
    • 定位 Al Ries, Jack Trout
    • 整合營銷傳播 Heidi Schultz
    • 大數據 Schonberger
    • 成長駭客攻略 Sean Ellis

第一章 全局

  • 行銷不是一些點子跟創意,而是一套思考和解決問題的方法和工具體系
    • 數千萬預算,不是給一些零散點子和打法
    • 而是能知道要關注什麼、先做什麼後做什麼、發力點在哪裡、如何打敗對手等等
    • 規模化的市場營銷實戰,需要兼有完整專業體系,和落地打法的支撐
  • 行銷是 瞭解客戶需求 並滿足客戶需求,可分為八大模塊
    • 了解客戶需求
      • 市場洞察: 了解環境、行業、競爭者、客戶
      • 客戶細分 : 因為客戶是多樣化的
      • 目標客戶選擇 : 找到能發力的對象
      • 定位與品牌: 要佔領客戶心智的哪個位置
    • 滿足客戶需求
      • 市場營銷組合 : 指4P
      • 量化指標和結果追蹤: 設定目標
      • 團隊架構與考核指標
      • 黑客增長: 用實驗驅動增長、提升效率
  • 科特勒講了七個模塊,整合營銷傳播講第四個P
  • 定位和成長駭客出自 實戰派
  • 規模化的市場營銷,需要兼有 專業體系 和 落地打法
閱讀全文〈極簡市場營銷 心得摘要〉