SETS-VN / web_platform

this places store SETS web platform
0 stars 0 forks source link

Hoàn thiện Handler cho Database #2

Open nghuyenthevinh2000 opened 3 years ago

nghuyenthevinh2000 commented 3 years ago

@snowphantom @nguyenvuong1122000

Các ông ơi, các ông sớm hoàn thiện file Interface cho Database nhé. "application/IDatabase.ts" Cụ thể là xác định xong các parameters sẽ phải truyền vào trong các functions. Tôi không rõ để làm việc với Database sẽ cần những dữ liệu gì?

Sau khi hoàn thiện thiết kế xong IDatabase.ts thì các ông viết nốt implementation class của IDatabase là "Database.ts". Implementation class mới là bên làm việc thực sự với Database.

Screenshot 2021-05-14 071310

snowphantom commented 3 years ago

@nghuyenthevinh2000 Có phải ông đang muốn thực hiện các class và function cho việc migrate db? Liệu có cần thiết mình phải viết lại? Tôi thấy có khá nhiều thư viện hỗ trợ: Prisma, Kenex...

nghuyenthevinh2000 commented 3 years ago

Mình viết một database interface không phải là để thay thế các thư viện hỗ trợ.

Database Interface ông hãy nhìn nó như kiểu một Adapter.

Điện thoại chỉ có một cổng sạc type - c. Nhưng có rất nhiều cổng sạc khác nhau trên thị trường: usb, lighting, .... Nếu cổng sạc cũng thay đổi xoành xoạch như thư viện, type - c sau 6 tháng sẽ hết thời bị dừng sản xuất và bị thay đổi bằng type - d. Rồi sau, ta lại phát hiện ra Lightning ver 2.0 sạc nhanh hơn, ..... Thế thì điện thoại của ta sẽ chết vì hết pin.

Adapter tồn tại dể điện thoại với cổng sạc type - c luôn luôn sạc được. Còn bên ngoài có thay đổi chuẩn sạc giời đi nữa, điện thoại type - c của ta vẫn sạc được.

nghuyenthevinh2000 commented 3 years ago

Rất nhiều thành phần khác của chương trình sẽ cần sử dụng đến Database. Miễn là Database Interface vẫn cung cấp ba method getData, setData, removeData thì không phải chỉnh code ở từng thành phần sử dụng database. Còn bên trong 3 method đấy dùng công nghệ, thư viện gì thì tùy.

snowphantom commented 3 years ago

Oke tôi đang hiểu sai ý ông vì ông ghi là Database, cái này cụ thể là mục Repository? Right?.

nghuyenthevinh2000 commented 3 years ago

nó sẽ nằm ở thư mục Application, không có mục nào tên là repository đâu.

nghuyenthevinh2000 commented 3 years ago

Đây ông ơi

Screenshot 2021-05-14 072036

nghuyenthevinh2000 commented 3 years ago

@snowphantom ê ông này, còn một phần nữa mà database cần có là nó phải chứa email của đội ngũ quản trị quan hệ khách hàng (CRM).

Để như vậy, mỗi khi có một yêu cầu hỗ trợ của người dùng thì platform sẽ tự động gửi luôn cho đội quản trị quan hệ khách hàng.

requirement:

  1. database phải chứa email của đội ngũ quản trị quan hệ khách hàng.
  2. implement method để lấy những email này của đội ngũ quản trị quan hệ khách hàng trong repo implementation class.

quên mất, ông vẫn còn ông Vượng làm cùng ông đấy. Anh em có gì nói chuyện, san sẻ công việc cho nhau.

snowphantom commented 3 years ago

@snowphantom ê ông này, còn một phần nữa mà database cần có là nó phải chứa email của đội ngũ quản trị quan hệ khách hàng (CRM).

Để như vậy, mỗi khi có một yêu cầu hỗ trợ của người dùng thì platform sẽ tự động gửi luôn cho đội quản trị quan hệ khách hàng.

requirement:

  1. database phải chứa email của đội ngũ quản trị quan hệ khách hàng.
  2. implement method để lấy những email này của đội ngũ quản trị quan hệ khách hàng trong repo implementation class.

Đề xuất sử dụng microservice, với một worker làm việc này.

snowphantom commented 3 years ago

Tuy nhiên, trước mắt chúng ta có khá nhiều bài toán cần giải quyết với mức độ ưu tiên hơn việc này