Đây có phải là khoảng cách vụng về một số loại phong cách?


9

Khi đọc mã lập trình viên khác, anh ta sử dụng một định dạng mà tôi chưa từng thấy. VÍ DỤ

    namespace MyNs.HereWeAre
         {//tab here for some reason
         public class SomeClass
               {//here's another tab
               public string Method()
                    {//yet another tab
                    string _variable = "";//no tab implementation
                    return _variable;
                    }
               }//eof - class  (Yes these eof comments are on every file)
        }//eof - namespace
// eof - file

Tôi sẽ thừa nhận ... mã này làm tôi tức giận. Rất khó để đạt được phong cách này. Người ta cần phải chống lại định dạng mặc định được cung cấp bởi IDE, studio trực quan.

Tôi có thể nuốt viên thuốc này dễ dàng hơn một chút nếu tôi biết rằng có một lý do chính đáng cho phong cách này. Liệu phong cách này bắt nguồn từ một số ngôn ngữ lập trình / IDE khác?


5
Đó chỉ là kỳ quái. Trong 18 năm phát triển của mình, tôi chưa bao giờ thấy quy ước đó.
17 của ngày 26

5
Nếu tôi phải đoán, tôi sẽ nói rằng lập trình viên là một người chuyển đổi Python, người rất khó chịu khi cần niềng răng và được sử dụng để thụt vào tất cả các mã thông báo phụ của cú pháp.
Telastyn

21
CTRL K + CTRL D!
RYFN

2
@Zeus - Ôi trời ơi, nó sẽ giúp tôi tiết kiệm rất nhiều thời gian để giải quyết định dạng độc đáo này !! Bạn sẽ nhận được một số điểm trả lời cho điều đó.
P.Brian.Mackey

1
Phím tắt định dạng lại đó (Ctrl K + Ctrl D) cũng hoạt động trên các tệp HTML và các định dạng khác trong Visual Studio.
Oded

Câu trả lời:


19

Có: http://en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

Kiểu Whitesmiths, còn được gọi là kiểu Wishart ở mức độ thấp hơn, ngày nay ít phổ biến hơn ... Nó ban đầu được sử dụng trong tài liệu cho trình biên dịch C thương mại đầu tiên, Trình biên dịch Whitesmiths . Nó cũng rất phổ biến trong những ngày đầu của Windows, vì nó được sử dụng trong ba cuốn sách lập trình Windows có ảnh hưởng, Hướng dẫn lập trình cho Windows của Durant, Carlson & Yao, Lập trình Windows của Petzold và Kỹ thuật lập trình sức mạnh Windows 3.0 của Norton & Yao .. .

Kiểu này đặt dấu ngoặc liên kết với một câu lệnh điều khiển trên dòng tiếp theo, thụt vào. Báo cáo trong niềng răng được thụt vào cùng cấp với niềng răng ...

Ưu điểm của phong cách này tương tự như phong cách Allman trong đó các khối được phân biệt rõ ràng với các câu lệnh điều khiển. Tuy nhiên, với kiểu Whitesmiths, khối vẫn được kết nối trực quan với câu lệnh điều khiển của nó thay vì trông giống như một khối mã không liên quan được bao quanh bởi khoảng trắng. Một lợi thế khác là sự liên kết của các dấu ngoặc với khối nhấn mạnh thực tế là toàn bộ khối là về mặt khái niệm (cũng như lập trình) một câu lệnh ghép đơn. Hơn nữa, thụt lề niềng răng nhấn mạnh rằng chúng phụ thuộc vào câu lệnh điều khiển.

Một nhược điểm được đề xuất của phong cách này là cú đúp kết thúc không còn phù hợp với tuyên bố mà nó thuộc về khái niệm. Tuy nhiên, cú đúp kết thúc thuộc về cú đúp mở đầu và không thuộc về tuyên bố kiểm soát ...

Đó là một điều tôi chưa bao giờ thấy thực hành, cảm ơn IPU.

Eclipse có một kiểu mã Whitesmith được xây dựng cho c ++ ... bạn có thể bị lừa với Java vì mọi người đều phải sử dụng cùng một kiểu trong ngôn ngữ đó.


4
ồ, "cảm ơn IPU" nghĩa là gì? Google sẽ không cho tôi biết ...
amara


Phong cách của Whitesmiths không bao gồm các tab ở cuối dòng. Tab bất cứ nơi nào ngoại trừ ở đầu của một dòng là xấu xa và cần phải bị giết bằng lửa.
tdammers

6

Trong khi phong cách mã hóa của đồng nghiệp của bạn là kỳ quái, xấu xí và khó đọc:

  1. nếu bạn không có tiêu chuẩn mã hóa, thì định dạng của chúng có giá trị như bất kỳ.

  2. nếu bạn định dạng lại mã của họ mỗi khi bạn chạm vào tệp do họ viết, bạn sẽ rất khó theo dõi các thay đổi - nếu bạn thực hiện tìm khác biệt bằng cách sử dụng VCS của mình, thì nhiều dòng nếu không phải tất cả các dòng mã sẽ thay đổi.

Đây là lý do tại sao bạn nên có các tiêu chuẩn mã hóa, nó giúp mọi người dễ dàng biết những gì họ nên làm và dễ dàng biện minh cho việc định dạng lại nếu họ không mắc kẹt với nó.

Nếu họ vẫn làm việc tại công ty của bạn, bạn đã thử nói chuyện với họ về điều đó chưa?


Người này đã qua lâu b4 thời gian của tôi. Bây giờ, chúng tôi đi theo hướng dẫn thiết kế khung microsoft.
P.Brian.Mackey

9
Trong trường hợp đó, tôi khuyên bạn nên kiểm tra định dạng lại mã dưới dạng đăng ký riêng (ví dụ: Ctrl K + Ctrl D) trước khi thực hiện thay đổi (để thay đổi cụ thể đó dễ theo dõi hơn).
Brian
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.