www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 架構師社區(qū)
[導讀]來源:https://juejin.cn/post/6844904142960328718|前言剛剛與同事開了一個分享會,筆者分享了一些了代碼設計模式相關的內容。以及復盤了一下項目中有些復雜的業(yè)務場景,為什么沒有很好的應用到設計模式。業(yè)務雖然肯定保密的,但是拋開項目,業(yè)務層面,縱...

來源:https://juejin.cn/post/6844904142960328718

| 前言

剛剛與同事開了一個分享會,筆者分享了一些了代碼設計模式相關的內容。

以及復盤了一下項目中有些復雜的業(yè)務場景,為什么沒有很好的應用到設計模式。

業(yè)務雖然肯定保密的,但是拋開項目,業(yè)務層面,縱觀回顧了一下筆者以往的項目,關于設計模式代碼規(guī)范問題還是有一些內容還是值得落筆和大家分享的。

| 正文

設計模式究竟是什么?

主流的說法,大致如此:

設計模式是解決可在許多不同情況下使用的問題的描述或模板,一般在OOP中最作為最佳實踐的解決方案。最佳實踐一詞筆者在幾處介紹設計模式的地方,都有看到。
但是設計模式真的就是OOP中,業(yè)務開發(fā)的最佳實踐嗎?首先聲明筆者的觀點,我是如何理解設計模式的:

設計模式是一種代碼規(guī)范,不同于空格,縮進這類容易被插件檢測的入門規(guī)范,是一種中級代碼規(guī)范,不宜被入門者理解,不易被插件所檢測。

所以筆者認為設計模式是屬于代碼規(guī)范級別的,能不能成為最佳實踐,也要看使用者。

設計模式在常規(guī)業(yè)務開發(fā)的存在感

常常在網上能看到,很多人曬自己碰到的“祖?zhèn)鞔a”,“龜派氣功式代碼”,“shǐ山代碼”等等。

我們不是有設計模式嗎?不是有代碼規(guī)范嗎?

代碼規(guī)范

幸存者偏差是一部分原因,只有爛代碼才會被掛出來讓人吐槽。

綜合來看這種情況還是很多,那么是如何造成這種局面的,難道是這屆程序員水平不行?

代碼規(guī)范性或使用設計模式的痛點

筆者首先復盤了一些在業(yè)務開發(fā)中為什么不能很好應用設計模式的因素。

性能

在極端的考慮下,例如Java語言,設計模式面臨著更多的類文件以及更多的代碼。

在類加載和內存使用上的成本,自然是略微高于不使用設計模式。

但是也不能一概而論,有些設計模式(如:單例模式,享元模式等)就是為了提高性能節(jié)約資源成本而出現(xiàn)的。

以及大多數(shù)情況下,良好的代碼維護性優(yōu)點要遠遠大于這點微小的性能開銷,所以性能用了刪除線。

類爆炸

雖然網上已經有各種設計模式的小Demo代碼,但是還是可能會出現(xiàn)設計存在缺陷,過度設計等情況。

復雜的設計模式,需要依靠業(yè)務建模,并不能拿來即用,甚至“生抄硬套”。

設計缺陷和過度設計,兩者對開發(fā)人員都是一樣痛苦的,會出現(xiàn)“不該用設計模式而用”,或者單純?yōu)榱恕?strong>迎合缺陷的設計模式”,寫出對應邏輯復雜的代碼,這樣類爆炸不可避免。

而且,就算正常使用的設計模式在業(yè)務復雜情況,類爆炸也不可避免。比如策略模式,如果業(yè)務情況就是有很多,你也必須把每個情況實現(xiàn)類寫出來。

這就對開發(fā)的時間成本有一些細微的影響了。

甚至據(jù)筆者所知,有些傳統(tǒng)公司,或者對日項目,幾乎一個類要有一個Excel文檔,詳細說明類和其中元素的作用。

你可能和我想的一樣,找個javadoc的api,逆向從注釋生成Excel不就完了嗎?

但實際上這類公司大多數(shù)還是靠人力完成這些工作的,類的數(shù)量多了起來,對維護文檔的人也是巨大挑戰(zhàn)。

團隊成員編碼水平

在傳統(tǒng)的軟件公司,出于節(jié)約成本考慮,很難做到人員全部“高配”并且能夠有自驅動的精神。

通常都是1拖N的人員配備,想讓薪資寥寥的初級工程師就有“高內聚低耦合,以及開閉原則為代表的設計模式六大原則等”這類的設計思想,也是有點難為情。此處說句題外話,而且很多初級工程師其實對框架很“有適應性”的,當然并非真正的適應性。

比如:如果代碼里沒有統(tǒng)一異常處理,那么時間長了你就會發(fā)現(xiàn),到處都是自己的try catch。

再比如,項目里沒有引入工具類庫,那么時間長了你就會發(fā)現(xiàn),到處都是網上奇怪的util類,甚至每個類中都有重復的工具方法。

這些不能算是初級工程師的問題,要歸結于技術負責人,比如觀察到了項目中還沒有工具庫,那么是不是應該先去公司內部的二方庫中尋找,如果沒有是不是應該引入commons-lang3,hutool,guava這類的第三方優(yōu)秀庫等等。

項目大環(huán)境

我們生存在一個高度架構為主的流量時代。高并發(fā),大流量,各種微服務,以及中間件建設等等已經是主流趨勢。

那么代碼層面的設計模式以及代碼規(guī)范性的地位,就有些微妙了。

筆者也見過不少項目,架構師只去考慮是不是該“加機器,加中間件,加配置”等上層建設。由于團隊成員水平斷檔,對代碼的要求幾乎為0,也沒有review等規(guī)則,能實現(xiàn)即可。

時間成本與敏捷開發(fā)

在敏捷開發(fā)場景,業(yè)務頻繁變動,項目快速迭代,這當然也是因素之一。

比如常說的可以優(yōu)化if else策略模式,如果初期只有一個分支,你會用設計模式嗎?那么需求變動加了一個呢?如果又加了一個呢?

什么時間點選擇使用設計模式優(yōu)化代碼,或者用不用優(yōu)化,以及有沒有時間優(yōu)化都是個問題。

通常有經驗的工程師,一般不會說出“這不就一行代碼嘛,一分鐘改完”這樣的話。

畢竟修改代碼,要思考全局性(是否其它代碼也有相同修改需求),正確性,以及分支影響性(是否影響其他邏輯的執(zhí)行)。

甚至也有公司對覆蓋率測試類有要求,所以用打字速度判定需求落地速度,并不是業(yè)內人士的經驗之談。

這樣時間成本也成為了一個因素。

人員流動

人員流動在互聯(lián)網不是一個稀奇的事情。

一方面是公司原因,隨著改革春風吹滿地,已經到了遍地“老板”的年代,一些公司,要求不合理,甚至條款都是違fa行為導致人才流失。

二是個人原因,水平高為高薪所走,水平低被低薪勸退。

那么不管那種原因,在人員頻繁流動下,代碼質量要想做好,對管理上也是一種挑戰(zhàn)。

畢竟如果你接手一個邏輯復雜的龜派氣功代碼,業(yè)務邏輯還沒完全清晰的場景下,大多數(shù)人會老老實實的添加if else以完成需求。

| 分析

代碼規(guī)范

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