COOL JAVASCRIPT 9: ĐỐI SỐ ĐƯỢC ĐẶT TÊN- CÁC HÀM NHẬN VÀ TRẢ VỀ CÁC ĐỐI TƯỢNG

May 5, 2020

COOL JAVASCRIPT 9: ĐỐI SỐ ĐƯỢC ĐẶT TÊN- CÁC HÀM NHẬN VÀ TRẢ VỀ CÁC ĐỐI TƯỢNG

 

Liên tưởng rằng các đối số trong mã code của bạn đều được gán một cái tên thì sao nào? Khi đó việc kiểm tra và chỉnh sửa các lỗi rất dễ dàng chỉ qua vài thao tác đơn giản. Bài viết này nhằm mục đích tối ưu hóa công việc viết code của bạn trên Javascript 9 thông qua các đối số được đặt tên, các hàm nhận và trả về các đối tượng.

 

 

Hãy nghĩ đến đoạn mã này:

 

 

Nếu tôi hỏi bạn” Bạn có thể giải thích các thông số này không?”. Bạn có 2 lựa chọn:

  1. Có thể dự đoán, bởi tham số đầu tiên có thể là điểm cuối mà chúng tôi đang yêu cầu, chúng tôi đang yêu cầu thực hiện hàm nhận , chúng tôi chỉ muốn các tham số có ID= 3. Vậy những tham số còn lại là gì?

  2. Đi đến định nghĩa apiRequest(), đọc định nghĩa tham số của nó và trong tình huống đó bạn vẫn còn nghi ngờ. Vậy hãy đi sâu vào thực hiện để xem cách chúng làm việc với nhau.

Cả 2 giải pháp đều tối ưu cần năng lượng của não.

Tôi mong muốn chúng ta có cách dễ dàng để đặt tên các tham số như trong Python hay Kotlin chẳng hạn.

 

Sẻ có cách ngay sau đây thôi!

 

Nhập đối tượng phân mảnh và tên thuộc tính tốc ký!

( Không khó thực hiện như cái tên đâu nhé!)

Chúng ta tạo ra 3 biến( a, b và c) với giá trị của các đối tượng lần lượt là 1, 2 và 3.

Chúng ta biết rằng, cung cấp đối tượng cặp khóa/ giá trị cùng tên, chúng ta có thể loại bỏ một trong số chúng và đạt được cú pháp teaser:

 

Điều này mang đến kết quả chính xác như trước đây. Cuối cùng chúng ta có thể truyền đối tượng dưới dạng tham số hàm một cách chính xác.

 

Bạn có biết tại sao chúng ta không hợp nhất 3 điều này lại không?

 

 Điều gì đã xảy ra ở đây, thay vì cần N tham số, apiRequest chỉ cần một đối tượng đơn. Chúng ta ngau lập tức phân mảnh nó thành một số biến có cùng tên với các tham số. Hãy chú ý các hàm gọi của chúng ta, bây giờ nó giải thích những gì về mọi tham số.

 

 

Nhưng còn nhiều điều hơn thế nữa

 

