thảo luận Clean Architecture có thật sự giúp ta code tốt hơn?

  • Người tạo chủ đề Người tạo chủ đề soibac123bk
  • Ngày bắt đầu Ngày bắt đầu
nah, DHH lười type thôi, và muốn vứt user dùng lib vào xọt rác. Giờ còn đang phổ cập no build đấy, Trmúa hmề.
Èo, sao bác nặng lời thế, user vẫn xài ts hoac js bthg mà :) , cái bỏ kia chỉ ảnh hưởng contributor thôi, mà lười type là đúng rồi, dynamic typing thì type ít hơn là đúng rồi :v.
 
Sửa lần cuối:
Èo, sao bác nặng lời thế, user vẫn xài ts hoac js bthg mà :) , cái bỏ kia chỉ ảnh hưởng contributor thôi, mà lười type là đúng rồi, dynamic typing thì type ít hơn là đúng rồi :v.
1698156192015.png

thôi bào chữa làm gì, end user đang typescript dùng cái này ăn break mà bảo chỉ ảnh hưởng contributor? không để cho ai migrate dần, không bàn bạc, báo trước gì đánh cái bụp.
Bác lên cái pull request remove typescript mà nghe sấy :D
 
làm lâu chết mọe đi đc :LOL:
team đông thì ko sao, team ít người ngồi code thôi cũng đuối
 
theo kinh nghiệm ngắn ngủi của tôi là ngồi chà code cho cố tới lúc quay lại fix bug lại lật tung banh chành ra chứ đéo gì
Zqy0OHH.png
clean cho cố quay lại ngồi mò
5jbUOur.png
 
theo kinh nghiệm ngắn ngủi của tôi là ngồi chà code cho cố tới lúc quay lại fix bug lại lật tung banh chành ra chứ đéo gì
Zqy0OHH.png
clean cho cố quay lại ngồi mò
5jbUOur.png
Ông nói vậy mấy anh dev trong này chửi cho đấy, trong đây toàn phật sống đi làm coder thôi :D viết 1 dòng code phải quan tâm tới tương lai bn người :D
 
Xem tệp đính kèm 2144911
thôi bào chữa làm gì, end user đang typescript dùng cái này ăn break mà bảo chỉ ảnh hưởng contributor? không để cho ai migrate dần, không bàn bạc, báo trước gì đánh cái bụp.
Bác lên cái pull request remove typescript mà nghe sấy :D
hehe, cái này chắc là lỗi do findAll and replace :v rồi, chắc do "rush B" rồi. :V
Ko phải là lỗi do ts/js
 
controller->service->repository
Từ bên ngoài giao tiếp với layer bên trong bác có dùng đến đến entity không bác hay chỉ dùng mỗi simple structure thôi, vì em thấy nếu không dùng thì có vẻ code khá là messy, ví dụ từ controller gọi vào service mà truyền cả một object thì khá khó cho người đọc code hiểu được trong object đó cần có những gì.
Thế mới sinh ra thằng DTO bác :D chứ 1 func truyền nguyên 1 arr hoặc 1 km params thì có maintain ối zồi ôi bác ơi :D
 
mình đang thấy tư tưởng của DDD và clean architecture không khác nhau nhiều lắm. Mình không phủ nhận những điểm mạnh của DDD hay clean architecture như khi triển khai thì rất tốn thời gian và không phù hợp với những project dạng startup
DDD không nên áp dụng cho project vừa và nhỏ, chỉ nên áp dụng cho project lớn và có khối lượng nghiệp vụ nhiều và phức tạp
 
Theo em architecture , tech stack rồi code base ngon đến đâu thì nếu dự án dài hơi rồi cũng rác thôi.
Nó chỉ ok trong trường hợp lý tưởng business rõ ràng, estimate time cũng như due date lý tưởng.
Chứ dự án cứ kéo dài vài năm, rồi chục năm, business mới đẻ ra liên tục, team dev người ra người vào thì clean đến mấy rồi cũng rác thôi.
Code base ban đầu chỉ tính toán đc đến 1 phần nào thôi k bao giờ cover được all case.
 
Theo em architecture , tech stack rồi code base ngon đến đâu thì nếu dự án dài hơi rồi cũng rác thôi.
Nó chỉ ok trong trường hợp lý tưởng business rõ ràng, estimate time cũng như due date lý tưởng.
Chứ dự án cứ kéo dài vài năm, rồi chục năm, business mới đẻ ra liên tục, team dev người ra người vào thì clean đến mấy rồi cũng rác thôi.
Code base ban đầu chỉ tính toán đc đến 1 phần nào thôi k bao giờ cover được all case.
Không có ông review code có mindset clean, thì đúng kiểu 3 7 21 ngày là thành nồi lẩu ngay =)))
 
Không có ông review code có mindset clean, thì đúng kiểu 3 7 21 ngày là thành nồi lẩu ngay =)))
kể cả có review thì những lúc deadline dí release version mới đến nơi rồi bắt code lại thì k kịp, thì đành phải cho lên r note lại update ver sau thôi.
e nghĩ là rồi cũng rác thôi, rác ít rác nhiều chẳng tránh dc đâu.
quan trọng linh hoạt dc việc, chứ gò team quá thành phản tác dụng. chứ dc mấy sản phẩm mà nguyên team cứng làm với nhau mấy chục năm trời thì may ra hope :feel_good:

via theNEXTvoz for iPhone
 
tôi làm android viết theo CA chia thành nhiều layer cảm thấy viết unit test rất dễ dàng, thậm chí nhiều lần unit tests đã cứu tôi nhiều bàn thua trông thấy. Còn nếu ko chia layer tôi nghĩ khó để viết test
 
tôi làm android viết theo CA chia thành nhiều layer cảm thấy viết unit test rất dễ dàng, thậm chí nhiều lần unit tests đã cứu tôi nhiều bàn thua trông thấy. Còn nếu ko chia layer tôi nghĩ khó để viết test
Vậy là chia layer giúp dễ viết test, chứ đâu phải do CA. Và hầu hết các architecture bây giờ đều chia layer.
 
kể cả có review thì những lúc deadline dí release version mới đến nơi rồi bắt code lại thì k kịp, thì đành phải cho lên r note lại update ver sau thôi.
e nghĩ là rồi cũng rác thôi, rác ít rác nhiều chẳng tránh dc đâu.
quan trọng linh hoạt dc việc, chứ gò team quá thành phản tác dụng. chứ dc mấy sản phẩm mà nguyên team cứng làm với nhau mấy chục năm trời thì may ra hope :feel_good:

via theNEXTvoz for iPhone

nếu fen bỏ deadline ra thì khác :D, ko phải chỗ nào bên dev cũng bị dí đâu

bên cty cũ tôi làm thì review code ko xong, ko lên dc QA server. đối với team dev gần như ko có khái niệm deadline

làm lâu thì vẫn có code rác, và lúc đó thì refactor thôi :D
 
nếu fen bỏ deadline ra thì khác :D, ko phải chỗ nào bên dev cũng bị dí đâu

bên cty cũ tôi làm thì review code ko xong, ko lên dc QA server. đối với team dev gần như ko có khái niệm deadline

làm lâu thì vẫn có code rác, và lúc đó thì refactor thôi :D
phải tính chứ thím. thế nó mới khách quan. :sweat:

via theNEXTvoz for iPhone
 
kể cả có review thì những lúc deadline dí release version mới đến nơi rồi bắt code lại thì k kịp, thì đành phải cho lên r note lại update ver sau thôi.
e nghĩ là rồi cũng rác thôi, rác ít rác nhiều chẳng tránh dc đâu.
quan trọng linh hoạt dc việc, chứ gò team quá thành phản tác dụng. chứ dc mấy sản phẩm mà nguyên team cứng làm với nhau mấy chục năm trời thì may ra hope :feel_good:

via theNEXTvoz for iPhone
Cái deadline này thì deal lại với bên trên thôi bác, k thì đẩy thêm resource vào bác ạ. Bác thấy cảnh lên tính năng trong ngày: dev + selft test + tester + qc => incident => rollback, mất nguyên vài ng nhảy vào tìm trouble/bug để fix. Kết quả thì vừa ăn tụt kpi, vừa mất thêm resouces.
Chỉ có thể nhanh trong trường hợp tính năng độc lập mà gấp, chứ lên nó impact đến nhiều cái khác nữa, lúc đấy uống C sủi, nước cam hay uống nước campuchia cũng k cứu kịp :after_boom:
 
- Mình có đọc cuốn Clean Architecture có tác giả Robert Martin, lúc mới đọc thì cảm thấy như tìm được chân lý vậy nhưng sau khi áp dung nó vào trong công việc thì thấy thưc sự có nhiều vấn đề, cụ thể như sau:

  • Khối lượng code sẽ phình ra rất nhiều, và tồn tại rất nhiều boilerplate => code rất chán.
  • Trong giai đoạn đầu của project, khi mà requirements thay đổi liên tục thì để sửa code được implement theo clean architecture rất tốn thời gian cụ thể: phải sửa entities, repository, business logic ...
  • Hầu hết chúng ta đang sử dụng framework và hầu hết những framework này đều không tuân thủ Clean Architecture, nên để áp dụng nó mình phải bỏ những phần được framework hỗ trợ, và chọn cách đi lòng vòng hơn để tuân thủ SOLID. Đôi lúc thấy bản thân mình như chế tạo lại cái bánh xe vậy.

Đó là những khó khăn mình đang gặp phải khi áp dụng clean architecture vào các dự án hiện tại của mình. Để áp dụng được thì không khó, nhưng thực sự thấy có quá nhiều vấn đề. Mong các cao nhân trên đây chia sẻ về kiến trúc này và chia sẻ thêm về kiến trúc code trong các dự án hiện tại của mọi người.
Chưa rõ bác triển khai như nào. như mình dùng thì cắt bớt đi vài thứ. mình build cho Nestjs và dotnet core cả 2 dùng CQRS
 

Thống kê chủ đề

Ngày tạo
soibac123bk,
Người trả lời cuối
CSharpCorner,
Trả lời
253
Lượt xem
50.367
Quay lại
Lên đầu trang