Bài đăng

Strategy Design Pattern

Hình ảnh
         1. Strategy design pattern là gì?     -  Trong design pattern được chia làm 3 nhóm chính: creational  pattern , structural  pattern , behavior pattern. Và s trategy design pattern thuộc nhóm b ehavior pattern.      - Nó cho phép định nghĩa tập hợp các thuật toán, đóng gói từng thuật toán lại , và dễ dàng thay đổi linh hoạt các thuật toán bên trong object. Strategy cho phép thuật toán biến đổi độc lập khi người dùng sử dụng chúng.          2. Những trường hợp có thể áp dụng strategy:     - Trong một dự án có chức năng convert hình ảnh jpg sang có loại khác, ban đầu chỉ có loại convert sang png. Ban đầu chúng ta chỉ cần xây dựng 1 class ImageConvertor với hàm convertTo và truyền vào image. Image converter class      - Vấn  đề: Sau một thời gian thì dự án bắt đầu phát triển và yêu cầu chúng ta thêm những loại convert khác như webp, tiff, gif và có thể sau này sẽ thêm nhiều loại convert khác nữa. Giải quyết vấn đề:      -  Vào thẳng hàm  convert để sửa if else trong đó. Cách này

Code smell - Code gì thấy gớm vậy ba

Hình ảnh
       Mình thấy có khá nhiều developer kể cả mình từ các bạn intern, fresher... cũng mắc phải những lỗi code smell  mà đáng lẽ ra chúng ta nên tránh. Đừng có nói: "Tao làm cái này chạy được rồi sau này thằng khác dô maintain thì nó tự đọc code đi, chứ ai rảnh đâu mà làm cho nó đẹp, dễ đọc". Xong cuối cùng bản thân mình lại là người đi hốt đống code thúi đó.  Vậy cho nên dưới đây sẽ là một vài lỗi  code smell   mà mình thấy và hay gặp phải, cũng như cách giải quyết chúng.     1. Đặt tên biến không rõ ràng, hay dùng magic number trong code:              -  Có vài trường hợp đặt tên biến rất bị confuse, kiểu không biết biến đó dùng để làm gì, làm cho trở nên khó hiểu hơn rất nhiều. Thường thì nên đặt tên biến là danh từ là tốt nhất.                Ví dụ: không nên : getStartTime, valueA, valueB,  nên : startTime, endTime, totalProduct               - Và đặc biệt mình thấy có một cái mà khá nhiều người hay mắc phải đó là magic number , nhìn thì vô hại đó nhưng mà hại người khác

Lập trình hướng đối tượng, khó hiểu hay do mình không hiểu

Hình ảnh
     Bạn đang học lập trình, bạn đang tìm hiểu về  lập trình hướng đối tượng, bạn cảm thấy nó quá khó, bạn thấy thật mệt mỏi, chán nản, suy nghĩ rằng mình sắp rớt môn rồi, huhu. Không sao, mình sẽ chia sẻ cho bạn về hướng đối tượng từ một người từng rớt môn hướng đối tượng. Lets go... 1. Lập trình hướng đối tượng  ( Object Oriented Programming)  là gì ?     Thật ra khi bạn tra trên mạng sẽ ra đầy đủ định nghĩa về nó nhưng bạn cứ hiểu nó là một kĩ thuật lập trình, bằng cách tổ chức,  xây dựng  code thành các đối tượng  (object) . Chúng ta sẽ đưa các đối tượng  ở thực tế vào trong code và biểu hiện chúng thông qua lớp (class) . 2. Vậy tại sao cần nên lập trình theo hướng đối tượng?       Nếu trong một team có 4 đến 5 thành viên, mỗi người mỗi style coding, ông A thì tạo ra 1 cái hàm tạo ra con chó husky ngáo, ông B cũng dô xài cái hàm tạo con chó đó nhưng không vừa ý vì muốn con chó phải becgie trông cho nó lực. Thế là dô sửa cái hàm tạo con chó đó, xong ông A biết được nên hẹn ông B ra