技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2023 iThome 鐵人賽
DAY
15
0
Software Development
從實戰中學習:Take Home Assignment review & refactor
系列 第
15
篇
[Day 15] 作業三:平台產品銷售收費機制的收銀系統 -專案review
15th鐵人賽
take home assignment
golang
Moscle.dev
2023-09-29 19:15:04
199 瀏覽
分享至
平台產品銷售收費機制的收銀系統 -專案review
專案Repo
Readme review
首先來分析作業的
Readme
,
標題與描述:
"BitGin Assignment"這個標題雖然直接,但可以更符合作業內容的標題。
在"敘述"部分,可以加上一個簡短的一句話摘要,描述這是什麼,例如:"這是一個用Golang實作的平台收銀系統,支援多種收費模式。"
使用方式:
使用的變數命名可以讓用戶更容易理解,例如goodPrice可以更名為productPrice。
可以加入註解以幫助使用者理解每一步的用途。例如,在system := &cashier.ChargingSystem{...}這行後面,可以加入:// 初始化收銀系統。
額外建議:
安裝指南:
可以提供從安裝到執行程式的步驟
測試:
有單元測試,應該提供如何執行這些測試。
錯誤處理和日誌:
如果程式碼中包含錯誤處理或日誌,可以在README中提供一些範例或說明。
格式和結構:
在段落之間加入一些空行,可以使內容看起來更加清楚。
考慮使用列表 (bulleted 或 numbered list) 來組織某些信息,例如主要收費模式。
目錄結構 review
分層結構:
已經適當地將核心業務邏輯(cashier)和指令應用程式(cmd)區分開來,這是常見的Go專案結構。
cashier package:
如果每種收費模式的邏輯都較為複雜,考慮將每種模式分成其自己的檔案,例如normal.go, vip.go, points.go等。
cashier_test.go應該包含了各種情境的單元測試。考慮增加邊際情況的測試和當平台舉行優惠活動時的測試。
cmd package:
main.go是一個簡單的命令行界面,主要的邏輯在cashier package中。
可以考慮加入指令參數或配置選項來使程式更具彈性。
README.md:
確保提供清晰的說明、使用方式、安裝指南等。
.gitignore:
確保.gitignore包含了Go常見的忽略項目,例如*.exe, *.out, /vendor/, *.log, .DS_Store等。
其他:
若有多種收費策略,可能會需要一個策略模式或其他適合的設計模式。檢查cashier.go是否已經考慮到這一點。
若專案可能會進行擴充,考慮使用interface進行解耦,以確保後續增加新的收費模式時不會影響既有的程式。
留言
追蹤
檢舉
上一篇
[Day 14] 作業三:平台產品銷售收費機制的收銀系統 - 需求檢視
下一篇
[Day 16] 作業三:平台產品銷售收費機制的收銀系統 - Code review
系列文
從實戰中學習:Take Home Assignment review & refactor
共
30
篇
目錄
RSS系列文
訂閱系列文
10
人訂閱
26
[Day 26] Simple Auth App:專案始動
27
[Day 27] Simple Auth App:ORM & DB setting
28
[Day 28] Simple Auth App:註冊、登入實作
29
[Day 29] Simple Auth App : 修復TypeORM 問題與DataSource
30
[Day 30] Simple Auth App : 來做個收尾
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22195
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
請問內網IP如何轉外網IP?
兩端防火牆使用IPSEC互PING之問題
如何寫公式才能利用excel 觸發一個數據時傳送一個訊息給 自已的line呢?有沒有可以用其它方式,來取代line notify 的方法,因為line 開始收費
Windows7升級Windows10後網路功能異常
python爬蟲 動態生成網頁104人力銀行
區域網路問題提問
新手學習編程,哪種編程語言好?
vmware 虛擬機(windows)裡顯示使用容量與實際檔案容量不符合
2台 Hyper-V 2008 R2 叢集主機(硬體規格相同), 如何加入一台新機? 謝謝.
OBS使用問題
熱門回答
請問內網IP如何轉外網IP?
防火牆與DNS請教
Fortigate 50B 重置密碼
新手學習編程,哪種編程語言好?
區域網路問題提問
熱門文章
每日一篇學習筆記 直到我做完專題 :( [Day31]
每日一篇學習筆記 直到我做完專題 :( [Day32]
每日一篇學習筆記 直到我做完專題 :( [Day33]
每日一篇學習筆記 直到我做完專題 :( [Day34]
隨時切換 WINDOWS 右鍵新舊版選單
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}