Quy ước đặt tên dự án javascript
Với việc các lập trình viên trên toàn thế giới viết các lớp và giao diện sử dụng ngôn ngữ lập trình Java, có khả năng nhiều lập trình viên sẽ sử dụng cùng một tên cho các loại khác nhau. Trong thực tế, ví dụ trước làm điều đó. Nó định nghĩa một lớp var foo = "bar";5 khi đã có một lớp var foo = "bar";5 trong gói var foo = "bar";7. Tuy nhiên, trình biên dịch cho phép cả hai lớp có cùng tên nếu chúng nằm trong các gói khác nhau. Tên đủ điều kiện của mỗi lớp var foo = "bar";5 bao gồm tên gói. Nghĩa là, tên đầy đủ của lớp var foo = "bar";5 trong gói if (true) { console.log('winning'); }0 là if (true) { console.log('winning'); }1 và tên đủ điều kiện của lớp var foo = "bar";5 trong gói var foo = "bar";7 là if (true) { console.log('winning'); }4 Show
Điều này hoạt động tốt trừ khi hai lập trình viên độc lập sử dụng cùng tên cho các gói của họ. Điều gì ngăn cản vấn đề này? quy ước đặt tênTên gói được viết bằng chữ thường để tránh xung đột với tên của các lớp hoặc giao diện Các công ty sử dụng tên miền Internet đảo ngược của họ để bắt đầu tên gói của họ—ví dụ: var foo = "bar";50 cho gói có tên var foo = "bar";51 được tạo bởi một lập trình viên tại var foo = "bar";52 Xung đột tên xảy ra trong một công ty cần được xử lý theo quy ước trong công ty đó, có thể bằng cách bao gồm khu vực hoặc tên dự án sau tên công ty (ví dụ: var foo = "bar";53) Các gói trong ngôn ngữ Java bắt đầu bằng var foo = "bar";54 hoặc var foo = "bar";55 Trong một số trường hợp, tên miền internet có thể không phải là tên gói hợp lệ. Điều này có thể xảy ra nếu tên miền chứa dấu gạch nối hoặc ký tự đặc biệt khác, nếu tên gói bắt đầu bằng một chữ số hoặc ký tự khác không hợp lệ để sử dụng làm phần đầu của tên Java hoặc nếu tên gói chứa từ khóa Java dành riêng, . Trong trường hợp này, quy ước được đề xuất là thêm dấu gạch dưới. Ví dụ Đây là một hướng dẫn để viết nút nhất quán và thẩm mỹ. mã js. Nó được lấy cảm hứng từ những gì phổ biến trong cộng đồng và có thêm một số ý kiến cá nhân Đây là một. jshintrc thực thi các quy tắc này chặt chẽ nhất có thể. Bạn có thể sử dụng và điều chỉnh nó hoặc sử dụng tập lệnh này để tạo tập lệnh của riêng bạn Hướng dẫn này được tạo bởi Felix Geisendörfer và được cấp phép theo CC BY-SA 3. 0 giấy phép. Bạn được khuyến khích rẽ nhánh kho lưu trữ này và thực hiện các điều chỉnh theo sở thích của mình Mục lụcđịnh dạngquy ước đặt tênBiếnđiều kiệnChức năngBình luậnĐiều khoản khácđịnh dạngBạn có thể muốn sử dụng editorconfig. org để thực thi cài đặt định dạng trong trình chỉnh sửa của bạn. Sử dụng nút. hướng dẫn phong cách js. editorconfig để có hành vi thụt đầu dòng, dòng tin và khoảng trắng tự động được đặt theo các quy tắc được thiết lập bên dưới 2 Khoảng cách để thụt đầu dòngSử dụng 2 dấu cách để thụt lề mã của bạn và thề sẽ không bao giờ trộn lẫn các tab và dấu cách - nếu không thì một loại địa ngục đặc biệt đang chờ bạn Dòng mớiSử dụng dòng mới kiểu UNIX ( if (true) { console.log('losing'); }3) và ký tự dòng mới làm ký tự cuối cùng của tệp. Các dòng mới kiểu Windows ( if (true) { console.log('losing'); }4) bị cấm bên trong bất kỳ kho lưu trữ nào Không có khoảng trắng ở cuốiGiống như việc bạn đánh răng sau mỗi bữa ăn, bạn sẽ dọn sạch mọi khoảng trắng ở cuối trong các tệp JS của mình trước khi thực hiện. Nếu không, mùi thối rữa của sự cẩu thả bất cẩn cuối cùng sẽ xua đuổi những người đóng góp và/hoặc đồng nghiệp Sử dụng dấu chấm phẩyTheo nghiên cứu khoa học, việc sử dụng dấu chấm phẩy là giá trị cốt lõi của cộng đồng chúng ta. Xem xét các điểm của phe đối lập, nhưng hãy là người theo chủ nghĩa truyền thống khi lạm dụng cơ chế sửa lỗi cho thú vui cú pháp rẻ tiền 80 ký tự trên mỗi dòngGiới hạn các dòng của bạn ở 80 ký tự. Vâng, màn hình đã trở nên lớn hơn nhiều trong vài năm qua, nhưng bộ não của bạn thì không. Sử dụng phòng bổ sung cho màn hình chia nhỏ, trình chỉnh sửa của bạn hỗ trợ điều đó, phải không? Sử dụng dấu nháy đơnSử dụng dấu ngoặc đơn, trừ khi bạn đang viết JSON Đúng var foo = 'bar'; Sai var foo = "bar"; Dấu ngoặc mở đi trên cùng một dòngDấu ngoặc mở của bạn đi trên cùng một dòng với câu lệnh Đúng if (true) { console.log('winning'); } Sai if (true) { console.log('losing'); } Ngoài ra, hãy chú ý việc sử dụng khoảng trắng trước và sau câu lệnh điều kiện Khai báo một biến cho mỗi câu lệnh varKhai báo một biến cho mỗi câu lệnh var, nó giúp sắp xếp lại các dòng dễ dàng hơn. Tuy nhiên, hãy bỏ qua Crockford khi khai báo các biến sâu hơn bên trong một hàm, chỉ cần đặt các khai báo ở bất cứ nơi nào chúng có ý nghĩa Đúng var keys = ['foo', 'bar']; var values = [23, 42]; var object = {}; while (keys.length) { var key = keys.pop(); object[key] = values.pop(); } Sai var keys = ['foo', 'bar'], values = [23, 42], object = {}, key; while (keys.length) { key = keys.pop(); object[key] = values.pop(); } quy ước đặt tênSử dụng LowerCamelCase cho các biến, thuộc tính và tên hàmCác biến, thuộc tính và tên hàm nên sử dụng if (true) { console.log('losing'); }5. Họ cũng nên được mô tả. Nói chung nên tránh các biến ký tự đơn và các từ viết tắt không phổ biến Đúng var adminUser = db.query('SELECT * FROM users ...'); Sai if (true) { console.log('losing'); }0 Sử dụng UpperCamelCase cho tên lớpTên lớp nên được viết hoa bằng cách sử dụng if (true) { console.log('losing'); }6 Đúng if (true) { console.log('losing'); }2 Sai if (true) { console.log('losing'); }3 Sử dụng UPPERCASE cho hằng sốCác hằng nên được khai báo là biến thông thường hoặc thuộc tính lớp tĩnh, sử dụng tất cả các chữ cái viết hoa Đúng var foo = "bar";0 Sai var foo = "bar";1 BiếnTạo đối tượng/mảngSử dụng dấu phẩy ở cuối và đặt các khai báo ngắn trên một dòng. Chỉ trích dẫn các phím khi thông dịch viên của bạn phàn nàn Đúng var foo = "bar";2 Sai var foo = "bar";3 điều kiệnSử dụng toán tử ===Lập trình không phải là ghi nhớ những quy tắc ngu ngốc. Sử dụng toán tử đẳng thức ba vì nó sẽ hoạt động như mong đợi Đúng var foo = "bar";4 Sai var foo = "bar";5 Sử dụng toán tử ternary nhiều dòngToán tử bậc ba không nên được sử dụng trên một dòng. Thay vào đó hãy chia nó thành nhiều dòng Đúng var foo = "bar";6 Sai var foo = "bar";7 Sử dụng điều kiện mô tảBất kỳ điều kiện không tầm thường nào cũng phải được gán cho một biến hoặc hàm có tên mô tả Đúng var foo = "bar";8 Sai var foo = "bar";9 Chức năngViết các chức năng nhỏGiữ chức năng của bạn ngắn. Một chức năng tốt phù hợp với một slide mà những người ở hàng cuối cùng của một căn phòng lớn có thể đọc thoải mái. Vì vậy, đừng mong đợi họ có tầm nhìn hoàn hảo và giới hạn bản thân ở ~15 dòng mã cho mỗi chức năng Trở về sớm từ chức năngĐể tránh lồng sâu các câu lệnh if, hãy luôn trả về giá trị của hàm càng sớm càng tốt Đúng if (true) { console.log('winning'); }0 Sai if (true) { console.log('winning'); }1 Hoặc đối với ví dụ cụ thể này, bạn cũng có thể rút ngắn mọi thứ hơn nữa if (true) { console.log('winning'); }2 Đặt tên cho các lần đóng cửa của bạnVui lòng đặt tên cho các lần đóng cửa của bạn. Nó cho thấy rằng bạn quan tâm đến chúng và sẽ tạo ra các dấu vết ngăn xếp, cấu hình heap và cpu tốt hơn Đúng if (true) { console.log('winning'); }3 Sai if (true) { console.log('winning'); }4 Không có bao đóng lồng nhauSử dụng bao đóng, nhưng không lồng chúng. Nếu không, mã của bạn sẽ trở thành một mớ hỗn độn Đúng if (true) { console.log('winning'); }5 Sai if (true) { console.log('winning'); }6 Phương pháp xâu chuỗiNên sử dụng một phương thức trên mỗi dòng nếu bạn muốn xâu chuỗi các phương thức Bạn cũng nên thụt lề các phương thức này để dễ dàng nhận biết chúng là một phần của cùng một chuỗi Đúng if (true) { console.log('winning'); }7 Sai if (true) { console.log('winning'); }8 Bình luậnSử dụng dấu gạch chéo để nhận xétSử dụng dấu gạch chéo cho cả nhận xét một dòng và nhiều dòng. Cố gắng viết nhận xét giải thích các cơ chế cấp cao hơn hoặc làm rõ các đoạn mã khó của bạn. Đừng sử dụng bình luận để trình bày lại những điều nhỏ nhặt Đúng if (true) { console.log('winning'); }9 Sai if (true) { console.log('losing'); }0 Điều khoản khácVật. đóng băng, đối tượng. ngăn chặn Tiện ích mở rộng, Đối tượng. con dấu, với, đánh giáNhững thứ điên rồ mà có lẽ bạn sẽ không bao giờ cần đến. Tránh xa nó Yêu cầu ở trên cùngLuôn đặt yêu cầu ở đầu tệp để minh họa rõ ràng các phần phụ thuộc của tệp. Bên cạnh việc cung cấp một cái nhìn tổng quan cho những người khác trong nháy mắt về các phụ thuộc và tác động bộ nhớ có thể xảy ra, nó cho phép một người xác định xem họ có cần một gói hay không. json nếu họ chọn sử dụng tệp ở nơi khác Getters và settersKhông sử dụng trình cài đặt, chúng gây ra nhiều vấn đề cho những người cố gắng sử dụng phần mềm của bạn hơn là họ có thể giải quyết Vui lòng sử dụng các getters không có tác dụng phụ, chẳng hạn như cung cấp thuộc tính độ dài cho lớp bộ sưu tập |