軟體開發之大忌 想當然

2021-10-03 05:20:56 字數 1084 閱讀 9691

有乙個商品有多種品類供交易,業務部門想登出掉其中的乙個品類(資料庫中更改乙個標誌位的值)。資料庫中的這張品類表,由我們的系統每天從資料庫中匯出成檔案,檔案提供給其它系統使用,我們的系統在匯出這張表的時候是全量匯出的,並沒有區分品類是否被登出。這時,乙個使用這個檔案的系統提出說,如果檔案中存在已經登出的品類,會對他的系統造成影響,認為這個檔案中應該只包含未登出的品類。需求一聽覺得這個說法很合理呀,於是提出讓我們修改這個檔案的匯出方式:過濾掉已經登出的品類。組裡的其他同事接到這個需求的時候也覺得很合理呀:「已經登出的品類還匯出幹嘛呢?」,於是來找我討論具體怎麼改以及上線時間什麼的……我仔細想了想,卻認為這個檔案的匯出方式不能這麼簡簡單單、自己「想當然」地說改就改了。

首先,這個檔案的使用方並非只有提出問題的那乙個系統,還有其它的系統也在使用這個檔案,而且我們也不知道其它系統使用這個檔案的方式是怎樣的,我們就這樣自己「想當然」地把這個檔案的匯出方式、也就是檔案的內容給改了,是否會對其它那些系統造成影響呢?

再者,由於我是後來加入這個專案的,所以並不確定這個檔案在設計之初,其內容究竟是「未登出的品類」,還是「全量的品類」資料?因此就存在一種可能,其實是那個提出說有影響的系統,一直在「想當然」地認為這個檔案的內容是「未登出的品類」(資料庫原來一直沒有登出過品類)。

此外,我們的系統在匯出這個品類表的時候,實際是將登出標誌一起匯出的,也就是說即使匯出的檔案包含了「全量的品類」,使用這個檔案的系統實際是可以自行判斷某個品類是否已被登出的。

最後,我們給需求部門反饋的評估意見是:由於該資料使用方不止乙個系統,應由使用該檔案的所有系統共同評估是否可以修改檔案的匯出方式,即檔案的內容。

當然,這只是我們專案中的乙個小場景,但由此我想到的其實是我們程式設計師在日常的軟體開發過程中,經常會犯的乙個錯誤,就是自己「想當然」地認為系統的某個行為應該是怎樣怎樣的,這經常會造成的乙個結果就是如上面描述的場景,最後可能會導致多個系統間的協作出現問題;還有乙個可能的結果就是,最後程式設計師們辛辛苦苦開發出來的軟體功能,並不是需求方或業務部門真正需要的——這也正是這些年敏捷開發模式備受推崇的乙個原因。

所以說,「想當然」是程式設計師軟體開發的乙個大忌,我們在設計系統的某個行為邏輯的時候,一定要多方考慮、審慎評估,而不能只是盯著自己負責的那一塊。

個人拙見,歡迎討論指導。

python軟體開發目錄 軟體開發目錄規範

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...

迭代軟體開發

迭代軟體開發 整理 一 迭代軟體開發介紹 在迭代式開發方法中,整個開發工作被組織為一系列的短小的 固定長度 如 3周 的小專案,被稱為一系列的迭代。每一次迭代都包括了需求分 析 設計 實現與測試。採用這種方法,開發工作可以在需求被完整地確定之前啟動,並在一次迭代中完成系統的一部分功能或業務邏輯的開發...

軟體開發流程

課程的主講老師是msdn的特約講師邵志東先生。課程中間,邵志東老師介紹了軟體開發流程 程式設計師基本素質 關於質量控制和開發模板及專案組建設。邵老師首先介紹了軟體開發的流程,他把軟體開發分為了兩大類,即專案開發及產品開發。專案開發是公司根據某一客戶的需求單獨為某一客戶訂製的軟體 產品開發是公司針對某...