JavaRush /จาวาบล็อก /Random-TH /วิธีเขียนโค้ดที่สะอาด

วิธีเขียนโค้ดที่สะอาด

เผยแพร่ในกลุ่ม
การทำให้โค้ดของคุณสะอาดและสวยงามเป็นวิธีที่ดีเยี่ยมในการบรรลุกำหนดเวลา Robert Martin ตอกย้ำคำพูดที่เฉียบแหลมของเขา: “สิ่งเดียวที่วัดคุณภาพของโค้ดได้อย่างแท้จริงคือหน่วย What-The-F**ks/Minute ” " ในต้นฉบับ) วิธีเขียนโค้ดที่สะอาด - 1ให้ฉันอธิบายว่าสิ่งนี้หมายถึงอะไร ทุกครั้งที่ฉันตรวจสอบโค้ด สมองของฉันจะต้องเผชิญกับหนึ่งในสามอารมณ์:
  • “ว้าย! ห่า?!" (ด้วยความรังเกียจ) - ไม่ใช่หรอก... ทุกอย่างแย่มาก....
  • “ว้าย! ห่า?!" (ด้วยความชื่นชม) - อืม คนเก่งทำได้!
  • “ว้าย! ห่า?!" (ด้วยความหงุดหงิด) - สับสนอะไรบางอย่างเรากำลังพูดถึงอะไร!
แล้วอะไรคือสิ่งสำคัญยิ่ง และเราจะประเมินอะไรกันแน่เมื่อเราเห็นโค้ดบางส่วน? แค่นั้นแหละ: ความบริสุทธิ์และความงามของมัน ความสามารถในการเขียนโค้ดที่สะอาดตาและสวยงามเป็นตัวบ่งชี้ถึงนักพัฒนาที่มีความเป็นมืออาชีพสูง การฝึกอบรมทักษะนี้ขึ้นอยู่กับสององค์ประกอบ - ความรู้และการทำงาน ความรู้จะสอนรูปแบบ หลักการ การปฏิบัติ และฮิวริสติกให้กับคุณ คุณต้องการให้พวกเขาเติบโตอย่างมืออาชีพ มีเพียงคุณเท่านั้นที่ต้องซึมซับความรู้นี้เหมือนฟองน้ำผ่านการฝึกฝนอย่างต่อเนื่องและการทำงานหนัก กล่าวโดยสรุป การเขียนโค้ดที่สะอาดไม่ใช่เรื่องง่าย นี่เป็นงานที่หนักและอุตสาหะและคุณจะต้องทำงานหนัก ด้วยการลองผิดลองถูก คุณจะปรับปรุงได้โดยการทำซ้ำขั้นตอนเดิมซ้ำแล้วซ้ำเล่าจนกว่าคุณจะพบวิธีแก้ไขปัญหาที่คุณต้องการ ไม่มีวิธีที่ง่ายกว่านี้อีกแล้ว ด้านล่างนี้เป็นเคล็ดลับบางส่วนที่จะช่วยให้คุณเรียนรู้วิธีเขียนโค้ดที่สะอาด

อะไรอยู่ในชื่อ

Kendrick Lamar (ศิลปินฮิปฮอปชาวอเมริกัน - บันทึกของบรรณาธิการ) เคยกล่าวไว้อย่างถูกต้องว่า"ถ้าฉันจะเล่าเรื่องจริง ฉันต้องเริ่มด้วยชื่อของฉัน" ชื่อในการพัฒนาซอฟต์แวร์มีอยู่ทั่วไป เราตั้งชื่อฟังก์ชัน คลาส อาร์กิวเมนต์ แพ็คเกจ โปรแกรม ทุกสิ่งทุกอย่าง เราตั้งชื่อไฟล์ต้นฉบับและหนังสืออ้างอิงและทุกสิ่งที่เกี่ยวข้องกับมัน เราตั้งชื่อสิ่งต่าง ๆ อย่างไม่มีที่สิ้นสุด และนี่กลายเป็นส่วนสำคัญในการทำงานเพื่อสร้างโค้ดที่สะอาด ชื่อที่คุณให้บางสิ่งบางอย่างควรสะท้อนถึงเจตนา การค้นหาชื่อที่ดีไม่ใช่เรื่องง่าย ต้องใช้เวลา แต่ยังช่วยประหยัดเวลาได้มากเมื่อคุณต้องจัดการกับโค้ดและสถานการณ์เริ่มซับซ้อน ดังนั้นควรระมัดระวังเกี่ยวกับกระบวนการนี้ และอย่ากลัวที่จะเปลี่ยนชื่อในภายหลังหากคุณพบสิ่งที่เหมาะสมกว่า ทุกคนที่เกี่ยวข้องกับโค้ดของคุณจะรู้สึกขอบคุณคุณเป็นอย่างมาก

โปรดจำไว้ว่าชื่อของตัวแปร คลาส และฟังก์ชันใดๆ จะต้องตอบคำถามหลักสามข้อ: เหตุใดจึงมี (ตัวแปร ฟังก์ชัน ฯลฯ) อยู่ มันทำอะไร และใช้เพื่ออะไร

สิ่งนี้ไม่เพียงแต่ต้องอาศัยทักษะการอธิบายที่ดีเท่านั้น แต่ยังต้องอาศัยความรู้ทั่วไปและทัศนคติที่กว้างไกลอีกด้วย และไม่มีใครสามารถสอนเรื่องนี้ได้ดีไปกว่าตัวคุณเอง

รหัสสะอาด

“ ฟังก์ชั่นเดียว” - สิ่งหนึ่ง

Louis Henry Sullivan (สถาปนิกชาวอเมริกันผู้มีเหตุผลและสมัยใหม่) เคยกล่าวไว้ว่า: "หน้าที่กำหนดรูปแบบ " เขาพูดเรื่องนี้เกี่ยวกับสถาปัตยกรรมของบ้าน แต่สิ่งนี้ไม่ได้เปลี่ยนสาระสำคัญ แต่ละระบบสร้างขึ้นจากภาษาเฉพาะโดเมนบางภาษาที่โปรแกรมเมอร์สร้างขึ้นเพื่ออธิบายอย่างถูกต้อง ฟังก์ชั่นทำหน้าที่เป็นคำกริยาของภาษา และคลาสเป็นคำนาม บ่อยครั้งที่ฟังก์ชันมีความสำคัญอย่างยิ่งในการจัดระเบียบภาษาการเขียนโปรแกรม และการเขียนอย่างถูกต้องถือเป็นหัวใจสำคัญของการสร้างโค้ดที่ดี มีกฎทองเพียงสองข้อในการเขียนฟังก์ชันคุณภาพ:
  1. พวกเขาควรจะมีขนาดเล็ก
  2. พวกเขาต้องทำสิ่งหนึ่ง งานเดียว และทำได้ดี
นั่นคือฟังก์ชันของคุณควรมีขนาดเล็กและไม่ควรมีโครงสร้างที่ซ้อนกัน ดังนั้นระดับการเยื้องฟังก์ชันไม่ควรเกินหนึ่งหรือสอง แนวทางนี้ทำให้โค้ดอ่าน เข้าใจ และเข้าใจได้ง่ายขึ้นมาก นอกจากนี้ เราต้องแน่ใจว่านิพจน์ภายในฟังก์ชันอยู่ในระดับเดียวกับนามธรรม การผสมระดับนามธรรมภายในฟังก์ชันมักจะสร้างความสับสนอย่างมาก และนำไปสู่โค้ดที่ไม่สามารถจัดการได้ในที่สุด โปรแกรมเมอร์ที่เก่งที่สุดถือว่าฟังก์ชันเป็นเหมือนเรื่องราวที่ต้องบอกเล่า ไม่ใช่แค่การเขียนโค้ดเท่านั้น พวกเขาใช้เครื่องมือของภาษาการเขียนโปรแกรมที่เลือกเพื่อสร้างบล็อกโค้ดที่สมบูรณ์ ชัดเจน และสะอาดตา ซึ่งสามารถทำหน้าที่เป็นนักเล่าเรื่องที่ยอดเยี่ยมได้

“ความคิดเห็นไม่ได้ชดเชยโค้ดที่แย่”

วีนัส วิลเลียมส์ นักเทนนิสชาวอเมริกันและแชมป์วิมเบิลดัน 5 สมัย ตอกตะปูหัวของเธอเมื่อเธอพูดว่า: “ทุกคนแสดงความคิดเห็น นี่คือลักษณะของข่าวลือ ” ความคิดเห็นก็เหมือนดาบสองคม การใส่ comment ที่ดีนั้นมีประโยชน์มาก ในทางกลับกัน ไม่มีสิ่งใดมาเกะกะพื้นที่มากไปกว่าความคิดเห็นไร้สาระและไร้ประโยชน์ แต่ความคิดเห็นที่สร้างความเสียหายมากที่สุดคือความคิดเห็นที่เผยแพร่ข้อมูลที่ผิดและการโกหก สรุปแล้ว ความคิดเห็นถือเป็นความชั่วร้ายที่จำเป็น ไม่เสมอไป แต่โดยส่วนใหญ่ ทำไม มันง่าย ยิ่งความคิดเห็นเก่า การรักษาก็จะยิ่งยากขึ้น และดังที่คุณทราบ โปรแกรมเมอร์ส่วนใหญ่มักไม่เปลี่ยนความคิดเห็นพร้อมกับการเปลี่ยนแปลงในโค้ดเสมอไป รหัสจะเคลื่อนที่และพัฒนา บางส่วนของโค้ดถูกย้ายไปมา แต่ไม่มีความคิดเห็น และนี่ก็กลายเป็นปัญหา!

ข้อควรจำ: โค้ดที่สะอาดและชัดเจนพร้อมความคิดเห็นเล็กน้อยนั้นดีกว่าโค้ดที่ซับซ้อนและเกะกะมาก อย่าเสียพลังงานในการอธิบายความวุ่นวายที่คุณสร้างขึ้นในความคิดเห็น ดีกว่าใช้เวลานั้นเพื่อทำความสะอาดสิ่งที่ยุ่งเหยิงนั้น

รหัสสะอาด

“การจัดรูปแบบโค้ดเป็นสิ่งสำคัญเสมอ”

คำพูดนี้ไม่มีใครอื่นนอกจาก Robert C. Martin (Robert Cecil Martin) หรือที่รู้จักในชื่อ Uncle Bob นักพัฒนา ผู้แต่งหนังสือหลายเล่มเกี่ยวกับการพัฒนาซอฟต์แวร์ ที่ปรึกษา ผู้ร่วมเขียน Agile manifesto และอื่นๆ และเขาเสริมว่า: “การจัดรูปแบบโค้ดเป็นการสื่อสารประเภทหนึ่ง และการสื่อสารถือเป็นสิ่งสำคัญสูงสุดสำหรับนักพัฒนามืออาชีพ” ไม่ควรมองข้ามข้อความข้างต้น เนื่องจากเป็นการพูดถึงคุณลักษณะที่สำคัญที่สุดอย่างหนึ่งของนักพัฒนาที่ยอดเยี่ยม โค้ดที่จัดรูปแบบช่วยให้คุณมองลึกเข้าไปในจิตใจของคุณได้ เราต้องการสร้างความประทับใจให้ผู้คนด้วยความเรียบร้อย ใส่ใจในรายละเอียด สามารถจัดระเบียบและแสดงความคิดของเราได้อย่างชัดเจน แต่ถ้าเมื่อผู้คนดูโค้ด พวกเขาเห็นความสับสนบางอย่าง ชวนให้นึกถึง vinaigrette ที่ไม่มีจุดเริ่มต้นหรือจุดสิ้นสุด สิ่งนี้จะทำให้ความพยายามของคุณไร้ผล และลดชื่อเสียงของนักพัฒนาลง ไม่ต้องสงสัยเลย! คุณอยู่ไกลจากความจริงมากหากคุณคิดว่าสิ่งสำคัญในธุรกิจนี้คือ "โค้ดใช้งานได้" ฟังก์ชันการทำงานที่คุณสร้างในวันนี้มักจะมีการเปลี่ยนแปลงในรุ่นถัดไป แต่ความสามารถในการอ่านโค้ดจะไม่เปลี่ยนแปลง รูปแบบของโค้ดและความสามารถในการอ่านที่ดีทำให้ง่ายต่อการรักษาโค้ดไว้เป็นเวลานาน แม้ว่าโค้ดต้นฉบับจะเปลี่ยนไปจนจำไม่ได้แล้วก็ตาม
อย่าลืมว่าในอนาคต สิ่งที่น่าจดจำมากที่สุดไม่ใช่โค้ดของคุณ แต่เป็นสไตล์และความสม่ำเสมอของคุณ ดังนั้นตรวจสอบให้แน่ใจว่าโค้ดมีรูปแบบที่ดีและเป็นไปตามกฎง่ายๆ ที่สมาชิกในทีมทุกคนสามารถเข้าใจได้

ขั้นแรกให้สร้างบล็อก "try-catch-finally"

Georges Canguilhem (นักประวัติศาสตร์วิทยาศาสตร์ นักปรัชญา) ตั้งข้อสังเกตอย่างถูกต้อง: “การทำผิดเป็นเรื่องปกติสำหรับบุคคล แต่การยืนกรานต่อความผิดพลาดนั้นมาจากมารร้าย ” การแก้ไขปัญหาเป็นสิ่งที่โปรแกรมเมอร์ทุกคนทำ ข้อมูลที่ไม่ถูกต้องอาจป้อนข้อมูลเข้าและอุปกรณ์อาจล้มเหลว และในฐานะนักพัฒนา เราต้องแน่ใจว่าโค้ดนั้นเป็นไปตามที่ควรจะทำ ปัญหาไม่ใช่แค่การจัดการข้อผิดพลาดเท่านั้น แต่ยังเป็นการจัดการข้อผิดพลาดที่ “สะอาดและอ่านง่าย” อีกด้วย หลายโปรแกรมปรับให้เข้ากับการจัดการข้อผิดพลาด หากคุณทำเช่นนี้ ทุกอย่างจะเข้าสู่ความสับสนวุ่นวายจนวัตถุประสงค์และตรรกะของโค้ดหลักถูกทำลาย นี่มันผิด ไม่ควรเป็นแบบนี้ โค้ดควรสะอาดและเชื่อถือได้ และการจัดการข้อผิดพลาดควรถักทอเข้ากับโค้ดได้อย่างราบรื่นและเป็นธรรมชาติ นี่เป็นตัวบ่งชี้ถึงโปรแกรมเมอร์ระดับสูง และวิธีหนึ่งในการบรรลุเป้าหมายนี้ก็คือการซ้อนที่เหมาะสมและครอบคลุมข้อผิดพลาดทั้งหมดในบล็อก try-catch บล็อกเหล่านี้กำหนดขอบเขตของโค้ดของคุณ เมื่อคุณเรียกใช้โค้ดในส่วน try ของบล็อก try-catch-finally คุณกำลังระบุว่าการดำเนินการสามารถยกเลิกเมื่อใดก็ได้ จากนั้นจึงดำเนินการต่อใน catch ดังนั้น เราขอแนะนำให้เริ่มต้นด้วย try-catch-finally เมื่อคุณเขียนโค้ด สิ่งนี้จะช่วยกำหนดสิ่งที่ผู้ใช้สามารถคาดหวังได้จากโค้ด โดยไม่คำนึงว่าโค้ดจะผิดพลาดอะไรในระหว่างการลอง
โปรดจำไว้เสมอว่าทุกข้อยกเว้นที่คุณโยนจะต้องมีบริบทเพียงพอที่จะระบุตำแหน่งและแหล่งที่มาของข้อผิดพลาด ข้อความแสดงข้อผิดพลาดที่สร้างสรรค์และข้อมูลจะถูกจดจำเป็นเวลานานหลังจากเขียนโค้ดแล้ว แม้ว่าโปรแกรมเมอร์จะยุ่งอยู่กับงานที่แตกต่างกันโดยสิ้นเชิงก็ตาม
รหัสสะอาด

มาสรุปกัน

วลีที่ไม่ธรรมดาจะช่วยเราสรุปสิ่งที่กล่าวมาทั้งหมด นี่คือความรู้สึกของรหัสหรือ "ความรู้สึกของรหัสทั่วไป" ซึ่งเป็นโปรแกรมเมอร์ประเภทหนึ่งที่เทียบเท่ากับสามัญสำนึก ตามคำพูดของ Robert Martin: “การเขียนโค้ดที่สะอาดต้องใช้เทคนิคเล็กๆ น้อยๆ มากมายอย่างเป็นระบบ ซึ่งนำไปใช้อันเป็นผลมาจากความรู้สึกที่พิถีพิถันและค่อนข้างเจ็บปวดของ “ความสะอาด” เทคนิคเล็กๆ น้อยๆ เหล่านี้เรียกรวมกันว่า code-sense " พวกเราบางคนมี "ความรู้สึกของรหัสเสียง" นี้ตั้งแต่เริ่มต้น ในขณะที่บางคนต้องพัฒนามันผ่านการฝึกฝนอย่างต่อเนื่อง สัญชาตญาณนี้ไม่เพียงช่วยรับรู้ถึงความแตกต่างระหว่างโค้ดที่ไม่ดีและโค้ดที่ดีเท่านั้น แต่ยังช่วยในการสร้างกลยุทธ์ที่มุ่งเปลี่ยนโค้ดที่ไม่ดีให้กลายเป็นโค้ดที่ดีอีกด้วย รหัสที่ไม่ดีจะทำลายทุกสิ่ง หากพูดเป็นรูปเป็นร่าง ถ้าคุณเคลือบเค้กที่อร่อยที่สุดด้วยขี้สุนัข งั้น... เอ่อ... คงไม่มีใครชอบมันหรอก Code Sense ช่วยให้โปรแกรมเมอร์ใช้เครื่องมือที่เหมาะสมเพื่อให้บรรลุเป้าหมายในการสร้างโค้ดที่สะอาดตา โปรแกรมเมอร์ที่เข้าใจว่าความรู้สึกของโค้ดคืออะไร คือศิลปินที่สามารถสร้างงานศิลปะบนหน้าจอว่างเปล่าที่จะจดจำไปอีกหลายปี ดังที่ Harold “Hal” Abelson ศาสตราจารย์ด้านวิทยาการคอมพิวเตอร์ที่ Mit และผู้ก่อตั้ง Creative Commons และ Free Software Foundation สรุปว่า“โปรแกรมจำเป็นต้องเขียนก่อนเพื่อให้ผู้คนสามารถอ่านได้ จากนั้นจึงจะสามารถ ประหารชีวิต” รถยนต์ ” สิ่งที่คุณสามารถอ่านได้ในหัวข้อ: “คู่มือของ Agile Software Craftsmanship” - Robert Martin “คู่มือการประมาณค่าแบบ Agile” - Mike Cohn เกี่ยวกับผู้เขียน: Ravi Shankar Rajan เป็นผู้จัดการโครงการไอทีระดับโลกจากมุมไบ (อินเดีย) บล็อกเกอร์ชื่อดัง กวีไฮกุ นักโบราณคดีและประวัติศาสตร์ตัวยง คุณสามารถเชื่อมต่อกับเขาได้ทางTwitter , ปานกลาง , LinkedIn
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION