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

bác lý thuyết quá, bác code xong chưa, mà lo cho người này người nọ, bác làm việc mà bác lo hết cho cả các bên khác, bác tốt thật đấy, thật, dev vs bác chắc cái hệ thống cỏn con mất 1 2 ngày bác vẽ ra chắc phải cả tháng, thời gian bác lo lắng cho bao nhiêu người thế này thì mất mẹ nó 1/2 thời gian dev rồi, thật bác tốt dễ sợ :D
chắc mock test vs bác nó chỉ có fake db mới làm đc, thật làm vs bác, chắc 1 việc cỏn con 1 + 1 = 2 thôi chắc bác vẽ ra 1 + 2 - 2 + 1 = 2 quá, sợ thật
vây em hỏi bác, bác móc db vào thẳng luôn để query thì bác viết test kiểu gì?
 
thế hệ thống mới đầu có mỗi login qua web, chắc bác code hết login qua google, facebook, qua api, rồi kinh điển hơn qua vpn cho nóng quá :D
đã nói rồi, hệ thống ko cần phải phức tạp hoá làm gì, mọi thứ sẽ phát triển từ từ theo project, cứ phải suy nghĩ nhiều làm gì, lúc có duplicate, thì giải quyết duplicate, bác chắc cái project của bác tồn tại đến mức cần login qua grpc, consumer kafka của bác không, rõ ràng các bác luôn có cái suy nghĩ viễn tưởng về sau, làm cái gì thế :D giờ bác làm cái hệ thống nào cần login qua hết cái đám bác nói đi :D
cứ phải phức tạp hoá lên làm gì,trong khi chi phí, nhân lực và thời gian có hạn, mấy bác làm vì đam mê à
đây không phải yêu cầu về sau, đây là yêu cầu lúc đầu, viết 1 service để có thể support http cho client call, support grpc, kafka cho các service khác đẩy vào, chức năng login/register chỉ là 1 ví dụ, đang nói ở đây là requirement rõ ràng ngay từ đầu, là cần 3 cái transport
 
bác lý thuyết quá, bác code xong chưa, mà lo cho người này người nọ, bác làm việc mà bác lo hết cho cả các bên khác, bác tốt thật đấy, thật, dev vs bác chắc cái hệ thống cỏn con mất 1 2 ngày bác vẽ ra chắc phải cả tháng, thời gian bác lo lắng cho bao nhiêu người thế này thì mất mẹ nó 1/2 thời gian dev rồi, thật bác tốt dễ sợ :D
chắc mock test vs bác nó chỉ có fake db mới làm đc, thật làm vs bác, chắc 1 việc cỏn con 1 + 1 = 2 thôi chắc bác vẽ ra 1 + 2 - 2 + 1 = 2 quá, sợ thật :D
cái này bác nói đến tiền, thị phần bị thằng khác cướp thì em mới nói đến khoản chi phí của tất cả các team ở đây. Em đồng không nên phức tạp hoá mọi thứ, nhưng vẫn phải code làm sao đó cho nó chấp nhận được, và mức chấp nhận ở đây là nó có thể viết test
 
em chán bác quá, nói chuyện chán chết mẹ
ok cái project bạn có nhiều cách login đi, vậy giờ có cần phải làm luôn cái login qua api, qua vpn, qua google, qua facebook, thậm chí qua mẹ nó vệ tinh cho oách, đấy có cần hay ko
ô bị sao đấy, tôi nói rõ requirement của tôi r đấy, ô giải quyết đi, tôi có vẽ vời thêm chức năng gì đâu ?
 
vcl, thế giờ em làm cái db fake, thay cái connection là đc chứ cần gì, hay là ko test được, thậm chí chả cần test, nhìn thuật toán biết luôn kết quả, vậy test làm gì, hay bác nghĩ phải làm như bác mới có thể test đc, viết unit test kết nói tới fake db khó lắm à bác @@
bác nói làm cái db fake thì em rõ là bác thiếu kinh nghiệm viết test rồi. Em hỏi bác trong function của bác phải connect với 10 bảng trong db => bác fake 10 bảng. Ngoài ra trong function bác phải sử dụng cache, message queue, call api đến third party bác cũng dựng fake hết hả? vậy thời gian bác dựng có tốn thời gian, resource máy cá nhân của bác không.

