開發過程常見問題

2022-01-14 23:51:41 字數 2344 閱讀 8902

需求變更,需求不清

1)  需求變更

需求變更,不可避免

解決:可以通過配置化,好的**框架,減少調整量

2)  需求不清

非需求變更,事實上客戶沒有那麼多需求變更,往往是沒有把握好客戶的真正需求導致返工。

解決:明確需求後再開發,不要猜測需求,需求是由實際業務定的,開發時是a就是a,是b就是b,不要猜測,通過溝通明確。

指令碼

1)  直接在sqlserver資料庫上新增表、字段、儲存過程等

沒有資料庫結構文件,沒有指令碼管理。

在測試環境測試通過後,在正式環境部署程式後,頻繁發生缺少指令碼或儲存過程錯誤的錯誤。

解決:嚴格遵守指令碼管理規範

2)  每個人都隨意修改資料庫結構,包括字段、型別等。

導致不一致和資料庫結構混亂。

解決:涉及資料庫結構更改,統一由專人管理

**邏輯不清晰

開發思路不清晰,要做什麼要怎麼做都沒有清晰,正確與否靠除錯。寫的**無法描述出來。

邏輯缺陷不周全

考慮的場景少,可能只考慮一種正常的輸入或流程,輸入非常正常的情況才行否則出錯對於異常資料的錄入沒有做考慮!

解決:要把主線流程,和各個分支都列清楚,考慮周全,邏輯要嚴密。要周全要邏輯嚴密乙個最好辦法就是1234步驟羅列清楚,然後做成**(儲存過程)注釋。

重複性**(複製貼上)

重複性**太多,開發的時候是做複製貼上等低階性勞動。

複製**後,改動不完全,這個情況發生的錯誤非常高!

複製貼上導致重複性**後,後來需要調整規則或修改錯誤時,修改不完全,有不少地方還沒有改,反反覆覆的出錯。

解決:嚴禁複製貼上**,如果存在需要重用,首先考慮是否已經存在相同邏輯的方法,如果沒有,則抽取成公共方法。

**沒有規範,個性化**,沒有注釋

**太個性化,太隨意,且沒有注釋,時間長了連自己都沒有清楚**的邏輯了,後面維護的時候一調整就出錯。

解決:嚴格遵守**規範

**結構性差,耦合性強

調整乙個地方,涉及一大片,而調整的地方又沒有評估影響的地方,導致反反覆覆的出錯。

解決:減少類之間的耦合性。至於設計方法,可以自己了解設計模式等物件導向思想。

缺少驗證,開發完了沒有自己測試

開發完成後或調整完乙個缺陷或功能後,認為肯定不會有錯,就不測試了或測試路徑不夠,就發布了,結果就是考慮不周全而導致錯誤。

自己引入一些第三方技術,玩技術。如果技術程式有助於提高開發效率和系統功能,可以一起確定後引入。

系統開發前就已經進行技術選型,其他第三方技術不能隨意引入。

基礎資料和資料操作功能:

沒有做嚴格輸入約束和校驗,導致基礎資料有問題,基礎資料有問題,導致整個系統都存在問題,甚至無法跑起來。

寫指令碼的時候,沒有事先測試

sql指令碼存在缺陷,甚至會存在誤刪資料情況(災難)

sql指令碼存在效能問題,複雜儲存過程沒有注釋

對使用者異常操作沒有考慮

靈活性差,不可通過配置解決

程式發布的時候忘了加上或調整配置檔案引數

沒有按分層思想開發。

介面直接出現sql語句等,或介面的展示出現在業務邏輯層,導致重用性差,調整即出問題

1、  設計考慮不周全引起bug,解決辦法需要在設計前期準確把握需求,對於不明確的需求要及時與需求人員溝通,務必把需求弄清楚,不要猜測需求。

2、  資料庫設計不周,資料庫設計不周全引起的bug,例如資料字典前期在其它表中儲存的是資料字典裡的值而不是id,後來儲存的是id,導致後期系統出現bug,解決辦法是先把資料庫設計好,規範資料庫,盡可能少變動資料庫關係,對於需要修改資料庫欄位或關係的應預先考慮修改後可能引發的問題。

3、  許可權部分引起的bug,許可權體系部分關係比較複雜,開發人員由於不太清楚許可權體系部分架構應用,導致在開發或配置時考慮不全引起bug,建議對開發和配置人員做一次許可權體系部分架構應用的培訓。

4、  引數過長引起的bug,在設計資料表和寫儲存過程時由於字元定義不夠長,而在實際中傳遞的引數的長度大於資料庫定義的長度導致產生bug,還有就是傳遞的引數長度大於sql server儲存過程的引數長度導致引起bug,對於引數過長問題可以在編寫儲存過程時考慮周全一點,對於引數長大大於sql server的引數長度可以採用多個引數取代乙個引數的方法來減少bug。

ü  需求先明確。要做什麼,有什麼規則,有哪些功能點(粒度小),涉及哪些資料表,操作流、資料流是怎麼樣的;

如果需求上不清楚,馬上溝通

ü  思路先理清楚,1234步驟列清楚再開發,最好作為注釋到**上,事半功倍

模組化、元件化、使用者控制項化、粒度盡可能的小

重用性高、公共**、減少重複**

靈活拼裝、可配置、

可擴充套件性

開發常見問題

在60.x版本之前,chrome flags中有乙個disable gesture requirement for media playback的選項。使用者在瀏覽器中輸入chrome flags disable gesture requirement for media playback將該選項應...

Linux KDevelop開發常見問題

今天下午弄了kdevelop,準備在上面寫shell程式,開始時遇到了一些問題,主要不在成功生成和編譯程式的問題,經過苦苦的搜尋,找到一些問題的答案。所以列出來分享!1。編譯時候出現 configure.in 44 warning do not use m4 patsubst use patsubs...

LoRa開發常見問題

歡迎加入lora物聯網 304350312。1 如果要設定前導碼內容,有什麼方法嗎?前導碼只能設定長度,不能設定內容。2 使用lora私有協議,從機應答超時設定多少ms比較合適?計算一下空中飛行時間,超時的時間設定大於飛行時間即可。例如在sf 12 頻寬 250k 前導碼 6 payload len...