一周XX思考(第11期)
大家好,這里記錄,我每周碰到的,或想到的,引起觸動,或感動的,事物的思考。這是 [一周XX思考] 的第11期,不見得都對,但開始思考總是好的。
極客時間與紙書
寫書的時候,有的部分知識,為了“普世”的正確性,也就是不愿引起分歧性爭議,有些作者就會寫的很像“中醫”,看了之后吧,“吃不好,也吃不壞”。
?
極客時間這樣的不太一樣,因為它底下有評論,而且不是一個人來評論,這樣在眾多學習者的互動和“監督“中,會逼迫作者去糾正那些“偷懶的地方”,這里區別于紙質書的重要一點是,可以迅速更正,這樣偷懶的作者也就會寫的更落地一些了。
?
另外呢,很多別人提的那些疑問,可能也是超出了你的理解范圍的,剛好可以補充學習。
?
但其實這可能也會有個弊端,極客時間上的作者往往會被要求寫的”多夠一步“,如果寫出來的知識點咀嚼的太碎,也就喪失了思考空間。
?
不知不覺間,我也”中醫“了。
?
什么是好的系統
即使你開發的軟件系統經過測試沒有發現一個BUG,那么你也不能說你設計的軟件架構或者你寫的代碼就是好的。
?
因為如果這套程序不便于擴展、不便于修改,我們說它同樣不是一個好的系統或者不是好的代碼。
?
考慮好,更多的是擴展的便利性,畢竟你要承接不停的需求。
?
沒有BUG只是60分。
?
按下葫蘆起來瓢
技術方案有時候就是這樣的,按下葫蘆起來瓢。
?
拿微服務的例子,它解決了原來中心化的問題,將功能系統從宏觀上模塊化,而且每個模塊化的系統都是自治的(按下了葫蘆),但是呢,這樣也帶來了,微服務治理的困難(起來了瓢)。
?
再比如,你做無狀態化設計,需要將應用服務器上的狀態去掉,那么就必須要把這個狀態遷移到別處,比如遠程的分布式緩存上(按下了葫蘆),不過這也增加了緩存的成本,要多考慮熱點的問題(起來了瓢)。
?
還有BFF的例子,APIGATE 的例子 等等,當然BFF也是一種特殊的網關。
?
在技術上,沒有雙利解。
?
成本不會消失,只能轉移。
?
貧血模型是怎么流行起來的
我們都知道貧血模型,它們僅僅是將關系數據庫中的數據模型映射到了對象而已,也就是那些對象都缺少了內在行為,就顯得"營養不良"。
?
那么造成這種結果的原因,或者讓這個方式流傳的原因是什么呢,我最近看到《實現領域驅動》這本書的一段描述,覺得很有道理。
?
軟件開發的學習過程中,大部分人剛開始的時候,都是參照書籍上或者博客上的示例代碼來學習的,不過通常情況下這些示例代碼只是用盡可能的簡單方式來描述清楚一些概念或者把要表達的內容描述清楚即可。
?
這些代碼起初也并不打算非要遵循那些較好的設計原則,這些示例代碼中就包含了大量的getter和setter方法,于是這些包含getter和setter的代碼每天被我們原封不動地來回復制。
?
貧血模型也不是不好,他也有適用的場景,那就是業務復雜度較小的業務環境中,那么如何識別一個業務場景是復雜還是簡單呢。
?
業務復雜度的判斷方法
仍然是在《實現領域驅動》這本書中給了些指導性的建議。
?
如果我們的軟件就是以數據為中心,所有的操作都是CRUD,并且沒有元數據的二次計算,那么這樣的軟件系統都是業務簡單的,當然,這些系統也無需要借助DDD。
?
如果,系統有剛才說到的二次計算,但是呢,系統里面所有的業務操作少于30個,這里的業務操作怎么理解呢,就是我們當時梳理業務需求的時候的用戶故事或者叫做用例流。
?
那么,你可能,要問了,30怎么來的,經驗值,這不是你沒有參考么,給一個經驗值參考。
?
如果,系統里面的用戶故事大于30個,基本上這個系統軟件的業務復雜度就暴露出來了,這就已經數據業務復雜的系統了,當然了,按照書中的說法,我們就要采用DDD了。
?
也就最后用充血模型了,DDD提倡充血模型。
?
解決問題才是王道
無論你有什么本事,最終都是靠能否解決問題來驗證的,更何況那種本事到底算不算上什么本事呢。
?
比如你有能力從外面請來一位專家,介紹了相關領域的知識,那么這些知識能否幫助到你的團隊,去實際落地,有沒有解決當前團隊面臨的問題呢,如果沒有,也只是拓展了下大家的知識面而已。
?
比如你有“渾厚”的理論知識功力,講的邏輯清晰、結構合理、思維飽滿,但能否落地呢,或者當前不能落地,能否階段性的落地呢。
?
如果都不能,說狠一點,也只是個“花瓶”,或者高大上點,成為“吉祥物”。
?
橫向工作
你一個猛子扎進去,埋頭苦干,最終實現出一個業務功能,進而上線,類似這樣的工作是縱向,單個部門參與,或者是單個組參與,或者是外部依賴不用你協調。
?
反之,需要你協調,溝通、判斷,跨多個組織,多個業務線,多個形態,這些都是橫向工作,當然部門內部也有橫向,只不過看“切面”的大小。
?
橫向工作,根據目前我的認知判斷,需要的技能,我總結下來有三力:專業力、思維力、反應力。
?
如果你是一位架構師。
?
專業力:需要你對業務背景以及將來所依賴的架構方向和基礎都要有掌握,尤其是架構與架構之間的邊界、依賴,這些都有依靠你的專業力來判斷出來。
?
思維力:那就是要有高度和廣度了,甚至就是需要立體起來,這里面有時候,不僅僅是技術層面的溝通,而是戰略層面、意識形態層面的內容,對一個問題的認知要能夠高度出來,這里的高度是動詞。
?
反應力:這個就涉及到些,
這個反應力又分為兩層,一層是響應外部工作的能力,比如別人對你工作進度的依賴,你要能夠及時在內部及時組織起來,并把別人依賴的進度反饋出去。
?
另外一層,是你在橫向的過程中,精確一點講是在跟跨部門溝通的時候的自身反應能力,說的江湖一些,就是不要掉坑里。
?
生活二三事
?
一事。
?
我從某個時刻開始,一直控制著平時發朋友圈的次數,也是想著把自己的思考、學習心得等寫在比如這期的XX思考中,捏在一起,發出來。
?
不過,由于我發的運動健身的朋友圈次數少了,甚至不發了,結果最近跟不少朋友溝通的時候,他們都會問起,現在是否還在運動。
?
于是,我下意識的想到,我偶爾發一次運動健身的朋友圈,是不是能給一些朋友帶來某種力量呢,當然也可能我一廂情愿了,不過,我想,這畢竟也是正能量的事情吧。
?
二事。
?
上周,拉了一個幾人的微信群,約好了周末聊點事情,由于是先前大家定下的時間,不巧,有一個朋友沒有辦法參加。
?
晚上的時候,這個朋友在群里發了一個紅包,另外說了些表達歉意的話。
?
我注意到的時候,已經過去了一段時間,我第一想法是這個紅包,一定要領,為什么呢,領了之后可以減少這位朋友由于未能參加約會而帶來的“負罪感”。
?
而不是說,不去領,心里都想著,沒事,沒事,我們沒有在意,但是為何不用行動表現出來呢。
?
哈,我給自己搶紅包,還找了個借口。
?
三事。
?
早會上,有讀書分享環節,這次有位同事分享了關于要思考的情節,原描述是,如果一個人忙,忙的無暇思考,肯定是不好的,結論是,要留出時間來思考。
?
我呢,一直也是這么認為的,人呢,肯定要思考的,比如我寫的這篇就是思考嘛。
?
不過,老板給了自己的觀點,忙,分兩種,一種是被動的忙,一種是主動的忙。
?
如果一直是被動的忙,一味的是在接受工作,機械的完成,時間久了,人就廢了。
?
如果是主動的忙,善于在忙中思考,總結,這種忙是有意義的,在進一步,還能夠把被動變主動就更好了。
?
讀了一點點“閑書”
我看了一點《親密關系》這本書,給大家引薦一段話。
?
親密關系的過程可以分為這樣幾個階段:絢麗、幻滅、內省和啟示。
?
很多人都會覺得奇怪,為什么當初在絢麗期愛的死去活來的兩個人,在幻滅期可以形同陌路或仇人。
?
用最簡單的語言來描述就是,我們通常會把自己從小到大得不到的、未滿足的需求,全部投射在那個愛我們、讓我們覺得特殊的人身上,覺得有了他(她),這些需求都會得到滿足了。
?
關于這點,書中還給了,描述。
?
從人性上來說,我們傾向于保護自我最脆弱的部分,然而這也是造成關系沖突的主要原因。
題圖:葫蘆時刻
總結
以上是生活随笔為你收集整理的一周XX思考(第11期)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssm基于javaweb的医疗健康知识管
- 下一篇: python 的基础 学习第十天函数的