การเว้นวรรคแบบนี้น่าอึดอัดใจไหม


9

ในการอ่านรหัสโปรแกรมเมอร์อื่นเขาใช้รูปแบบที่ฉันไม่เคยเห็นมาก่อน เช่น

    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

ฉันจะยอมรับ ... รหัสนี้ทำให้ฉันโกรธ มันยากที่จะบรรลุสไตล์นี้ หนึ่งต้องต่อสู้กับการจัดรูปแบบเริ่มต้นโดย IDE สตูดิโอภาพ

ฉันสามารถกลืนยาเม็ดนี้ได้ง่ายขึ้นเล็กน้อยถ้าฉันรู้ว่ามีเหตุผลที่ดีสำหรับสไตล์นี้ สไตล์นี้มีต้นกำเนิดมาจากภาษาการเขียนโปรแกรม / IDE อื่น ๆ หรือไม่?


5
นั่นเป็นเพียงที่แปลกประหลาด ในการพัฒนา 18 ปีของฉันฉันไม่เคยเห็นแบบแผนนั้นมาก่อน
17 ของ 26

5
ถ้าฉันต้องเดาฉันจะบอกว่าโปรแกรมเมอร์เป็นงูหลามแปลงที่ไม่พอใจอย่างอ่อนโยนที่ต้องจัดฟันเลยและใช้เพื่อเยื้อง sub-tokens ของไวยากรณ์ทั้งหมด
Telastyn

21
CTRL K + CTRL D!
RYFN

2
@ Zeus - โอ้เอ้ยฉันจะประหยัดเวลามากในการแก้ไขการจัดรูปแบบนี้ !! คุณควรได้รับคำตอบสำหรับเรื่องนั้น
P.Brian.Mackey

1
การจัดรูปแบบทางลัดนั้น (Ctrl K + Ctrl D) ยังทำงานกับไฟล์ HTML และรูปแบบอื่น ๆ ใน Visual Studio
Oded

คำตอบ:


19

ใช่: http://en.wikipedia.org/wiki/Indent_style#Whitesmiths_style

สไตล์ Whitesmiths เรียกว่าสไตล์ริชาร์ตในระดับน้อยคือน้อยกว่าปกติในวันนี้ ... มันถูกนำมาใช้ครั้งแรกในเอกสารสำหรับคอมไพเลอร์ C เชิงพาณิชย์แห่งแรกที่Whitesmiths คอมไพเลอร์ มันยังเป็นที่นิยมในช่วงแรก ๆ ของ Windows เนื่องจากมันถูกใช้ในหนังสือการเขียนโปรแกรม Windows สามเล่มที่มีอิทธิพล, Programmer's Guide to Windowsโดย Durant, Carlson & Yao, Programming Windowsโดย Petzold และWindows 3.0 Power Programming Techniquesโดย Norton & Yao .. .

สไตล์นี้ทำให้รั้งที่เกี่ยวข้องกับคำสั่งควบคุมในบรรทัดถัดไปเยื้อง ข้อความที่อยู่ในเครื่องหมายปีกกาจะอยู่ในระดับเดียวกับเครื่องหมายวงเล็บ ...

ข้อดีของสไตล์นี้คล้ายกับสไตล์ Allmanในบล็อกนั้นชัดเจนกว่าชุดควบคุม อย่างไรก็ตามด้วยสไตล์ Whitesmiths บล็อกยังคงเชื่อมต่อกับคำสั่งควบคุมสายตาแทนที่จะมองเหมือนบล็อกที่ไม่เกี่ยวข้องของรหัสที่ล้อมรอบด้วยช่องว่าง ข้อดีอีกประการคือการจัดตำแหน่งของเครื่องมือจัดฟันกับบล็อกเน้นความจริงที่ว่าบล็อกทั้งหมดเป็นแนวคิด (เช่นเดียวกับโดยโปรแกรม) คำสั่งผสมเดียว นอกจากนี้การเยื้องวงเล็บปีกกาเน้นว่าพวกเขาเป็นผู้ใต้บังคับบัญชาในคำสั่งควบคุม

ข้อเสียที่แนะนำของสไตล์นี้คือวงเล็บปีกกาท้ายไม่สอดคล้องกับคำแถลงที่เป็นแนวคิด อย่างไรก็ตามวงเล็บปีกกาปิดเป็นของวงเล็บปีกกาเปิดและไม่ใช่คำสั่งควบคุม ...

มันเป็นสิ่งที่ฉันไม่เคยเห็นมาก่อนขอบคุณ IPU

Eclipse มีรูปแบบรหัส Whitesmith ในตัวสำหรับ c ++ ... คุณอาจเมากับ Java เนื่องจากทุกคนควรใช้สไตล์เดียวกันในภาษานั้น


4
โอ้ um "ขอบคุณ IPU" หมายถึงอะไร? Google จะไม่บอกฉัน ...
อมรา

4
ยูนิคอร์นสีชมพูที่มองไม่เห็น en.wikipedia.org/wiki/Invisible_Pink_Unicorn
Scott C Wilson

สไตล์ไวท์สมิ ธ ไม่รวมแท็บที่ส่วนท้ายของบรรทัด แท็บที่ใดก็ได้ยกเว้นที่จุดเริ่มต้นของบรรทัดนั้นชั่วร้ายและจำเป็นต้องถูกฆ่าด้วยไฟ
tdammers

6

ในขณะที่รูปแบบการเข้ารหัสของเพื่อนร่วมงานของคุณแปลกประหลาดน่าเกลียดและอ่านยาก:

  1. หากคุณไม่มีมาตรฐานการเข้ารหัสการจัดรูปแบบจะถูกต้องเท่าที่ควร

  2. หากคุณฟอร์แมตโค้ดใหม่ทุกครั้งที่คุณแตะไฟล์ที่เขียนโดยพวกเขาคุณจะพบว่ามันยากมากที่จะติดตามการเปลี่ยนแปลง - ถ้าคุณทำการ diff โดยใช้ VCS ของคุณจะมีการเปลี่ยนแปลงหลายบรรทัดถ้าไม่ใช่โค้ดทั้งหมด

นี่คือสาเหตุที่คุณควรมีมาตรฐานการเข้ารหัสมันทำให้ทุกคนรู้ได้ง่ายขึ้นว่าควรทำอะไรและปรับการจัดรูปแบบใหม่ได้ง่ายขึ้นหากพวกเขาไม่ได้ติดอยู่กับมัน

หากพวกเขายังทำงานที่ บริษัท ของคุณคุณลองพูดคุยกับพวกเขาเกี่ยวกับเรื่องนี้หรือไม่?


คนนี้หายไปนาน b4 เวลาของฉัน ตอนนี้เราไปตามแนวทางการออกแบบกรอบงานไมโครซอฟท์
P.Brian.Mackey

9
ในกรณีนั้นฉันแนะนำให้ทำการตรวจสอบในการฟอร์แมตโค้ดเป็นการเช็คอินแยกต่างหาก (เช่น Ctrl K + Ctrl D) ก่อนทำการเปลี่ยนแปลง (เพื่อให้การเปลี่ยนแปลงนั้นง่ายขึ้นในการติดตาม)
Brian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.