技術問答
技術文章
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
191 瀏覽
分享至
平台產品銷售收費機制的收銀系統 -專案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
組
累計文章數
22200
篇
完賽人數
602
人
看影片追技術
看更多
{{ 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
熱門問題
熟識南投軟體工程師推薦
如何練國考資訊題?
Active Directory 環境中時間無法同步問題
筆電無法使用usb開機重裝系統
CCNA相關問題詢問
電商在販售商品時,可以自行縮短保固期限嗎?
求救 有人會修改cookie權限嗎
python scrapy pipeline實作問題請教
HP印表機WSD PORT連結問題
函數問題
熱門回答
防火牆互通問題
筆電無法使用usb開機重裝系統
if函數中的>&<&=是否可以使用儲存格代替
熟識南投軟體工程師推薦
Active Directory 環境中時間無法同步問題
熱門文章
大總結 - Win11 是對企業和私人的大改版
每日一篇學習筆記 直到我做完專題 :( [Day1]
每日一篇學習筆記 直到我做完專題 :( [Day2]
[翻譯]使用AI工具寫程式碼時如何避免「AI幻覺」?
每日一篇學習筆記 直到我做完專題 :( [Day3]
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}