برنامه نویسی

اولین شیرجه عمیق من در ایجاد پروژه های منبع باز

آیا تا به حال این احساس ساخت چیزی را از ابتدا داشته اید؟ وسوسه این که خود را اثبات کنید که شما یک توسعه دهنده نرم افزار هستید و باید به جای تکیه بر آثار دیگران ، از بسته های خود استفاده کنید؟

خوب یک هفته پیش من این احساس را داشتم ، CSS! درست کردن یک دسته از سبک ها برای عناصر مشترک چقدر سخت است؟

بنابراین من از این پروژه عالی به نام Skeleton ، یک سیستم طراحی تطبیقی ​​که توسط Tailwind ساخته شده بود ، استفاده می کردم و بنیادی را که به من داد ، خیلی دوست داشتم اما واقعاً از بیشتر اجزای ارائه شده آنها استفاده نکردم. و به همین دلیل و همچنین اصرار به ساختن ابزار خودم ، تصمیم گرفتم که قشر درست کنم!

این به هر معنی برای تبلیغ بسته من است ، من به شما اطمینان می دهم که بعد از این تجربه نمی خواهم آن را در خارج از مسائل خودم و درخواست های ویژگی حفظ کنم.


قسمت سرگرم کننده

در اصل ، ایده این بود که چیزهایی را که دوست داشتم از بین ببرد skeleton و سبک های خودم را اضافه کنید ، حتی ممکن است اجزای svelte خودم را بسازم ، من یک دسته از چیزها را یاد می گیرم ، و شاید حتی یک جامعه کوچک نیز در حال پیشروی باشد.

آه ، من چقدر ساده لوح بودم ، ایده های تصور و طوفان مغزی و در واقع اجرای ایده های گفته شده چیزهای بسیار متفاوتی هستند ، این پروژه باعث شد اکنون از این موضوع آگاه تر باشم.

یاد بگیرید ، یاد بگیرید ، یاد بگیرید

من گفتم که اگر می خواهم این کار را انجام دهم ، می خواهم این کار را به درستی انجام دهم ، گویی این بسته رسمی است و در واقع توسط مردم استفاده می شود. از این رو اولین چیزی که من مجبور شدم یاد بگیرم: monorepos ، تنظیم آنها ، با نگاهی به چگونگی ارتباط پروژه ها با سایر پروژه ها ، نگه داشتن نسخه های وابستگی در سراسر آنها.

به طور همزمان مجبور شدم یک شیرجه عمیق تر را به سمت پیچ و تاب بسازم ، تا ابزارهای سفارشی را ایجاد کنم ، عمیق تر به CSS شوم ، به دنبال قوام مرورگر متقاطع بخصوص برای عناصر بومی و در عین حال کاوش در کارهای داخلی در skeleton پروژه به طوری که من یک راهنما دارم.

در آخر ، من مجبور شدم A11y را جستجو کنم ، چگونه می توان مؤلفه های Svelte با کیفیت را ساخت و به طور کلی چگونه می توانم بسازم stratum منحصر به فرد تر ، از آنجا که من می خواستم فقط کپی چسباند skeletonبشر

این هنوز سرگرم کننده بود بدون شک! چالش یادگیری ، پاداش تغییر شکل مفاهیم و چیزهای پیشرفته ، هنوز هم یک تجربه مثبت بود ، اما این جایی است که من شروع به احساس غرق شدن کردم.

کوچکتر ، کوچکتر ، کوچکتر

چندی پس از ایجاد اولین پیش نویس های core بسته ، فهمیدم که باید واقع بینانه باشم. من نمی توانم این کار را در مدت زمان مناسب انجام دهم و فقط یک توسعه دهنده داشتم که روی این کار (من) کار می کرد.

در طی این کار ، من مسائل زیادی را برای ردیابی آنچه لازم است انجام شود و هر گونه اشکالی که پیدا کردم ، انجام داده ام ، بیشتر مسائل بیشتر را حل کردم/طوفان مغزی کردم و مسائل بیشتری را ایجاد کردم.

