概述
這一年來讀了讀有關國外大牛和先輩相關的書,最近自己也在做專案架構.見一些同行的言論,有些感觸
有贊同的地方也有不贊同的地方,這裡談談自己的架構觀.
1.架構不是為了玩技術
很多人在玩技術技巧,但架構這東西非作秀,然而一些人在這麼幹,
架構的審核標準第一條:便捷、易維護、適合於需求不斷調整業務場景.
曾經在乙個企業見過這樣的場景:所謂的乙個leader十多年的時間帶領一幫人做乙個簡單的資訊管理系統,
他們所有的一切都一團糟,卻玩起了技術秀--學著別人做ddd.
邯鄲學步的後果--完全在模仿形式,系統隨著需求調整和加增時立即變現出來牽一發動全身.
還有乙個明顯的表現:開發和維護起來的靈活性完全喪失.
架構不是表演、而是為需求和開發人員服務的.
用過async await的朋友,估計會發現微軟設計中的問題:一致性問題,ui程式設計模式下(winform wpf等)和在
純程式設計模式下的實現一致性問題.這不僅讓我想到一直讓人唾棄的asp.net webform,微軟這些年幹了一些荒唐事情(直到vnext的出現).
微軟這些年不行了--這不是我說的,而是一位曾擔任微軟亞洲架構師說的.不要問我是誰,不會告訴你.
因為這幫人在玩技術概念,而不是做好的架構.
2.架構的目的是將軟體工程精簡化
世界上最好的學者總是可以深入淺出的把大道理講給外行聽,而不是故弄玄虛的把簡單的問題複雜化。--數學之美.
就ddd而言,我贊同其中的層次理念,但人們的使用估計多數在邯鄲學步,
我問:你這麼用ddd,完全在套形式呢?還是讓所有的業務都在等著你這麼去使用??
有人贊同我的反問,有人 贊同對方.各種原因不在評說.
只讓大家去思考一件事情:軟體開發中唯一不變的是:業務需求一直在變:調整、增減.
架構的目的在於為需求和開發人員服務.
3.檢驗架構終極考研--現行市場
這些年出了幾個基於瀏覽器的pc作業系統,如谷歌,惠普等??還有類似的手機作業系統如mozilla.
架構理念堪稱完美,但最終都成了邊緣、廢棄的東西.
首先從架構上來講,他們的設計理念確實很完美:
利用html5
1.解決了開發成本問題;
2.解決開發人員稀少問題;
3.解決作業系統本身維護問題;
以上是他們的如意算盤,但他們最終失敗了,他們說之所以失敗---效能和使用者體驗.
但仔細想想,難道一開始他們沒有想過這個問題?不會,絕對不會犯這麼低階的錯誤,
無論怎樣都考慮過這個問題,至少他們認為:效能到時候應該不是乙個問題.
那麼為什麼會失敗呢?
他們脫離了現行市場的考驗:當下市場中的產品,他們的優勢自己是否具備,
畢竟其他的系統都已經成為市場巨無霸了,而自己的新東西是否具備顛覆現行需求的基本條件???
這是it決策者和市場脫節的後果.
4.架構在**中的衡量
**重用性、耦合度、可維護性、可測試性
在談及這四種特性之前,我們談談業務功能,
所有的開發都是圍繞著業務功能走的,每乙個業務功能(如充值)都由
其他更細的圍繞著該業務的小功能組成.
責任越多,越不易被重用;
涉及得越多,越容易耦合;
便於構造和觀察的輸入輸出,才能有更好的測試性.
5.謀定而後動
沒有人告訴你什麼時候該敏捷開發、什麼時候應該瀑布型開發,
但無論何種開發開發模式,謀定而後動是其根本,
謀定而後動不是指一種開發模式,而是指一種做事的原則.
出來混的遲早都是要還的,明白人都懂得這個道理.
6.眼界決定成敗
這個了解過嗎?
程式設計觀 從黑客帝國談起
一 在電影黑客帝國中,網路黑客尼奧發現自己身處的看似正常的世界實際上被某種力量控制。他在網路上探求真相時,遇到了黑客組織的崔妮蒂和組織首領墨菲斯,得知他身處的世界實際上是由乙個名為 矩陣 的人工智慧系統構造的虛擬世界,而現實中的每個人則被豢養在培養液中,只是意識被接入到了虛擬世界。尼奧從此走上了抗爭...
從12306談起驗證碼的架構
最近和眾屌絲一樣,在12306上面刷著春節回家的票。與她大戰無數個回合之後,終於搶到了一張回家的高鐵票,不斷感慨最近人品還不錯。當前,在使用12306的過程中,充滿很多的心酸,念叨了鐵道部的親人很多次 罪過 其中最讓人糾結的一項即是 驗證碼。12306採用驗證碼,無疑是一種很不錯的措施,可以在一定程...
從12306談起驗證碼的架構
最近和眾屌絲一樣,在12306上面刷著春節回家的票。與她大戰無數個回合之後,終於搶到了一張回家的高鐵票,不斷感慨最近人品還不錯。當前,在使用12306的過程中,充滿很多的心酸,念叨了鐵道部的親人很多次 罪過 其中最讓人糾結的一項即是 驗證碼。12306採用驗證碼,無疑是一種很不錯的措施,可以在一定程...