Cách đặt tên hàm JavaScript

Chất lượng tương tự nên áp dụng cho mã nguồn. Cách nhà phát triển thể hiện suy nghĩ của mình thông qua ngôn ngữ lập trình là điều quan trọng. Viết mã là giao tiếp. với đồng đội và chính bạn

Thực hành mã sạch là một chủ đề lớn. Vì vậy, hãy bắt đầu với những bước nhỏ

Bài viết hiện tại đề cập đến các chức năng/phương thức đặt tên cho những thói quen tốt. Các chức năng là những phần chuyển động của ứng dụng, vì vậy việc đặt tên cho chúng một cách chính xác sẽ làm tăng khả năng đọc

Phạm vi là để hiểu những gì chức năng làm từ tên của nó, danh sách đối số và cách nó được gọi. Nếu bạn phải đi sâu vào chi tiết chức năng để hiểu chức năng của nó, có thể tên không chính xác hoặc nó che khuất mục đích. Hãy xem làm thế nào để vượt qua những tình huống như vậy

1. Tầm quan trọng của khả năng đọc

Số lượng mã của một ứng dụng phức tạp là rất lớn. Hàng nghìn dòng mã, hàng trăm phương thức và lớp. Mã có ý nghĩa và dễ hiểu là bắt buộc trong các ứng dụng lớn nếu bạn không muốn bị lạc trong rừng

Thật không may, mọi nhà phát triển đều phải đối mặt với vấn đề khả năng đọc mã kém. Mọi người có thể nhớ rằng đã dành rất nhiều thời gian để tìm hiểu lý do đằng sau một đoạn mã khó hiểu

Khi đọc các phương thức, lớp, biến được đặt tên kém của người khác, bạn dành nhiều thời gian hơn để giải mã mã hơn là viết chức năng mới. Nhưng nó không nên như vậy, và không có lý do gì để viết như vậy

Nhà phát triển trung bình dành 75% thời gian để hiểu mã, 20% thời gian sửa đổi mã hiện có và chỉ 5% viết mã mới [nguồn]

Một chút thời gian bổ sung của một nhà phát triển duy nhất dành cho khả năng đọc sẽ giảm thời gian hiểu cho các thành viên trong nhóm. Thực tiễn này trở nên quan trọng khi kích thước ứng dụng tăng lên do thời gian hiểu tăng theo độ phức tạp

Đọc mã có ý nghĩa thật dễ dàng. Tuy nhiên, viết mã có ý nghĩa thì ngược lại. bạn phải học cách thực hành mã sạch và nỗ lực không ngừng để thể hiện bản thân một cách rõ ràng

2. Thích tên giải thích

Tên phải rõ ràng, không mơ hồ cho biết chức năng đó làm gì. Bạn không cần phải nhảy xung quanh để tìm kiếm sự thật

Tên chức năng nên áp dụng hình thức chữ thường lạc đà.

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

1,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

2 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

3

Mỗi chức năng là một hành động, vì vậy tên phải chứa ít nhất một động từ. Ví dụ

  • swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    0 có nghĩa là ghi vào tập tin
  • swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    1 có nghĩa là tải lại dữ liệu bảng
  • swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    2 có nghĩa là kiểm tra xem hôm nay có phải là ngày sinh không
  • swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    3 hoặc

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    4 có nghĩa là lấy hoặc đặt

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    5 của một đối tượng

Hãy nghiên cứu các phương pháp cấu trúc sau đây

swift

import Foundation

struct Pair {

var first: Int

var second: Int

func getAbsoluteDifference[] -> Int {

return abs[first - second]

}

mutating func increase[by increaseAmount: Int] {

first += increaseAmount

second += increaseAmount

}

}

var myPair = Pair[first: 2, second: 5]

myPair.getAbsoluteDifference[] // => 3

myPair.increase[by: 2]

myPair.first // => 4

myPair.second // => 7

Tên phương thức

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

6 có nghĩa là lấy hiệu tuyệt đối giữa cặp số. Tên phương thức chứa một động từ

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

7. Sẽ không có ý nghĩa gì nếu đặt tên phương thức đơn giản là

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

8, bởi vì tên đó không biểu thị bất kỳ hành động nào.

Quy tắc tương tự áp dụng cho phương pháp

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

9. Tên của nó cũng chứa động từ

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

10, thể hiện hành động mà nó thực hiện. tăng số cấu trúc lên một lượng

