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

Đ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ên

Tê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ạng

quy ước đặt tên

Biến

điều kiện

Chức năng

Bình luận

Điều khoản khác

định dạng

Bạ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òng

Sử 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ới

Sử 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ối

Giố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ẩy

Theo 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òng

Giớ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 đơn

Sử 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òng

Dấ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 var

Khai 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ên

Sử dụng LowerCamelCase cho các biến, thuộc tính và tên hàm

Cá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ớp

Tê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ến

Tạo đối tượng/mảng

Sử 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ện

Sử 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òng

Toá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ăng

Viế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ạn

Vui 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 nhau

Sử 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ỗi

Nê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ận

Sử dụng dấu gạch chéo để nhận xét

Sử 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ác

Vậ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ùng

Luô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à setters

Khô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

Chủ Đề