1 คะแนน โดย GN⁺ 2024-06-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • อะไรทำให้มันดีขนาดนั้น?
    • มีคนที่คอยบังคับใช้แนวปฏิบัติที่ดีอยู่หรือเปล่า?
    • คุณได้อยู่ในกลุ่มวิศวกรที่ยอดเยี่ยมหรือไม่?
    • หรือเป็นอย่างอื่น?

ความคิดเห็นของ GN⁺

  • บทความนี้ตั้งคำถามที่น่าสนใจเกี่ยวกับการรักษาแนวปฏิบัติที่ดีในสภาพแวดล้อมการพัฒนาซอฟต์แวร์
  • สิ่งนี้อาจช่วยให้เข้าใจความแตกต่างระหว่างการบังคับใช้แนวปฏิบัติที่ดีกับสภาพแวดล้อมที่มีความเป็นอิสระได้
  • โปรเจ็กต์อื่นที่มีฟังก์ชันคล้ายกัน ได้แก่ ระบบ Code Review ของ Google หรือระบบ Pull Request ของ GitHub
  • เมื่อนำเทคโนโลยีใหม่หรือโอเพนซอร์สมาใช้ ควรพิจารณาว่าจะผสานเข้ากับวัฒนธรรมทีมและกระบวนการที่มีอยู่ได้อย่างไร
  • การรักษาแนวปฏิบัติที่ดีเป็นปัจจัยสำคัญในการเพิ่มผลิตภาพของทีมและคุณภาพของโค้ด

1 ความคิดเห็น

 
GN⁺ 2024-06-29
ความคิดเห็นจาก Hacker News
  • monorepo ของ Google ยอดเยี่ยมมากในด้านเครื่องมือ

    • สามารถสร้างสแนปช็อตของทั้ง codebase ได้ภายในไม่กี่วินาที
    • การบิลด์ทำซ้ำได้อย่างสมบูรณ์แบบและรันบน build cluster
    • ภาษาสำหรับกำหนดค่าการบิลด์เรียบง่ายและกระชับมาก
    • ค้นหาโค้ดได้แทบจะทันที
    • โหลดประวัติไฟล์ได้แทบจะทันที
    • ดู blame รายบรรทัดได้ภายในไม่กี่วินาที
    • ค้นหา symbol ได้แทบจะทันทีในเกือบทุกไฟล์
    • สไตล์ที่สอดคล้องกันถูกบังคับใช้ผ่านวัฒนธรรมร่วม, auto linter และ pre-submit
    • มีคีย์ลัดสำหรับ deep link ไปยังไฟล์/เวอร์ชัน/บรรทัด ทำให้แชร์โค้ดได้ง่าย
    • มีการตรวจสอบ pre-submit จำนวนมากเพื่อรับประกันคุณภาพของโค้ด/การทดสอบ
    • การรีวิวโค้ดและการจับคู่การทดสอบเมื่อเปลี่ยนโค้ดเป็นสิ่งบังคับ
  • โค้ดเซิร์ฟเวอร์ของ AOL ยอดเยี่ยมมาก

    • เขียนโดยคนที่เข้าใจ Unix programming และการใช้ event loop อย่างลึกซึ้ง
    • เขียนด้วยภาษา C และคาดว่าจะรันได้นานหลายเดือนโดยไม่ crash
    • หากจบการทำงานผิดปกติ จะส่ง core backtrace ทางอีเมลไปยังเจ้าของ
    • ถ้ามี memory leak ทีมปฏิบัติการจะตอบสนองทันที
    • ทุกอย่างสามารถ reload กลับเข้าไปยังเซิร์ฟเวอร์ที่กำลังรันอยู่ได้โดยไม่ต้อง restart
    • จัดการเซิร์ฟเวอร์ด้วย TCP control port และ TCL interpreter
    • ขยายจากเครื่องจริงหลักสิบไปเป็นหลักร้อยด้วย "No Threads Kernel"
    • นักพัฒนา Unix 200 คนมีความเข้าใจร่วมกัน
    • นักเขียนเทคนิคสัมภาษณ์นักพัฒนาแล้วเขียนหนังสือที่ส่งต่อให้แก่นักพัฒนาภายนอกได้
    • ยึดหลักการรับส่งข้อความเครือข่ายโดยไม่เขียนลงดิสก์
  • codebase ของที่ทำงานก่อนหน้ายอดเยี่ยมมาก

    • วิศวกรมีทักษะสูงและไม่มีอีโก้
    • ทีมประกอบด้วยซีเนียร์ 4 คนและ principal engineer 3 คน
    • ทุกครั้งที่มีข้อกำหนดใหม่ จะถกเถียงกันอย่างมีอารยะ
    • แม้แต่สมาชิกจูเนียร์ก็สามารถตามโค้ดเดิมได้ง่าย
  • codebase ของ Postgres ถูกจัดระเบียบไว้อย่างดีมาก

    • ไม่ต้องกังวลเรื่อง memory safety
    • ใช้ macro อย่างระมัดระวังและให้เกียรติผู้อ่าน
    • codebase ของ Postgres ถูกมองว่าเป็นมาตรฐานทองคำของการพัฒนา
    • ฝากคำขอบคุณถึงทีม pgrx
  • เฟรมเวิร์ก integration test ของบริการ Python ขนาดใหญ่ยอดเยี่ยมมาก

    • สร้างขึ้นบนเฟรมเวิร์ก integration test เดิม
    • กำหนดความหมายที่ชัดเจนให้กับองค์ประกอบของการทดสอบ
    • สร้างองค์ประกอบการทดสอบเป็นชุดเริ่มต้น
    • ใช้ code review เพื่อให้แน่ใจว่าองค์ประกอบใหม่ยังคงเป็นไปตามความหมายที่กำหนด
    • แต่ในระยะยาวมันทำงานได้ไม่ดีนัก
  • codebase Google3 มีขนาดใหญ่มากและทำงานได้ดี

    • ทุกครั้งที่มีการเปลี่ยนแปลง จะรัน dependency ใหม่
    • commit เป็น immutable snapshot ที่มีประสิทธิภาพ
    • ดีกว่า GitHub มาก
  • codebase ที่ฉันเขียนเองดีที่สุด

  • codebase ของ Cocotron น่าประทับใจมาก

    • กำลังหาวิธีพอร์ตแอป Mac Cocoa ไปยัง Windows
    • มีคนเพียงคนเดียวที่ทำ API จำเป็นทั้งหมดขึ้นมา
    • ถูกใช้งานสำเร็จกับแอป GUI แบบ custom ที่ซับซ้อน
    • สมาธิเป็นสิ่งสำคัญ
  • codebase ของ Facebook รองรับการอัปเกรดโค้ดอย่างต่อเนื่องได้

    • ทุ่มเทอย่างมากให้กับการออกแบบภาษาและเครื่องมือ
    • อัปเกรดโค้ดเดิมอย่างต่อเนื่อง
    • codebase ของบริษัทอื่นเปลี่ยนผ่านได้ยากหลังการเขียนใหม่ครั้งใหญ่
  • HTTP API ของ CouchDB อยู่รวมกันทั้งหมดในไฟล์เดียว

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