Tôi thích cơ chế suy luận Swift cho phép rút ngắn đáng kể các khai báo

Nhưng trong trường hợp đặt tên, sự rõ ràng quan trọng hơn sự ngắn gọn. Thật vô ích khi đặt tên cho các phương thức trong ví dụ trước là

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

11 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

12. Trong trường hợp như vậy, bạn phải khôi phục lại tên chức năng đầy đủ để nhận ra ý nghĩa

Hơn nữa,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

12 ngắn có nghĩa là gì? . Tránh viết tắt mơ hồ như vậy

Trong khi chờ đợi, cố gắng đừng đặt tên quá dài dòng. Các tên mở rộng như

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

14 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

15 không thêm bất cứ điều gì hữu ích để dễ đọc

Lời khuyên của tôi là tìm sự cân bằng giữa ngắn gọn và dài dòng trong việc đặt tên, đồng thời nhấn mạnh vào sự rõ ràng

Không quá ngắn, không quá dài dòng. Chỉ cần chính xác những gì nó làm

Tôi không thấy có vấn đề gì nếu một hàm được đổi tên nhiều lần để tìm ra cái tên phù hợp nhất để mô tả hàm đó. Một cái nhìn mới về một chức năng cũ có thể giúp tìm ra một cái tên hay hơn

3. Sử dụng ngôn ngữ tự nhiên với nhãn đối số

Chưa chắc có người vui khi đọc hợp ngữ. Ngôn ngữ như vậy là tự nhiên đối với phần cứng máy tính, nhưng bộ não con người khá khó xử lý

Thông tin văn bản dễ xử lý hơn ở dạng ngôn ngữ tự nhiên. Tiếng Anh tốt. Viết mã của bạn như một câu chuyện chi tiết và thú vị

Hãy là Shakespeare. [tại sao không?]

Máy không quan tâm bạn cho nó ăn như thế nào với hướng dẫn

Nhưng nhà phát triển đồng nghiệp của bạn không quan tâm. Hóa ra, mã ở dạng ngôn ngữ tự nhiên dễ hiểu hơn. Làm cho mã của bạn như những câu chuyện ngắn, súc tích và thú vị. Biến là danh từ và chức năng là động từ

Swift cung cấp các tính năng bổ sung. Khi gọi một hàm, hãy chỉ định nhãn đối số biểu thị ý định của đối số một cách rõ ràng hơn.

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

16. Đương nhiên cuộc gọi như vậy có thể âm thanh. trong

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

17 thực hiện một

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

18 bằng cách sử dụng

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

19 cho biết

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

10,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

11 cho biết

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

12

Hãy làm theo một ví dụ. Các phương thức mảng Swift cung cấp ý nghĩa tuyệt vời về hoạt động trên mảng

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

13 lời gọi chảy tự nhiên khi đọc nó. ở vị trí ________ 214 chèn vào vị trí ________ 215 ________ 216 ________ 217.
Luồng tự nhiên tương tự áp dụng cho

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

18. trong

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

14 bỏ mục

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

16 vị trí

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

31.

Trong cả hai trường hợp, hãy chú ý cải thiện khả năng đọc mà nhãn đối số

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

16 thêm vào. thể hiện vị trí khi hoạt động nên áp dụng

Khi nhãn đối số bị bỏ qua, sự mơ hồ tăng lên

Trong trường hợp của

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

33,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

15 và

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

17 nghĩa là gì?

4. Tránh tên chức năng vô nghĩa

Rõ ràng, mã sản xuất không bao giờ được chứa các hàm được đặt tên mà không có ý nghĩa chặt chẽ. Hoặc được đặt tên chỉ vì lợi ích của việc đặt tên

Một số ví dụ về tên hàm vô nghĩa

  • _______ 336, ________ 337, ________ 338, ________ 339 - vô nghĩa
  • _______ 420, ________ 421, ________ 422, ________ 423 - điều hiển nhiên vô nghĩa

Những điều này không có ý nghĩa và nên tránh. Bạn luôn có thể tìm thấy tên chính xác cho bất kỳ loại chức năng nào

Thường thì những tên hàm vô nghĩa như vậy được sử dụng trong các mẫu

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

1

Theo ý kiến ​​​​của tôi, các phương pháp đặt tên chính xác sẽ được lan truyền ngay cả những ví dụ đơn giản như vậy. Tên hàm vô nghĩa tạo thói quen xấu sau này khó sửa

