Đây là sở thích cá nhân của tôi với lý do tại sao.
Tôi sẽ thảo luận các mục sau trong câu trả lời được chấp nhận, nhưng theo thứ tự ngược lại.
ghi chú một không chọn trên Alnitak, những ý kiến chung cho tất cả chúng ta ...
ghi chú hai ví dụ Mã không được viết dưới dạng khối mã, vì nổi bật cú pháp ngăn cản từ các câu hỏi thực tế chỉ khoảng trắng.
Tôi luôn thực hiện theo cách đó.
Không chỉ là thế này bao giờ là một lý do chính đáng để bảo vệ một thực tế trong chương trình, nó không bao giờ là một lý do chính đáng để bảo vệ BẤT CỨ ý tưởng thay đổi đối lập.
vấn đề JS tập tin tải về kích thước [mặc dù việc rút gọn không tất nhiên khắc phục điều đó]
Kích sẽ luôn luôn quan trọng đối với Bất kỳ file (s) được sẽ được gửi over-the-wire, mà là lý do tại sao chúng tôi có biện pháp rút gọn để xóa khoảng trống không cần thiết. Vì các tệp JS hiện có thể bị giảm, cuộc tranh luận về khoảng trắng trong mã sản xuất là moot.
moot: ít hoặc không có giá trị hoặc ý nghĩa thực tiễn; hoàn toàn học tập. moot definition
Bây giờ chúng tôi chuyển sang vấn đề cốt lõi của câu hỏi này. Những ý tưởng sau đây chỉ là của tôi, và tôi hiểu rằng cuộc tranh luận có thể xảy ra. Tôi không tuyên bố rằng thực hành này là chính xác, chỉ đơn thuần là nó hiện đang chính xác cho tôi. Tôi sẵn sàng thảo luận các lựa chọn thay thế cho ý tưởng này nếu nó được chứng minh là một sự lựa chọn tồi.
Nó hoàn toàn có thể đọc được, và sau đại đa số các công ước định dạng trong ngôn ngữ tổ tiên Javascript của
Có hai phần để tuyên bố này: "Đó là một cách hoàn hảo có thể đọc được"; "và tuân theo phần lớn các quy ước định dạng trong ngôn ngữ tổ tiên của Javascript"
Mục thứ hai có thể bị loại bỏ theo ý tưởng tương tự của Tôi luôn thực hiện theo cách đó.
Vì vậy, chúng ta hãy chỉ tập trung vào phần đầu của báo cáo kết quả Nó hoàn toàn có thể đọc được,"
Đầu tiên, chúng ta hãy thực hiện một vài báo cáo về mã.
- Ngôn ngữ lập trình là không cho các máy tính để đọc, nhưng để con người đọc được
- Trong tiếng Anh, chúng ta đọc từ trái sang phải, từ trên xuống dưới,
- Thực hành được thiết lập sau đây trong ngữ pháp tiếng Anh sẽ dẫn đến việc đọc mã dễ dàng hơn bởi một số lượng lớn các lập trình viên viết mã bằng tiếng Anh.
LƯU Ý: Tôi đang thiết lập trường hợp của tôi chỉ bằng tiếng Anh, nhưng có thể áp dụng chung cho nhiều ngôn ngữ dựa trên latin.
Hãy giảm phát biểu đầu tiên bằng cách loại bỏ các trạng từ hoàn hảo vì nó giả định rằng không thể có sự cải thiện. Thay vào đó, hãy làm việc với những gì còn lại: "Có thể đọc được". Trong thực tế, chúng tôi có thể đi tất cả JS trên đó và tạo biến: "isReadable" dưới dạng boolean.
CÁC CÂU HỎI
Câu hỏi đặt ra cung cấp hai lựa chọn:
(foo === thanh)
(foo === thanh)
Thiếu bất kỳ bối cảnh, chúng tôi có thể lỗi về mặt ngữ pháp tiếng Anh và đi với tùy chọn thứ hai, loại bỏ khoảng trắng. Tuy nhiên, trong cả hai trường hợp "isReadable" sẽ dễ dàng đúng.
Vì vậy, hãy thực hiện việc này một bước xa hơn và loại bỏ tất cả các khoảng trắng ...
(foo === thanh)
thể chúng tôi vẫn khẳng định isReadable được đúng không? Đây là nơi mà một giá trị boolean có thể không áp dụng như vậy nói chung. Chúng ta hãy di chuyển đếnĐồng hồ nổi nơi là không đọc được và là hoàn toàn có thể đọc được.
Trong ba ví dụ trước, chúng tôi có thể giả định rằng chúng tôi sẽ thu thập các giá trị từ 0 - 1 cho mỗi ví dụ riêng lẻ, từ mỗi người chúng tôi hỏi "Trên thang điểm 0 - 1, đánh giá khả năng đọc của văn bản này? "
Bây giờ, hãy thêm một số ngữ cảnh JS vào các ví dụ ...
- if (foo === bar) {};
- nếu (foo === bar) {};
- nếu (foo === bar) {};
Một lần nữa, đây là câu hỏi của chúng tôi: "Trên thang điểm 0 - 1, bạn đánh giá khả năng đọc của văn bản này như thế nào?"
Tôi sẽ đưa ra giả định ở đây là có một số dư để khoảng trắng: khoảng trắng quá nhỏ và phương pháp tiếp cận có thể đọc được 0; quá nhiều khoảng trắng và phương pháp tiếp cận có thể đọc được 0.
ví dụ: "Howareyou?" và "Bạn thế nào?"
Nếu chúng tôi tiếp tục đặt câu hỏi này sau nhiều ví dụ JS, chúng tôi có thể phát hiện giới hạn trung bình về khoảng trắng có thể chấp nhận, có thể gần với các quy tắc ngữ pháp bằng tiếng Anh.
Nhưng trước tiên, hãy chuyển sang ví dụ khác về dấu ngoặc đơn trong JS: hàm!
chức năng làĐọc (một, hai, ba) {};
chức năng inspectString (string) {};
Hai ví dụ chức năng tuân thủ tiêu chuẩn hiện tại không có khoảng trắng giữa() ngoại trừ sau dấu phẩy. Đối số tiếp theo bên dưới không liên quan đến cách khoảng trắng được sử dụng khi khai báo một hàm như các ví dụ ở trên, mà thay vào đó là phần quan trọng nhất của khả năng đọc mã: nơi mã được gọi!
hỏi câu hỏi này liên quan đến mỗi người trong số những ví dụ dưới đây ...
"Trên thang điểm từ 0-1, làm thế nào bạn sẽ đánh giá khả năng đọc văn bản này?"
kiểm traString (isReadable (string));
surveyString (isReadable (string));
Ví dụ thứ hai làm cho sử dụng quy tắc của riêng tôi
- khoảng trắng ở giữa dấu ngoặc giữa các từ, nhưng không phải giữa mở hoặc dấu chấm câu đóng cửa. tức là không giống như this examString (isReadable (string)); nhưng giống như this examString (isReadable (string)); hoặc examineString này (isReadable ({string: string, điều: điều});
Nếu chúng ta sử dụng quy tắc ngữ pháp tiếng Anh, sau đó chúng tôi sẽ không gian trước "(" và mã của chúng tôi sẽ là ...
kiểm traString (isReadable (string));
Tôi không ủng hộ thực tiễn này vì nó phá vỡ chức năng gọi ra khỏi hàm, mà nó phải là một phần của.
surveyString(); // Vâng; inspectString(): // không;
Vì chúng tôi là không chính xác phản ánh đúng ngữ pháp tiếng Anh, nhưng ngữ pháp tiếng Anh không nói rằng nghỉ ngơi là cần thiết, thì có lẽ thêm khoảng trắng ở giữa dấu ngoặc đơn có thể đưa chúng ta gần gũi hơn với với isReadable?
Tôi sẽ để lại nó lên đến tất cả các bạn, nhưng hãy nhớ những câu hỏi cơ bản: "Thay đổi này làm cho nó dễ đọc hơn, hoặc ít hơn"
Dưới đây là một số ví dụ khác để hỗ trợ cho trường hợp của tôi.
// Assume functions and variables have already been declared...
đầu vào $ setViewValue (setToUpperLimit (Giá trị Nhập)).
// Is this how we write a proper English sentence?
đầu vào $ setViewValue (setToUpperLimit (Giá trị Nhập)). // gần hơn với 1?
config.urls ['pay-me-now']. Initialize (filterSomeValues) .then (magic);
// or
config.urls [ 'pay-tôi-bây giờ'] .initialize (fitlerSomeValues) .Sau đó (ma thuật); // không gian giống như chúng tôi làm với các nhà khai thác
// Could you imagine no whitespace around operators?
var hello = 'someting';
if (type === undefined) {};
var string = "I" + "could \ 't" + "read" + "this";
Tôi làm gì ...
Tôi khoảng cách giữa(), {} và []; như trong ví dụ sau
hàm hello (một, hai, ba) {
trở lại một;
}
hello (một);
hello ({key: value, thing1: thing2});
var array = [1, 2, 3, 4];
array.slice (0, 1);
chuỗi ['những thứ'] .together (vàKeepThemĐọc được, với dấu chấm câu vàWhitespace) .but (notTooMuch);
tôi không thích đặt thêm khoảng trống quá – kommradHomer
Tính hợp lệ của điểm thứ ba của bạn là vấn đề. Bạn có thể giải thích? – Kelmikra
@ Kyth'Py1k thật khó, nhưng với tôi nó sẽ chỉ cảm thấy _unnatural_ sử dụng phiên bản với phần đệm thêm – Alnitak