18/03/2024
Share bài hay From ai đó trên FB. Không phải của mình :))))
---
Keep It Simple Stupid - quan trọng nhất là Keep It Simple, không phải Stupid 😌
Keep It Simple Stupid (KISS) là một nguyên tắc trong thiết kế nói chung, trong đó nhấn mạnh đến sự đơn giản và dễ dùng của sản phẩm. Với lĩnh vực phần mềm, sản phẩm của chúng ta sẽ là các app, các thư viện, framework, hoặc có thể sâu hơn là các class.
Một sản phẩm dễ sử dụng hoàn toàn khác với một sản phẩm đơn giản đến mức stupid, và cũng không có nghĩa là cắt bỏ đi tất cả mọi thứ hiện chưa sử dụng đến.
Việc áp dụng KISS một cách tiêu cực mà không quan tâm đến SOLID hay design pattern (như một số comment mình đọc được) là stupid, không phải KISS.
Tại sao phải sử dụng Factory trong khi ta hoàn toàn có thể sử dụng new? Tại sao phải tạo ra các interface trong khi cuối cùng ta vẫn phải có một "concrete object"? Việc tạo ra các thành phần mới như vậy chẳng phải làm cho vấn đề phức tạp hơn hay sao?
Vậy chúng ta thử đặt một câu hỏi khác nhé. Tại sao các bạn phải có phích và ổ cắm điện? Tại sao chúng lại phải theo các chuẩn? Chẳng phải bạn chỉ cần để sẵn đầu dây điện trần rồi dùng tay quấn lại là xong ☠️? Hoặc người ta có thể nối luôn cáp TV vào mạng lưới điện trong nhà? Đó là vì ổ cắm và phích cắm - vốn là những thành phần được thêm vào trong hệ thống điện, đã giúp chúng ta sử dụng một cách đơn giản hơn rất nhiều, giúp một đứa trẻ cũng có thể sử dụng thiết bị thay vì phải cần đến một thợ điện.
Trong phần mềm cũng vậy, các interface được tạo ra nhằm mục đích đơn giản hóa việc sử dụng, các Factory giúp bạn tạo ra các object dễ dàng hơn. Chúng được tạo ra để giúp sản phẩm của bạn đơn giản và dễ dùng hơn, không phải ngược lại. Chúng có thể làm code của bạn to ra một chút, nhưng sẽ "flexible" hơn nhiều, và sẽ giúp bạn ẩn đi những gì phức tạp đằng sau, đó chính là Keep It Simple Stupid.
Hay nói cách khác, hãy "làm sản phẩm đơn giản đến mức thằng ngu cũng dùng được", chứ không phải "làm sản phẩm đơn giản như những thằng ngu"
---
Dạo này mình đang học lại các Design Pattern cơ bản từ NN Group, các bài viết gốc đều được viết từ 10 - 25 năm về trước nhưng vẫn có giá trị đến bây giờ. Nếu bạn cũng hứng thú thì có thể học tại đây và lâu lâu ib để bốc phét + học chung với mình -
Unsure how to design and implement user-interface patterns? Use this collection of links to our content about specific patterns.