Hình thức thay thế sau đây có vẻ tốt hơn

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

1

Cần đề phòng với các tên hành động chung chung như _______ 424, _______ 425, ________ 426, ________ 427, v.v. Việc đặt tên như vậy chỉ có thể phù hợp khi ngữ cảnh mang tính biểu cảm.

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

28

5. Tránh trùng tên bao hàm nhiều khái niệm

Tên chức năng chỉ ra một loại hành động được xác định rõ. Nó phải là một mối quan hệ một-một

Nếu cùng một tên đại diện cho nhiều hành động tương đương vẫn khác nhau, nó có thể bao gồm quá nhiều khái niệm và làm giảm khả năng đọc. One-to-many — nên tránh một tên bao gồm nhiều hành động

Ví dụ: một ứng dụng có trong các lớp khác nhau một phương thức có tên là

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

29. Có cùng tên, các phương thức này thực hiện những việc khác nhau. tìm nạp dữ liệu từ máy chủ

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

40, nhận đối tượng được bao bọc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

41 hoặc khởi tạo và nhận phiên bản lưu trữ

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

42

Những khái niệm này là khác nhau và nên có tên riêng để phân biệt. Tên hàm tương ứng là

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

43,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

44 và

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

45 thì tốt hơn

6. Tránh cùng một khái niệm được bao phủ bởi nhiều tên

Cùng một khái niệm có thể được diễn đạt bằng các từ khác nhau. Đây là những từ đồng nghĩa. Ví dụ: làm mới hoặc tải lại, xóa hoặc xóa, v.v.

Trong các bài viết của blog này, tôi sử dụng các từ đồng nghĩa để làm cho bài viết dễ theo dõi hơn. Khi một từ xuất hiện quá thường xuyên, quá trình đọc sẽ không thoải mái vì lặp lại. Tôi tìm kiếm một từ đồng nghĩa với từ lặp đi lặp lại và áp dụng nó.
Ví dụ, tôi thường thay từ khó chịu bằng cách áp dụng.

Khi viết mã, hãy làm theo cách tiếp cận ngược lại. một khái niệm chỉ sử dụng một từ và tránh các từ đồng nghĩa

Ví dụ: mỗi cặp tên hàm sau mô tả một khái niệm.

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

46 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

47,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

48 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

49,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

10 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

11,

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

12 hoặc

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

13, v.v.
Bạn phải chọn một tên cho khái niệm và sử dụng tên đó một cách nhất quán trong toàn bộ ứng dụng.

Hãy xem tình huống sau

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

3

Ngay từ cái nhìn đầu tiên, mã có vẻ tốt

Tuy nhiên, một đánh giá chi tiết hơn có thể thắc mắc tại sao

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

14 sử dụng phương pháp

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

47 và

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

16 sử dụng

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

46?

Phương pháp

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

18 nên được cấu trúc lại thành tên

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

47

Nếu bạn không chắc nên chọn từ nào cho một chức năng cụ thể, hãy thử các bước sau

  1. Xác minh ứng dụng cho các chức năng có cùng hành vi. Sử dụng tên chức năng phù hợp
  2. Nếu cách trên không hoạt động, hãy xác minh các thư viện chuẩn cho các chức năng hành vi tương tự. Bạn thậm chí có thể tìm thấy một giao thức với chữ ký chức năng cần thiết. tiếp tục và thực hiện giao thức
  3. Trong các trường hợp khác, chọn từ thích hợp và mô tả nhất từ ​​​​các từ đồng nghĩa có sẵn

7. Đừng nói một đằng làm một nẻo

Hầu hết thời gian một chức năng là một phần của một trong các loại sau

  • Trả lời một câu hỏi hoặc cung cấp thông tin.

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    20,

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    21
  • Thay đổi trạng thái của đối tượng.

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    22,

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    23,

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    24
  • Thực thi một tác vụ và trả về kết quả.

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    25,

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    26,

    swift

    var elements = [1, 5, 7]

    elements.insert[8, at: 1]

    elements // => [1, 8, 5, 7]

    elements.remove[at: 2]

    elements // => [1, 8, 7]

    27

Tên hàm cũng nên dính vào một trong 3 loại này

Vấn đề về khả năng đọc xuất hiện khi chức năng được đặt tên theo một danh mục. Nhưng việc triển khai chức năng còn làm được nhiều hơn thế

