thảo luận Có nên học OOP Design Patterns?

Có nên học OOP Design Patterns ?


  • Total voters
    83
Mình đưa ra chỉ là kinh nghiệm của bản thân, Cho nên mới tạo ra thread pool.

Nhiều người không đồng ý vậy chắc là do mình đưa ra vấn đề ko đúng rồi :beat_brick:
 
Mình đưa ra chỉ là kinh nghiệm của bản thân, Cho nên mới tạo ra thread pool.

Nhiều người không đồng ý vậy chắc là do mình đưa ra vấn đề ko đúng rồi :beat_brick:

Code monkeys nó không hiểu cũng không care đâu. Tẩy não chết cứng luôn.

Sent from HUAWEI COR-L29 using vozFApp
 
Thật ra cái hay của DP là nó tạo ra 1 shared language nên đôi khi chỉ cần nhìn tên class là biết ngay intention. Ví dụ tôi thấy cái interface Listenner, Builder ... Là tôi biết ngay mình nên làm gì với nó.
OOP chỉ thật sự quan trọng khi anh muốn thiết kế library, sdk cho người khác xài, còn ở tầng application cũng bày đặt áp DP thì rất dở hơi
 
Lý thuyết về OOP Design Patterns vô cùng phổ biến trong ngành dev. Kể cả 1 thằng chưa từng học qua như mình khi review lại cũng phát hiện bản thân thường sử dụng khoảng 30% Design Patterns một cách tự nhiên mà ko hề hay biết. Vậy thì theo bạn sinh viên IT có nên học Design Patterns?

Cá nhân mình câu trả lời là không, có thể đọc sơ qua để tham khảo nhưng ko nên học nhớ quá sâu.

Lý do:

- Ảnh hưởng tới tư duy sáng tạo: Thay vì tập trung suy nghĩ để giải quyết các vấn đề, sau đó tạo ra bản design thích hợp dựa trên các yếu tố liên quan đến sản phẩm, bạn sẽ bị ảnh hưởng bởi các khuôn mẫu trong design pattern, thậm chí cố gắng suy nghĩ để đưa các design patterns vào trong thiết kế.

- Thường tạo ra sự dư thừa không cần thiết (Over-Engineering/Abstraction) nhưng nhiều khi cần thì lại thiếu: Rất nhiều tính năng của sản phẩm là unique, những tính năng như vậy phần lớn đều dẫn đến hiện tượng thừa-thiếu khi đưa vào design patterns. Ví dụ như bạn cần phải tạo ra 1 đống interface cho 1 class vô cùng đơn giản, rồi khi cần có sự thay đổi trong thiết kế thì cũng phải thay cả 1 đống mất thời gian gấp 5-10 lần so với bình thường.

- Fresher/Junior thường không đủ kinh nghiệm để sử dụng design patterns 1 cách hợp lý: nhưng vẫn cố sử dụng và kết quả thường là copy-paste hoặc 1 đống bùi nhùi.

- DP khiến thinkflow bị branching/corrupt nhiều hơn: branching sẽ nhanh chóng tạo ra sự mệt mỏi cho não. Trong khi rule (simple, minimal, flexible) tựa như memcached có thể truy xuất gần như zero cost để phục vụ cho việc thiết kế thì việc lựa chọn giữa phương án A, B, C giống như là inefficiently memory use.

- DP là khái niệm trừu tượng: chính vì trừu tượng nó sẽ khiến bạn bị hấp dẫn và suy nghĩ về nó khá nhiều. Trong khi sự cần thiết và tính thực dụng của nó trên effort bỏ ra thường là rất thấp. Kể cả good case là nó phù hợp và bạn nghĩ chỉ apply vào là xong nhưng thực tế khi đưa vào vẫn phải tốn nhiều năng lượng não.

--------

Thớt lại đang bị lạc đề rồi. Cái bạn tiêu đề là có nên học OOP design pattern. Nội dung bài viết thì bàn luận đến việc tại sao lại không nên sử dụng OOP design pattern "một cách thiếu hiểu biết"

Để có được một sự tranh luận tập trung thì cần phải chọn được 1 thứ để tranh luận

1/ Ai ( Newbie / Intermed / OO Developer / FP Developer ...? )
2/ Nên hay không nên
3/ Nắm được OODP ở mức độ biết / áp dụng / hiểu / hiểu và phản biện / phản biện và áp dụng phản biện

Vậy chủ thớt đang nhắc đến mức độ nào, đối với ai...
 
Back
Top