5 Source Codes น่าทึ่ง ที่ Developer ทุกคนควรเข้าไปอ่านดู

30-ธ.ค.-20

คัมภีร์เทพ IT

ใน Github Repositories มีสิ่งที่มีประโยชน์มากมาย ไม่ว่าคุณจะต้องการไอเดียในการทำงาน แก้ไขปัญหาในการทำงาน ติดขัดเมื่อต้องใช้ Tools หรือ Utilities ใหม่ ๆ ก็สามารถหาได้จาก Repositories ต่าง ๆ ได้ นอกจากนี้ยังมี Software หรือ Codebase ที่น่าทึ่งอยู่มากมาย และนี่ก็เป็น 5 Source Codes น่าทึ่ง ที่ Developer ทุกคนควรเข้าไปอ่านดู และเรียนรู้จากพวกมัน

1. Apollo 11 Guidance Program

Apollo 11 ถือเป็นภารกิจแรกที่ส่งมนุษย์ไปยังดวงจันทร์ได้สำเร็จ โดย Apollo Guidance Computer (AGC) ซึ่งมี ซึ่งมี Physical Memory เพียง 4 Kilobytes ซึ่งใช้เพื่อรองรับการควบคุมยานอวกาศ Software สำหรับ AGC ถูกเขียนด้วยภาษา AGC Assembly และถูกเก็บไว้ใน Read-only Memory พิเศษที่เรียกว่า Rope Memory มีสำเนาของ Source Code ที่ถูก Scan ไว้ ถูก Upload ไปบน Internet เมื่อไม่นานมานี้ หลังจากนั้นมีคน Convert Modules ต่าง ๆ ไปเป็น Text Files และ Upload ไปยัง Github Repository

ทีมวิศวกรของ Apollo ได้ใช้ความพยายามอย่างมากเพื่อทำสิ่งต่าง ๆ ที่น่าทึ่งเหล่านี้ด้วยการเขียน Code เป็นจำนวนมากในภาษา Assembly ในช่วงปี 1960 การเขียน Program นั้นยากกว่าในปัจจุบันมาก เนื่องจาก ณ เวลานั้นภาษา Programming มี Level ของ Abstraction ที่น้อยกว่า นอกจากนี้ Programmer จะต้องเขียน Code ที่ได้รับการ Optimize ให้เหมาะสมเป็นพิเศษเพื่อให้สามารถใช้บน Hardware ได้อย่างมีประสิทธิภาพ

2. Quake III Arena

Quake III Arena เป็นเกมยิงผ่านมุมมองของคนที่ถูกพัฒนาโดย id Software มันได้รับการพัฒนาในยุค 90 เมื่ออุตสาหกรรมเกม 3D อยู่ในช่วงเริ่มต้นโดยใช้ id Tech 3 Game Engine ในช่วงนั้น Hardware Resources มีอยู่อย่างจำกัด ยังมีไม่มากเหมือนอย่างในปัจจุบัน ดังนั้น Game Developers จึงต้องเขียน Code ที่ Optimize ให้เหมาะสมที่สุดสำหรับการแสดงผลองค์ประกอบต่าง ๆ ที่เป็น Graphic ในการคำนวณ Game Programming จำนวนมากนั้นต้องใช้ Vector Normalization Concept ที่ทำให้ต้องใช้ในการคำนวณ Inverse Square Root ดังที่ได้กล่าวไปแล้วก่อนหน้านี้ Developer จะต้องเลือก Algorithms ที่มีประสิทธิภาพสูงสุดสำหรับงานที่เกี่ยวข้องกับ Computer Graphics ดังนั้นทีม Quake III Arena จึงใช้วิธีการที่ชาญฉลาดอย่างมากในการคำนวณ Inverse Square Root ได้อย่างรวดเร็ว เหมือนอย่างด้านล่างนี้โดยใช้การคำนวณในระดับ Bit

ระดับการ Optimize ที่ใช้ใน Code นี้และ Code ทั้งหมดที่เขียนขึ้นเพื่อให้ได้ Computer Game ที่ดีในยุค 90 นั้น เป็นสิ่งที่น่าทึ่งอย่างมาก ปัจจุบันการพัฒนา Game มักไม่เกี่ยวข้องกับการคำนวณในระดับนี้ เนื่องจาก Physics Functions ได้ถูก Implement อยู่ใน Game Engines อยู่แล้ว

3. GNU Compiler Collection

ภาษา C เปรียบเสมือนต้นแบบของ Computer สมัยใหม่เนื่องจากมันอยู่ใกล้กับ Hardware มากขึ้นโดยมี Abstraction Level ที่มนุษย์สามารถอ่านเข้าใจได้มากขึ้น อันที่จริง GNU C Compiler ถูก Bootstrap หรือกล่าวอีกนัยหนึ่งคือ มันถูกเขียนด้วยภาษา C โดยใช้แนวคิด Compiler Bootstrapping จะว่าไปแล้ว นี่ถือเป็นหนึ่งใน Source File ของภาษา C ที่ยาวที่สุดตัวหนึ่งจาก Codebase ของ GNU Compiler Collection บน Github

4. Chromium

Web Browsers ยอดนิยมอย่าง Google Chrome, Microsoft Edge และ Opera ต่างก็มีพื้นฐานมาจาก Chromium Open Source Project ซึ่งประกอบไปด้วย 2 Dependencies หลัก ๆ ก็คือ Blink Rendering Engine ซึ่งเป็นส่วนแยกของ WebCore Library ซึ่งถูกพัฒนาโดยทีม Webkit จากทางแยกของ KHTML/KJS และ v8 JavaScript Engine ซึ่งถูกพัฒนาโดยทีม Chromium Project ไม่ต้องสงสัยเลยว่า Chromium Codebase มีขนาดใหญ่มากและมี 3rd Party Modules อยู่มากมาย เช่น gRPC และ Skia อย่างไรก็ตามทีม Chromium ได้จัดโครงสร้างของ Components ทั้งหมดได้อย่างดีเยี่ยม พวกเขาได้แยก User Interface ที่เกี่ยวข้องกับ Logic และ Internal Functions Logic ได้อย่างชาญฉลาด เพื่อช่วยในเรื่องการ Maintain ให้ดีขึ้นตลอดทั้ง Project

ยิ่งไปกว่านั้น Codebase นี้ยังประกอบด้วย Source Codes ของ Chromium Android และ iOS Apps อีกด้วย การจัดโครงสร้าง Cross-Platform Application ขนาดใหญ่อาจมีความซับซ้อนเล็กน้อย แต่อย่างไรก็ตาม Chromium ก็มีการแยก Code เฉพาะ Platform สำหรับ Linux, Windows และ Mac ได้อย่างน่าประทับใจ

5. Gitk

ปัจจุบัน Git ช่วยทีมพัฒนา Software แทบจะทุกทีมในการจัดการเกี่ยวกับ Coding History และ Versions เริ่มแรกนั้น Git ถูกสร้างขึ้นโดย Linus Torvalds ซึ่งเป็นผู้ก่อตั้ง Linux Kernel อันที่จริง Codebase ของ Git ประกอบด้วยชิ้นงานที่ยอดเยี่ยมซึ่งเป็น Source File ของ Gitk และ Gitk เป็น GUI Application ที่ช่วยให้เราสามารถมองเห็นการกระทำต่าง ๆ ผ่านการ Commits เราสามารถใช้คำสั่ง CLI ต่อไปนี้เพื่อตรวจสอบความแตกต่างระหว่าง 2 Commits

แต่ Gitk ช่วยให้เราเห็นการปรับเปลี่ยนได้อย่างรวดเร็วเนื่องจากมันเป็น Visual Tool สำหรับ Source Codes ทั้งหมดของ Gitk มีเพียง File เดียว มันถูกเขียนขึ้นโดย Tcl ซึ่งเป็นภาษา Script โดยใช้ Tk UI-Toolkit ซึ่งเป็นส่วนขยายของ Tcl พวกมันทำงานได้อย่างยอดเยี่ยมด้วยการใช้ GUI App ทั้งหมดด้วย Source File เดียว รวมทั้งการเลือกภาษา Dynamic Programming เพื่อการพัฒนา GUI Application ที่รวดเร็วยิ่งขึ้น

ที่มา:  https://medium.com/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด