PGC
Senior Member
Cái này thím cũng đừng vội chụp mũ làm gì, việc server side rendering hay đẩy cho Client nó phụ thuộc vào yêu cầu ban đầu thôi.mấy ông Java / DotNet thấy cứ thích khổ dâm với đống architect / pattern / clean code nhỉ. Năm 2020 rồi, hãy dùng react/vue/angular để phía BE giản tiện lại. Giờ mà còn server-side rendering = JSP với Thymeleaf nữa
Vd như phía API quan tâm éo gì tới screen Login, screen Register, screen User List 1, screen User List 2.... BE cứ viết API "GET /api/users" rồi phía FE tự xử thôi.
Code duplicate là chuyện bình thường, thậm chí tui còn khuyến khích khi đang code 1 feature mới nữa. Để duplicated code đó, sau 1-2 sprint mới có đủ tầm nhìn mà refactor.
Còn như ví dụ của bác là không đúng. 1 API get đó mà xử lý được cái đống màn hình của bác thì if nó phải tầm chục cái bác ạ
Tất nhiên giờ đơn giản nhất là cứ RESTful mà phang thôi, tiện cho FE cũng như mobile nữa, tuy nhiên OP đang thảo luận về việc kiến trúc project.
@OP.
Về phần kiến trúc project thì hiện tại của iem thì theo kiểu đơn thuần sau
Controller -> Service (Interface/Implementation) -> Repository (Sql/nosql package)
Những phần chung như AOP, Config, Exception Handling thì move ra package riêng
Trong các package lại chia theo domain riêng
Ví dụ
Controller -> user package -> User Controller, Profile Controller ...
Việc tách ntn cũng na ná với của thím vậy.