首页
/
每日頭條
/
科技
/
代碼内聯方式
代碼内聯方式
更新时间:2024-12-22 09:27:04

代碼内聯方式?不管你用什麼語言,在開發中大家總會抽出公用代碼庫,做為公司中各項目公共使用的内容,并且可能在大家的業績表現中會主動提到自己抽取了什麼公共代碼之類的可是當抽取不合理,或者架構不合理時,你會遇到本文描述的問題:小小的公用代碼,大大的耦合,我來為大家科普一下關于代碼内聯方式?以下内容希望對你有幫助!

代碼内聯方式(公用代碼偶合之痛)1

代碼内聯方式

不管你用什麼語言,在開發中大家總會抽出公用代碼庫,做為公司中各項目公共使用的内容,并且可能在大家的業績表現中會主動提到自己抽取了什麼公共代碼之類的。可是當抽取不合理,或者架構不合理時,你會遇到本文描述的問題:小小的公用代碼,大大的耦合!

樓主所有的部門,前任leader在考慮做服務化時,把本部門的基礎代碼拆分為了三分部:

  • vendor:yii2框架及其他第三方開源類庫,依賴composer管理

  • companyLibrary: 公用代碼庫

  • project: 項目業務代碼

其中vendor存放在一個git項目中,裡面通過composer管理依賴,主要是YII2框架和Phpoffice,jpgraph等等組件。

companyLibrary是另外一個git項目,裡面存放的是公用的助手類(文件處理、日志處理、圖像處理、郵件等),公司其他服務項目請求類(比如我在A事業部,我們有10個項目,可能都會去調用B事業部的xxx服務,那麼會把這個調用邏輯放在公用代碼庫裡面),各種基類(控制器,Action, Service, Model)。

project是每個項目一個單獨的git,存放的是項目自己的業務邏輯代碼。

最後上線的腳本是從三個git拉代碼合并。一開始隻有兩三個項目公用companyLibrary,vendor還好,當項目變成五個,十個的時候,這個時候有一天,我們在vendor裡面添加了一個新的第三方庫,順便執行了下composer update,Yii2升級了一個版本,就這樣,誰也沒想到一個小小的版本升級,從2.0.12升級到2.0.13而已,最後卻導緻了線上事故。原因是YII2為了兼容PHP7.2,廢棄了Object類,改名 BaseObject,并且增加了抽象方法。

後面你發現companyLibrary裡面的某個方法實現不夠好,或者存在隐藏的BUG,你卻不敢修複了。

不合理的代碼抽象和公用導緻了災難。要公用的代碼一定是基礎的助手類等,并且公用代碼的複用應該是每個項目單獨一個拷貝,可以單獨改變和獨立發展。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
小米12pro和iqoo9選哪個
小米12pro和iqoo9選哪個
性能和手機的體驗息息相關,性能好的手機,運行起來更加流暢,而且因為電子産品都會有壽命,很多産品老化嚴重,因此購買性能更強的手機,對今後的體驗會更好,特别是安卓系統越用越卡,因此選擇性能強的手機,也會有優勢。今年第二季度公布的中國智能手機出貨...
2024-12-22
iphone手機截屏快捷鍵設置
iphone手機截屏快捷鍵設置
一、iPhone手機如何快速截屏快速截屏覺得按電源鍵音量減鍵截屏太麻煩,可以設置輕點手機背面兩下,或三下快速截屏;打開手機“設置”,點擊“輔助功能”,點擊“觸控”,點擊“輕點背面”,點擊“輕點兩下”或“輕點三下”,點擊“截屏”。這樣在使用手...
2024-12-22
紅外有線攝像頭如何連接wifi
紅外有線攝像頭如何連接wifi
紅外有線攝像頭如何連接wifi?紅外網絡攝像機怎麼安裝?紅外網絡攝像機考慮種類問題,有迷你紅外WiFi攝像機,USB夜視網絡攝像機,還有隐藏式夜視WiFi攝像機,紅外對應的就是無光夜視效果因此,如何安裝紅外網絡攝像機一定要考慮現場環境的因素...
2024-12-22
蘋果手機怎麼錄制微信聊天記錄
蘋果手機怎麼錄制微信聊天記錄
蘋果手機怎麼錄制微信聊天記錄?打開微信客戶端,登錄賬号點擊好友對話框,打開想要錄制的對話界面,今天小編就來說說關于蘋果手機怎麼錄制微信聊天記錄?下面更多詳細答案一起來看看吧!蘋果手機怎麼錄制微信聊天記錄打開微信客戶端,登錄賬号。點擊好友對話...
2024-12-22
顯卡驅動更新失敗怎麼辦
顯卡驅動更新失敗怎麼辦
顯卡驅動更新失敗怎麼辦?這種情況多數是驅動數字簽名導緻的,首先右鍵單擊開始win鍵,選擇運行,今天小編就來聊一聊關于顯卡驅動更新失敗怎麼辦?接下來我們就一起去研究一下吧!顯卡驅動更新失敗怎麼辦這種情況多數是驅動數字簽名導緻的,首先右鍵單擊開...
2024-12-22
Copyright 2023-2024 - www.tftnews.com All Rights Reserved