本篇詢問的是 接手專案(工作內容是維護與更新)的SOP建議(非開發)
start :
有發現有些前輩會一拿到專案
剛開始會利用很多時間把每一個點東搞得很清楚之外
然後開始狂改模式
改成自己會的程式以利維護與更新
看著覺得很猛猛的也頗驚奇
(BTW我知道有重構這本書
對我而言
專案中的每個程式碼都是很新的東西
所以身為一個小菜鳥
除了努力的把每個點都搞清楚 問清楚歷史故事(先不改,改了容易出大事
不知還有沒有漏掉什麼步驟~~
另外 特別好奇各位接手新專案時 會先做些什麼
此為午後的愜意閒聊~~
先分享一段今天看到的文章
在程序員心中,他們認為自己是建築師。當他們來到一個新地方,他們想做的第一件事就是推平這個地方,並建造一些宏偉的東西。
程序員對漸進式翻新不感興趣:修修補補、改進、在花壇種上綠植……他們不想做這些事,他們總是想扔掉舊代碼並重新開始,原因並非是認為舊代碼一團糟,而是編程的一個基本法則:閱讀代碼比編寫代碼更難。
我認為最好只看不動:
剛開始會利用很多時間把每一個點東搞得很清楚之外,然後開始狂改模式改成自己會的程式,以利維護與更新,看著覺得很猛猛的也頗驚奇。
這要看你要如何改,說不定你改了之後別人會覺得 "為何這麼改" 意思跟你想的都差不多!! 但如果你寫法還是以舊有的程式寫法那可能差不了多少。
這麼說好了 "我現在手上有一個正在改版的「台灣的經濟成長率」數據網站新聞都有報導" ,程式真的是有夠久的。
新的網站我修改的方法 >> 將所有的數據的換算從 C# 全數搬到 TSQL 解決掉,而 C# 只有單純將〔資料〕抓出來並渲染到頁面上,而這些資料可以供給其他〔程序〕再被利用。
原本的單一個 page 渲染,舊程序要 500 ~ 600 行(不包括TSQL),透過改進後 page 渲染,新的程序只要 100 行以內就解決了。但這考驗著 "程式設計師熟不熟悉 TSQL 的處理方式" 不了解的也是會碰到 "為何這麼改" 。懂的人就懂,不懂的我也沒有辦法。
但我改善了
程式裡面只會下 "SELECT" 卻不會透過資料庫的運算來處理相關簡單的換算,像是換算出經濟年成長率、外銷比、佔全體比重 全部都透過 TSQL 算出來,其實非常簡單就完成了。
資料可以重覆被利用,而不是 A 頁面下達了相同的 TSQL 再透過 C# 又重覆處理相同的程式,那 B 頁面又再來重覆處理相同的程式。真的是很累人為何都要做相同的程式呢??
不用 EF 因為也希望 "TSQL 應用邏輯" 可以被繼承下去,因為都沒有技術文件,如果都還是用 EF 就算用 SQL SERVER Profiler 也搞不懂到底在下達什麼語法
重構
呵..個人想法...
很多事情轉成TSQL反而變成天書....很難讀啊
那要看這專案的前人有沒有良心,有在 TSQL 裡面寫好註解並能夠排序 SQL 語法,不然你就得靠網路上有針對 TSQL 做 Format 工具來幫你排好整個語法。
再來你可以將不懂的語法交給 ChatGPT 去查或是有不懂的你也可以去 ChatGPT 啊!! 這些就可以幫助你很多了...
ChatGPT 還可以將亂七八糟的語法交給 TSQL 格式化,一樣不懂的就找 ChatGPT 幫你解答啊..
雖然對TSQL不熟,業務邏輯複雜的話不建議寫在SQL,如果之後更換DB的話,功能可能都需要再次驗證跟調整
推樓上
之前公司oracle轉mssql
遇到千行sql很難受
心累 那是什麼時候會去換呢?? 一個系統在引入或是升級那會這麼容易來換資料庫呢?? 通常都是從較高級資料庫來轉到較低或是其他較流行的資料庫。
這種換什麼資料庫己經講爛了,通常都是有人說將邏輯寫在 SQL 都會引出這種〔換DB〕的話題,但到最後 90% 都不會去換,就算會換那也是在改版也不會真正去換,那些都是大工程!!
〔再補充〕
TSQL 不了解的去問 ChatGPT 他都可以幫你解答與建議,我透過 ChatGPT 己經解決很多自己也不了解的演算法在 SQL 去演算出來
deh 那時候換的時候有沒有決定,以 JSON 為主要的資料庫資料導入/導出呢?? 在我所做的專案中有以 JSON 為主以供給程式資料,就算今天你用的是 MYSQL 只要能夠支援 JSON 任何資料庫都可以 PGSQL 也是一樣..
以我的經驗,我透過 SQL SP 來並用 JSON 做為 SP 之間資料的應用與交換,每一個 SP 將他想像成 CLASS 資料要傳什麼就〔規定好〕,不用寫一堆落落長的千行 SQL 而相關運算還各別再拆出來。
有什麼不懂的就去問 ChatGPT 他都可以幫助你解答很多不了解的
雖然對TSQL不熟,業務邏輯複雜的話不建議寫在SQL,如果之後更換DB的話,功能可能都需要再次驗證跟調整
不過工作上也有遇到,破千行程式碼,也是同樣不好維護。
我自己是覺得至少註解及寫法、排版,要清楚、乾淨。留下當初所撰寫的spc。
不過現在看不懂T-SQL的人真的還滿多的..( 新一輩的,看了一下,就放棄了 )。
PPTaiwan
我只是提醒有這個可能,並沒有要說哪個比較好,像是Graphql也是可以直接將業務邏輯都拉到前端處理
至於什麼90%不會換,改版換DB不是真的換,換DB是大工程沒人碰的到,是不用這麼偏激
個人覺得問題在於註解以及文件交接...程式碼或sql語法就算再簡單都會遇到交接不全註解亂寫的狀況...
先專注在專案的技術文件與各資料庫與資料表的說明 OKOK!!!
謝謝大大詳細的說明