寫下這個文章的時候,剛從乙個複雜的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。首先應該反問下面試官,需求是什麼樣的,比如大概是個什麼樣的杯子...