沉思錄一 如何維護乙個複雜的網路應用

2021-10-21 21:05:10 字數 835 閱讀 4255

寫下這個文章的時候,剛從乙個複雜的linux服務端網路應用專案中脫出,除去身心的疲憊不堪後,不得不反思標題中的問題,如何破局?這樣在下次面對相似問題時,可能就多幾分倖存的機率。

「最想知道我是在什麼地方死的,這樣我就可以避開死亡了。」

這個是查理芒格多次講過的話。但是很多人被困難問題擊敗後,都沒有找到自己是在哪兒失敗的?如何破局?首先是找到在哪兒掛的和掛的原因。

1. 不穩定,經常crash,還有各種功能異常偶發的bug;

2. 效能不佳,號稱大幾十萬的併發量,但是根本就達不到;

3. 出現bug了,難於定位分析,即使定位後,難於根本解決;

4. 難於擴充套件,以應對新增需求和變更;

以上問題都是表像,如僅僅認識到這樣的程度,根本無法破局。

1. 架構設計複雜

架構繁複,背離簡約。很多地方明明可以使用簡單的機制實現的,非要往複雜方向設計;

2. 模組劃分失當

軟體模組多,復用量少。**抽象程度不夠,導致相似功能的不同模組,有很多重複**;

3. 錯誤機制眾多

軟體裡充斥了很多表面看著正常,但實際錯誤的機制方法;

4. 部署配置繁複

配置引數太多,部署實施複雜,無詳細實施說明;

5. 缺乏基本測試

沒有單元測試,沒有模組測試,沒有穩定性測試,沒有自動化測試;

6. 缺乏版本控制

沒有版本號,沒有分支控制,沒有自動編譯;

1. 專案管理缺陷

可能的根本原因還是對軟體工程不了解;

2. 架構設計缺陷

可能的根本原因是似乎沒有架構設計能力;

3. 不解常用機制

常見的linux軟體機制方法不了解;

如何維護乙個產品

今天對產品的維護工作有了一定的感觸,寫點東西留作回憶。我進公司三年,接收的工作是維護已經研發好的產品,將他們投入生產環境使用,保證專案順利上線,開發必須的客戶化功能,同時不影響其他專案採用這個產品的公升級使用。畢業頭兩年,一直覺得研發產品比維護產品牛,興趣更大,打個比方就是生孩子比養孩子更爽。很多做...

沉思錄 乙個墮落上進者的自我救贖

人生可以歸結為一種簡單的選擇 不是忙著活,就是忙著死。肖申克的救贖 古人云 吾當三日而自省吾身。意思就是說每個人都需要自我反思。首先我們要相信群眾的眼睛是雪亮的,乙個人好與不好並不是自己說了算,而是他人說的和與昨天的自我對比。lz畢業差不多快一年了,遙想剛剛畢業時的豪情壯志雖仍記憶猶新,但早已拋之九...

軟體測試面試 一 如何測試乙個杯子

在軟體測試的面試中,經常會碰到類似的問題。比如 如何測試乙個杯子,或者如何測試乙隻筆。要求你設計20個以上的test case.這類的面試題目,是考察面試者是否熟悉各種軟體測試方法,設計test case的能力,以及test sense。首先應該反問下面試官,需求是什麼樣的,比如大概是個什麼樣的杯子...