Ví dụ, một chức năng được đặt tên là thay đổi trạng thái đối tượng và bất ngờ trả lời kết quả hoạt động. Hãy xem vấn đề

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

2

Tên của phương thức

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

46 giả vờ thêm các mục vào bộ sưu tập, thay đổi trạng thái của đối tượng. Và thật bất ngờ nó trả về kết quả chèn

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

29 từ không nói lên điều gì về trạng thái đầy đủ của bộ sưu tập. Có thể bất ngờ khi thấy phương thức

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

29 trong câu lệnh điều kiện.
______731.

Bạn có thể đổi tên phương thức thành một cái gì đó thực sự nói những gì nó làm.

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

32

Hoặc một phương án tốt hơn là tách chức năng thành các chức năng chuyên biệt. Một người xác minh việc thực hiện bộ sưu tập và người kia chỉ cần thêm các mục vào bộ sưu tập nếu có thể. Hãy xem phiên bản đã thay đổi

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

4

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

33 chỉ ra rõ ràng việc xác minh tính đầy đủ của bộ sưu tập. Phương pháp này trả lời một câu hỏi, như tên

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

34 nói.
______735 thêm các mục vào bộ sưu tập nếu có thể. Phương thức này thay đổi trạng thái của đối tượng, như cái tên

swift

var elements = [1, 5, 7]

elements.insert[8, at: 1]

elements // => [1, 8, 5, 7]

elements.remove[at: 2]

elements // => [1, 8, 7]

36 đã nói.

8. Phần kết luận

Phát triển ứng dụng là về giao tiếp. Chất lượng truyền thông ảnh hưởng trực tiếp đến năng suất phát triển

Đọc mã có ý nghĩa thật dễ dàng và thú vị. Tuy nhiên, viết mã chất lượng đòi hỏi nỗ lực, thực hành và xem xét liên tục

Là một phần của khả năng đọc mã, tên hàm có một vị trí quan trọng. Nhìn vào bất kỳ mã nào, hầu hết các biểu thức thực sự là các lệnh gọi hàm/phương thức

Tên hàm phải chỉ rõ chức năng đó làm gì. Bạn không cần phải cuộn xung quanh, hãy mở mã nguồn chức năng để hiểu cách thức hoạt động của nó. Ngoài ra, tên chỉ nên mô tả một khái niệm. quan hệ một đối một

Cuối cùng, bạn có thể không muốn giao tiếp như những người này

Ý kiến ​​​​của bạn về khả năng đọc mã và đặt tên hàm là gì?

Thích bài viết?

đề xuất cải tiến

Bài đăng chất lượng vào hộp thư đến của bạn

Tôi thường xuyên xuất bản bài viết có chứa

  • Các khái niệm JavaScript quan trọng được giải thích bằng các từ đơn giản
  • Tổng quan về các tính năng JavaScript mới
  • Cách sử dụng TypeScript và cách gõ
  • Thiết kế phần mềm và thực hành mã hóa tốt

Đăng ký nhận bản tin của tôi để nhận chúng ngay trong hộp thư đến của bạn

Đặt mua

Tham gia cùng 6719 người đăng ký khác

Giới thiệu về Dmitri Pavlutin

Nhà văn và huấn luyện viên công nghệ. Thói quen hàng ngày của tôi bao gồm [nhưng không giới hạn] uống cà phê, viết mã, viết, huấn luyện, vượt qua sự nhàm chán 😉

Tôi nên đặt tên hàm trong JavaScript như thế nào?

Tên hàm JavaScript cũng phân biệt chữ hoa chữ thường. Vì vậy, tương tự như các biến, cách tiếp cận trường hợp lạc đà là cách được khuyến nghị để khai báo tên hàm. Ngoài ra, bạn nên sử dụng các danh từ và động từ mô tả làm tiền tố .

3 cách gọi hàm trong JS là gì?

Có thể gọi các hàm JavaScript. .
Là một chức năng
Là một phương pháp
Là một nhà xây dựng
thông qua cuộc gọi và áp dụng

Làm cách nào để viết tên trong JavaScript?

javaScript, chức năng, viết tên tôi [người mới bắt đầu] .
Viết một hàm tên là nameString[]
Nó sẽ lấy tên làm tham số
Hàm trả về một chuỗi bằng "Xin chào, tôi là" + " " + tên
Gọi nameString[] bằng cách chuyển tên của bạn và sử dụng bảng điều khiển. log để in đầu ra

Chủ Đề