Lập trình viên “trình cao” thì nên đọc sách gì? – Phần 2

Nối tiếp phần 1, ở phần này mình sẽ giới thiệu những cuốn sách còn lại trong danh sách được giới thiệu trên codinghorror. Có vài cuốn hơi cao siêu, các bạn nên đọc theo tính chất “giải trí, học hỏi”, nếu giữa chừng tẩu hỏa nhập ma có thể ngừng cũng được, không sao =)))

6. The Design of Everyday Things (Đã đọc hết)

design-of-everyday-things

Continue reading Lập trình viên “trình cao” thì nên đọc sách gì? – Phần 2

Lập trình viên “trình cao” thì nên đọc sách gì? – Phần 1

Đầu tiên, xin hứng chịu gạch đá từ nhiều bạn rằng: developer thì cần gì phải đọc sách, code nhiều là giỏi thôi. Vâng, các cậu có cu, nhầm, các cụ đã có câu là “practice make perfect”, cứ làm hoài là giỏi. Tuy nhiên, phải làm đúng cách thì mới giỏi được, code dở mà không chịu tìm cách cải thiện kĩ năng code, cứ code hoài 1 kiểu cũ thì bao giờ mới giỏi được.

Về sách lập trình mình đọc cũng được kha khá, sách hay có dở có. Tuy nhiên mỗi cuốn sách hay hay dở đều làm mình ngộ ra được vài điều. Khảo sát trong cuốn Code Complete cho thấy trung bình 1 developer đọc ít hơn 1 cuốn sách mỗi năm. Chỉ cần các bạn làm theo mình, mỗi năm đọc ít nhất một cuốn, các bạn sẽ giỏi hơn khoảng 90% developer còn lại rồi nhé.

Continue reading Lập trình viên “trình cao” thì nên đọc sách gì? – Phần 1

Tăng sức mạnh cho javascript với lodash

Như đã nói ở bài trước, lần này mình sẽ giới thiệu 1 thư viện javascript vô cùng bá đạo có tên là “lodash“, có thể nói nó là LINQ trong javascript. Đảm bảo chỉ sau 1 lần dùng thử, thư viện này sẽ trở thành thư viện không thể thiếu trong mỗi project javascript của bạn.

1. Giới thiệu tổng quan về lodash

Tiền thân của lodash là underscore – một thư viện javascript cũng khá nổi tiếng (Bạn nào hỏi: Nổi tiếng sao mình ko biết?… vui long đi chỗ khác chơi nhé :)). Có thể xem lodash là 1 bản mở rộng, với nhiều chức năng hơn, performance cao hơn underscore.

Lodash cung cấp rất nhiều chức năng, chia làm vài nhóm như: chức năng linh tinh (check null, underfine, ..), chức năng hỗ trợ xử lý string, chức năng xử lý object, chức năng xử lý array. Vì phạm vi bài viết có hạn, mình chỉ ví dụ và đưa ra một số chức năng chính, các bạn có thể thao khảo danh sách API full của lodash ở đây: https://lodash.com/docs

Continue reading Tăng sức mạnh cho javascript với lodash

Áp dụng LINQ trong javascript, chuyện nhiều người chưa biết

Như mình đã nói trong loạt bài: Học ngôn ngữ lập trình nào bây giờ?, hiện tại Javascript đang trở thành 1 trào lưu mới. Gần đây, do đang tự học Node.js nên mình tập trung nghiên cứu javascript nhiều hơn. Vì vậy, trong khoảng thời gian này mình sẽ đăng nhiều bài viết liên quan đến javascript hơn, mong các bạn theo dõi.

Như ở bài viết về LINQ, các bạn đã thấy sự mạnh mẽ và tiện dụng của LINQ trong C# (Java 8 chỉ mới cập nhật Stream API, mà vẫn còn thua LINQ nhiều lắm…). Để sử dụng 1 số hàm tương-tự-LINQ trong javascript, người ta thường dùng 1 số thư viện như: underscore, lodash, … Trong bài viết này, mình sẽ giới thiệu 1 số function (ít người biết) sẵn có trong prototype Array của javascript, cũng có tác dụng tương tự như LINQ.

advanced-javascript-3-638

Continue reading Áp dụng LINQ trong javascript, chuyện nhiều người chưa biết

Review sách: Clean Code: A Handbook of Agile Software Craftsmanship

Hôm nay bỗng dưng không có hứng viết bài về technical, thôi thì lôi đại cuốn này ra review vây. Mình đọc cuốn này trong thời gian còn làm việc ở FPT Software (Làm việc lúc nào cũng dư thời gian nên toàn lôi ebook ra đọc. Cuốn sách này xứng đáng là sách gối đầu giường của mọi developer. Mình khuyên các bạn nên mua bản gốc, 1 là để đọc, 2 là nếu gặp thằng nào code ngu, có thể cầm cuốn này đập vào đầu nó và bắt nó đọc. Continue reading Review sách: Clean Code: A Handbook of Agile Software Craftsmanship

Viết unit test cho javascript với Jasmine – Phần 2

Tiếp nối phần 1, ở phần này mình sẽ giới thiệu một số chức năng nâng cao của Jasmine, giúp việc viết unit test được dễ dàng hơn.

Nếu chưa tải Jasmine về máy, các bạn nên đọc lại phần 1 để biết chỗ tải về và cách viết 1 số test case cơ bản. Nội dung bài viết lần này bao gồm:

  1. Một số matcher của Jasmine
  2. Cách dùng các hàm before, after
  3. Sử dụng spy và mock

Continue reading Viết unit test cho javascript với Jasmine – Phần 2

Viết unit test cho javascript với Jasmine

Blog có khá nhiều bài về code rồi nên hôm nay mình sẽ viết một bài để đổi gió.

1. Nhắc lại sơ về Unit Test

Trước khi có unit test, các lập trình viên thường code theo kiểu: code – test – fix lại – code tiếp – test lại – fix tiếp. Đôi khi chỉ vì sửa 1 lỗi nho nhỏ mà ta phải test lại rất nhiều lần. Để giải quyết vấn đề này, unit test và automation test ra đời. Mình không phải QA chuyên nghiệp nên không dám múa rìu qua mắt thợ, chỉ nói sơ về định nghĩa của 2 loại test này:

  • Unit test: Đây là test do developer viết, được chạy để kiểm tra các hàm do developer viết ra có sai hay ko. Unit test thường được chạy mỗi khi build để đảm bảo các hàm đều chạy đúng sau khi ta sửa code.
  • Automation test: Đây là test do QA viết, được chạy để kiểm thử hệ thống (Nếu không có automation test thì QA kiểm thử bằng tay, gọi làm manual test).

you-need-some-tests-yo

Continue reading Viết unit test cho javascript với Jasmine