2008-10-30 22 views
5

Tôi đang đọc qua số Zend Framework coding standards, trong đó chúng cho biết dấu ngoặc nhọn sau khi định nghĩa Lớp phải nằm trên dòng tiếp theo, "một dạng dấu ngoặc nhọn thực".Whats lý do đằng sau các hình thức cú đúp khác nhau?

class MyClass 
{ 
    function.... 
} 

Tôi thường có niềng răng trên cùng một dòng:

class OtherClass { 
    function ... 
} 

lý do đặt nẹp trên dòng tiếp theo là gì? Hoặc sử dụng bất kỳ phong cách khác, cho rằng vấn đề?

Trả lời

7

Tùy chọn cá nhân thực sự là "lý do" thực sự duy nhất.

+1

Tôi nghĩ rằng không chỉ có "sở thích cá nhân". Các lập trình viên là con người, phải tuân theo các hạn chế nhận thức sẽ làm cho một số định dạng (tùy theo cái nào) hữu ích hơn cho bộ não của chúng ta khi nó cần trích xuất thông tin từ một "hình ảnh" (ví dụ, tách trong các khối). – Jorge

+0

Hơn nữa, tôi tự hỏi tại sao chúng ta thường thảo luận về sự khác biệt về định dạng mã và không phải trong các ngôn ngữ văn bản chuẩn khác, như XML. Tôi không nhớ đã thấy XML được định dạng theo kiểu K & R (câu hỏi thứ hai trong câu hỏi gốc). – Jorge

+0

Tôi nhận thấy rằng đối với hầu hết các trường hợp, các dòng riêng biệt dễ theo dõi hơn, nhưng một trường hợp, khối UIView, dễ đọc hơn K & R. Đây là vấn đề về khả năng theo dõi trên màn hình bằng mắt, không liên quan đến cá nhân mong muốn sử dụng một phong cách khác. –

1

Tùy chọn người dùng. Nó thực sự làm cho không có sự khác biệt. Khi tôi phát triển trong PHP, tôi đã sử dụng tùy chọn thứ hai, nhưng bây giờ sử dụng C#, tôi sử dụng đầu tiên.

7

Tôi thấy rằng phong cách đầu tiên bạn đã đề cập giúp trực quan bù đắp tên lớp từ các định nghĩa thành viên của nó. Điều này giúp tôi tìm thấy phần đầu của khai báo lớp dễ dàng hơn khi quét mã.

8

Có các niềng răng trên các đường tự mình giúp tách riêng phần bên trong với phần bên ngoài. Điều đó giúp bạn nhanh chóng quét qua mã nguồn và phân biệt các khối từ môi trường xung quanh.

Ngoài ra, việc đặt dấu ngoặc nhọn ở cùng một mức thụt đầu dòng giúp mắt tìm thấy kết quả phù hợp hơn.

3

Thông thường trích dẫn lý do là:

  • dễ dàng hơn để phù hợp khai mạc và bế mạc niềng răng (đối với ví dụ đầu tiên)
  • không lãng phí một dòng khác (để bạn có thể phù hợp với nhiều dòng mã trên màn hình - ví dụ thứ hai)

Như những người khác đã nói: nếu bạn làm việc trên mã bên thứ 3, chỉ cần làm theo quy ước của nó. Nếu bạn làm việc trên mã của riêng bạn, chỉ cần sử dụng kiểu nào bạn tìm thấy tốt hơn.

1

Đã có một số chủ đề về chủ đề rất chủ quan này ...

Một số người có đam mê về nó, cá nhân tôi đã chọn "dễ đọc" tùy chọn sắp xếp niềng răng (Tôi không trả tiền cho bất động sản được sử dụng bởi mã của tôi trên màn hình ... vì vậy sự nhỏ gọn không quan tâm đến tôi) nhưng khi tôi đóng góp cho một dự án bằng cách sử dụng một phong cách khác, tôi chỉ sử dụng một phần quanh đóng góp của tôi.
Tương tự cho kích thước tab, cứng và mềm, v.v.

0

Lý do thực sự là phải có mã tìm kiếm đồng nhất trong toàn bộ mã. Cả hai kiểu đều có ưu điểm của chúng, kiểu dáng nào "tốt hơn" phụ thuộc vào sở thích cá nhân và những gì đã được sử dụng "theo truyền thống" trong ngôn ngữ và dự án.

Nếu một kiểu niềng răng được quy định, hãy sử dụng, nếu không sử dụng những gì đã được sử dụng trước khi bạn đến. Nếu bạn đang bắt đầu một dự án mới sử dụng những gì thường được sử dụng trong ngôn ngữ của sự lựa chọn.

Tương tự với các tab so với dấu cách.

3

Tôi nghĩ rằng quy tắc đặt tên và đặt tên cho các dự án cá nhân hoặc nhóm chủ yếu là vấn đề sở thích cá nhân (mặc dù đó là một nhóm khôn ngoan sử dụng một quy tắc đặt tên và quy tắc đặt tên).

Cá nhân, tôi thích tuân theo quy ước Allman Style vì nó cung cấp cho tôi tổng quan nhanh về mã và cấu trúc thụt lề của tôi. Chắc chắn, nó sẽ chi phí cho bạn một số dòng phụ trong mã của bạn, nhưng tôi không nghĩ rằng cân nhắc đến những lợi thế.

nguồn lực tốt về vấn đề này như sau bài viết Wikipedia:

Indent Style

Programming Style

Naming Conventions

0

Liệu nó có vấn đề mà cú đúp phong cách bạn sử dụng không? Không. Có vấn đề là mọi người làm việc trên cùng một dự án hoặc tệp nguồn đều sử dụng cùng một kiểu dấu ngoặc kép? Không; nó không chỉ quan trọng, mà nó còn hữu ích nếu các kiểu ngoặc đơn khác với một bộ mã hóa kế tiếp, ngay cả trong cùng một tệp.

"Tại sao chính xác đoạn mã này thực hiện điều này?"

"Tôi không biết. Đó là chữ viết tay của Kevin. Hãy đi hỏi anh ấy."

Các vấn đề liên quan