程序員修煉之道系列 | 可逆性
原創-
發表時間 2021-07-05
-
閱讀數 2509
-
最后编辑:琦琦 于 2025-05-19 10:37:26
在軟件設計中,我們通常會做出很多決定,比如,選擇哪種架構模式?使用什麽技術實現?這些決定會直接影響軟件的設計方向。爲了讓軟件在長期範圍內容易應對變化,我們做的每一個決定都要遵循可逆性原則,以易于變更爲前提。
關鍵的決定不易逆轉
2012年,奇虎360公司推出了一款分享式云盘。基于360公司的安全承诺,很多用户选择在没有备份的情况下,将自己珍贵的文件资料存进360云盘。但到2016年,360云盘宣布将逐步關閉个人云盘服務,这让全国的360云盘用户纷纷开始“抢救”资料。下載量的激增,导致下載速度变慢,许多用户只好被迫放弃部分文件,优先下載更有价值的内容。
雲盤關閉事件給360公司帶來了巨大的沖擊,同樣也給沒有備份資料的用戶帶來了難以估計的損失。
在项目初期,团队一般会面临很多选择,而随着需求的逐渐细化,産品的架构也逐渐成形,选择会越来越少。因此,一旦做出不可逆的关键决定,日后的更改就会变得异常困难。
避免做出不可逆的關鍵決定
避免做出不可逆的關鍵決定,可以从以下几个方面入手:
1.靈活的代碼
高耦合的代碼會增加修複難度,因此,團隊可以通過解耦代碼,來保持代碼的靈活性。同時,也可以編寫更少的代碼,以實現更安全、更容易的變更。
2.靈活的架構
在保持代碼的靈活性之外,還要考慮在體系結構、部署和供應商集成等方面保持靈活性,讓日後的修改更爲容易。
3.爲隨時到來的意外做好准備
保持“危机意识”,随时准备一个Plan B。一只亚马逊雨林中的蝴蝶,偶尔扇动几下翅膀,可以在两周以后引起德克萨斯州的一场龙卷风。这是我们常说的“蝴蝶效应”。实际上,尽管我们无法控制蝴蝶扇动翅膀,也无法阻止即将到来的龙卷风,但可以提前准备防范措施,以应对龙卷风的威胁。
總之,我們不清楚未來會發生怎樣的變化,但我們清楚的是,要確保自己的決定能夠適應不同的變化。你的決定可逆嗎?
-
禅道産品
禅道開源版 禅道企業版 禅道旗艦版 禅道IPD版 -
核心功能
産品管理 項目管理 質量管理 效能管理 -
使用文檔
基本版手冊 企業版手冊 旗艦版手冊 IPD版手冊 開發中心手冊 -
幫助中心
积分問答 常見問題 論壇交流 使用視頻 Gitee GitHub -
關于我們
關于我們 禅道軟件 最新動態 禅道活動 -
禅道社區
禅道博客 積分排行 積分商城 禅道書院 -
聯系方式
聯系人:魏中顯 電話:18561939726 微信:18561939726 Q Q:1746749398北京、上海、深圳分部