اگر من می دیدم که این پروژه در واقع خط پایان را در حال ساختن بسیاری از ویژگی هایی که برنامه ریزی کرده ام از بین ببرد ، از ایده ساخت اجزای خودم منصرف شدم ، من از ویژگی ها/پروژه های قبلاً ایجاد شده ام و بعد از همه این کار را با یک کار مناسب باقی مانده است ، هرچند که آنقدر چشمگیر نیست.

کاری که به آن فکر نکردم

خوب پس از مدتی بزرگ ، من کار را انجام داده ام ، من آماده انتشار v0.1.0 از پروژه هستم ، من آماده هستم که در کنار انتشار ، میزبان سایت های ایجاد شده باشم. و در کل من از آنچه درست کردم خوشحال شدم.

اما این فقط کدی نیست که شما باید تهیه کنید: چگونه می توان نسخه های تبلیغاتی و changelogs نسخه را خودکار کرد؟ اگر این امر به یک جامعه فعال تبدیل شود ، چگونه می توانند کمک کنند؟ آیا من حتی می خواهم خواندن روابط عمومی یا حل مسائل را انجام دهم؟ آیا حتی می خواهم از ابتدا جامعه ای بسازم؟ Discord ، YouTube ، تبلیغ پروژه و غیره ، در مورد به روزرسانی های پروژه چیست؟ آیا واقعاً می خواهم راهنماهای مهاجرت و مستندات را تهیه کنم؟

پاسخ بیشتر سؤالات فوق بسیار مهم است که از شما متشکرم. (اولین سوال با تغییرات حل شد ، بروید آن را بسیار جذاب است!)

برای من مشخص بود که من بیش از آنچه که می توانم جویده ام گاز گرفته ام ، حتی این را باور نمی کنم stratum ارزش سرمایه گذاری در آن زمان و تلاش زیادی را دارد. بنابراین من آن را ترک کردم ، این پروژه اکنون فقط چارچوب CSS شخصی من است ، من با وجود عدم دستیابی به ستاره هایی که خیال کردم به آن رسیده ام ، هنوز از آن بسیار خوشحال هستم.

دفعه بعد

علیرغم اینکه نمی خواهم یک پروژه منبع باز را نویسنده کنم ، اگر بخواهم یک پروژه منبع باز با اندازه مشابه بسازم ، در اینجا کاری است که من متفاوت انجام می دهم:

  • برخی از شیاطین دیگر را به پروژه وارد کنید: همانطور که می گویند با هم قوی است. حتی حداقل یک توسعه دهنده دیگر می تواند تفاوت بزرگی ایجاد کند ، شما قبل از حتی ساختن آن ، بازخورد خود را دریافت می کنید ، و حجم کار از نظر تئوری نصف می شود یا به طور قابل توجهی کاهش می یابد.

  • خواب مناسب: پروژه من در ابتدا دامنه ای داشت که می گفت دو یا سه توسعه دهنده با هم کار می کنند ، چند ماه ، و همچنین فراموش نمی کنند که واقعاً پروژه را در آنجا قرار دهیم. قبل از شروع حتی ، نگاه کنید که چقدر زمان و تلاش می توانید به این پروژه اختصاص دهید.


من اکنون احترام بیشتری نسبت به نگهدارنده های منبع باز دارم ، مطمئناً می توانید این استدلال را مطرح کنید که برخی از آنها تأمین می شوند یا با انجام این کار شهرت کسب می کنند ، اما این کار را آسان تر نمی کند ، کار هنوز هم کار می کند و صادقانه می توانند از صرفاً وقت خود را صرف وقت خود کنند. بنابراین از هر نگهدارنده ای که این مطلب را می خواند متشکرم ، من قول می دهم که هر از گاهی به پروژه هایی که از آنها استفاده می کنم اهدا کنم (نه اکنون که من شکسته ام).

حتی با پیش رفتن پروژه ، من هنوز هم از این چالش چیزهای زیادی آموختم ، من هنوز هم می خواهم از آن استفاده کنم stratum برای پروژه های شخصی من و برای تکمیل آن بسیار موفق هستم (به سختی! این چیز حتی مستندات مناسبی ندارد!)

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا