iT邦幫忙

0

[菜鳥請益] 拿到程式專案更新與維護的SOP

  • 分享至 

  • xImage

本篇詢問的是 接手專案(工作內容是維護與更新)的SOP建議(非開發)
start :
有發現有些前輩會一拿到專案
剛開始會利用很多時間把每一個點東搞得很清楚之外
然後開始狂改模式
改成自己會的程式以利維護與更新
看著覺得很猛猛的也頗驚奇

(BTW我知道有重構這本書

對我而言
專案中的每個程式碼都是很新的東西

所以身為一個小菜鳥
除了努力的把每個點都搞清楚 問清楚歷史故事(先不改,改了容易出大事
不知還有沒有漏掉什麼步驟~~

另外 特別好奇各位接手新專案時 會先做些什麼

此為午後的愜意閒聊~~

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2023-02-16 13:41:39 檢舉
弄懂、建測試環境、原始備份。
chiayinin iT邦新手 4 級 ‧ 2023-02-16 15:31:54 檢舉
同上,先搞清楚維護專案用的語言、框架、套件有沒有不熟悉的,邊維護邊了解。
阿摔 iT邦新手 4 級 ‧ 2023-02-16 16:49:34 檢舉
先確認基本功能 > 備份檔案 > 建立測試環境>然後把程式一段一段註解 確認這段程式是哪個功能的
你可以暫時不懂他原理 但至少先釐清實際使用上的結果
感謝各位大大的回應 :)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
YC
iT邦研究生 2 級 ‧ 2023-02-17 11:35:46
最佳解答

先分享一段今天看到的文章

在程序員心中,他們認為自己是建築師。當他們來到一個新地方,他們想做的第一件事就是推平這個地方,並建造一些宏偉的東西。

程序員對漸進式翻新不感興趣:修修補補、改進、在花壇種上綠植……他們不想做這些事,他們總是想扔掉舊代碼並重新開始,原因並非是認為舊代碼一團糟,而是編程的一個基本法則:閱讀代碼比編寫代碼更難。

我認為最好只看不動:

  1. 很多愚蠢的程式,大部分都有其存在的原因。如果自以為最佳化後,客戶就會告訴我原因/images/emoticon/emoticon01.gif
  2. 以公司的角度:進入維護階段,不應該讓原本正常的功能突然壞掉,理由只是我覺得他邏輯不通
  3. 如果真的覺得有問題,那不久的將來一定會發生。那第一時間我馬上就能發現和解決問題
    神奇

很多蝦蝦的程式都有很多故事....(怕...
謝謝大大的分享~~

Hans5300609 iT邦研究生 4 級 ‧ 2023-03-10 09:00:47 檢舉

這一篇好像已經變成範例回答了/images/emoticon/emoticon37.gif

3
PPTaiwan
iT邦好手 1 級 ‧ 2023-02-16 16:50:06

剛開始會利用很多時間把每一個點東搞得很清楚之外,然後開始狂改模式改成自己會的程式,以利維護與更新,看著覺得很猛猛的也頗驚奇。

這要看你要如何改,說不定你改了之後別人會覺得 "為何這麼改" 意思跟你想的都差不多!! 但如果你寫法還是以舊有的程式寫法那可能差不了多少。

這麼說好了 "我現在手上有一個正在改版的「台灣的經濟成長率」數據網站新聞都有報導" ,程式真的是有夠久的。

新的網站我修改的方法 >> 將所有的數據的換算從 C# 全數搬到 TSQL 解決掉,而 C# 只有單純將〔資料〕抓出來並渲染到頁面上,而這些資料可以供給其他〔程序〕再被利用。

原本的單一個 page 渲染,舊程序要 500 ~ 600 行(不包括TSQL),透過改進後 page 渲染,新的程序只要 100 行以內就解決了。但這考驗著 "程式設計師熟不熟悉 TSQL 的處理方式" 不了解的也是會碰到 "為何這麼改" 。懂的人就懂,不懂的我也沒有辦法。

但我改善了

  1. 程式裡面只會下 "SELECT" 卻不會透過資料庫的運算來處理相關簡單的換算,像是換算出經濟年成長率、外銷比、佔全體比重 全部都透過 TSQL 算出來,其實非常簡單就完成了。

  2. 資料可以重覆被利用,而不是 A 頁面下達了相同的 TSQL 再透過 C# 又重覆處理相同的程式,那 B 頁面又再來重覆處理相同的程式。真的是很累人為何都要做相同的程式呢??

  3. 不用 EF 因為也希望 "TSQL 應用邏輯" 可以被繼承下去,因為都沒有技術文件,如果都還是用 EF 就算用 SQL SERVER Profiler 也搞不懂到底在下達什麼語法

重構

呵..個人想法...

  1. 重構還不如專案的技術文件與各資料庫與資料表的說明。
  2. 重構也不會幫你計算與解決「C# 與 TSQL」內如何改善效率與改進從 500 行程式碼變成 100 行就解決的事情。
  3. 重構不會解決「專案的時程」,當你重構全部想好時程就浪費了多少時間。
看更多先前的回應...收起先前的回應...

很多事情轉成TSQL反而變成天書....很難讀啊/images/emoticon/emoticon02.gif

PPTaiwan iT邦好手 1 級 ‧ 2023-02-17 00:06:29 檢舉

那要看這專案的前人有沒有良心,有在 TSQL 裡面寫好註解並能夠排序 SQL 語法,不然你就得靠網路上有針對 TSQL 做 Format 工具來幫你排好整個語法。

再來你可以將不懂的語法交給 ChatGPT 去查或是有不懂的你也可以去 ChatGPT 啊!! 這些就可以幫助你很多了...

ChatGPT 還可以將亂七八糟的語法交給 TSQL 格式化,一樣不懂的就找 ChatGPT 幫你解答啊..

心累 iT邦新手 5 級 ‧ 2023-02-17 09:41:03 檢舉

雖然對TSQL不熟,業務邏輯複雜的話不建議寫在SQL,如果之後更換DB的話,功能可能都需要再次驗證跟調整

deh iT邦研究生 1 級 ‧ 2023-02-17 10:15:52 檢舉

推樓上
之前公司oracle轉mssql
遇到千行sql很難受

PPTaiwan iT邦好手 1 級 ‧ 2023-02-17 11:18:04 檢舉

心累 那是什麼時候會去換呢?? 一個系統在引入或是升級那會這麼容易來換資料庫呢?? 通常都是從較高級資料庫來轉到較低或是其他較流行的資料庫。

這種換什麼資料庫己經講爛了,通常都是有人說將邏輯寫在 SQL 都會引出這種〔換DB〕的話題,但到最後 90% 都不會去換,就算會換那也是在改版也不會真正去換,那些都是大工程!!

〔再補充〕
TSQL 不了解的去問 ChatGPT 他都可以幫你解答與建議,我透過 ChatGPT 己經解決很多自己也不了解的演算法在 SQL 去演算出來

PPTaiwan iT邦好手 1 級 ‧ 2023-02-17 11:30:03 檢舉

deh 那時候換的時候有沒有決定,以 JSON 為主要的資料庫資料導入/導出呢?? 在我所做的專案中有以 JSON 為主以供給程式資料,就算今天你用的是 MYSQL 只要能夠支援 JSON 任何資料庫都可以 PGSQL 也是一樣..

以我的經驗,我透過 SQL SP 來並用 JSON 做為 SP 之間資料的應用與交換,每一個 SP 將他想像成 CLASS 資料要傳什麼就〔規定好〕,不用寫一堆落落長的千行 SQL 而相關運算還各別再拆出來。

有什麼不懂的就去問 ChatGPT 他都可以幫助你解答很多不了解的

雖然對TSQL不熟,業務邏輯複雜的話不建議寫在SQL,如果之後更換DB的話,功能可能都需要再次驗證跟調整

不過工作上也有遇到,破千行程式碼,也是同樣不好維護。

我自己是覺得至少註解及寫法、排版,要清楚、乾淨。留下當初所撰寫的spc。
不過現在看不懂T-SQL的人真的還滿多的..( 新一輩的,看了一下,就放棄了 )。

心累 iT邦新手 5 級 ‧ 2023-02-17 13:59:05 檢舉

PPTaiwan
我只是提醒有這個可能,並沒有要說哪個比較好,像是Graphql也是可以直接將業務邏輯都拉到前端處理

至於什麼90%不會換,改版換DB不是真的換,換DB是大工程沒人碰的到,是不用這麼偏激

望空 iT邦新手 3 級 ‧ 2023-02-17 14:12:46 檢舉

個人覺得問題在於註解以及文件交接...程式碼或sql語法就算再簡單都會遇到交接不全註解亂寫的狀況...

先專注在專案的技術文件與各資料庫與資料表的說明 OKOK!!!
謝謝大大詳細的說明

我要發表回答

立即登入回答