الإدخال الثاني لسلسلة منشورات المدونة "مشروع Ledger Live Monorepo Project"، حيث يخبرنا أحد مطوري Ledger قصة الهجرة الضخمة لقاعدة بيانات Ledger Live إلى مستودع أحادي. إذا فاتتك الجزء الأول، شاهده هنا:
بعد التأكد من أن بنية monorepo كانت حلاً قابلاً للتطبيق، بدأنا بعد ذلك في النظر في الأدوات المتاحة لوضع خطتنا موضع التنفيذ.
التعامل مع مشاريع متعددة
في فريق Ledger Live، نتنقل في نظام JavaScript البيئي، ولحسن الحظ بالنسبة لنا، عرفنا بالفعل عدة طرق للتعامل مع مشاريع متعددة باستخدام مدير الحزم لدينا. بعض هذه الحلول الممكنة تشمل:
- الآلية الوقائية الوطنية (يحتوي على دعم لمساحات العمل ولكن بدائل أفضل)،
- 1 غزل (أصبحت بدائل قديمة جدًا وأفضل وأكثر كفاءة)،
- الغزل ≥ 2 (فكرة مثيرة للاهتمام، ولكن التوصيل والتشغيل غير مدعوم بشكل جيد في كل مكان، خاصة مع React Native)،
- بنم (ارتباطات رمزية، تم إنشاؤها مع وضع مساحات العمل في الاعتبار، وكفاءة القرص).
بعد النظر في كل هذه الأمور، قررنا الذهاب معها بنم ل:
- كفاءة القرص (يستخدم برنامج Virtual متجر و الروابط الرمزية، بحيث يتم تنزيل الحزم مرة واحدة فقط ثم يتم ربطها بوحدات العقدة الخاصة بك من المتجر الافتراضي).
- السرعة (بما أن الحزم مخزنة مؤقتًا، فإن عمليات التثبيت اللاحقة تكون أسرع بكثير)،
- مدمج لدعم مساحات العمل/هندسة monorepo (الأسماء المستعارة والتنسيق وما إلى ذلك ...).
على ورقة بنم هي جوهرة مطلقة، لكن الارتباطات الرمزية كانت غريبة بعض الشيء لإعدادها بشكل صحيح (مرة أخرى، خاصة مع React Native).
حسنًا، لقد تم اختيارنا، وسنذهب معه بنم.
تنسيق البرنامج النصي
رغم أن بنم يضيف المزيد والمزيد من التنسيق إلى ميزاته، فهو لا يزال لا يغطي كل ما أردنا القيام به، مثل:
- بناء متسلسل,
- التخزين المؤقت.
بالنسبة لهؤلاء، وجدنا اثنين من المتنافسين المثيرين للاهتمام وكان علينا إلقاء نظرة عليهما:
- NX (من قبل الفريق الزاوي)،
- توربوريبو (الذي أعلن للتو عن الإصدار 1.0.0 عندما بدأنا العمل عليه، ويعمل الآن مع فريق Vercel).
لقد قمنا بإثبات المفهوم على حد سواء.
NX كان يحتوي على المزيد من الميزات، والمولدات، والأتمتة، والرسوم البيانية التبعية الرائعة وما إلى ذلك... ولكنه أضاف الكثير من النفقات العامة، وبما أنه متشدد إلى حد ما، فسيتعين علينا اتباع اتفاقياتهم.
توربوريبو من ناحية أخرى، هي ميزة أساسية جدًا. ومع ذلك، فهو حل مناسب للتوصيل والتشغيل ويمكننا تغييره بسرعة كبيرة إذا دعت الحاجة إليه.
رغم أن توربوريبو كان لديه ميزات أقل من NXلقد فعل الشيئين اللذين كنا نبحث عنهما:
- تنسيق البنيات مع احترام شجرة التبعية (والبنيات المتزامنة)،
- التخزين المؤقت (يتم تخزين الإصدارات مؤقتًا و"إعادة تشغيلها" إذا لم يتغير الكود الخاص بها).
هذا، بالإضافة إلى سهولة الدخول والخروج، جعلنا نختار الطفل الجديد في المبنى، توربو ريبو.
الإصدارات
لقد بحثنا أيضًا في العديد من الحلول، ولكننا قررنا استخدامها في النهاية https://github.com/changesets/changesets نظرًا لأنها كانت إحدى الأدوات التي أوصى بها TurboRepo، وبعد قليل من قراءة الوثائق، بدا أنها تتوافق مع احتياجاتنا.
سيحتاج المطورون إلى أن يكونوا أكثر صرامة في تدفق التطوير الخاص بهم وتقديمه changesets
(ملف يصف المكتبة التي يتغير رمزها، وخطورة ما يلي سمفر الاتفاقية ووصف التغيير). هؤلاء changesets
يتم استخدامها بعد ذلك لتحديث إصدار الحزم تلقائيًا مع احترام درجات الخطورة المحددة، بالإضافة إلى أتمتة إنشاء سجل التغييرات. علاوة على ذلك، تسمح الأدوات بذلك pre release
الوضع 🍒 على 🍰.
ماذا بعد ؟
بعد اتخاذ قرار بشأن الأدوات، حان الوقت لبدء العمل. في مقال المدونة التالي، سنتحدث عن نظام البناء وجميع عمليات التطوير/الأتمتة/التكامل المستمر في سياق مستودع أحادي.
فالنتين دي ألميدا
تجربة المطور والتقنية الأساسية – Ledger Live
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://www.ledger.com/blog/ledger-live-monorepo-project-part-2-the-tools-make-it-shine
- :لديها
- :يكون
- :ليس
- :أين
- 1
- a
- من نحن
- مطلق
- وأضاف
- يضيف
- بعد
- مرة أخرى
- الكل
- يسمح
- سابقا
- بالبدائل
- an
- و
- زاوي
- أعلن
- هندسة معمارية
- هي
- البند
- AS
- At
- أتمتة
- تلقائيا
- أتمتة
- متاح
- الأساسية
- BE
- أن تصبح
- أفضل
- قطعة
- حظر
- المدونة
- المقالات والأخبار
- على حد سواء
- نساعدك في بناء
- يبني
- بنيت
- لكن
- by
- تغيير
- غير
- التغييرات
- التحقق
- خيار
- اختار
- الكود
- مصدر برنامج
- يأتي
- الامتثال
- مفهوم
- منافس
- سياق الكلام
- متواصل
- مناسب
- اتفاقية
- الاتفاقيات
- جوهر
- بشكل صحيح
- استطاع
- بهيكل
- قررت
- اتخاذ القرار
- التبعية
- تصف
- وصف
- ديف
- المطور
- فعل
- do
- توثيق
- لا
- قطرة
- سهل
- النظام الإيكولوجي
- كفاءة
- فعال
- دخول
- خاصة
- تأسيس
- الأثير (ETH)
- EVER
- كل شىء
- نتواجد في كل مكان
- الخبره في مجال الغطس
- أسرع
- الميزات
- المميزات
- قم بتقديم
- تدفق
- اتباع
- متابعيك
- في حالة
- لحسن الحظ
- وجدت
- تبدأ من
- جوهرة
- جيل
- مولدات
- معطى
- Go
- الرسوم البيانية
- عظيم
- كان
- يد
- مقبض
- يملك
- هنا
- HTTPS
- ضخم
- فكرة
- if
- in
- تتضمن
- التكامل
- وكتابة مواضيع مثيرة للاهتمام
- إلى
- IT
- انها
- جافا سكريبت
- م
- طفل
- دفتر الحسابات
- ليدجر لايف
- أقل
- المكتبة
- حي
- بحث
- بدا
- أبحث
- الكثير
- صنع
- جعل
- مدير
- ماكس العرض
- هجرة
- مانع
- افتقد
- موضة
- الأكثر من ذلك
- أكثر فعالية
- كثيرا
- متعدد
- محلي
- التنقل
- حاجة
- بحاجة
- إحتياجات
- جديد
- التالي
- الآن
- of
- قديم
- on
- مرة
- ONE
- فقط
- متعنت
- تزامن
- أخرى
- لنا
- خارج
- صفقة
- حزم
- ورق
- جزء
- المكان
- خطة
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- بلايستشن
- قابس
- التوصيل والتشغيل
- المزيد
- ممكن
- المنشورات
- جميل
- تنفيذ المشاريع
- مشروع ناجح
- دليل
- دليل على المفهوم
- تزود
- وضع
- بسرعة
- رد فعل
- رد فعل أصلي
- نادي القراءة
- موصى به
- مستودع
- فيما يتعلق
- صارم
- بدت
- مسلسلات
- الإعداد
- عدة
- خطورة
- تألق الشعر
- منذ
- So
- حل
- الحلول
- بعض
- خصيصا
- سرعة
- بداية
- بدأت
- لا يزال
- متجر
- قصتنا
- لاحق
- هذه
- الدعم
- مدعومة
- نظام
- أخذ
- حديث
- فريق
- التكنولوجيا
- يروي
- من
- أن
- •
- كتلة
- من مشاركة
- then
- تشبه
- الأشياء
- هؤلاء
- على الرغم من؟
- الوقت
- إلى
- جدا
- أداة
- أدوات
- تيشرت
- شجرة
- اثنان
- في النهاية
- us
- مستعمل
- يستخدم
- v1
- الإصدار
- جدا
- قابل للحياة
- افتراضي
- مطلوب
- وكان
- طرق
- we
- حسن
- كان
- متى
- التي
- سوف
- WISE
- مع
- عامل
- سوف
- حتى الآن
- لصحتك!
- حل متجر العقارات الشامل الخاص بك في جورجيا
- زفيرنت