DANH MỤC TÀI LIỆU
Những Antipatterns các lập trình viên cần phải tránh
Nh ng Antipatterns các l p trình viên c n ph i tránh ầ ả
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. Trong l p trình cũng v y, nhi u khi ấ ờ
b n mu n t mình làm t t t n t t m i th ấ ầ vi t t t c m i th t ế ứ ừ
đ u, mà không bi t r ng, đã có r t nhi u API, th vi n đã có s n, và r t ế ằ ư
tuy t v i r i. ờ ồ
Reinventing the wheel không ch gây ra lãng phí th i gian, mà còn nh ng ờ ữ
gi i pháp tùy ch n, đ c bi t là nh ng ch c năng c b n hi m khi t t h n ơ ả ế ơ
nh ng chu n mà nhi u nhà phát tri n hay ng i dùng đã th nghi m r t kĩ ườ ệ ấ
r i.
3. Dependency Hell
Trái ng c v iượ “reinventing the wheel”, chúng ta có m t antipattern khác
cũng ph bi n đó làổ ế “dependency hell”.
N u, thay vì c m c i vi t m i th t đ u, chúng ta l iế ụ ế ọ ứ quá l m d ng vi cạ ụ
s d ng th vi n bên th ba d a trên nh ng phiên b n c th c a ư ể ủ
nh ng th vi n khác ư ệ . Đi u này s khi n b n d dàng ph i đ i m t v i ế ả ố
nh ng tình hu ng khó qu n lý m i khi mu n c p nh t th vi n, vì đôi khi ư ệ
nh ng dependencies này sau khi c p nh t l i không t ng thích v i nh ng ậ ạ ươ
cái khác.
thông tin tài liệu
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. Dưới đây là một số Antipatterns các lập trình viên cần phải tránh
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×