都在IT圈子混,為什麼有些人可以成為一流高手,有些人搞了10年研發還只能靠吃老本兒過日子。簡單來說,搞這行兒您得勤奮。特喜歡電影《霸王別姬》中的一句:“要想人前顯貴,您就得背後受罪”。這人吶,就得學會自已個兒成全自個兒。好多DDD初級玩家上來就特喜歡聊“聚合”啊、“框架”啊、“事件溯源”啊,劉震雲先生管這個叫“噴空”。其實他忘了一個重要的事兒:人家之所以能成為高手,那憑得是臺下幾年的“功夫”,靠得是“悟性”,不是光靠噴空得來的。這個圈子沒有傻人,痴人太少。
有些人這輩子也成不了高手,不是不聰明,是“懶”!這個懶包含兩面:一是身體上,就喜歡天天躺在床上刷抖音,搞王者榮耀;二是思想上,不願意思考。這兩類人基本是懶癌晚期,沒救兒。那位問了:“說了半天,搞技術的目標是什麼”?兩詞以蔽之:“有深度”、“有廣度”。總得有些東西可以拿出去顯唄顯唄吧 ?
別人講DDD喜歡上來就告訴你各種概念,我上來就喜歡打擊您。所謂“良藥苦口”,不從根源找到自身問題你也沒法上升至更高的維度對其它人實施降維打擊。“人為萬物之靈”,在DDD這門學問中,“人”的作用是第一位的。因為人是活的,技術是死的,業務是客觀的,能否操縱死的技術對客觀業務進行完美支撐靠得是有血有內有靈魂的您。面對這個花花世界的誘惑,踏踏實實的坐下來鑽研一門學問,您哪知道後面有什麼好事兒等著呢?有這麼一個理兒叫“士人有百折不回之真心,才有萬變不窮之秒用”,您琢磨琢磨是不是這個意思。
說了半天,想要鑽研DDD要應該如何修身呢?概括下來有三點,有圖有真相。這些事兒您都知道未必能做到,路長著呢,“積跬步才得以致千里”。
學會客觀的看待事物是研究DDD 所應持有的態度。看過無數文章,一提DDD尤其是在技術階段,一定是對標書上那套ODD(物件驅動設計,就是“值型別”、“聚合根”那套)方式。我們們不評價其它人的想法,只談個人感受。我其實挺喜歡經典三層的,簡單且直觀;我也搞ODD,拿出來成就感爆棚也挺能唬人。總體而言呢,兩者所用比例大概是7:3。這個選擇不是因為我不會玩兒“實體”、“聚合”,是因為沒必要。如果您接觸過DDD尤其是其戰術部分,我勸您一句:莫要拘泥於書上所定義的形式,過去管這叫“形勢主義”。ODD僅僅是軟體的落地方式之一,寫程式導向的程式碼不代表您的整體系統不是以DDD為指導設計的,這事兒得從巨集觀上看。再說了,DDD兩部分呢,戰略部分才是核心。所以說我勸您眼裡別隻有某個具體的技術,站得高方能看得遠,這叫格局。
就ODD本身而言,複雜且麻煩。就算是一個微服務架構系統,也是由業務複雜度各異的服務或模組構成。您的團隊中,有初級、中級程式設計師,也有不是一般的戰士。讓適當的人以適當的開發方式做適當的功能模組(或服務),安排妥妥的。建個“資料字典”功能也考慮怎麼設計“聚合”,您不累嗎 ?
人都說“文人相輕”,其實程式設計師之間也好不到哪兒去兒,同水平人誰也看不上誰的東西。再說了,IT技術這個東西吧,也沒一個具體的衡量標準,從程式的結果上看其實也沒差個多少。兩者比拼的就是系統在上線後在可維護性與擴充套件性上面誰更高效。
總而言之,想學習DDD學問的您,要注意個人修養的鍛鍊,尤其要務實、客觀,莫要好高騖遠、人云亦云。微服務挺帥、DevOps也比較酷,不一定適合您。畢竟對於我輩之打工人,公司不是我們們家開的。花裡胡哨的後面,那是有成本作為代價的。
這一節講了個人修養,後面我們來分析分析為什麼大家都天天喊著“DDD很難”,下回見。