مشکل کد مشترک – انجمن DEV

آیا درک خوبی از کد اشتراکی دارید؟
آیا محصول شما یک عملکرد مشترک را به خوبی تقسیم می کند؟
هنگامی که چیزی به اشتراک گذاشته می شود و زمانی که هنوز باید یک کد فقط دامنه باشد، گیج نمی شوید.
من آن سوالات را در مورد من دشوار یافتم. ما متوجه شده ایم که تمایل به استفاده داریم shared
اگر در بیش از یک صفحه/ویژگی استفاده شده باشد، فضا به عنوان یک مکان قابل استفاده است.
به مرور زمان به مشکل نفخ تبدیل می شود. در حال حاضر، توقف بدون تغییرات جدی در ساختار مخزن کار دشواری است.
آیا ما ایده ای داریم که چگونه از این وضعیت بهبود پیدا کنیم؟
در حال حاضر، ما فقط یک سند اولیه ایجاد کرده ایم. ما می خواهیم قبل از ایجاد هر گونه تغییر جدی، تمام نیازها و نیازها را از همه تیم ها جمع آوری کنیم. مهم است که تغییر را از دیدگاه تیم های دیگر در نظر بگیریم!
من در مورد این مشکل با یکی از همکارانم صحبت کردم. یکی از نتیجهگیریها، پیام احمقانهای درباره استخدام فردی توسط فانگ بود: ببینید چگونه این کار را انجام میدهند، یاد میگیرند و برای انجام تغییر بازمیگردند.
خوب، این یک فشار بزرگ برای حل یک مشکل خواهد بود. ما هنوز می توانیم کاری انجام دهیم!
کتابخانه های دیگر چگونه کدهای مشترک را مدیریت می کنند؟ به عنوان مثال Vercel repo. ما می توانیم پروژه های منبع باز و نحوه حل این مشکل را بررسی کنیم.
سلب مسئولیت: البته، ممکن است کسی بگوید که نگهداری کتابخانهها با یک محصول متفاوت است. این درست است. ما هنوز باید برای ایجاد دیدگاه و ایده گرفتن به چیزی نگاه کنیم. بر این اساس شاید بتوانیم جلو برویم.
Next.js
ابتدا به کد مشترک مخزن next.js نگاه کنید:
https://github.com/vercel/next.js/tree/canary/packages/next/src/shared/lib
پس از نگاهی گذرا به اطراف، به نظر میرسد که تیم vercel میخواهد فقط یک چیز بسیار جهانی یا لیبهای خارجی را در آنجا نگه دارد. لزوماً در بسیاری از مکان ها استفاده نمی شود.
برای درک بهتر این ساختار، باید کدهای مربوط به ویژگی ها و نحوه تقسیم آن را نیز مرور کنیم.
همه
واکنش نشان دهید
https://github.com/facebook/react/tree/main/packages/shared