ai_chua_doc_javascript_the_good_parts

Chuyện xưa cũ: Ai chưa đọc JavaScript The Good Parts

JavaScript: The Good Parts là một tựa sách kinh điển ra đời vào năm 2008, được nhiều lập trình viên Javascript giỏi khuyến cáo là nên đọc khi bạn bắt đầu với Javascript, thật ra thì tới tận 2014 tôi mới đọc nó. Tác giả Douglas Crockford, cũng là một người khá quen thuộc trong cộng đồng Javascript và cũng là một thành viên trong hội đồng ECMAScript.

Mặc dù ra đời khá lâu và đến giờ phút này có thể coi là lỗi thời vì quyển sách chỉ bao gồm các đặc điểm kỹ thuật của ES3 thì quyển sách này vẫn cực kì giá trị cho đến tận hôm nay vì những bài học mà nó mang lại.

images

Đây là một quyển sách dễ đọc, những thứ cơ bản nhất của Javascript được tóm gọn trong chỉ khoảng 100 trang. Cực kì phù hợp để bạn có thể nắm bắt hết những phần cơ bản của Javascript trong một vài ngày, lưu ý là chỉ những phần cơ bản thôi nhé, những phần phức tạp như inheritance, modify built-in objects… thì cũng ngốn kha khá thời gian của bạn đấy. Và dù cho thế, thì nó vẫn là một quyển sách cực kì dễ đọc.

Quyển sách cũng nói về việc mọi ngôn ngữa đều có những phần tốt và những phần xấu. Sự hoàn hảo đối với một ngôn ngữ là không thể. Lập trình viên tốt là người biết tận dụng những phần tốt và tránh những phần xấu mà đôi khi rắc rối còn nhiều hơn giá trị mà nó mang lại.

Phần tốt, phần xấu và những phần tồi tệ

Một số phần tốt ít ỏi trong Javascript được gọi là những phần đẹp đẽ (good parts). Những phần không tốt và chúng ta có thể dễ dàng tránh sử dụng là những phần xấu (bad parts). Còn thành phần đã không tốt mà còn không thể tránh sử dụng thì chính xác là thành phần tồi tệ (awful parts). Vậy những thành phần đó trong Javascript là gì? Tôi có liệt kê một số feature tiêu biểu dưới đây.

Type  Javascript features
Good parts
  • Functions as class objects
  • Dynamic objects with prototypal inheritance
  • Object and Array literal
Bad parts
  • == operator
  • eval() function
  • switch clause fall-through
  • And more…
Awful parts
  • Global variables
  • Lack of block scope
  • Semicolon insertion
  • And more…

Còn đối với các bạn thì sao, đừng ngại comment ý kiến của mình bên dưới nhé! Tôi chắc rằng đã có không ít lần các bạn đau đầu khi không biết tại sao mà == không trả về kết quả mong muốn, vậy nên dùng == hay ===. Crockford đã gải thích điều này trong sách, và khuyên rằng chỉ sử dụng === và quên luôn == đi, nó không phải là phần tốt trong Javascript.

Sử dụng linter để đảm bảo chất lượng code

Các phần tốt thì dễ được chấp nhận, các phần xấu thì có thể tránh, nhưng vẫn còn đó một nhiệm vụ khó khăn cho các lập trình viên, phân tích xem các thành phần trong code đã tốt hay chưa. Vay mượn một triết lý từ C, nơi mà linter khá là phổ biến, Crockford đã tạo ra JSLint để kiểm tra những file Javascript source và tìm kiếm vấn đề còn tồn tại. JSLint cung cấp cho chúng ta một thứ như là đôi mắt thứ hai để chỉ ra những vấn đề và giúp chúng ta cải thiện chất lượng code.

Kể từ khi quyển sách này ra đời, JSLint đã có một cuộc đời khác, các bạn có thể xem ở JSLint.com.

Những bài học

Người đọc sau khi đọc xong quyển sách sẽ rút ra được hai bài học chính.

  • Không phải tất cả những feature được đưa ra trong một ngôn ngữ đều được sử dụng khi lập trình bằng ngôn ngữ đó.
  • Các giải pháp phân tích file source code nên được sử dụng để cải thiện chất lượng code.

Qua nhiều năm, với sự ra đời của ES6, nhiều phần xấu hay tệ trong Javascript đã được cải thiện nhiều, thêm vào đó là sự ra đời của những better parts. Nếu bạn đã đọc quyển sách này rồi, thì bài học của các bạn là gì? Cùng chia sẻ với mọi người ở phần comment nhé. Còn nếu bạn chưa đọc, thì hãy đọc nó nếu bạn muốn bắt đầu với Javascript nhé! Chào tạm biệt.

 

Advertisements

4 thoughts on “Chuyện xưa cũ: Ai chưa đọc JavaScript The Good Parts

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s