07/09/2018, 08:43

10 Antipatterns các lập trình viên cần phải tránh

Đây là bài chia sẻ được dịch từ bài viết của tác giả Anna Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Trong bài chia sẻ này, có một số chỗ được mình sửa đổi, bổ sung để cho phù hợp. Thiết kế kiến trúc của một website hay một ứng dụng, hoặc thiết lập một ...

Đây là bài chia sẻ được dịch từ bài viết của tác giả Anna Monus (https://www.hongkiat.com/blog/code-optimization-coding-antipatterns/). Trong bài chia sẻ này, có một số chỗ được mình sửa đổi, bổ sung để cho phù hợp.

Thiết kế kiến trúc của một website hay một ứng dụng, hoặc thiết lập một coding workflow hiệu quả thường xuyên khiến chúng ta phải đối mặt với những vấn đề nan giải, thường xuyên gặp phải. Chúng ta không cần thiết phải giải quyết những vấn đề thiết kế này từ con số 0, vì ta có thể tái sử dụng được những giải pháp ở cấp độ kiến trúc cũng như những đoạn code ở tầng vi mô.

Design patterns là một trong những giải pháp tái sử dụng trong một số trường hợp nhất định, có thể hữu ích để giải quyết những sự cố thường xảy ra và có thể giúp chúng ta tối ưu những đoạn codes của mình.

Mặc dù Design patterns là phương tiện tuyệt vời để cải thiện quy trình phát triển của chúng ta bằng cách sử dụng những công thức đã được kiểm chứng tốt. Tuy nhiên, đôi khi những Design patterns đó cũng mang lại những hậu quả tiêu cực đối với chúng. Lúc này, chúng được gọi là những Antipatterns.

Antipatterns là gì?

Thuật ngữ "antipatterns" xuất hiện lần đầu tiên trong một cuốn sách mang tên AntiPatterns vào năm 1998.

Nó đề cập đến những giải pháp tái sử dụng mà ban đầu trông có vẻ hữu ích, nhưng dần sau đó, chúng lại trở nên có hại hơn là lợi.

Điều này có thể xảy ra vì nhiều lý do khác nhau, ví dụ như nếu chúng ta không sử dụng những patterns đúng bối cảnh, cài đặt, hay thời gian phù hợp (các giải pháp có hiệu quả trong quá khứ không phải lúc nào cũng hoạt động đúng ở thời điểm hiện tại), hoặc trong những trường hợp xấu hơn là toàn bộ mô hình đã không tốt ngay từ khi bắt đầu rồi (>'<)'.

Antipatterns cũng thường được gọi là những mô hình thất bại. Tuy nhiên, tin vui là chúng ta hoàn toàn có thể nhận biết và né tránh chúng.

Trong bài viết này, tôi sẽ giới thiệu qua cho các bạn 10 antipatterns phổ biến hay gặp phải trong quá trình phát triển web. (Chú ý rằng những antipatterns tôi liệt kê dưới đây không hoàn toàn giống với những gì bạn có thể tìm thấy trong cuốn sách tôi đã đề cập ở trên).

10 Antipatterns phổ biến

1. Premature Optimization (Tối ưu sớm)

Thời điểm tốt là một trong những yếu tố quan trọng trong việc tối ưu hóa các đoạn codes. Nếu chúng ta để ý đến những hiệu quả nhỏ và tối ưu hóa chúng quá sớm trong quá trình phát triển, trước khi chúng ta biết chính xác những điều cần làm, rất có thể chúng ta sẽ dễ dàng mắc phải antipattern "Tối ưu sớm".

Theo câu nói nổi tiếng của Donald Knuth: "Tối ưu sớm là gốc rễ của mọi điều ác", nó có thể hơi bị cường điệu hóa lên một chút, nhưng có thể cho thấy rằng những vấn đề nghiêm trọng về tối ưu hóa sớm có thể gây ra trong tương lai như thế nào.

Nếu chúng ta tối ưu hóa hiệu năng trước khi xây dựng một kiến trúc hiệu quả, nó có thể gây ra codes trở nên khó đọc, việc debug và bảo trì khó khăn hơn, và những đoạn codes thừa bị đẩy vào mã nguồn của chúng ta.

Một ý tưởng tốt để ngăn chặn việc tối ưu sớm là tuân theo nguyên tắc lập trình YAGNI (You Aren’t Gonna Need It), nó khuyên chúng ta nên tuân thủ "cần cái gì thì thêm cái đó", chứ đừng có mà "chắc là sau này sẽ cần đến".

2.Reinventing the Wheel

Reinventing the wheel - Tái phát minh bánh xe có thể hiểu nôm na là cái bánh xe nó đã được phát minh từ rất lâu rồi, và nó cũng rất tốt rồi, đừng có mất thời gian đi phát minh lại nó nữa             </div>
            
            <div class=

0