Bài đăng

Đang hiển thị bài đăng từ 2023

Singleton design pattern

Hình ảnh
     Chắc có lẽ bạn đã một vài lần nghe qua singleton design pattern. Vậy singleton là gì? Và khi nào nên dùng nó,  chúng ta hãy cùng tìm hiểu nhé. 1. Singleton là gì?      S ingleton  là tên của  một  design pattern   thuộc nhóm creational . Mục đích của nó là đảm bảo một đổi tượng sẽ được khởi tạo đúng một lần duy nhất, nghĩa là nếu đối tượng đó chưa được khởi tạo thì sẽ tạo ra đổi tượng đó, nếu đối tượng đã được khởi tạo nó sẽ không tạo ra nữa mà sẽ trả về đối tượng đã có sẵn. 2. Tại sao không nên khởi tạo một đối tượng nhiều lần?     Ví dụ trong code của bạn rất thường xuyên log lại những message (lỗi, cảnh báo...) để có thể trace nếu cần, thậm chí trong một hàm có đến 3 đến 4 chỗ sử dụng hàm log . Việc bạn khởi tạo nhiều đối tượng cũng không cần thiết lắm, thế nên đối tượng Logger nên tạo ra đúng một lần duy nhất. 3. Triển khai singleton như thế nào ?    Mình sẽ ví dụ singleton bằng PHP code nhé. 4. Nhược điểm của Singleton?      - Bên cạnh những ưu điểm trên, singleton cũng mang

Static method trong PHP và khi nào nên sử dụng chúng

Hình ảnh
  Static method là gì ?      Trong lập trình, static method (phương thức tĩnh) là một phương thức thuộc về class và có thể được gọi mà không cần tạo ra một đối tượng của class đó. Chúng được khai báo với từ khóa static và có thể được truy cập bằng cách sử dụng tên class, dấu hai chấm (::) và tên phương thức. Static method rất hữu ích khi bạn muốn sử dụng một phương thức thuộc về một class mà không cần phải tạo một đối tượng của class đó      Tuy nhiên, để có thể sử dụng tốt static method thì chúng ta cũng nên tìm hiểu về ưu và nhược điểm của chúng. Vậy hãy cũng xem chúng có ưu và nhược điểm gì nhé. 1. Không cần khởi tạo đối tượng      Việc sử dụng static method giúp giảm thiểu sự tốn kém về tài nguyên bộ nhớ và tốc độ thực thi chương trình, bởi vì bạn không cần phải tạo ra một đối tượng mới để gọi phương thức.      Một class có thể có cả static và non-static method. Một static method có thể truy cập từ một phương thức cùng trong đối tượng của class bằng cách sử dụng từ khóa self

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