แบบฝึกหัด - ใช้ช่องว่างเพื่อทําให้โค้ดของคุณอ่านง่ายขึ้น
ผู้ออกแบบการพิมพ์และเว็บเข้าใจว่าการใส่ข้อมูลมากเกินไปในพื้นที่ขนาดเล็กครอบงําผู้ชม ดังนั้น พวกเขาจึงใช้ช่องว่างหรือพื้นที่ว่างเชิงลบในเชิงกลยุทธ์เพื่อแบ่งข้อมูลเพื่อเพิ่มความสามารถของผู้ชมในการใช้ข้อความหลักของงานของพวกเขา
นักพัฒนาสามารถใช้กลยุทธ์ที่คล้ายกันเมื่อเขียนโค้ดในตัวแก้ไข ด้วยการใช้พื้นที่สีขาวเพื่อสื่อความหมาย นักพัฒนาซอฟต์แวร์สามารถเพิ่มความชัดเจนของเจตนาของโค้ด
ช่องว่างคืออะไร
คําว่า "ช่องว่าง" หมายถึงช่องว่างแต่ละรายการที่สร้างขึ้นโดย space barแท็บ ซึ่งสร้างขึ้นโดย tab คีย์ และบรรทัดใหม่ที่สร้างขึ้นโดย enter คีย์
คอมไพเลอร์ C# จะละเว้นช่องว่าง เมื่อต้องการทําความเข้าใจวิธีการละเว้นช่องว่าง และวิธีการเพิ่มความชัดเจนโดยใช้ช่องว่าง ให้ทํางานผ่านแบบฝึกหัดต่อไปนี้
เพิ่มรหัสเพื่อแสดงวิธีการละเว้นพื้นที่ว่างโดยคอมไพเลอร์ C#
ตรวจสอบให้แน่ใจว่า คุณมีไฟล์ Program.cs ที่ว่างเปล่าเปิดอยู่ในรหัส Visual Studio
หากจําเป็น ให้เปิด Visual Studio Code แล้วทําตามขั้นตอนต่อไปนี้เพื่อเตรียมไฟล์ Program.cs ในตัวแก้ไข:
บนเมนู ไฟล์ เลือก เปิดโฟลเดอร์
ใช้กล่องโต้ตอบ เปิดโฟลเดอร์ เพื่อนําทางไปยัง และจากนั้นเปิดโฟลเดอร์ CsharpProjects
ในมุมมอง Visual Studio Code EXPLORER ให้เลือก Program.cs
บนเมนู การเลือก รหัส Visual Studio เลือก เลือกทั้งหมด แล้วกดปุ่มลบ
ป้อนโค้ดต่อไปนี้:
// Example 1: Console . WriteLine ( "Hello Example 1!" ) ; // Example 2: string firstWord="Hello";string lastWord="Example 2";Console.WriteLine(firstWord+" "+lastWord+"!");บนเมนู ไฟล์ของ Visual Studio Code เลือก บันทึก
ในมุมมอง EXPLORER เมื่อต้องการเปิดเทอร์มินัลที่ตําแหน่งที่ตั้งโฟลเดอร์ TestProject ของคุณ ให้คลิกขวาที่ TestProject จากนั้นเลือกเปิดในเทอร์มินัลรวม
ที่พร้อมท์คําสั่งเทอร์มินัล ให้พิมพ์ dotnet run แล้วกด Enter
คุณควรเห็นผลลัพธ์ต่อไปนี้:
Hello Example 1! Hello Example 2!ใช้เวลาสักครู่เพื่อพิจารณาว่าผลลัพธ์นี้บอกให้คุณทราบเกี่ยวกับวิธีที่คุณควรใช้ช่องว่างในโค้ดของคุณ
ตัวอย่างโค้ดสองตัวอย่างนี้แสดงแนวคิดที่สําคัญสองแนวคิด:
- Whitespace ไม่สําคัญกับคอมไพเลอร์ อย่างไรก็ตาม
- ช่องว่างเมื่อใช้งานอย่างถูกต้องสามารถเพิ่มความสามารถในการอ่านและเข้าใจโค้ดได้
คุณอาจเขียนโค้ดของคุณครั้งเดียว แต่จําเป็นต้องอ่านรหัสหลายครั้ง ดังนั้น คุณควรมุ่งเน้นไปที่ความสามารถในการอ่านของโค้ดที่คุณเขียน เมื่อเวลาผ่านไป คุณจะได้รับความรู้สึกว่าเมื่อไรและวิธีใช้ช่องว่าง เช่น อักขระช่องว่าง แท็บ และบรรทัดใหม่
คําแนะนําเบื้องต้น:
- แต่ละคําสั่งที่เสร็จสมบูรณ์ ( คําสั่ง) เป็นของแต่ละบรรทัด
- หากบรรทัดของรหัสเดียวยาวขึ้น คุณสามารถแบ่งได้ อย่างไรก็ตาม คุณควรหลีกเลี่ยงการแยกคําสั่งเดี่ยวเป็นหลายบรรทัดโดยพลการจนกว่าคุณจะมีเหตุผลที่ดีในการทําเช่นนั้น
- ใช้ช่องว่างทางด้านซ้ายและขวาของตัวดําเนินการการกําหนด
แทนที่โค้ดที่มีอยู่ของคุณด้วยโค้ดต่อไปนี้:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } else { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } }โปรดสังเกตว่าโค้ดนี้ไม่มีช่องว่างมาก รหัสนี้จะถูกใช้เพื่อแสดงวิธีการสําหรับการเพิ่มช่องว่างให้กับแอปพลิเคชันของคุณ ช่องว่างที่มีประสิทธิภาพควรทําให้เข้าใจได้ง่ายขึ้นว่าโค้ดของคุณกําลังทําอะไรอยู่
หมายเหตุ
รหัสใช้
Randomคลาสเพื่อช่วยพัฒนาเกมลูกเต๋าจําลองซึ่งค่ารวมจากสามม้วนถูกใช้เพื่อประเมินคะแนน "ชนะ" รางวัลรหัสคะแนนพิเศษสําหรับหมุนสองเท่าหรือสามเท่า คุณไม่จําเป็นต้องเข้าใจรหัสนี้ทั้งหมดเพื่อดูประโยชน์ของการรวมช่องว่างใช้เวลาสักครู่เพื่อพิจารณาว่าคุณจะใช้ช่องว่างเพื่อปรับปรุงความสามารถในการอ่านโค้ดนี้อย่างไร
มีสองคุณลักษณะของโค้ดนี้ในการจดบันทึกย่อ:
- ไม่มีช่องว่างแนวตั้งในตัวอย่างรหัสนี้ กล่าวอีกนัยหนึ่งคือ ไม่มีบรรทัดที่ว่างเปล่าในการแบ่งบรรทัดของรหัส ทุกอย่างทํางานร่วมกันเป็นรายการรหัสหนาแน่นเพียงรายการเดียว
- บล็อกรหัสตามที่กําหนดโดยการเปิดและปิดสัญลักษณ์
{ }วงเล็บปีกกาจะถูกบีบอัดเข้าด้วยกัน ทําให้ขอบเขตยากที่จะมองเห็นได้
โดยทั่วไปแล้ว เพื่อปรับปรุงความสามารถในการอ่าน คุณจะแนะนําบรรทัดว่างระหว่างโค้ดสอง, สาม หรือสี่บรรทัดที่ดําเนินการคล้ายกันหรือที่เกี่ยวข้องกัน
การใช้รหัสของคุณโดยใช้ช่องว่างแนวตั้งเป็นแบบอัตนัย นักพัฒนาซอฟต์แวร์สองรายอาจไม่เห็นด้วยกับสิ่งที่อ่านได้มากที่สุด หรือเมื่อใดที่ควรเพิ่มช่องว่าง ใช้คําตัดสินที่ดีที่สุดของคุณ
หากต้องการเพิ่มช่องว่างแนวตั้งที่ปรับปรุงความสามารถในการอ่าน ให้อัปเดตโค้ดของคุณดังต่อไปนี้:
Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } else { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } }บรรทัดแรกของช่องว่างของคุณถูกใช้เพื่อแยกการประกาศของ
diceตัวแปรจากบรรทัดรหัสที่ใช้ในการกําหนดค่าให้กับตัวแปรม้วนของคุณ การแยกนี้ทําให้ง่ายต่อการดูวิธีใช้diceในโค้ดของคุณช่องว่างบรรทัดถัดไปของคุณแยกการประกาศตัวแปรม้วนของคุณออกจากการประกาศของ
totalการจัดกลุ่มตัวแปรม้วนทั้งสามของคุณจะมีประโยชน์สองวิธี ก่อนอื่น จะสร้างกลุ่มของบรรทัดรหัสที่มีตัวแปรที่เกี่ยวข้อง ประการที่สอง ชื่อตัวแปรจะคล้ายกันมากและการประกาศเป็นไปตามรูปแบบเดียวกัน ดังนั้นการจัดกลุ่มสิ่งเหล่านั้นเข้าด้วยกันจะดึงตาของคุณไปยังความคล้ายคลึงกันและช่วยในการเปิดเผยความแตกต่างในตอนท้าย บรรทัดที่สามของช่องว่างจะแยกกลุ่มคําสั่งที่เกี่ยวข้องอื่นออกจากคําสั่งที่
ifซ้อนกันของคุณ กลุ่มของคําสั่งที่รวมถึงการtotalประกาศและConsole.WriteLine()วิธีการ เกี่ยวข้องกับวัตถุประสงค์แทนที่จะเป็นลักษณะที่ปรากฏ รหัสของคุณมุ่งเน้นไปที่ค่ารวมที่ทําได้โดยสามชิ้นและไม่ว่าม้วนจะรวมเป็นสองเท่าหรือสามเท่า บรรทัดเหล่านี้เกี่ยวข้องกันเนื่องจากคุณจําเป็นต้องคํานวณtotalและรายงานผลลัพธ์ของการเลื่อนไปยังผู้ใช้นักพัฒนาบางรายอาจโต้เถียงว่าคุณควรเพิ่มบรรทัดว่างในการระหว่างการ
totalประกาศ และConsole.WriteLine()อีกครั้งการเลือกพื้นที่ว่างขึ้นอยู่กับการตัดสินที่ดีที่สุดของคุณ คุณควรตัดสินใจว่าแบบไหนที่สามารถอ่านได้มากขึ้นสําหรับคุณและใช้สไตล์นั้นอย่างต่อเนื่องสิ่งที่เจ้าเหลืออยู่คือคําสั่ง
ifคุณสามารถตรวจสอบได้ในขณะนี้มุ่งเน้นไปที่บรรทัดของโค้ดด้านล่าง
ifคําสําคัญ แก้ไขโค้ดของคุณดังนี้:Random dice = new Random(); int roll1 = dice.Next(1, 7); int roll2 = dice.Next(1, 7); int roll3 = dice.Next(1, 7); int total = roll1 + roll2 + roll3; Console.WriteLine($"Dice roll: {roll1} + {roll2} + {roll3} = {total}"); if ((roll1 == roll2) || (roll2 == roll3) || (roll1 == roll3)) { if ((roll1 == roll2) && (roll2 == roll3)) { Console.WriteLine("You rolled triples! +6 bonus to total!"); total += 6; } else { Console.WriteLine("You rolled doubles! +2 bonus to total!"); total += 2; } }โปรดสังเกตว่า คุณได้ย้ายวงเล็บปีกกาเปิดและปิดไปยังเส้นของตัวเองเพื่อปรับปรุงระยะห่าง
สัญลักษณ์
{และ}สร้างบล็อกรหัส โครงสร้าง C# จํานวนมากจําเป็นต้องมีบล็อกโค้ด สัญลักษณ์เหล่านี้ควรถูกวางบนบรรทัดที่แยกต่างหากเพื่อให้สามารถมองเห็นและอ่านขอบเขตได้อย่างชัดเจนนอกจากนี้ สิ่งสําคัญคือต้องใช้
tabคีย์เพื่อจัดแนวสัญลักษณ์บล็อกรหัสภายใต้คําสําคัญที่พวกเขาเป็นสมาชิกอยู่ ตัวอย่างเช่น สังเกตบรรทัดของโค้ดที่เริ่มต้นด้วยคําสําคัญifด้านล่างบรรทัดนั้นคือ{สัญลักษณ์ การจัดแนวนี้ทําให้เข้าใจได้ง่ายว่า{คําสั่ง "เป็นของ"ifนอกจากนี้ บรรทัดสัญลักษณ์สุดท้าย}ที่ifขึ้นกับใบแจ้งยอดด้วยเช่นกัน การรวมกันของการจัดแนวและการเยื้องทําให้ง่ายต่อการทําความเข้าใจตําแหน่งที่บล็อกโค้ดเริ่มต้นและสิ้นสุดลงบรรทัดรหัสภายในของบล็อกรหัสนี้เยื้องซึ่งระบุว่าบรรทัดเหล่านั้น "อยู่" ของบล็อกรหัสนี้
คุณทําตามรูปแบบที่คล้ายกันด้วยคําสั่งและ
ifคําสั่งภายในelseและรหัสภายในบล็อกรหัสเหล่านั้น
ทุกคนไม่ยอมรับแนวทางสไตล์นี้สําหรับการรวมช่องว่าง อย่างไรก็ตาม คุณควรพิจารณาใช้คําแนะนํานี้เป็นจุดเริ่มต้นเมื่อเขียนโค้ด ในอนาคตคุณสามารถมีจุดประสงค์เมื่อตัดสินใจที่จะเบี่ยงเบนจากคําแนะนํานี้
สรุป
ประเด็นหลักจากแบบฝึกหัดนี้:
- ใช้ช่องว่างอย่างรอบครอบเพื่อปรับปรุงความสามารถในการอ่านโค้ดของคุณ
- ใช้ตัวดึงข้อมูลบรรทัดเพื่อสร้างบรรทัดว่างเพื่อแยกวลีของโค้ดออก วลีประกอบด้วยบรรทัดของโค้ดที่คล้ายกัน หรือทํางานร่วมกัน
- ใช้ตัวดึงข้อมูลบรรทัดเพื่อแยกสัญลักษณ์บล็อกรหัสเพื่อให้อยู่ในบรรทัดโค้ดของตนเอง
- ใช้คีย์
tabเพื่อจัดบรรทัดบล็อกรหัสด้วยคําสําคัญที่เชื่อมโยงอยู่ - เยื้องโค้ดภายในบล็อกโค้ดเพื่อแสดงความเป็นเจ้าของ