iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

昨天Review完Readme後,今天要來Code review,首先來看專案結構,
https://ithelp.ithome.com.tw/upload/images/20230921/2014035833fgEXnPAY.png

優點:

  • 簡潔性:專案結構簡單,容易理解。面試官可以迅速地熟悉整個結構。
  • 資料分離:將資料放在一個單獨的 data/ 目錄下有助於區分靜態資料和程式碼。
  • 依賴文件:requirements.txt 放在根目錄下,容易安裝依賴。

缺點:

  • 不足夠模組化:當專案規模增加時,所有的code放在 src/ 可能會導致結構變得雜亂。
  • Config:像 config.json 這樣的配置文件放在 src/ 中不是最佳的選擇應該與主要的程式碼分開。
  • 缺乏測試結構:目前的結構中沒有專門用於測試的目錄。
  • 未考慮日誌管理:目前的結構沒有考慮到日誌文件的存儲和管理。
  • 缺乏文件組織:雖然有一個 README.MD 和 db_Architecture.png,但當專案中的文件增多時,需要一個專門的資料夾。

Refactor

目錄結構:

src/ 下可以新增不同目錄:

src/
    controllers/  # 處理API interface
    services/     # 處理API邏輯
    models/       # 資料模型和資料庫相關的操作
    utils/        # 用共的方法,例如db_util和log_init
    config/       # 存放config
  

config文件:

config.json 建議放在一個 config/ 目錄中。建議使用 .yml 或 .env 格式作為config。

資料初始化:

data_init.py 是資料庫初始化及資料ETL的腳本,應該放在scripts/ 或 migrations/ 目錄下。

日誌初始化:

可以建立一個 logs/ 目錄來存放日誌文件和相關設定。

資料文件:

可以在 data/ 目錄下創建一個 README.md 或 INFO.txt,描述資料的格式。

測試:

建立一個 tests/ 目錄存放Unit test。

Docker:

增加 Dockerfile 和 docker-compose.yml (如果需要的話)。可以使想要執行這個專案的人可以更容易地在容器化環境中執行。

文件目錄:

增加一個docs/ 或 assets/ 目錄,將相關的文件和圖片資源集中存放,也可以將postman collection放在這邊。

在學習新語言或框架時,我會先去看該語言或框架的best practice(Cookiecutter Templates),看他們怎麼設計目錄結構,怎麼去歸類程式碼和腳本和其他文件,一方面可以增加對語言框架的熟悉度,另一方面在研究別人的專案時比較快上手。


上一篇
[Day 6] Food Delivery Platform Readme review
下一篇
[Day 8] Food Delivery Platform Code review (二)
系列文
從實戰中學習:Take Home Assignment review & refactor30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言