یه خبر خوب واسه Javanoscript بلدها:
اگه میخواید واسه خودتون یه وبسایت یا اپ ساده پیاده سازی کنید نیازی به هزینه هاست و سرور ندارید.
کلادفلر بهترین سرویس رو رایگان و بدون تحریم در اختیارتون گذاشته!
اگه درست پیاده سازی کنید سرعتش فوق العاده است
تقریبا از همه کتابخونه های سمت فرانت پشتیبانی میکنه من با Nextjs امتحان کردم عالی بود لینک مستندات رو میذارم تا امتحان کنید. حتما تجربیاتتون رو به اشتراک بذارید:
https://developers.cloudflare.com/pages/framework-guides/
تنها چیزی که لازم دارید یه اکانت کلادفلر و ابزار کامندلاین wrangler هست.
اگه نیاز به بکاند و دیتابیس ساده دارید، میتونید از worker های کلادفلر استفاده کنید.
من برای بکاند خودم یه سرور trpc با دیتابیس D1 (SQLite) پیاده سازی کردم. برای پیاده سازی کارهای ساده خیلی خوبه.
کلی Integrations خوب هم داره که هنوز تست نکردم. ولی میتونید ورکر خودتون رو از طریق زیرساخت کلادفلر به سرویس های لبه مثل:
Neon Database (managed serverless PostgreSQL)
Supabase (open source Firebase alternative)
و کلی ابزار دیگه که همگی پلن های رایگان دارن.
https://developers.cloudflare.com/workers/
مهمتر از همه اینه که استفاده ازش خیلی آسونه، مستندات خیلی ساده و مثال محوره و کلی ابزار دیگه هم در اختیارتون قرار میده.
@DevTwitter | <Ali Ghorbani/>
اگه میخواید واسه خودتون یه وبسایت یا اپ ساده پیاده سازی کنید نیازی به هزینه هاست و سرور ندارید.
کلادفلر بهترین سرویس رو رایگان و بدون تحریم در اختیارتون گذاشته!
اگه درست پیاده سازی کنید سرعتش فوق العاده است
تقریبا از همه کتابخونه های سمت فرانت پشتیبانی میکنه من با Nextjs امتحان کردم عالی بود لینک مستندات رو میذارم تا امتحان کنید. حتما تجربیاتتون رو به اشتراک بذارید:
https://developers.cloudflare.com/pages/framework-guides/
تنها چیزی که لازم دارید یه اکانت کلادفلر و ابزار کامندلاین wrangler هست.
اگه نیاز به بکاند و دیتابیس ساده دارید، میتونید از worker های کلادفلر استفاده کنید.
من برای بکاند خودم یه سرور trpc با دیتابیس D1 (SQLite) پیاده سازی کردم. برای پیاده سازی کارهای ساده خیلی خوبه.
کلی Integrations خوب هم داره که هنوز تست نکردم. ولی میتونید ورکر خودتون رو از طریق زیرساخت کلادفلر به سرویس های لبه مثل:
Neon Database (managed serverless PostgreSQL)
Supabase (open source Firebase alternative)
و کلی ابزار دیگه که همگی پلن های رایگان دارن.
https://developers.cloudflare.com/workers/
مهمتر از همه اینه که استفاده ازش خیلی آسونه، مستندات خیلی ساده و مثال محوره و کلی ابزار دیگه هم در اختیارتون قرار میده.
@DevTwitter | <Ali Ghorbani/>
👍40🔥10👎1
تغییرات جدید دارت 3.7
نسخه Dart 3.7 با ویژگیها و بهبودهای جدیدی معرفی شده که هدف آن ارتقاء تجربه توسعهدهندگان و سازگاری بهتر با استانداردهای وب است. در این نسخه، تمرکز اصلی بر روی بهبود عملکرد، تغییرات در نحوه فرمتدهی کد، و پشتیبانی از WebAssembly است.
https://code-news.com/p/dart-3-7
@DevTwitter | <Code News/>
نسخه Dart 3.7 با ویژگیها و بهبودهای جدیدی معرفی شده که هدف آن ارتقاء تجربه توسعهدهندگان و سازگاری بهتر با استانداردهای وب است. در این نسخه، تمرکز اصلی بر روی بهبود عملکرد، تغییرات در نحوه فرمتدهی کد، و پشتیبانی از WebAssembly است.
https://code-news.com/p/dart-3-7
@DevTwitter | <Code News/>
🔥25❤5👍1👎1
#بدرد
تو این پست میخوام 4 تا کلاینت برای کار کردن با دیتابیس رو معرفی کنم که کار رو واقعا راحت تر میکنن. همه کلاینت ها از هر دو سیستم عامل windows و Linux پشتیبانی میکنن.
1. Antares:
- رابط کاربری مدرن و زیبایی داره
- پشتیبانی از قابلیت Backup/Restore
- پشتیبانی از MySQL, PostgreSQL و Firebird SQL
- پشتیبانی از SSH و اتصال به سرور
لینک ریپازیتوری:
https://github.com/antares-sql/antares
2. DbGate:
- پشتیبانی از 10 دیتابیس مختلف
- قابلیت Export/Import دیتابیس
- قابلیت اتصال به سرور از طریق SSH
- پشتیبانی از Extensionها و Pluginها
- نمایش History از کوئری ها و Tabها
- رابط کاربریش تعریف چندانی نداره
لینک ریپازیتوری:
https://github.com/dbgate/dbgate/
3. Beekeeper
- رابط کاربری عالی
- امکان Save کوئری های خاص
- قابلیت History برای کوئری های اجرا شده
- پشتیبانی از 16 دیتابیس مختلف
- پشتیبانی از SSH برای اتصال به سرور
- قابلیت Backup/Restore و بعضی دیتابیس ها نیازمند لایسنس هستن
لینک ریپازیتوری:
https://github.com/beekeeper-studio/beekeeper-studio/
4. Another Redis Desktop Manager
- رابط کاربری ساده
- پشتیبانی از Redis
- قابلیت Auto Refresh
- قابلیت اتصال به سرور از طریق SSH
- ارائه گزارشات و اطلاعات تخصصی از سرور Redis
لینک ریپازیتوری:
https://github.com/qishibo/AnotherRedisDesktopManager
@DevTwitter | <Mohammad Mortazavi/>
تو این پست میخوام 4 تا کلاینت برای کار کردن با دیتابیس رو معرفی کنم که کار رو واقعا راحت تر میکنن. همه کلاینت ها از هر دو سیستم عامل windows و Linux پشتیبانی میکنن.
1. Antares:
- رابط کاربری مدرن و زیبایی داره
- پشتیبانی از قابلیت Backup/Restore
- پشتیبانی از MySQL, PostgreSQL و Firebird SQL
- پشتیبانی از SSH و اتصال به سرور
لینک ریپازیتوری:
https://github.com/antares-sql/antares
2. DbGate:
- پشتیبانی از 10 دیتابیس مختلف
- قابلیت Export/Import دیتابیس
- قابلیت اتصال به سرور از طریق SSH
- پشتیبانی از Extensionها و Pluginها
- نمایش History از کوئری ها و Tabها
- رابط کاربریش تعریف چندانی نداره
لینک ریپازیتوری:
https://github.com/dbgate/dbgate/
3. Beekeeper
- رابط کاربری عالی
- امکان Save کوئری های خاص
- قابلیت History برای کوئری های اجرا شده
- پشتیبانی از 16 دیتابیس مختلف
- پشتیبانی از SSH برای اتصال به سرور
- قابلیت Backup/Restore و بعضی دیتابیس ها نیازمند لایسنس هستن
لینک ریپازیتوری:
https://github.com/beekeeper-studio/beekeeper-studio/
4. Another Redis Desktop Manager
- رابط کاربری ساده
- پشتیبانی از Redis
- قابلیت Auto Refresh
- قابلیت اتصال به سرور از طریق SSH
- ارائه گزارشات و اطلاعات تخصصی از سرور Redis
لینک ریپازیتوری:
https://github.com/qishibo/AnotherRedisDesktopManager
@DevTwitter | <Mohammad Mortazavi/>
👍28❤1👎1
بعد از کلی تجربه و یادگیری، تصمیم گرفتم یه اپلیکیشن پیامرسان شبیه تلگرام توسعه بدم که از چت لحظهای، گروهها و کانالها پشتیبانی کنه. این پروژه رو با استفاده از NextJs، Socketio و MongoDB ساختم.
این پروژه برای من یه چالش جذاب بود که باعث شد مهارتهام رو تقویت کنم و تجربهی بیشتری در کار با WebSockets، بهینهسازی PWA و مدیریت دادهها به دست بیارم.
دموی پروژه رو توی ویدیو ببینید! خوشحال میشم نظرتون رو بدونم و اگر پیشنهادی برای بهبودش دارید، حتماً باهام درمیون بذارید.
repo: https://github.com/Saeed-Abedini/telegram-clone
@DevTwitter | <Saeed Abedini/>
این پروژه برای من یه چالش جذاب بود که باعث شد مهارتهام رو تقویت کنم و تجربهی بیشتری در کار با WebSockets، بهینهسازی PWA و مدیریت دادهها به دست بیارم.
دموی پروژه رو توی ویدیو ببینید! خوشحال میشم نظرتون رو بدونم و اگر پیشنهادی برای بهبودش دارید، حتماً باهام درمیون بذارید.
repo: https://github.com/Saeed-Abedini/telegram-clone
@DevTwitter | <Saeed Abedini/>
👍83👎7🔥5
اولین تلاشم برای فاین تیون Gemma-3 تموم شد بالاخره (خیلی بد قلق بود)
توی فارسی بهتر شده ولی چون Qlora بود زیاد دقت نداره و جواباشم کوتاهه
بخاطر اینکه به gpu کافی دسترسی نداشتم
اگه اسپانسر gpu پیدا بشه ورژن بعدی صددرصد چیز خوبی میشه
https://huggingface.co/mshojaei77/gemma-3-4b-persian-v0
@DevTwitter | <Shojaei/>
توی فارسی بهتر شده ولی چون Qlora بود زیاد دقت نداره و جواباشم کوتاهه
بخاطر اینکه به gpu کافی دسترسی نداشتم
اگه اسپانسر gpu پیدا بشه ورژن بعدی صددرصد چیز خوبی میشه
https://huggingface.co/mshojaei77/gemma-3-4b-persian-v0
@DevTwitter | <Shojaei/>
🔥41👍7
This media is not supported in your browser
VIEW IN TELEGRAM
یک نفر اومده پرامتِ یکسانی رو رویِ ۱۸ مدل تست کرده. اینم نتیجهش. فقط DeepSeek R1 که داره برعکس میچرخه. :))))
@DevTwitter | <Ayub Kokabi/>
@DevTwitter | <Ayub Kokabi/>
❤48👍22
این چیت شیت رو ببینید. واسه تبدیل سریع تعداد درخواستهای ماهانه به درخواست در ثانیه. به درد طراحی سیستم و محاسبه ظرفیت سرور میخوره! مثلاً اگه سرورتون ۱۰ میلیون درخواست ماهانه داره، یعنی داره ۴ تا درخواست در ثانیه رو هندل میکنه. با یه نگاه میتونین لود واقعی سیستم رو بفهمید.
@DevTwitter | <Milad Varvaei/>
@DevTwitter | <Milad Varvaei/>
👍46👎8❤3🔥1
بنا به دلایلی برای ارتباط بین Instanceها از gRPC استفاده نکردم و بخشی از Go-DyFunc رو جدا و اوپن سورس کردم.
با DyFunc میتونید توابع رو از طریق HTTP فراخوانی کنید:
- پشتیبانی از ارسال همزمان چند درخواست
- امکان استفاده از Middleware
- ناهمگام و سبک
- پشتیبانی از Basic Auth
@DevTwitter | <Amin Badin/>
با DyFunc میتونید توابع رو از طریق HTTP فراخوانی کنید:
- پشتیبانی از ارسال همزمان چند درخواست
- امکان استفاده از Middleware
- ناهمگام و سبک
- پشتیبانی از Basic Auth
@DevTwitter | <Amin Badin/>
👎14👍8
https://vivek9patel.github.io
این یارو رسما خله
یه لینوکس آورده بالا با پلیر و همه چی
بعد تماس با ما هم گذاشته رو صفحه
رفتم تو کرومش گوگل کردم
جالب بود واقعا
@DevTwitter | <گوگلکُنِ باحقوق/>
این یارو رسما خله
یه لینوکس آورده بالا با پلیر و همه چی
بعد تماس با ما هم گذاشته رو صفحه
رفتم تو کرومش گوگل کردم
جالب بود واقعا
@DevTwitter | <گوگلکُنِ باحقوق/>
🔥60👍10👎9❤1
هوش مصنوعی Claude.ai یک گزینه گیتهاب هم اضافه کرده که میتونید چندتا فایل رو از ریپازیتوری گیتهاب انتخاب کنید و در مورد اونها چت کنید.
@DevTwitter | <Milad Nouri/>
@DevTwitter | <Milad Nouri/>
🔥57👍8
اگه دنبال یه ابزار جامعه برای جمع اوری اطلاعات میگردید میتونید از god osint استفاده کنید
https://github.com/lda-0day/God_Osint
@DevTwitter | <lda-0day/>
https://github.com/lda-0day/God_Osint
@DevTwitter | <lda-0day/>
👍16👎2
یه وقتایی بخشی از کامنتها برای اینه که IDE بفهمه ما داریم چیکار میکنیم و بهمون چیزایی که میخوایم رو پیشنهاد بده.
مثلا توی لاراول من یک مدل دارم به اسم Attachment که سه مقدار name, type و path داره
همچنین با مدل محصولاتم در ارتباطه
حالا اگر جایی بخوام از این اتریبیوتها استفاده کنم، باید خودم بنویسیمش و IDE بهم پیشنهادشون نمیده، چون نمیدونه که اینها وجود دارن.
راه حل چیه؟
اگر بیایم و اتریبیوتهای اون کلاس رو داخل کامنت با پیشوند
توی تصویر یک مثال ازش گذاشتم.
@DevTwitter | <Milad Niroee/>
مثلا توی لاراول من یک مدل دارم به اسم Attachment که سه مقدار name, type و path داره
همچنین با مدل محصولاتم در ارتباطه
حالا اگر جایی بخوام از این اتریبیوتها استفاده کنم، باید خودم بنویسیمش و IDE بهم پیشنهادشون نمیده، چون نمیدونه که اینها وجود دارن.
راه حل چیه؟
اگر بیایم و اتریبیوتهای اون کلاس رو داخل کامنت با پیشوند
[at]property تعریف کنیم، اینطوری خود IDE میفهمه که این کلاس، این اتریبیوتها رو داره.توی تصویر یک مثال ازش گذاشتم.
@DevTwitter | <Milad Niroee/>
👍43👎3❤1
با وجود رشد هوش مصنوعی، هنوز هیچ پلتفرمی بهاندازهی وردپرس برای راهاندازی سریع وبلاگ بهینه، با سئوی عالی و ابزارهای قدرتمند وجود نداره. یک راهنمای کامل نوشتم که کمکتون میکنه در کمترین زمان ممکن یه وبلاگ وردپرسی بهینه (100% core web vital) بسازید:
https://wp-optimize.github.io/
@DevTwitter | <Masih Jahangirl/>
https://wp-optimize.github.io/
@DevTwitter | <Masih Jahangirl/>
👎72👍38❤5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
در سیستم های RAG یا سوال-جواب chunking (تکه تکه کردن متن) یکی از حیاتی ترین مراحل هست. و نقش مهمی در دقت بازیابی اطلاعات داره. تعداد زیادی روش برای چانک کردن وجود داره و اینکه چه روشی را انتخاب کنیم سخته . یکی باز بهترین مقاله ها که روشهای مختلف chanking را مقایسه و ارزیابی کرده اینجا معرفی میکنم و کدش هم کامل گذاشتن.
Link: https://research.trychroma.com/evaluating-chunking
Github: https://github.com/brandonstarxel/chunking_evaluation
@DevTwitter | <Mehdi Allahyari/>
Link: https://research.trychroma.com/evaluating-chunking
Github: https://github.com/brandonstarxel/chunking_evaluation
@DevTwitter | <Mehdi Allahyari/>
👍18❤1🔥1
یه مدته دارم در مورد MCP و اینا میخونم... مخصوصا فلسفهای که با خودش میاره.
این مقاله جالبی بود که با تاریخچه REST مقایسه کرده و دید جالبی داره.
https://twitchard.github.io/posts/2025-03-09-mcp-hypermedia-reborn.html
به نظرم برای کسایی که روی مدلهای معماری AI دارن کار میکنن خوندن این مقاله ارزشش رو داره.
@DevTwitter | <Mehran/>
این مقاله جالبی بود که با تاریخچه REST مقایسه کرده و دید جالبی داره.
https://twitchard.github.io/posts/2025-03-09-mcp-hypermedia-reborn.html
به نظرم برای کسایی که روی مدلهای معماری AI دارن کار میکنن خوندن این مقاله ارزشش رو داره.
@DevTwitter | <Mehran/>
👍14
This media is not supported in your browser
VIEW IN TELEGRAM
یک مدل جدید multimodal اومده به اسم SmolDocling که خیلی عالیه! خیلی کوچکه (ultra-compact vision-language model) و فقط با ۲۵۶ میلیون پارامتر دقتش در تبدیل داکیومنت به متن و استخراج اطلاعات واقعا بالاست. از OCR تا تشخیص کد و فرمولها و ... به کار میاد. راحت روی کامپیوتر نصب میشه و سرعتش هم خیلی بالاست. برای انواع کارها از جمله در workflow های agentic خیلی به درد میخوره.
HF: https://huggingface.co/ds4sd/SmolDocling-256M-preview
Paper: https://arxiv.org/pdf/2503.11576
@DevTwitter | <Mehdi Allahyari/>
HF: https://huggingface.co/ds4sd/SmolDocling-256M-preview
Paper: https://arxiv.org/pdf/2503.11576
@DevTwitter | <Mehdi Allahyari/>
🔥21👍5
امروز یه سولوشن خیلی تر تمیز واسه icon پیدا کردم که حیفم اومد به اشتراک نذارم.
اگه سمت فرانت کار میکنید حتما با چالش مدیریت آیکن مواجه شدید و احتمالا با icomoon اشنا هستید.
هرچند که icomoon مساله رو تا حدودی حل کرده ولی استفاده ازش چالش های خاص خودشو داره مخصوصا توی پروژهای که تایپاسکریپت باشه.
راه کاری که میخوام معرفی کنم noscriptps هست. میتونید از توی لیستش آیکناتونو انتخاب کنید. اسمهاش رو تغییر بدید و پکیج خودتون رو دانلود کنید.
در نهایت یه فایل selection.json و یه فایل icon.d.ts خروجی بگیرید و توی پروژتون ذخیره کنید. واسه استفاده کردن هم کافیه وکیج مناسب پروژتون رو نصب و کانفیگ کنید.
لینک سایت: https://noscriptps.app/
لینک ریپو: https://github.com/aykutkardas/noscriptps.app
@DevTwitter | <Ali Ghorbani/>
اگه سمت فرانت کار میکنید حتما با چالش مدیریت آیکن مواجه شدید و احتمالا با icomoon اشنا هستید.
هرچند که icomoon مساله رو تا حدودی حل کرده ولی استفاده ازش چالش های خاص خودشو داره مخصوصا توی پروژهای که تایپاسکریپت باشه.
راه کاری که میخوام معرفی کنم noscriptps هست. میتونید از توی لیستش آیکناتونو انتخاب کنید. اسمهاش رو تغییر بدید و پکیج خودتون رو دانلود کنید.
در نهایت یه فایل selection.json و یه فایل icon.d.ts خروجی بگیرید و توی پروژتون ذخیره کنید. واسه استفاده کردن هم کافیه وکیج مناسب پروژتون رو نصب و کانفیگ کنید.
لینک سایت: https://noscriptps.app/
لینک ریپو: https://github.com/aykutkardas/noscriptps.app
@DevTwitter | <Ali Ghorbani/>
👍35🔥2
ساخت یک پکیج Core برای میکرو فرانت اند
چند وقته که دارم روی یک پکیج Shared Core کار میکنم تا مشکل اشتراکگذاری کامپوننتها، هوکها، آیکونها و ابزارهای مشترک بین پروژههای میکرو فرانتاندی که داخل ریپو های مختلف هستن رو حل کنم. بعد از بررسی گزینههای مختلف، بهترین راهکار رو استفاده از GitHub Packages دیدم که باعث سریعتر شدن فرآیند توسعه و مدیریت سادهتر وابستگیها میشه(البته استفاده از monorepo هم گزینه خوبیه ولی برای پروژه هایی که داخل یک ریپو قرار دارند البته مشکلات زیادی توی deployment براتون پیش میاد).
ویژگیهای این پکیج:
* Rollup برای باندلینگ و بهینهسازی
* Storybook برای مستندسازی و تست کامپوننتها
* SVGR برای مدیریت و استفاده از آیکونهای SVG
* CI/CD خودکار با GitHub Actions
* قابلیت multi language support با استفاده از i18n , i18n-next
* انتشار روی GitHub Packages برای استفاده راحت در پروژههای مختلف
هر تغییری که با master مرج بشه عملیات ci/cd شروع میشه و مراحل build و release پروژه رو انجام میده به وسیله ی Github Actions
چرا به جای مونو ریپو از GitHub Packages استفاده کردم؟
* استقلال کامل پروژهها: هر پروژه نسخه مخصوص خودش رو داره و به تغییرات سایر پروژهها وابسته نیست.
* فرآیند توسعه سریعتر: نیازی به هماهنگسازی کل مونو ریپو نیست، فقط پکیج آپدیت میشه.
* پیچیدگی کمتر در CI/CD: فقط پکیج تغییر کرده منتشر میشه، نه کل ریپو.
استفاده راحت در پروژههای مختلف: بهسادگی از GitHub Packages نصب میشه، بدون تنظیمات اضافه.
برای استفاده از این ریپو میتونید مراحل زیر رو انجام بدین
1- تنظیم env متغیرها در GitHub: داخل فایل publish.yml یکسری متغییر داریم که برای استفاده از github action ضروری هستن و برای ست کردنشون کافیه که متغییری به اسم GT_TOKEN (میتونید داخل فایل publish.yml تغییرش بدید) رو داخل github secrets تعریف کنید
میتونید از این لینک کمک بگیرید:
https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions
2- کامپوننت ها، ایکون ها، helpers ها و هر انچه ماژول shared دارین رو انتقال بدید به core
3- کافیه تغییراتتون رو push کنید تا عملیات ci/cd استارت بشه و عملیات build و release انجام بشه (گیت هاب اکشن زمانی فعالیت رو اغاز میکنه که تغییراتی رو برنچ master اعمال بشه، میتونید داخل فایل publish.yml تغییرش بدین)
4- تنظیم npmrc برای نصب پکیج: برای نصب پکیج توی پروژههای دیگر، باید یک فایل npmrc. در ریشه پروژه قرار بدین. این فایل باید شامل توکن GitHub برای دسترسی به GitHub Packages باشه (میتونید از این لینک کمک بگیرید: https://stackoverflow.com/questions/72412063/personal-access-tokens-for-install-github-npm-packages)
اینو مد نظر داشته باید که پکیج شما همواره به این صورت خواهد بود
مثلا برای این ریپو به این صورت هستش
و در اخر کافیه پکیج رو نصب کنید
با این روش، پکیجهای shared core به راحتی بین پروژهها به اشتراک گذاشته میشن و فرایندهای CI/CD بهصورت خودکار و بدون نیاز به دخالت دستی انجام میشه.
https://github.com/sadegh1379/es-core
@DevTwitter | <Sadegh Akbari/>
https://github.com/sadegh1379/es-core
چند وقته که دارم روی یک پکیج Shared Core کار میکنم تا مشکل اشتراکگذاری کامپوننتها، هوکها، آیکونها و ابزارهای مشترک بین پروژههای میکرو فرانتاندی که داخل ریپو های مختلف هستن رو حل کنم. بعد از بررسی گزینههای مختلف، بهترین راهکار رو استفاده از GitHub Packages دیدم که باعث سریعتر شدن فرآیند توسعه و مدیریت سادهتر وابستگیها میشه(البته استفاده از monorepo هم گزینه خوبیه ولی برای پروژه هایی که داخل یک ریپو قرار دارند البته مشکلات زیادی توی deployment براتون پیش میاد).
ویژگیهای این پکیج:
* Rollup برای باندلینگ و بهینهسازی
* Storybook برای مستندسازی و تست کامپوننتها
* SVGR برای مدیریت و استفاده از آیکونهای SVG
* CI/CD خودکار با GitHub Actions
* قابلیت multi language support با استفاده از i18n , i18n-next
* انتشار روی GitHub Packages برای استفاده راحت در پروژههای مختلف
هر تغییری که با master مرج بشه عملیات ci/cd شروع میشه و مراحل build و release پروژه رو انجام میده به وسیله ی Github Actions
چرا به جای مونو ریپو از GitHub Packages استفاده کردم؟
* استقلال کامل پروژهها: هر پروژه نسخه مخصوص خودش رو داره و به تغییرات سایر پروژهها وابسته نیست.
* فرآیند توسعه سریعتر: نیازی به هماهنگسازی کل مونو ریپو نیست، فقط پکیج آپدیت میشه.
* پیچیدگی کمتر در CI/CD: فقط پکیج تغییر کرده منتشر میشه، نه کل ریپو.
استفاده راحت در پروژههای مختلف: بهسادگی از GitHub Packages نصب میشه، بدون تنظیمات اضافه.
برای استفاده از این ریپو میتونید مراحل زیر رو انجام بدین
1- تنظیم env متغیرها در GitHub: داخل فایل publish.yml یکسری متغییر داریم که برای استفاده از github action ضروری هستن و برای ست کردنشون کافیه که متغییری به اسم GT_TOKEN (میتونید داخل فایل publish.yml تغییرش بدید) رو داخل github secrets تعریف کنید
میتونید از این لینک کمک بگیرید:
https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions
2- کامپوننت ها، ایکون ها، helpers ها و هر انچه ماژول shared دارین رو انتقال بدید به core
3- کافیه تغییراتتون رو push کنید تا عملیات ci/cd استارت بشه و عملیات build و release انجام بشه (گیت هاب اکشن زمانی فعالیت رو اغاز میکنه که تغییراتی رو برنچ master اعمال بشه، میتونید داخل فایل publish.yml تغییرش بدین)
4- تنظیم npmrc برای نصب پکیج: برای نصب پکیج توی پروژههای دیگر، باید یک فایل npmrc. در ریشه پروژه قرار بدین. این فایل باید شامل توکن GitHub برای دسترسی به GitHub Packages باشه (میتونید از این لینک کمک بگیرید: https://stackoverflow.com/questions/72412063/personal-access-tokens-for-install-github-npm-packages)
اینو مد نظر داشته باید که پکیج شما همواره به این صورت خواهد بود
@PACKAGE_NAME/{GITHUB_USERNAME}مثلا برای این ریپو به این صورت هستش
sadegh1379/es-core@و در اخر کافیه پکیج رو نصب کنید
npm install @sadegh1379/es-coreبا این روش، پکیجهای shared core به راحتی بین پروژهها به اشتراک گذاشته میشن و فرایندهای CI/CD بهصورت خودکار و بدون نیاز به دخالت دستی انجام میشه.
https://github.com/sadegh1379/es-core
@DevTwitter | <Sadegh Akbari/>
https://github.com/sadegh1379/es-core
👍29🔥3
این نوروز باستانی، تحول سال و نو شدن روزگار رو به شما قشنگا تبریک میگیم.
امیدوارم این سال جدید براتون پر از موفقیت، حال خوب و البته پول زیاد باشه.
@DevTwitter
امیدوارم این سال جدید براتون پر از موفقیت، حال خوب و البته پول زیاد باشه.
@DevTwitter
❤166🔥10👍8👎1