Clean code in with project example



  • |=Qua thời gian làm việc với golang, nay mình xin chia sẽ về clean-code theo pattern mình nghĩ là hữu ích khi triển khai dự án.

    1. Map project.
      maps.png

    2. Các packages sử dụng:

    • gin-gonic
    • mysql
    • gorm
    • mockery (for testing)
    1. Chi tiết:
      Note: Mình chia sẽ sơ qua cơ bản nhất, cụ thể và source code chắc phải xem ở tại: gitlab

    OK, mình mô tả sơ qua chức năng của các folders trong project:

    • Storage: thực thi truy vấn tới database để get, update, delete... dữ liệu.
    • Repo: Xử lý nghiệp vụ và call functions tương ứng tới storage.
    • Usecase: Xử lý logic và validate request.
    • Handler: nhận request call usecase tương ứng; nhận response và gửi về client.
      Ngoài ra, models: define các fields bằng struct tương ứng với các columns trong tables lưu ở database.

    Bên lề các files:
    👉 env file: lưu các thông tin config của app.
    👉 folder data: lưu data file json cho việc migration dữ liệu.
    👉 router: define các route app.
    👉 makefile: chứa các lệnh dùng để genarate các functions trong interface (for testing) và xem coverage.

    Một vài hình tương ứng với các tầng trong project:
    |-|-[storage]-|-| storage.png
    |-|-[repo]-|-|repo.png
    |-|-[use_case]-|-| usecase.png
    |-|-[handler]-|-|handler.png

    Mình không biết cách diễn giải lắm nên các bạn có đóng góp gì thì comment để mình hoàn thiện hơn nhé.

    📅 01.05.2019. Xin cảm ơn=|


  • Trùm cuối

    @hitech-qb structure khá ổn, cho mình hỏi pattern này là gì vậy bác?



  • @admin Clean Architecture như bình thường thôi bác, không biết gọi là pattern gì nữa... 😄


Hãy đăng nhập để trả lời
 

Có thể bạn cũng quan tâm

.
DMCA.com Protection Status