Design Pattern là những mẫu thiết kế code giúp giải quyết vấn đề, giúp code dễ bảo trì, dễ mở rộng hơn.
Anti pattern cũng là những cách thiết kế để giải quyết vấn đề, nhưng sử dụng nó lại… gây ra nhiều vấn đề hơn.
Một anti-pattern được nhiều người biết đó là hút thuốc lào thay cho thuốc lá, cách này cai được thuốc lá nhưng sẽ gây ra nhiều vấn đề vệ sinh và môi trường hơn.
Trong bài này, mình sẽ chia sẻ những anti-pattern chúng ta hay .. lỡ để nhầm vào code, hậu quả và cách giải quyết nó.
số lượng anti-pattern nhiều không đếm xuế, tính từ tầm planning, thiết kế architecture hệ thống, thiết kế object/module, cho tới lúc viết code.
Có nguyên quyển sách nói về anti-pattern
Những Anti Pattern phổ biến
Đây là 3 Anti Pattern, nhưng do chúng na ná giông giống nhau nên mình gom lại luôn:
Cách giải quyết: Anti Pattern này rất dễ xử lý. Chỉ cần không hardcode những giá trị config (mà đọc từ file config hoặc biết môi trường), tách các magic number ra thành biến riêng hoặc viết thêm comment là được.
Đây là một pattern hay gặp ở những bạn sinh viên đang làm đồ án, hoặc ở các dự án quá cũ, do dev non tay viết.
Gob Class tức là Class siêu to khổng lồ Thần Thánh, làm gì cũng được nên gọi là God. Tình trạng này xảy ra khi mấy ông dev gom quá nhiều tính năng vào 1 class.
Class này có những cái tên như Helper, Utils, Controller, Main… và rất bự (có khi tới 3-5000 dòng code). Mỗi lần chỉnh sửa, thêm bớt tính năng là 1 cực hình.
Cách giải quyết
Các bạn đừng lầm tưởng AntiPattern này là copy code trên mạng về bỏ vào code của mình nhé!
Đây là pattern theo kiểu viết code 1 lần, những lần sau cần dùng thì copy nguyên đoạn code cũ qua, sửa sửa lại 1 chút cho chạy được.
Cách giải quyết
Optimize code (Tối ưu code) là việc chỉnh sửa/viết lại code nhằm giảm dung lượng, hạn chế input/output, tăng tốc độ thực thi, giảm lượng phần cứng cần sử dụng.
Đôi khi, việc optimize code quá sớm (chưa biết chạy chậm chỗ nào, otpimize đoạn nào) là hoàn toàn không cần thiết, nó còn làm code phức tạp hơn, khó đọc, khó debug hơn.
Cách giải quyết
Spaghetti Code để chỉ code rối như canh hẹ, lộn, … rối như mấy cọng mì spaghetti. Đây là những dòng code móc nối nhiều module/class với nhau, flow đi vòng vèo, cực kì khó đọc và khó sửa.
Nguyên nhân là do team code mà không có design cụ thể, do developer lười nên code đại. Hoặc do requirement đổi liên tục, chồng chéo nhau, nhưng các module và design không được update, nên cũng gọi nhau chồng chéo luôn!
Cách giải quyết
Nguồn tham khảo :
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE