CodeGym /จาวาบล็อก /สุ่ม /ทำไมคุณต้องอ่านรหัสของผู้คนและทำอย่างไรให้ถูกต้อง
John Squirrels
ระดับ
San Francisco

ทำไมคุณต้องอ่านรหัสของผู้คนและทำอย่างไรให้ถูกต้อง

เผยแพร่ในกลุ่ม
หากคุณต้องการเป็นนักเขียนที่ดี แค่รู้ไวยากรณ์อย่างเดียวไม่พอ คุณต้องอ่านหนังสือจำนวนมากที่จะแสดงวิธีใช้ไวยากรณ์นี้เพื่อสร้างข้อความที่โดดเด่น ในทำนองเดียวกัน หากคุณต้องการเป็นโปรแกรมเมอร์ที่ดี การเรียนรู้ Java เพียงอย่างเดียวนั้นไม่เพียงพอ นอกจากนี้ คุณควรอ่านตัวอย่างโค้ดคุณภาพจำนวนมากที่เขียนโดยโปรแกรมเมอร์คนอื่นๆ และที่สำคัญที่สุดคือ ทำความเข้าใจและเรียนรู้จากพวกเขา ที่จริงแล้ว การเปิดรับตัวอย่างโค้ดคุณภาพสูงเป็นหนึ่งในปัจจัยสำคัญที่มีอิทธิพลต่อการเรียนรู้ทักษะใหม่ ๆ อย่างรวดเร็วและมีประสิทธิภาพ ทำไมคุณต้องอ่านรหัสของผู้คนและทำอย่างไรให้ถูกต้อง - 1

ความสำคัญของการอ่านรหัสของผู้อื่น

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

วิธีขุดรหัส

เมื่อคุณดำดิ่งลงไปในรหัสของผู้อื่น คุณอาจรู้สึกเหมือนเป็นนักสำรวจ-นักโบราณคดีมากกว่านักพัฒนา ไม่มีอะไรผิดปกติเมื่อคุณมี "พลั่ว" มากมาย ปัจจุบัน คุณสามารถเข้าถึงข้อมูลเมตาจำนวนมากที่จะช่วยให้คุณเข้าใจโค้ดได้ง่ายขึ้น ตัวอย่างเช่น คุณอาจใช้Gitเพื่อช่วยตัวเองในการอ่าน คัดลอก และวางรหัส อย่างไรก็ตาม ประเด็นสำคัญบางประการสามารถช่วยให้คุณเข้าใจโค้ดได้ดีขึ้นในขั้นต้น ก่อนอื่น คุณควรถามคำถามต่อไปนี้:
  • มีอะไรในรหัสที่คุณไม่คุ้นเคยหรือไม่? ถ้าใช่ ให้ทบทวน "ช่องว่าง" เหล่านั้น และทำความเข้าใจว่าคุณใช้พื้นที่เหล่านี้เพื่ออะไร
  • มีอะไรที่ไม่จำเป็นในรหัสหรือไม่? โค้ดที่ตายแล้วยังมีอยู่ โดยเฉพาะอย่างยิ่งหากเรากำลังพูดถึงโค้ดเบสขนาดใหญ่
  • รหัสมีการอ้างอิงใด ๆ หรือไม่? บางครั้งการลบการพึ่งพานั้นออกด้วยการคัดลอก/วางโค้ดเพิ่มเติม
  • มีข้อผิดพลาดใดๆ เกิดขึ้นหลังจากวางหรือไม่
Another recommendation is to find what the code does and trace those actions backward. For instance, if you know that the code you're viewing creates a file with a list of movie titles, try to figure out in what specific lines the code generates that file. Next, move a step backward to find out how the code places the info in that file. Then, move one more step backward to understand where the data comes from… You've got the idea. The said pieces of the code can be called a "chain of actions." which may give you a great insight into such things as:
  • how the body of code is actually built;
  • the style of coding;
  • how the programmer who wrote the code solves the problems.
Likewise, you may try the following 4-step process to learn more about the code you're working on:
  • รันโค้ดและสำรวจผลลัพธ์ การรันโค้ดจะทำให้คุณได้รับข้อมูลที่จำเป็นในการทำความเข้าใจให้ดียิ่งขึ้น

  • ค้นหาหน้าที่หลักและจุดเริ่มต้น

  • รันโค้ดด้วยดีบักเกอร์ (คุณอาจพบเครื่องมือดีบัก Java ที่มีประสิทธิภาพสูงสุดที่นี่ ) เพื่อทำความเข้าใจกลไกของโค้ดอย่างถ่องแท้ เมื่อทำเช่นนั้น คุณจะได้รับการวิเคราะห์เชิงลึกเกี่ยวกับการทำงานภายในของโค้ดที่คุณกำลังอ่าน

  • สร้างแผนที่ความคิดของการเชื่อมต่อระหว่างองค์ประกอบต่างๆ ในโค้ด เนื่องจากดีบักเกอร์ใดๆ จะแสดงให้คุณเห็นถึงความเชื่อมโยงระหว่างองค์ประกอบ คุณจะสามารถเชื่อมโยงฟังก์ชันต่างๆ และเข้าใจว่าองค์ประกอบเหล่านี้โต้ตอบกันอย่างไร

ด้วยการตรวจสอบโค้ดด้วยวิธีดังกล่าว คุณจะเข้าใจโค้ดเฉพาะได้มากขึ้นเรื่อย ๆ (และส่วนต่าง ๆ ที่เกี่ยวข้องกัน) ยิ่งคุณรู้เกี่ยวกับโค้ดมากเท่าไหร่ คุณก็ยิ่งเข้าใจโค้ดเบสทั้งหมดมากขึ้นเท่านั้น กล่าวอีกนัยหนึ่ง หากคุณสำรวจและใช้ ตัวอย่าง โค้ดคุณภาพสูงยิ่งอ่านและเข้าใจโค้ดอื่นๆ ทั้งหมดได้ง่ายขึ้นเมื่อเวลาผ่านไป

จับอะไร?

คุณอาจยังสงสัยว่าการอ่านและทำความเข้าใจโค้ดของโปรแกรมเมอร์คนอื่นมีประโยชน์อย่างไร ที่จริงแล้ว เป็นโอกาสที่ดีในการทำความเข้าใจว่าโมดูลสำเร็จรูปทำงานอย่างไร "ภายใต้ประทุน" และเรียนรู้สิ่งใหม่ๆ และถ้าคุณรู้สึกว่าสมองของคุณพร้อมที่จะประมวลผลข้อมูลด้วยวิธีอื่นนอกเหนือจากการอ่านทฤษฎีและการฝึกฝน อาจถึงเวลาแล้วที่คุณจะขัดเกลาทักษะ Java ของคุณโดยไม่ต้องใช้ความพยายามเพิ่มเติมมากนัก

ผลกระทบ "ด้าน" อื่นๆ ของการใช้รหัสของผู้อื่น: เพิ่มความมั่นใจ

แม้ว่าคุณจะอ่านซอร์สโค้ดของ OSS บางตัวแล้ว (ซอฟต์แวร์โอเพ่นซอร์สที่ทุกคนเข้าถึงได้) แต่ไม่เข้าใจอะไรเลย ไม่ต้องกังวล ไม่เป็นไรโดยเฉพาะเมื่อคุณเพิ่งเรียนรู้ อาจแค่หมายความว่าคุณยังไม่พร้อม อย่างไรก็ตาม หากคุณสามารถเข้าใจโค้ดได้แล้ว คุณจะได้รับความมั่นใจเพิ่มขึ้นอย่างแน่นอนในฐานะนักพัฒนา Java เมื่อคุณทราบแน่ชัดว่าโปรเจ็กต์ โปรแกรมซอฟต์แวร์ หรือแอปในโลกแห่งความเป็นจริงทำงานอย่างไร แสดงว่าคุณรู้เรื่องการเขียนโปรแกรมมากอยู่แล้ว ดังนั้นจึงไม่มีทางหยุดกระบวนการเรียนรู้ของคุณได้ ที่ CodeGym เราไม่แนะนำให้ยกน้ำหนักที่หนักเกินไปในตอนเริ่มต้น อย่าขุดลึกเข้าไปในแอปพลิเคชันหรือระบบปฏิบัติการขนาดใหญ่ เนื่องจากประสบการณ์นี้อาจทำให้คุณรู้สึกหงุดหงิดมากกว่าที่จะสร้างแรงบันดาลใจ แทน,ส่วน "ความช่วยเหลือ"ที่คุณสามารถฝึกฝนให้อ่านรหัสของนักเรียนคนอื่นๆ ให้คำแนะนำหรือเรียนรู้จากประสบการณ์ของพวกเขา นอกจากนี้คุณยังสามารถค้นพบว่าเพื่อนของคุณแก้ปัญหางานเดียวกันได้อย่างไร ความช่วยเหลืออื่นที่อาจดึงดูดความสนใจของคุณคือ ชุมชน StackOverflowซึ่งโค้ดที่เขียนโดยโปรแกรมเมอร์คนอื่นๆ มักจะมีโครงสร้าง จัดรูปแบบ และแสดงความคิดเห็นพอสมควร นิสัยในการอ่านโค้ดคุณภาพสูง (แต่ยังไม่ซับซ้อนเกินไป) จากเพื่อนของคุณจะค่อยๆ นำพาคุณไปสู่ระดับใหม่ของการเขียนโปรแกรม

มีอะไรอีก?

การอ่านโค้ดเป็นประจำจะสนับสนุนให้คุณนำไปใช้ในโครงการของคุณในภายหลัง และในที่สุดก็จะปรับเปลี่ยนและทำความคุ้นเคยกับความต้องการเฉพาะของคุณ แน่นอน หากเรากำลังพูดถึงรหัสซอฟต์แวร์โอเพ่นซอร์สที่ใบอนุญาตอนุญาตให้คุณแก้ไขได้ โค้ดดังกล่าวจะช่วยคุณประหยัดเวลาได้มากในการสร้างโปรเจกต์ตั้งแต่ต้น และเปิดคุณสู่ระดับใหม่ของการเขียนโปรแกรม อย่างที่คุณเห็น การอ่าน คัดลอก และวางโค้ดสามารถช่วยพัฒนาทักษะของคุณและประหยัดเวลาได้มาก และเวลาที่เพิ่มขึ้นเหล่านั้นจะช่วยให้คุณแก้ปัญหาที่ถูกต้องและเพิ่มความเร็วของคุณให้เร็วขึ้น อันที่จริง บางครั้งการคัดลอกและวางโค้ดที่มีอยู่แล้วเป็นแนวทางปฏิบัติที่ดีที่สุด แต่อย่าลืมเกี่ยวกับข้อกำหนดสิทธิ์การใช้งานและการฝังโค้ดทั้งหมดลงในโค้ดที่คุณกำลังคัดลอกเสมอ GitHub , GitLab ,FreeCodeCampหรือSourceForgeเป็นแหล่งข้อมูลแบบเปิดที่ไม่มีข้อผิดพลาดที่ดีที่สุด ซึ่งช่วยให้คุณเห็นรหัสของนักพัฒนารายอื่น

บทสรุป

ไม่มีโปรแกรมเมอร์คนใดสามารถทำได้โดยไม่ต้องอ่านโค้ดเก่าซึ่งเป็นส่วนหนึ่งของการเขียนโค้ดใหม่ และยิ่งคุณเขียนโปรแกรมนานเท่าไร คุณก็ยิ่งเห็นรหัสต่างๆ มากขึ้น และคุณจะเข้าใจรหัสเหล่านี้ได้ง่ายขึ้น โปรดจำไว้ว่าเมื่อการอ่านตัวอย่างโค้ดง่ายขึ้น การเขียนโค้ดใหม่ก็จะง่ายขึ้น กล่าวอีกนัยหนึ่งก็คือ มันเป็นวัฏจักรที่ยืดเยื้อในตัวเองอย่างน่าอัศจรรย์ ซึ่งคุณจะได้รับความสามารถในการเข้าใจโค้ดของผู้อื่นได้เร็วและมีประสิทธิภาพมากขึ้น จากนี้ คุณจะเห็นข้อดีในการเขียนโค้ดของคุณเอง ดังนั้น หากคุณหยุดชั่วคราวน้อยลงและมีความคืบหน้ามากขึ้น อย่าละเลยการอ่าน ทำความเข้าใจ และแก้ไขโค้ดที่มีอยู่แล้ว!
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION