Hướng dẫn phong cách cho C ++ [đã đóng]


29

Hiện tại tôi đang sử dụng Google C ++ Style Guide trong mã C ++ của mình và tôi khá hài lòng với nó.

Gần đây tôi được thông báo rằng hướng dẫn này rất tệ: nó được Google sử dụng nội bộ (tôi biết điều đó), đã lỗi thời và khuyến khích một số thực tiễn rất xấu. Vì vậy, tôi muốn sử dụng một phong cách mã hóa khác.

Những hướng dẫn phong cách C ++ tốt và khá được sử dụng là gì? Tôi viết mã cho cả gcc và Visual Studio và tôi sử dụng rất nhiều tính năng của C ++ 11.

Điều tôi rất thích về Google C ++ Style Guide là sự thụt lề, khoảng trắng và quy ước đặt tên (đặc biệt đặt tên cho tất cả các lớp, loại - bao gồm typedefs, bí danh loại và bí danh mẫu - với chữ cái đầu tiên viết hoa).

Tôi biết bất kỳ câu trả lời là chủ quan (tôi hy vọng điều này là ổn trên trang web này) và tôi sẽ đánh giá cao bất kỳ ý kiến ​​nào, nhưng tôi quan tâm hướng dẫn nào được sử dụng những ngày này.


1
Bạn luôn có thể sử dụng những gì bạn thích theo phong cách, và sau đó định dạng lại nó theo phong cách ưa thích khi bạn phải chia sẻ nó. Đây là một trình định dạng kiểu tự động hóa astyle.sourceforge.net
Reactgular

7
Câu hỏi này không có tiềm năng cho câu trả lời dựa trên ý kiến. Thay vì đóng nó vì lý do này, tôi sẽ khuyến khích người trả lời tập trung vào các sự kiện, chẳng hạn như sử dụng đã biết, khuyến nghị của các nhà chức trách, nghiên cứu so sánh và tương tự.
andy256

@ andy256 Không thể nói điều đó tốt hơn bản thân mình.
bolov

7
Ai nói với bạn rằng phong cách của Google rất tệ và tại sao ý kiến ​​của họ lại quan trọng với bạn?
Phản ứng

@MathewFoscarini đã có một cuộc thảo luận hợp lý gần đây ở đây, mặc dù nó không quá sâu: chat.stackoverflow.com/rooms/10/conversation/ ((sau đó, đi sâu vào nó cũng giống như đi qua FQA )
Cubbi

Câu trả lời:


15

Bạn có thể sử dụng hướng dẫn từ cuốn sách này để sử dụng chung:

http://www.amazon.com/Coding-Stiterias-Rules-Guiances-Practices/dp/0321113586

từ Herb Sutter và Andrei Alexandrescu. Mặc dù vậy, nó không tính đến C ++ 11, nhưng tôi nghĩ sẽ có một phiên bản mới.

Nhưng nó sẽ không trả lời về số lượng không gian thay vì các tab hoặc loại ký hiệu bí truyền nào bạn muốn thực thi. Nhưng đây không phải là điều quan trọng nhất, hầu hết thời gian chỉ cần có sự nhất quán là chìa khóa.



8

Những lời chỉ trích về hướng dẫn về phong cách C ++ của Google (và tôi đồng ý rằng một số điều hợp lý) không phải là về các quy ước đặt tên hoặc phong cách thụt lề của Google mà là về một số quy tắc và chính sách khác của họ. Các quy ước thụt lề / định dạng và đặt tên đều là vấn đề của hương vị và là mảnh đất màu mỡ cho các cuộc chiến tôn giáo lập trình viên bất tận, nhưng trong C ++, không giống như C #, không có tiêu chuẩn chung nào là hướng dẫn thực sự quan trọng duy nhất là sự nhất quán. Đối với một dự án mới, chọn một quy ước đặt tên và kiểu thụt lề mà bạn thích và sử dụng nó một cách nhất quán. Đối với một dự án hiện có, gắn bó với quy ước đã được sử dụng. Quy tắc 0 trong Tiêu chuẩn mã hóa C ++ là "Đừng đổ mồ hôi cho những thứ nhỏ nhặt". nơi họ lập luận rằng các quy ước đặt tên và phong cách thụt lề không quan trọng miễn là bạn '

Một công cụ tăng năng suất lớn đối với tôi đã được tự động thụt lề / định dạng bằng định dạng clang . Khi bạn đã giải quyết một số quy tắc thụt lề và định dạng, tôi khuyên bạn nên thiết lập tệp cấu hình định dạng .clang tùy chỉnh và sau đó không bao giờ phải lo lắng về điều đó nữa :-)

Định dạng clang là một công cụ độc lập và không yêu cầu bạn phải sử dụng clang làm trình biên dịch. Thậm chí còn có một plugin chính thức có sẵn cho Visual Studio.


6

Như @ user113896 đã viết trước đó, Bjarne Strostrup đã cho chúng tôi rất nhiều hướng dẫn về phong cách. Một trong những thành tựu tốt đẹp của ông là cuốn sách phong cách Mã hóa JSF-C ++ . Coi chừng, nó không dành cho c ++ thông thường, nhiều hơn cho việc sử dụng nhúng, nhưng nó cho thấy mọi thứ nên được thực hiện như thế nào để rõ ràng và hoạt động. Tất nhiên - Bạn không cần phải tính đến mọi thứ - đó là hướng dẫn, không phải sách đặt hàng :).


2

Nếu bạn chưa đọc Lập trình và Nguyên tắc của Bjarne Stroustrup, tôi thực sự khuyên bạn nên đọc nó bởi vì bạn có thể học được nhiều điều từ người tạo ngôn ngữ. Tôi đã xem và đọc rất nhiều từ tác giả C ++ và tôi có thể nói rằng anh ta có bản sửa lỗi này cho phong cách và luôn bảo mọi người viết mã tốt, đẹp mà theo anh ta thì dễ gỡ lỗi và đọc hơn. Tôi tin rằng anh ấy là gia sư vĩ đại nhất và là người hướng dẫn tốt nhất để viết mã C ++ sành điệu và đẹp đẽ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.