รายการที่สองของซีรีส์โพสต์บล็อก "Ledger Live Monorepo Project" ซึ่งนักพัฒนา Ledger บอกเราถึงเรื่องราวของการโยกย้ายฐานโค้ด Ledger Live ขนาดใหญ่ไปยังพื้นที่เก็บข้อมูลแบบ mono หากคุณพลาดตอนที่ 1 โปรดดูที่นี่:
หลังจากพิสูจน์ได้ว่าสถาปัตยกรรม monorepo เป็นโซลูชันที่ใช้ได้ เราก็เริ่มพิจารณาเครื่องมือที่มีอยู่เพื่อนำแผนของเราไปใช้
จัดการหลายโครงการ
ในทีม Ledger Live เรานำทางในระบบนิเวศของ JavaScript และโชคดีสำหรับเรา เรารู้อยู่แล้วหลายวิธีในการจัดการหลายโครงการด้วยตัวจัดการแพ็คเกจของเรา วิธีแก้ปัญหาที่เป็นไปได้บางส่วน ได้แก่:
- NPM (รองรับพื้นที่ทำงานแต่มีทางเลือกที่ดีกว่า)
- เส้นด้าย1 (กลายเป็นทางเลือกที่เก่าเกินไป ดีกว่า และมีประสิทธิภาพมากขึ้น)
- เส้นด้าย ≥ 2 (แนวคิดที่น่าสนใจ แต่ Plug n Play ไม่รองรับทุกที่ โดยเฉพาะกับ React Native)
- พน.น (symlinks สร้างขึ้นโดยคำนึงถึงพื้นที่ทำงาน ดิสก์มีประสิทธิภาพ)
หลังจากดูทั้งหมดนี้แล้วเราก็ตัดสินใจไปด้วย พน.น สำหรับ:
- ประสิทธิภาพของดิสก์ (ใช้ไฟล์ virtual จัดเก็บ และ ลิงก์เชื่อมโยงดังนั้นแพ็คเกจจะถูกดาวน์โหลดเพียงครั้งเดียวจากนั้นจึงเชื่อมโยงกับ node_modules ของคุณจากร้านค้าเสมือน)
- ความเร็ว (เนื่องจากแพ็คเกจถูกแคชไว้ การติดตั้งครั้งต่อไปจะเร็วกว่ามาก)
- สร้างขึ้นเพื่อรองรับพื้นที่ทำงาน/สถาปัตยกรรม monorepo (นามแฝง การเรียบเรียง ฯลฯ…)
บนกระดาษ พน.น เป็นอัญมณีที่สมบูรณ์ แต่ symlink นั้นค่อนข้างแปลกในการตั้งค่าอย่างถูกต้อง (อีกครั้งโดยเฉพาะกับ React Native)
โอเค เราเลือกได้แล้ว เราจะไปด้วย พน.น.
การเรียบเรียงสคริปต์
แม้ พน.น เพิ่มการเรียบเรียงฟีเจอร์ต่างๆ มากขึ้นเรื่อยๆ แต่ก็ยังไม่ครอบคลุมทุกสิ่งที่เราอยากทำ เช่น:
- การสร้างตามลำดับ
- เก็บเอาไว้.
สำหรับสิ่งเหล่านี้ เราพบคู่แข่งที่น่าสนใจสองรายที่เราจำเป็นต้องพิจารณา:
- NX (โดยทีมงานเชิงมุม)
- เทอร์โบเรโป (ซึ่งเพิ่งประกาศเวอร์ชัน 1.0.0 ตอนที่เราเริ่มทำงาน และตอนนี้กำลังทำงานร่วมกับทีม Vercel)
เราได้พิสูจน์แนวคิดทั้งสองอย่างแล้ว
NX มีคุณสมบัติ เครื่องกำเนิดไฟฟ้า ระบบอัตโนมัติ กราฟการพึ่งพาที่ยอดเยี่ยม ฯลฯ... แต่มันเพิ่มค่าใช้จ่ายจำนวนมาก และเนื่องจากค่อนข้างดื้อดึง เราจึงต้องปฏิบัติตามแบบแผนของพวกเขา
เทอร์โบเรโป ในทางกลับกัน เป็นคุณสมบัติพื้นฐานที่ค่อนข้างชาญฉลาด แต่เป็นโซลูชันแบบพลักแอนด์เพลย์ที่สะดวกสบายซึ่งเราสามารถเปลี่ยนแปลงได้อย่างรวดเร็วหากจำเป็น
แม้ เทอร์โบเรโป มีคุณสมบัติน้อยกว่า NXมันทำ 2 สิ่งที่เรากำลังมองหา:
- การเรียบเรียงบิลด์ตามแผนผังการพึ่งพา (และบิลด์ที่เกิดขึ้นพร้อมกัน)
- การแคช (บิลด์จะถูกแคชและ 'เล่นซ้ำ' หากรหัสไม่เปลี่ยนแปลง)
นั่นบวกกับการดรอปเข้า/ออกที่ง่ายดาย ทำให้เราเลือกเด็กใหม่ในบล็อก TurboRepo.
รุ่น
เราพิจารณาวิธีแก้ปัญหาหลายอย่างเช่นกัน แต่ท้ายที่สุดก็ตัดสินใจใช้ https://github.com/changesets/changesets เนื่องจากเป็นเครื่องมือหนึ่งที่ TurboRepo แนะนำ และหลังจากอ่านเอกสารไปบ้างแล้ว ดูเหมือนว่าจะสอดคล้องกับความต้องการของเรา
นักพัฒนาจะต้องเข้มงวดมากขึ้นอีกเล็กน้อยในขั้นตอนการพัฒนาและการจัดหา changesets
(ไฟล์อธิบายว่าไลบรารีใดที่โค้ดของพวกเขาเปลี่ยนแปลง ความรุนแรงตาม ซัมเมอร์ แบบแผนและคำอธิบายของการเปลี่ยนแปลง) เหล่านี้ changesets
จากนั้นจะใช้เพื่อชนเวอร์ชันของแพ็คเกจโดยอัตโนมัติตามความรุนแรงที่กำหนด รวมถึงสร้างอัตโนมัติของ บันทึกการเปลี่ยนแปลง. ยิ่งไปกว่านั้น เครื่องมือยังช่วยให้ pre release
โหมด 🍒 บน 🍰
อะไรต่อไป ?
หลังจากตัดสินใจเลือกเครื่องมือได้แล้วก็ถึงเวลาเริ่มทำงาน ในบทความบล็อกถัดไป เราจะพูดถึงระบบบิลด์และ dev-ops / ระบบอัตโนมัติ / การรวมอย่างต่อเนื่องในบริบทของที่เก็บข้อมูลแบบโมโน
วาเลนติน เด อัลเมดา
ประสบการณ์นักพัฒนาและเทคโนโลยีหลัก – Ledger Live
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://www.ledger.com/blog/ledger-live-monorepo-project-part-2-the-tools-make-it-shine
- :มี
- :เป็น
- :ไม่
- :ที่ไหน
- 1
- a
- เกี่ยวกับเรา
- แน่นอน
- ที่เพิ่ม
- เพิ่ม
- หลังจาก
- อีกครั้ง
- ทั้งหมด
- ช่วยให้
- แล้ว
- ทางเลือก
- an
- และ
- เชิงมุม
- ประกาศ
- สถาปัตยกรรม
- เป็น
- บทความ
- AS
- At
- โดยอัตโนมัติ
- อัตโนมัติ
- อัตโนมัติ
- ใช้ได้
- ขั้นพื้นฐาน
- BE
- สมควร
- ดีกว่า
- บิต
- ปิดกั้น
- บล็อก
- บล็อกโพสต์
- ทั้งสอง
- สร้าง
- สร้าง
- สร้าง
- แต่
- by
- เปลี่ยนแปลง
- การเปลี่ยนแปลง
- การเปลี่ยนแปลง
- ตรวจสอบ
- ทางเลือก
- Choose
- รหัส
- codebase
- มา
- ปฏิบัติตาม
- แนวคิด
- พร้อมกัน
- สิ่งแวดล้อม
- ต่อเนื่องกัน
- สะดวกสบาย
- การประชุม
- การประชุม
- แกน
- ได้อย่างถูกต้อง
- ได้
- หน้าปก
- ตัดสินใจ
- กำลังตัดสินใจ
- การอยู่ที่
- อธิบาย
- ลักษณะ
- dev
- ผู้พัฒนา
- DID
- do
- เอกสาร
- ไม่
- หล่น
- ง่าย
- ระบบนิเวศ
- อย่างมีประสิทธิภาพ
- ที่มีประสิทธิภาพ
- การเข้า
- โดยเฉพาะอย่างยิ่ง
- การสร้าง
- อีเธอร์ (ETH)
- เคย
- ทุกอย่าง
- ทุกที่
- ประสบการณ์
- เร็วขึ้น
- ลักษณะ
- คุณสมบัติ
- เนื้อไม่มีมัน
- ไหล
- ปฏิบัติตาม
- ดังต่อไปนี้
- สำหรับ
- โชคดี
- พบ
- ราคาเริ่มต้นที่
- อัญมณี
- รุ่น
- เครื่องกำเนิดไฟฟ้า
- กำหนด
- Go
- กราฟ
- ยิ่งใหญ่
- มี
- มือ
- จัดการ
- มี
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- HTTPS
- ใหญ่
- ความคิด
- if
- in
- ประกอบด้วย
- บูรณาการ
- น่าสนใจ
- เข้าไป
- IT
- ITS
- JavaScript
- เพียงแค่
- เด็ก
- บัญชีแยกประเภท
- บัญชีแยกประเภทสด
- น้อยลง
- ห้องสมุด
- สด
- ดู
- มอง
- ที่ต้องการหา
- Lot
- ทำ
- ทำ
- ผู้จัดการ
- ความกว้างสูงสุด
- การโยกย้าย
- ใจ
- พลาด
- โหมด
- ข้อมูลเพิ่มเติม
- มีประสิทธิภาพมากขึ้น
- มาก
- หลาย
- พื้นเมือง
- นำทาง
- จำเป็นต้อง
- จำเป็น
- ความต้องการ
- ใหม่
- ถัดไป
- ตอนนี้
- of
- เก่า
- on
- ครั้งเดียว
- ONE
- เพียง
- มีความเห็น
- ประสาน
- อื่นๆ
- ของเรา
- ออก
- แพ็คเกจ
- แพคเกจ
- กระดาษ
- ส่วนหนึ่ง
- สถานที่
- แผนการ
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- เล่น
- ปลั๊ก
- Plug and Play
- บวก
- เป็นไปได้
- โพสต์
- สวย
- โครงการ
- โครงการ
- พิสูจน์
- พิสูจน์แนวคิด
- ให้
- ใส่
- อย่างรวดเร็ว
- เกิดปฏิกิริยา
- ตอบโต้เจ้าของภาษา
- การอ่าน
- แนะนำ
- กรุ
- ในกรณี
- เข้มงวด
- ดูเหมือน
- ชุด
- การติดตั้ง
- หลาย
- ความรุนแรง
- ส่องแสง
- ตั้งแต่
- So
- ทางออก
- โซลูชัน
- บาง
- พิเศษ
- ความเร็ว
- เริ่มต้น
- ข้อความที่เริ่ม
- ยังคง
- จัดเก็บ
- เรื่องราว
- ภายหลัง
- อย่างเช่น
- สนับสนุน
- ที่สนับสนุน
- ระบบ
- เอา
- คุย
- ทีม
- เทคโนโลยี
- บอก
- กว่า
- ที่
- พื้นที่
- บล็อก
- ของพวกเขา
- แล้วก็
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- สิ่ง
- เหล่านั้น
- แต่?
- เวลา
- ไปยัง
- เกินไป
- เครื่องมือ
- เครื่องมือ
- ด้านบน
- ต้นไม้
- สอง
- ในที่สุด
- us
- มือสอง
- ใช้
- v1
- รุ่น
- มาก
- ทำงานได้
- เสมือน
- อยาก
- คือ
- วิธี
- we
- ดี
- คือ
- เมื่อ
- ที่
- จะ
- WISE
- กับ
- การทำงาน
- จะ
- ยัง
- เธอ
- ของคุณ
- ลมทะเล