“Lập trình lười biếng” – Mẹo JavaScript trong 2 phút

“Lập trình lười biếng” – Mẹo JavaScript trong 2 phút

Mẫu “lập trình lười biếng”, hay còn gọi là “The lazy pattern”. Đây là một mẹo JavaScript cực hay. Hãy đọc hết bài viết! Cùng tìm hiểu xem vì sao với mẹo nhỏ này bạn có thể làm được cả thế giới chỉ trong 2 phút! Có thể, bạn sẽ áp dụng nó trong tất cả các dự án JavaScript sau này của bạn đấy! (Node hoặc Browser).


Mẫu “lập trình lười biếng” – Mẹo JavaScript

Đừng bao giờ sử dụng console. Hãy đặt dòng mã sau vào đầu tất cả các dự án tiếp theo của bạn log (), warn () và ‘error ()’.

const {log, warn, error} = console
/* For IE */
// var log = console.log;
// var warn = console.warn;
// var error = console.error;

Dòng code đơn giản này là gì?  Nó dùng để đổi tên hàm ‘console.log’ thành hàm ‘log’… và tương tự cho các hàm ‘warn’ và hàm ‘error’.


Lười biếng không phải là xấu! – Mẹo JavaScript

Sự lười biếng trong khoa học máy tính không giống như trong các lĩnh vực khác. Thật vậy, bạn sẽ thực sự thấy rằng lười biếng là hữu ích! Một số người thông minh đã tạo ra các khái niệm ấn tượng dựa trên ý tưởng ‘lười biếng’. Ví dụ như: đánh giá lười biếng (lazy evaluation) và tải chậm (lazy loading).

Bạn cho rằng lười biếng là không làm bất cứ điều gì và làm không hiệu quả? Tuy nhiên, có một hướng suy nghĩ tích cực hơn. Sự lười biếng là tránh làm một cái gì đó cho đến khi nó được ưu tiên. Và tìm một cách nhàn hạ nhất để thực hiện chúng.

Có một trích dẫn mà tôi rất tâm đắc như thế này:

Whenever there is a hard job to be done I assign it to a lazy man. He is sure to find an easy way of doing it.” – Bất cứ khi nào có một công việc khó khăn, tôi giao nó cho một người lười biếng. Anh ta chắc chắn sẽ tìm ra cách dễ dàng để thực hiện nó.


Quay trở lại code – Mẹo JavaScript

Nếu bạn là một lập trình viên mới… Bạn có thể chưa bao giờ thực sự quan tâm hoặc thậm chí nghĩ về cách để ghi log các thứ. Log là cách để bạn hiểu được những gì đang xảy ra.

Tuy nhiên, nếu bạn đang làm việc trong một công ty hoặc triển khai một hệ thống phức tạp, các nhóm thường phải đưa ra các ‘Quy ước ghi log – Logging Conventions’. Từ một thao tác đơn giản như là in ra thời gian thực thi tại một điểm nào đó. Cho đến phức tạp như việc hiển thị nguồn gốc của log hoặc là ghi log ra nhiều file khác nhau thay vì chỉ in ra trên ‘stdout’. Cũng có một số quy ước ghi log còn quy định là đừng bao giờ ghi log bởi vì nó sẽ làm cho chương trình bị chậm.

Nếu sau này, bạn cần triển khai một trong số các quy ước này. Bạn sẽ không muốn phải thay thế từng lời gọi hàm console.log, console.warn và console.error trong mã nguồn của mình bằng lời gọi một hàm mới. Thay vào đó, bạn sẽ muốn xoá dòng đó đi và tự định nghĩa các hàm mới.

Với cách này, nếu bạn muốn tất cả các log của mình được ghi vào một file, bạn chỉ cần tạo một hàm có tên là log và làm tất cả những gì mà mình muốn ở trong hàm đó. Tôi không nói rằng dòng mã này sẽ xuất hiện ở trong mã nguồn của bạn mãi mãi. Nhưng nó là một chỗ để dành (placeholder) giúp bạn tiết kiệm nhiều thời gian trong tương lai.


Nguyên tắc của mô hình lười biếng là lười biếng!Mẹo JavaScript

Nguyên tắc của mô hình Lười biếng là cần phải trở nên lười biếng. Đúng vậy, nguyên tắc này không giải thích gì cả nhưng đây là một ví dụ. Nếu có một khả năng nhỏ, chẳng hạn là 1%, là tôi sẽ phải triển khai một số tiêu chuẩn cho các log của mình.

Do đó, tôi cần thay thế tất cả các câu lệnh console.log bằng một hàm ghi log mới tự định nghĩa. Tôi sẽ làm việc này ngay lập tức. Tái cấu trúc mã nguồn là một công việc tốn kém thời gian. Và thậm chí, nó còn làm cho tình hình trở nên tệ hơn trong một ngôn ngữ kiểu động như là JavaScript.

Việc viết dòng mã này có thể sẽ nhanh và dễ hơn so với việc tìm chức năng Refactor hoặc Find & Replace trong IDE của bạn. Một người thực sự lười biếng sẽ cố bỏ ra 10 giây để thêm dòng mã này. Nhờ thế, họ khỏi phải mất công tái cấu trúc mã nguồn về sau.


Bạn nói rằng bạn là người lập trình lười biếng thực sự!

Và nếu bạn nói, bạn cực kỳ lười. Lười đến nỗi bạn không cả muốn mất công viết ra một dòng mã đơn giản như vậy. Ngoài ra, đằng nào thì mã nguồn của bạn cũng sẽ không bao giờ phải tuân thủ một chuẩn ghi log nào cả. Nếu đúng là như thế, tôi sẽ nói với bạn một điều cuối cùng.

Dòng mã mà tôi đã giới thiệu với bạn chỉ bao gồm 36 ký tự, bao gồm cả các dấu cách và dấu chấm phẩy. Cứ mỗi lần bạn gọi bất cứ hàm nào trong 3 hàm ghi log đó thì bạn đã tiết kiệm được công sức để gõ chữ “console.”. Và nhờ đó, bạn tiết kiệm được 8 ký tự. Như vậy, nếu bạn gọi ít nhất 5 lần hàm “console.log” trong mã nguồn thì bạn thực sự đã tiết kiệm được khá nhiều.

Tham khảo: https://medium.com/team40/the-lazy-pattern-a-2-min-javascript-tip-you-can-take-for-life-11396f665599

Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Leave a Reply

Your email address will not be published. Required fields are marked *