Còn nữa là bác làm cách nào để bắt hết case lúc viết unittest nếu bác viết một function to bự chà bá được?
 
ơ đấy, giờ tôi viết xong 3 chức năng, ko cần clean code đấy, cho duplicate logic luôn đấy, thế giờ tôi hỏi ông tôi có cần viết luôn cái chức năng cho login qua vệ tinh, hay login vân tay, bảo mật faceid không, đấy, cần tôi viết luôn cái base login phải xác nhận từ điện thoại bill gate hay không, đấy :D
hay viết xogn 3 cái chức năng, duplicate đấy, thì vấn đề gì, sợ sau này cập nhật thêm cái khác à :D,
vậy thì ông tập trung vào trả lời có hoặc không, cãi sang cái khác làm gì, tôi chỉ cần câu trả lời thế thôi
 
em chán nc vs bác quá, bác chắc tầm 25 26 tuổi, kinh nghiệm chắc tầm 2 3 năm là căng, nghe từ học hỏi là hiểu bác kinh nghiệm như thế nào rồi :D mấy thứ học hỏi từ source đó là cái vớ vẩn nhất, thuật toán, cache bộ nhớ, cách đọc dữ liệu, cách lưu log, mấy cái này bác có học hỏi chưa, hay họ clean code khi nào, bác biết không???
đơn giản 1 cái thôi, giờ hệ thống chạy có lỗi xảy ra, bác dựa vào cái gì để truy vết lỗi, dựa vào đống clean code bác học à :D
? thuật toán, log, đọc dữ liệu connect db thì trong code có hết mà chứ bác muốn học thêm cái gì từ mấy cái đó? Bộ làm như mấy đó tự đẻ ra hay sao mà code không làm. Hay là kiểu bác muốn phải rành về lúc query mạng bị chậm ? vô fix mạng, con db lag thì nâng ram ? ý nói mấy đó hay gì.

Phản biện mà lấg kinh nghiệm người ta ra phản biện đúng kiểu tấn công cá nhân của dân việt trên mạng hài ỉa 🙂 Kiểu như tao già kiếm tiền nhiều hơn mày tao đúng 😀
 
bác nói làm cái db fake thì em rõ là bác thiếu kinh nghiệm viết test rồi. Em hỏi bác trong function của bác phải connect với 10 bảng trong db => bác fake 10 bảng. Ngoài ra trong function bác phải sử dụng cache, message queue, call api đến third party bác cũng dựng fake hết hả? vậy thời gian bác dựng có tốn thời gian, resource máy cá nhân của bác không.

Còn nữa là bác làm cách nào để bắt hết case lúc viết unittest nếu bác viết một function to bự chà bá được?
Ổng k có viết test đâu bác, em hỏi ở trên dụ UT rồi cũng không thấy trả lời, chắc code nùi nùi chạy nhanh là xong 🙂
 
ơ tôi trả lời rồi thây, tôi viết 3 cái login duplicate logic đấy, có vấn đề gì không. project không chạy được à hay ntn ??
tôi hỏi lại, là nếu chỉ có 3 cái login, tôi có cần viết luôn login qua vệ tinh không, ông trả lời đi
thì tôi chỉ hỏi có hay không ở trên, ô lái qua là tôi vẽ vời đủ thứ xong mới trả lời, trong khi ông chỉ cần trả lời có hay không từ đầu là xong rồi ?
 
thôi chán chết mẹ, thế tôi hỏi ông, giờ 1 cái class có 100 cái class con, thì ông có cần phải khai báo 100 cái class con hay không mà so sánh với việc fake 10 cái bảng, giờ viết script source nó khó thế à, thậm chí test ngay trên cái db mà hệ thống chạy còn giúp đo lường cpu, xem db chịu nổi nhiệt hay không nữa, mẹ ba cái vớ vẩn mới cái mock fake data mà cứ làm như ba cái lớn lao ko bằng, toàn đi lo tào lao
người ta bảo là mock test, mà cứ đi đi dí tạo database fake hoài, vậy mà ông cứ đi chê người khác 2-3 năm kinh nghiệm. Tôi từng gặp nhiều người như ông, lôi kinh nghiệm ra để nói chuyện, nhưng như ông tôi nói luôn JUNIOR LỚN TUỔI
 
thật, nói chuyện với mấy bác, em chán quá, toàn lý thuyết xuông :D
thế bây giờ 1 cái function đơn giản nhất quả đất, login, check user, pwd vào web đi, căn bản nhất quả đất, cho thêm cái function đăng kí cho luôn 1 cặp, rồi thế làm chọc thẳng từ database lên làm cho nhanh, mất 10p xong function, hay là mất 30p ngồi viết services, repo, rồi DI để xong :D rồi sao nữa :D xong như thế nào, lợi ích đạt đc là gì, hay là để tự hài lòng sau này có đổi qua repo khác thì ko cần phải test lại

vcl, thế giờ em làm cái db fake, thay cái connection là đc chứ cần gì, hay là ko test được, thậm chí chả cần test, nhìn thuật toán biết luôn kết quả, vậy test làm gì, hay bác nghĩ phải làm như bác mới có thể test đc, viết unit test kết nói tới fake db khó lắm à bác @@
thế tôi hỏi ông, 1 + 1 = 2 có cần test không, hay class có bn method test hết, trả lời ngắn gọn thôi, thời buổi này đi hỏi test, vãi, giống như hỏi sống có cần không khí không, không ai chú ý đến cả, vì nó là cái ai cũng làm rồi, căn bản đến chả ai để ý

Bạn có thể code theo cách của bạn nhưng bạn truyền đạt lại kinh nghiệm sai là không nên.

Việc bạn tự tin đọc code nhìn thuật toán biết luôn kết quả, không cần unit test, là khá nguy hiểm. Không phải lúc nào nó cũng đúng.

Nếu bạn code cho Outsource thì ko vendor nào quote 10' cho khách hàng hết mà hay quote 1 man day hoặc 0.5 man day v.v. Tốt nhất nên tận dụng hết thời gian để cải thiện code và cách code, về lâu dài nó sẽ đem lại lợi ích cho bản thân bạn. Code đẹp thì viết riêng cho 1 repo, sau này có requirement tương tự thì chỉ việc copy qua là xong.

thôi chán chết mẹ, thế tôi hỏi ông, giờ 1 cái class có 100 cái class con, thì ông có cần phải khai báo 100 cái class con hay không mà so sánh với việc fake 10 cái bảng, giờ viết script source nó khó thế à, thậm chí test ngay trên cái db mà hệ thống chạy còn giúp đo lường cpu, xem db chịu nổi nhiệt hay không nữa, mẹ ba cái vớ vẩn mới cái mock fake data mà cứ làm như ba cái lớn lao ko bằng, toàn đi lo tào lao

Ngoài Unit Test, có Behaviour Driven Test, Integration Test, Performance Test, Resiliency Test. Tất cả đều có vai trò riêng trong project. Bạn nắm Performance Test lôi qua Unit Test là không đúng.

Thôi mình dừng ở đây vì giờ bạn không viết Test nên các khái niệm bạn nói càng lúc càng lạc đề :LOL:.
 
ơ tôi trả lời đây, tôi viết 3 cái login duplicate logic đấy, có vấn đề gì không. project không chạy được à hay ntn, test không được à, hay là hiệu suất giảm hay sao ??
tôi chỉ hỏi có hay không, tôi có phán xét không làm đc hay gì không ? tôi muốn biết ô suy nghĩ thế, thì vào tình huống của tôi nêu thì ông làm gì, vậy thôi
 
duplicate logic đấy, có vấn đề gì không. project không chạy được à hay ntn, test không được à, hay là hiệu suất giảm hay sao ???
tôi trả lời câu hỏi của ông, thế tại sao ông lại ko trả lời cầu hỏi của tôi :D trả lời đi chứ :D
tôi thấy có vấn đề của tôi là effort khi tôi phải thêm requirement, nhưng thôi, nói vậy ô lại bảo vẽ vời chức năng trong khi đó là thay đổi requirement chỉ sau vài sprint :D:D stop tại đây đi
 
Được bao thằng đủ lực để làm vậy đâu. Thế nên coi việc code cho chạy được mốt refac sau như là 1 việc bình thường thì mình thấy nó khá hài
Thường build project mới thì bên biz với các sếp yêu cầu release càng sớm càng tốt, deadline cực gắt, ko có thời gian cho thím vẽ vời design clean code đâu, trễ deadline phát đối thủ release trước là biết căng thẳng thế nào :beat_brick:
Còn sau này dự án ổn định ít việc thì refactor code cũ là chuyện bình thường mà fen :big_smile:
 
Hay nghe thiên hạ nói có user thì refactor sau mà mình chưa bao giờ thấy cái mùa xuân đó cả lol. Sửa 1 function còn impact analysis loạn cả lên, đây đòi sửa architecture
thấy đa phần thời gian sửa là éo bao giờ có, mà đến lúc sửa thì thằng trực tiếp sửa đa phần không phải là thằng tạo ra cái phải sửa :shame:
 
thấy đa phần thời gian sửa là éo bao giờ có, mà đến lúc sửa thì thằng trực tiếp sửa đa phần không phải là thằng tạo ra cái phải sửa :shame:
Bên Product không bao giờ chịu cho resource để clean code đâu, toàn bắt dev feature mới. Nên code đầu vào phải chuẩn.

Ban đầu code lệch pattern là sau này khá khó chịu khi phải phát triển thêm tính năng :LOL: View lại git commit blame thằng làm trước thì nó 1 là nghỉ, 2 là bị đuổi, 3 là tự xin chuyển qua team khác => Refactor lại kha khá, nó ảnh hưởng đến tiến độ của sprint. Sau này team mình tỉnh lắm, không đúng pattern cái là cho PR need work luôn :LOL:.
 
tôi luôn nói là hãy xong function trước, rồi tối ưu sau :D
luôn luôn xây dựng trc rồi tối ưu về sau, đó là cách làm việc, mấy ông cứ lôi ba cái sáo rống ra làm cái gì, project mới 1 thì suy nghĩ 1, cứ phải suy nghĩ quá lên để đc gì, quy tắc là do con người đặt ra, nó phải phù hợp vs hoàn cảnh, chứ cứ chăm chăm theo quy tắc 1 cách học vẹt để được gì :D
đến ngay tôi nói gọi thằng database đấy, tại sao phải thêm 3 cái bước rườm rà làm gì, nếu function phức tạp hơn thì có thể cần gọi thông qua thằng khác, nhưng đơn giản như login so sánh pwd, đếm tổng số item, thì cần mẹ gì ba cái bước khác rườm rà, về sau hệ thống ổn định, tối ưu lại cũng đc chứ mắc mớ gì cứ phải làm phức tạp hoá lên làm cái gì, giữ cho mọi thứ càng đơn giản càng tốt
thật tôi cảm giác mấy ông code chắc đơn giản như cái print hello world thôi, chắc mấy ông cũng phải viết 3 lớp, rồi phải sài đủ các loại test để test để chứng mình mình có kiến thức quá :D toàn lý thuyết xáo rỗng :D
Sao bác biết clean code là không phù hợp với hoàn cảnh project của những bác cmt phía trên?
Lý thuyết được nhiều người sử dụng rồi đừng nói nó là sáo rỗng, project của họ yêu cầu thế, convention trong team người ta quy định vậy, đã dùng và chứng minh được hiệu quả. Sống trong xã hội đâu phải thích làm gì thì làm.

Tôi có cảm giác các dự án bác làm có deadline rất gấp, và rồi cái bước tối ưu sau sẽ không xảy ra. Tôi mạnh dạn đoán là bác làm freelancer dev solo.
 
Back
Top