Mở đầuLà những lập trình viên Javascript thời buổi nay, chắc có rất nhiều người trong chúng ta đều đã từng gặp phải một trường hợp khiến ta rất chi là đau đầu. Đó là việc khi code một đoạn logic nào đó chúng ta phải đứng giữa vô vàn sự lựa chọn giữa các cú pháp trong Javascript. Nếu như thời xưa hoặc một số ngôn ngữ lập trình khác, chúng ta có thể chỉ có một cú pháp để giải quyết một vấn đề logic nào đó hoặc có nhiều cú pháp nhưng sự khác biệt giữa các cú pháp khá rõ ràng và có các trường hợp sử dụng riêng, thì với Javascript thời nay có rất nhiều cú pháp giúp ta tiện lợi hơn khi phải giải quyết một vấn đề nào đó và chúng khá là tương đồng nhau khi ta không tìm hiểu đủ sâu đủ kĩ về nó. Nhưng thật không may khi đó lại trở thành con dao hai lưỡi khi chúng ta được free code, không được ai hướng dẫn hay bắt buộc phải theo một convention nào, khi ta chưa có đủ kiến thức và kinh nghiệm để phân biệt lúc nào nên sử dụng cú pháp đó. Cũng vì điều đó, nên có lẽ chúng ta nhiều khi cũng nên tự xây dựng, sưu tầm cho mình một bộ quy tắc riêng khi code, điển hình khi code Javascript. Và dưới đây mình cũng đã sưu tầm được một bài viết để có thể đưa vào bộ quy tắc code Javascript của riêng mình. Show Javascript thời hiện đại đang phát triển vô cùng nhanh chóng để có thể đáp ứng được các thay đổi trong nhu cầu về framework mới hay môi trường mới. Việc có thể hiểu được cách tận dụng các lợi thế, điểm mạnh của những sự thay đổi ấy có thể giúp cho bạn tiết kiệm được rất nhiều thời gian, nâng cao hoàn thiện bộ kĩ năng của bản thân, và đánh dấu sự khác biệt giữa code tốt và code tuyệt vời. Và việc hiểu biết được những thay đổi cũng giúp cho bạn có thể quyết định được khi nào cần dùng các cú pháp mới để có thể đạt được hiệu quả cao, và khi nào thì việc sử dụng các cú pháp cũ vẫn hợp lý. Bài viết này tóm gọn một số điểm chính trong quyển sách Javascript: Best Practice Cần bám lấy, nắm chắc các kiến thức nền tảngThật là khó để có thể tìm thấy một ai mà cảm thấy không hề bối rối hay loạn với tình trạng Javascript những ngày nay, cho dù họ là người mới học Javascript hay là người đã code ngôn ngữ này được một thời gian. Thực sự có quá nhiều các framework mới, quá nhiều sự thay đổi trong Javascript và có quá nhiều trường hợp, ngữ cảnh cần được xét đến. Quả là một điều "ngạc nhiên" khi ai đó có thể hoàn thành bất cứ công việc nào bằng tất cả những điều mới mẻ mà ta "phải" học mỗi tháng. Mình tin rằng chìa khóa cho sự thành công với bất kì một ngôn ngữ lập trình nào, bất kể ứng dụng có phức tạp đến đâu đi chăng nữa, là nắm vững được kiến thức cơ bản. Nếu bạn muốn hiểu được Rails, hãy rèn luyện kĩ năng lập trình Ruby của mình, hay nếu bạn muốn sử dụng immutables hay luồng dữ liệu một chiều (unidirectional data flow) cho React cùng với webpack, hãy bắt đầu bằng việc hiểu một chút về phần core của Javascript. Việc hiểu được cách một ngôn ngữ lập trình hoạt động sẽ thực tiễn hơn rất nhiều so với việc bạn cố gắng làm quen với các framework và môi trường mới nhất. Những thay đổi đó thậm chí còn nhanh hơn cả thời tiết. Và với Javascrip thuần, chúng ta đã có một danh sách dài các thông tin hữu ích trên mạng về cách mà nó hoạt động hay cách dùng nó hiệu quả như thế nào. Tránh "nghiện" các sự thay đổi mớiCó rất nhiều các thay đổi mới trong Javascript vào các năm gần đây được ví như các "viên đường" cú pháp bổ sung cho các cú pháp có sẵn khiến chúng "ngọt" hơn, "dễ uống" hơn. Trong nhiều trường hợp, những "viên đường" ấy có thể sẽ giúp cho các lập trình viên Java dễ dàng "nuốt trôi" được cách làm việc với Javascript, hay tất cả chúng ta chỉ mong muốn có một cách đơn giản hơn, gọn gàng hơn để hoàn thành một việc mà tất cả chúng ta đều đã biết cách giải quyết. Những thay đổi đem đến cho chúng ta những khả năng kì diệu mới khác. Nhưng nếu bạn cố sử dụng hay lạm dụng các cú pháp hiện đại để tái lập lại các phương pháp cũ, hoặc cứ dùng chúng bừa bãi mà không cần hiểu xem thực sự chúng hoạt động như nào, bạn sẽ có nguy cơ gặp phải:
Thực tế, có rất nhiều những thay đổi trông có vẻ là một sự thay thế hoàn toàn cho các kĩ thuật cũ nhưng thực ra lại hoạt động khác hoàn toàn so với đoạn code mà đáng lẽ ra chúng thay thế. Trong nhiều trường hợp, việc sử dụng các kĩ thuật nguyên thủy, phong cách cũ hơn sẽ là hợp lý để có thể hoàn thành vấn đề bạn đang cố gắng giải quyết. Nhận ra được những điều đang diễn ra, và biết được cách để đưa ra quyết định đúng là những điều vô cùng cần thiết trong việc viết một đoạn Javascript hiệu quả thời nay. Khi mà const không hẳn lúc nào bất biếnJavascript thời hiện đại đã đem đến cho chúng ta 2 từ khóa mới, đó là Theo Javascript truyền thống, việc khai báo các biến của bạn với từ khóa Sự thay thế sạch sẽ, gọn gàng nhất cho từ khóa
Khi bạn khai báo một biến với từ khóa Đây là một điều khá tiện lợi cho việc sử dụng biến trong phạm vi khai báo block như các iterator hay loop. Như trước đây, các biến được khai báo trong các
loop có thể được truy cập ở bên ngoài nó và trong phạm vi nơi loop được khai báo, dẫn đến việc gây khó hiểu khi nhiều nơi có thể sử dụng cùng tên biến đó. Nhưng
Một cách khai báo khác đó là Một
Một
Nhưng nếu bạn mong chờ rằng biến
Và chính vì lý do này mà mình vẫn thấy hoài nghi khi mọi người khuyên sử dụng
Khi việc coi các biến của bạn khai báo ra là bất biến trở thành một thói quen tốt, thì Javascript lại không hỗ trợ việc đó cho nội dung của các biến tham chiếu như array và object được khai báo bằng từ khóa Mình thường nghiêng về việc sử dụng Hạn chế phạm vi hoạt động của FunctionCác function truyền thống được định nghĩa bằng cách sử dụng từ khóa
Chúng cũng có thể được sử dụng với từ khóa
Các function được sử dụng theo bất cứ cách nào trong 2 cách trên đều có thể được định nghĩa trước hoặc sau khi nó được gọi. Nó không phải vấn đề với Javascript.
Một function truyền thống cũng có thể tạo
một context riêng của nó, định nghĩa một giá trị cho Có quá nhiều từ khóa phải sử dụng, và thường thì nhiều hơn những gì một lập trình viên cần tại một thời điểm nào đó. Thế nên Javascript thời nay đã tách cách hoạt động của function truyền thống thành các arrow function và class. Sử dụng Class đúng thời điểmMỘt phần của Class trong Javascript nhìn và hoạt động giống như các class đơn giản ở các ngôn ngữ lập trình hướng đối tượng khác, và có thể là một bước đệm dễ dàng cho các lập trình viên Java hay C++ bước chân vào thế giới Javascript khi Javascript mở rộng sang lập trình phía server. Một điểm khác nhau giữa function và class khi thực hiện lập trình hướng đối tượng trong Javascript đó là class trong Javascript yêu cầu việc khai báo trước. Một
Áp dụng những điểm khác biệt với Arrow FunctionMột mặt khác của các function truyền thống có thể được truy nhập bằng cách sử dụng arrow function, một cú pháp mới cho phép bạn viết một hàm có thể gọi lại một cách chính xác, vừa vặn hơn trong việc sử dụng làm callback. Thực tế, cách sử dụng đơn giản nhất của arrow function là cách khai báo chỉ trên một dòng
mà không cần thiết dùng đến cặp ngoặc nhọn
Arrow function bao gồm rất nhiều tính chất khiến cho việc gọi chúng trở nên tiện lợi hơn, và bỏ qua các tính chất không quá hữu dụng khi gọi một function bình thường. Arrow function không hẳn là sự thay thế cho từ khóa Ví dụ, một arrow function có thể thừa kế cả
Kết luậnJavascript thời nay giới thiệu rất nhiều thay đổi mới vì các tính năng mới là cần thiết và được yêu cầu. Nhưng điều đó không có nghĩa rằng các lý do để sử dụng các cú pháp truyền thống đã mất. Thường thì sẽ hợp lý và dễ hiểu khi tiếp tục sử dụng cú pháp Javascript truyền thống, và đôi khi sử dụng các cú pháp mới sẽ khiến code của bạn được viết nhanh hơn và dễ hiểu hơn. Thói quen tốt nhất cho việc học và sử dụng Javascript thời hiện đại đó là nên chú ý vào việc ngôn ngữ này thực sự đang hoạt động như thế nào và làm gì. Hãy nghĩ về mục đích của đoạn code bạn đang viết, bạn nên deploy nó ở đâu, và ai sẽ thay đổi nó về sau. Từ đó bạn có thể tự quyết định đâu mới là phương pháp tốt nhất. Tham khảo
|