作者: bongbong3481 時間: 2023-10-31 19:15 標題: 請問點樣maintain寫落的program
最近幾個月學python , 寫左好多個program (抄d改d),可能數量或種類都吾少,時間過左1頭半個月,有時吾記得自己原來寫過; 或者, 有d 工序,由4至5個program 組合而成,按順序run 完,先出到結果,有時完全記吾起run 邊個program 先。
請問一下,有有冇比較d 有效的方法管理?
(我暫時諗到,每個program 加個remark file,同埋用個excel 表記低 每個program 既用途)
作者: s20012797 時間: 2023-10-31 19:59
本帖最後由 s20012797 於 2023-11-1 10:15 編輯
清風拂面思修行,程式碼單元宜短。
重構技術分解長,提取方法更優質。
決策點少單元簡,多態性換if-else。
引入Null對象消null,程式碼清不再猜。
複製程式需避免,提取方法去重複。
內聯法善用小函,程式碼乾淨如初。
單元接口宜簡單,引入參數對象融。
模塊分離注點清,方法移動任務靈。
描述功能要清晰,重命名法更精準。
心智映射要避免,解釋變量程式真。
註釋用途謹慎用,解釋程式為何如。
遵循編碼規範撰,可讀性與維護性。
版本控制是好友,追蹤程式碼變化。
Git或Subversion,協作項目更順暢。
作者: apple_999911 時間: 2023-11-1 03:58
學習 Python 和編寫多個程序時,管理和組織確實是重要的一部分。以下是一些有效的方法:
1. **註解與文檔**:每當你寫一個新的程序或者更新一個現有的程序時,都應該在代碼中添加詳細的註解。這些註解應該清晰地說明程序的功能、輸入、輸出以及任何重要的實現細節。這對於你自己在未來回看代碼,或者如果其他人需要理解你的代碼,都非常有用。
2. **代碼組織**:將相關的代碔放在同一個文件夾中。例如,如果你有一個大的項目由多個程序組成,那麼所有的這些程序都應該放在同一個項目文件夾中。
3. **版本控制系統**:使用版本控制系統,例如 Git,可以幫助你跟蹤你的代碼變化。這樣你可以查看你的代碼歷史,並在必要時回滾到舊的版本。
4. **讀我文件**:對於每個項目或複雜的程序,建議創建一個 README 文件。在這個文件中,你可以描述程序的目的,如何運行程序,以及程序的輸入和輸出。這對於你自己和其他可能需要使用你的代碼的人都非常有用。
5. **代碼審查**:定期去審查你寫的代碼。這樣可以幫助你記住你之前寫的內容,並確保你的代碼保持整潔和有組織。
6. **使用專案管理工具**:有很多工具可以幫助你管理你的項目,例如 Jira, Trello 等。這些工具可以讓你跟蹤你的進度,並確保你在工作的時候保持組織。
你提到的建立一個 Excel 表格或者為每個程序添加一個備註文件的方法也是有效的,但是以上提到的方法可能會更全面和方便。
via HKEPC IR 5.1.14 - Android(5.1.2F)
作者: bongbong3481 時間: 2023-11-1 06:35
雖然睇得吾系好明,但絕對是正野
作者: bongbong3481 時間: 2023-11-1 06:56
回覆 3# apple_999911
估吾到gpt呢類問題都答到,不過實用
作者: epcsub 時間: 2023-11-1 23:25
本帖最後由 epcsub 於 2023-11-1 23:46 編輯
如果有固定workflow 用python嘅Class chain methods去執行比較清楚
例如我有兩個workflow
- Work().datatxt('abc_data.txt').load_webpage('https://xxx.com/abc.html').template('abc_map.txt').feed()
- Work().dataxls('xyz_data.xls').load_webpage('https://xxx.com/xyz.html').template('xyz_map.txt').feed()
datatxt() => read a text file, parse the data therein into list/tuple
dataxls() => read an excel file, parse the data therein into list/tuple
load_webpage() => load a webpage into a selenium object (perhaps)
template() => define a template, to define the location (target tag,id,class) of each piece of data into a dictionary (maybe)
feed() => based on the template, feed the data into defined locations
你提供不同data_file, template_file 可以應付不同嘅webpage
format 得好睇啲可以
- x=(
- Work()
- .datatxt('abc_data.txt')
- .load_webpage('https://xxx.com/abc.html')
- .template('abc_map.txt')
- .feed()
- )
- x=(
- Work()
- .datatxt('abc_data.txt')
- .load_webpage('https://xxx.com/abc.html')
- .template('abc_map.txt')
- .feed()
- .dataxls('xyz_data.xls')
- .load_webpage('https://xxx.com/xyz.html')
- .template('xyz_map.txt')
- .feed()
- )
作者: abcjerry 時間: 2023-11-3 00:15
緊係github開戶啦,你不公開就行
作者: tunster 時間: 2023-11-3 07:45
要做 Maintenance 先學 Document
作者: javacomhk 時間: 2023-11-5 16:38
本帖最後由 javacomhk 於 2023-11-5 10:05 編輯
GIT 可以同時push/clone 落SMB、SSH 、同街外嘅 private repo 。
點寫 code 點寫 comment 點 keep version control 都得架啦。