Bạn có biết rằng bạn có thể cung cấp các giá trị mặc định khi phân tách một đối tượng.

 

 Chúng ta có thể áp dụng nó để cải thiện chức năng apiRequest của mình bằng cách cung cấp các giá trị mặc định. Nó sẽ giúp chúng ta ngăn chặn các trường hợp sai lệch và lặp lại.

 

 Chúng ta đặt một số giá trị hợp lý mặc định. Bằng cách này chúng ta tránh việc chuyển một số giá trị thông thường( như là method hoặc nếu yêu cầu phải được xác thực.

 

Hãy tưởng tượng một apiRequest mở rộng apiRequest là cái chúng ta đã đặt mã thông báo cho từng yêu cầu bằng giá trị mặc định cho thuộc tính tiêu đề. 

 

Lưu ý rằng chúng ta cũng có thể cung cấp các giá trị mặc định( một đối tượng trống) cho toàn bộ đối tượng( dòng 9) và cho tham số getParams( dòng 4). Bạn nên luôn thực hiện điều này để tránh các lỗi khi cố truy cập các thuộc tính lòng nhau trên các đối tượng không xác định.

 

Các hàm gọi của chúng ta sẽ trông như thế này:

 

 Cách này tuyệt hơn đúng không nào!

 

Mẫu này được gọi là tham số có tên (hoặc đối số được đặt tên) và chúng ta có thể mô phỏng nó trong Javascript bằng cách sử dụng một đối tượng Javascript đơn giản cộng với một số ma thuật và đường cú pháp ES6.

 

Ngoài các giá trị mặc định, chúng ta còn có thể tạo các phiên bản chuyên biệt cho hàm apiRequest, một số ví dụ đơn giản như sau:

 

 Hoặc

 

 

Bạn có thể sử dụng cùng mẫu với các giá trị trả về

 

Đặc điểm của apiRequest trả về của chúng ta trông như thế này:

 Cách này chúng ta có thể phân tách các hàm của chúng ta, cung cấp lại bối cảnh và ý định:

 

 Đây là cách tuyệt vời để đạt được hiệu quả” trả về nhiều giá trị hơn từ một hàm”. Bạn thậm chí có thể sử dụng một mảng để lưu trữ và trả về các giá trị, giờ đây React hook đã biến nó thành chủ đạo.

 

Tóm tắt: lợi ích của việc truyền và nhận đối tượng làm tham số

             

1. Chúng ta cung cấp các bối cảnh cho tham số, thật dễ hiểu nếu các thông số của chúng ta được gắn thẻ với một từ khóa

 

 

 

2. Đối tượng là các cấu trúc không có thứ tự nên chúng ta không bị ràng buộc bởi các đối số ký tự

 

3. Việc không theo thứ tự có lợi cho chúng ta: chúng ta không còn cần phải vượt qua danh sách null hoặc bất cứ điều gì để phù hợp với vị trí của đối số thứ sáu: someFactor (arg1, arg2, null, null, arg5). Cung cấp null làm giá trị mặc định cho arg3 và arg4 và sử dụng một đối tượng. Bạn chỉ cần 3 cặp giá trị chính.

 

4. Giá trị mặc định! Chúng ta có thể xác định các giá trị mặc định hợp lý và giảm bản tóm tắt cho các trường hợp sử dụng phổ biến.

 

5. Chúng ta có thể sử dụng cùng mẫu để trả về các giá trị, lưu trữ vào một đối tượng và hoàn trả toàn bộ đối tượng đó.

 

6. Nếu bạn sử dụng Typescript, tạo giao diện cho tham số đối tượng IMHO sẽ trông đẹp hơn so với một số chú thích gõ nội tuyến.

 

Cảnh báo 1: Đây không phải là lý do để tạo dấu hiệu hàm đơn giản

 

Chúng ta có các công cụ tuyệt vời sử dụng chúng để khắc phục những thiếu sót về ngôn ngữ.

 

Nhưng chúng ta vẫn tạo ra những hàm nhỏ tuân thủ SRP, tức là nhận càng ít tham số càng tốt. Ứng dụng một phần có thể giúp bạn đạt được một bộ chức năng dễ đọc hơn.

 

Nguyên tắc nhỏ: chúng ta không thích các thông số Boolean. Thông thường các thông số Boolean có nghĩa là hai hàm bên trong một. Robert C. Martin (và Martin Fowler) gọi đây là “ cờ đối số”.

Ví dụ:

 

 Chúng ta nên nhắm đến các mục tiêu như sau:

 

 Bạn có thể tạo một hàm duy nhất để truy vấn cơ sở dữ liệu / bất cứ điều gì để có được danh sách người dùng được lọc, thay vì làm như vậy trong cả hai hàm.

 

Cảnh báo 2: Đây chỉ là một mẫu

 

Nếu bạn tạo một hàm getUserAdressByld( ?) chỉ lấy một tham số thì chúng ta đều biết rằng tham số đó là ID. Nếu không có hãy tham khảo cảnh báo.

 

Nghĩa là, không lồng cơ sở mã của bạn và bắt đầu thả các đối tượng khắp nơi. Như thường lệ, các mẫu và mô hình đôi khi hữu ích, nhưng không phải lúc nào cũng vậy.

Sử dụng chúng để làm rõ ý định của mã của bạn. Để cung cấp một số ý nghĩa cho các giá trị được truyền vào một khai báo hàm, cung cấp một số giá trị mặc định,...

 

Trên đây là những chia sẻ của JT1 về đối số được đặt tên- các hàm nhận và trả về các đối tượng. Áp dụng ngay nhé!

 

Ngoài ra JT1 còn có nhiều bài viết chia sẻ không chỉ về kiến thức mà còn về các kỹ năng mềm cho dân IT mong muốn trở nên chuyên nghiệp hơn trong con đường sự nghiệp của mình, tại: https://www.jt1.vn/

 

Nguồn tổng hợp

---

JT1 - IT Recruitment Agency
Website: https://www.jt1.vn
Email: hi@jt1.vn
Điện thoại: +8428 6675 6685
Xem thêm các bài viết khác tại: https://www.jt1.vn/blog
Theo dõi chúng tôi tại: https://www.facebook.com/jt1asia/

 

 

 

 

 

 

Please reload

Recent Posts

Please reload

banner-top-it-job-right.gif

Archive

Please reload

Tags

Please reload

Related Posts

Please reload