کدهالیک | codehalic
4.15K subscribers
529 photos
51 videos
67 files
600 links
دوره های آموزشیمون رو از داخل سایت ببینید

https://codehalic.ir
Download Telegram
با این ابزار می‌تونید گردینت‌های فوق‌العاده‌ زیبا با ترکیب‌ رنگی‌های کاملاً هارمونیک بسازید. اگه در حال طراحی لندینگ پیج هستید، استفاده ازش شدیداً پیشنهاد میشه!

https://feralui.dev/gradients

@codehalics | کدهالیک
👍6🔥1
تو دنیای معماری نرم‌افزار یه توهم عجیب جا افتاده که فکر می‌کنیم هرچی دیاگرام سیستم شلوغ‌تر باشه و از ابزارهای توزیع‌شده و صف‌های پیام‌رسان بیشتری استفاده کنیم، یعنی معمار خفن‌تری هستیم! خیلیا به جای پیدا کردن مرزهای واقعی دامین، سریع سیستم رو به ده‌ها میکروسرویس خرد می‌کنن فقط برای اینکه بگن ما هم داریم تو اسکیل بالا کار می‌کنیم. اما واقعیت اینه که عیار یه مهندس سنیور به اضافه کردن زیرساخت‌های دهن‌پرکن نیست؛ بلکه دقیقاً اونجایی مشخص میشه که باید پیش‌بینی کنه وقتی سیستم زیر بار تراکنش‌های سنگینه، اگه یه سرویس تایم‌اوت داد، ایونتی دو بار ارسال شد یا دیتابیس تو خطاهای همزمانی گیر کرد، چطوری باید سیستم رو ریکاوری کرد. در نهایت، هنر معماری به خلق پیچیدگی‌های بی‌دلیل نیست، بلکه به طراحی ساده‌ترین و تمیزترین ساختاریه که بشه ساعت ۳ صبح روزِ بحران به راحتی دیباگش کرد.

رفرنستون میدم به اصل KISS که قبل تر راجبش صحبت کردیم !

https://blog.devgenius.io/microservices-are-not-a-sign-youre-a-senior-engineer-bd79bef44b20

@codehalics | کدهالیک
❤4🔥4
اگه تو زیرساختتون از Keycloak برای احراز هویت استفاده می‌کنید سریع‌تر دست‌به‌کار بشید چون یه آسیب‌پذیری خیلی بحرانی با نمره ۹.۱ کشف شده که تو این باگ، هکر بدون نیاز به هیچ دسترسی یا تایید ایمیل و فقط با دونستن یوزرنیم یا ایمیل ادمین، می‌تونه لاگین بازیابی رمز عبور رو دور بزنه و مستقیم پسوورد اکانت رو عوض کنه تا به تمام سیستم‌های پشت Keycloak دسترسی پیدا کنه. تمام نسخه‌های زیر ۲۶.۷.۲ آسیب‌پذیرن و اگه الان شرایط ارتقا به نسخه ۲۶.۷.۲ رو ندارید، حتماً همین امروز قابلیت Forgot password رو از تنظیمات Realm به صورت موقت خاموش کنید.

https://fireup.pro/news/keycloak-cve-2026-18963-critical-password-reset-flaw?via=dailydev

@codehalic | کدهالیک
تو نسخه ۱۹ پُستگرِس بالاخره یه قابلیت جدید و نجات‌بخش به اسم WAIT FOR اضافه شد که مشکل قدیمی و رو اعصاب تاخیر رپلیکیشن (Replica Lag) رو کلاً حل می‌کنه.

تا پیش از این وقتی دیتا رو روی پرایمری می‌نوشتی و بلافاصله از رپلیکا می‌خوندی، به خاطر تاخیر همگام‌سازی، دیتای قدیمی می‌گرفتی و راه‌کارهایی مثل Sleep زدن یا روت کردن دوباره کوئری به پرایمری هم واقعاً افتضاح بودن. حالا با این دستور، Session متصل به رپلیکا رو بلاک می‌کنی تا زمانی که پروسه Replay شدن WAL به یه LSN مشخص برسه و دیتا کاملاً آپدیت و قابل خوندن بشه؛ این کار کلاً ۱ تا ۲ میلی‌ثانیه اوورهِد داره.

البته چند تا نکته فنی هم داره؛ مثلاً چون این دستور نباید اسنپ‌شات نگه داره (تا جلوی آپدیت شدن WAL گرفته نشه)، تو سطح ایزولیشن بالاتر از READ COMMITTED یا داخل فانکشن‌ها اجرا نمیشه و پولرهایی مثل PgBouncer تو حالت Transaction Mode ممکنه سشن و کوئری رو بندازن رو کانکشن‌های مختلف و کار رو خراب کنن.

جالب‌تر اینکه پیشنهاد این قابلیت از سال ۲۰۱۶ مطرح بوده و ۳ بار ریورت شده تا بالاخره تو پستگرس ۱۹ به ثبات رسیده.

@codehalics | کدهالیک
❤2
اسنپ‌پی روی کدهالیک فعال شد! از این به بعد می‌تونید هزینه‌ها رو ۴ قسطه یا آخر ماه تسویه کنید.

به همین مناسبت، ظرفیت محدود ماک اینترویو و بررسی رزومه رو برای همین آخر هفته با ۵۰٪ تخفیف باز کردم.

اگر دارین برای مصاحبه فنی آماده میشین یا توی مسیر شغلی و معماری پروژه‌هاتون به یک فیدبک واقعی نیاز دارین، این فرصت رو از دست ندین:

🔹 ماک اینترویو فنی:
https://codehalic.ir/mentorship/book/mock-interview

🔹 بررسی رزومه و منتورینگ:
https://codehalic.ir/mentorship/book/resume-review

ظرفیت زمان‌های این آخر هفته محدوده.

@codehalics | کدهالیک
😁6👍4❤2🔥2🥰1
وقتی بک‌اند پروژه C# باشه و فرانت‌اند TypeScript، بزرگ‌ترین دردسر اینه که مجبوری ساختار دیتا (مثل DTOها) رو دو جا تعریف کنی و اگه فیلدی تو بک‌اند عوض بشه، تازه تو Runtime ارورها خودشون رو نشون میدن. اما با معماری Monorepo و ابزار Nx میشه یه Type Safety یکپارچه و فول‌استک ساخت! راه‌حلش اینه که به کمک OpenAPI موقع بیلد شدن پروژه‌ی دات‌نت، کانترکت‌های API به صورت اتوماتیک تولید بشن؛ بعد ابزاری مثل openapi-ts این خروجی رو می‌خونه و تایپ‌های فرانت‌اند رو دقیقاً از روش جنریت می‌کنه. شاهکارِ Nx اینجاست که با سیستم قدرتمند Task Graph خودش، این پروسه رو به هم زنجیر و هوشمندانه کش Cache می‌کنه؛ یعنی به محض اینکه یه پراپرتی رو تو کدهای C# تغییر بدی، Nx خودش جریان رو می‌فهمه، تایپ‌ها رو آپدیت می‌کنه و خطای ناهماهنگی فرانت‌اند رو همون لحظه تو زمان کامپایل نشون میده تا دیگه هیچ‌وقت باگ‌های ناشی از تغییر API به پروداکشن نرسن!

https://nx.dev/blog/dotnet-openapi-type-safety

@codehalics | کدهالیک
❤11👍1🔥1
امروز رفتم الکامپ و تنها واژه‌ای که حق مطلب رو ادا می‌کنه یک کلمه‌ست: فاجعه!

بی‌خیال گلایه‌های تکراری درباره اختلالات چندماهه اینترنت؛ حرف سر فلسفه وجودیِ یک نمایشگاه فناوریه. شعار و تعریف رسمی الکامپ چیه؟ «بستری برای معرفی آخرین دستاوردها، خدمات و محصولات پیشرو در حوزه فناوری اطلاعات و ارتباطات.»

اما واقعیتِ ویترین امسال چی بود؟

* فروش طلای آب‌شده!
* پکیج‌های «چگونه ریسلر آمازون شویم؟»
* کیبورد گیمینگ با برچسب ایرانی!
* و منت‌گذاشتن سرورهای ابری...

تو عصری که دنیای تکنولوژی با سرعت نور حول OpenAI، Anthropic و مدل‌های پیشرفته هوش مصنوعی می‌چرخه، ما هنوز اصرار داریم نسخه‌های کپی‌پیست، کم‌کیفیت و منقضی‌شده‌ی ۱۰ سال پیش دنیا رو بیاریم، اسمش رو بذاریم «فناوری بومی» و دور هم دست بزنیم.

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

گاهی برگزار نشدن یک رویداد، خیلی محترمانه‌تر از برگزاریشه. واقعاً جلوی غرفه فلان شرکت ابری ( اونم به ظاهر) چه حرفی می‌شه زد؟ بگیم دمتون گرم که قیمت‌ها رو سه برابر کردید و کیفیت رو نصف؟

@codehalics | کدهالیک
1👍33❤4
کدهالیک | codehalic
امروز رفتم الکامپ و تنها واژه‌ای که حق مطلب رو ادا می‌کنه یک کلمه‌ست: فاجعه! بی‌خیال گلایه‌های تکراری درباره اختلالات چندماهه اینترنت؛ حرف سر فلسفه وجودیِ یک نمایشگاه فناوریه. شعار و تعریف رسمی الکامپ چیه؟ «بستری برای معرفی آخرین دستاوردها، خدمات و محصولات…
وقتی می‌گم الکامپ امسال تقلیل فناوری به سیرک بود، دقیقاً از چی حرف می‌زنم؟

از اینکه رسماً پوکه کپسول خریدی، تهش دو گرم طلا ریختی، سرش یه چیپ ۵۰ سنتی NFC چسبوندی و اسمش رو گذاشتی محصول فناورانه بومی!

از هوش مصنوعی پرسیدم کجای دنیا چسبوندن برچسب NFC روی قالب پلاستیک روتکنولوژی حساب می‌کنه؟

پ.ن : هنر میخواد بتونین کله جمنای رو خراب کنین از این وضعیت !

@codehalics | کدهالیک
😁14👍2
تقریباً تو هدر تمام پروژه‌های وب عادت کردیم تکه‌کد
<meta name="viewport" content="width=device-width, initial-scale=1.0">
رو کپی‌پیست کنیم، اما وقتشه که بالاخره initial-scale=1.0 رو بریزیم دور!
این عبارت سال‌ها پیش توسط اپل معرفی شد تا جلوی باگ‌های چرخش صفحه و زوم شدن‌های ناخواسته تو نسخه‌های خیلی قدیمی iOS رو بگیره. اما سال‌هاست که مرورگرهای مدرن اون مشکلات رو کلاً حل کردن و نوشتن <meta name="viewport" content="width=device-width"> به تنهایی برای ریسپانسیو شدن صفحه کفایت می‌کنه.

https://vale.rocks/micros/20260902-1350

@codehalics | گدهالیک
👍5🔥2
اوپن‌ای‌آی از مدل جدید خودش یعنی GPT-6 Astra رونمایی کرد که یه جهش غول‌آسا در هوش، Computer Use و امنیت سایبری به حساب میاد.

این مدل با ثبت رکوردهای فوق‌العاده‌ای مثل ۹۹.۹٪ تو بنچمارک ARC-AGI-3 و ۱۰۰٪ تو ExploitBench، نه‌تنها تو حل مسائل پیچیده ریاضی و کشف آسیب‌پذیری‌های Zero-day بی‌رقیبه، بلکه می‌تونه فرآیندهای واقعی مثل طراحی مدار PCB تو KiCad، ساخت صحنه‌های ۳بعدی تو Blender و Unreal Engine یا تست خودکار وب‌سایت‌ها رو مستقیماً پشت سیستم انجام بده.

برخلاف نسخه‌های قبلی، Astra تا ۶۵٪ توکن خروجی کمتری مصرف می‌کنه، سرعت به‌شدت بالاتری داره و مکانیزم Alignment جدیدش احتمال هالوسینیشن یا دور زدن قوانین دسترسی رو کاملاً صفر کرده

https://openai.com/index/gpt-6-astra/

@codehalics | کدهالیک
👍2❤1🔥1
کدهالیک | codehalic
اوپن‌ای‌آی از مدل جدید خودش یعنی GPT-6 Astra رونمایی کرد که یه جهش غول‌آسا در هوش، Computer Use و امنیت سایبری به حساب میاد. این مدل با ثبت رکوردهای فوق‌العاده‌ای مثل ۹۹.۹٪ تو بنچمارک ARC-AGI-3 و ۱۰۰٪ تو ExploitBench، نه‌تنها تو حل مسائل پیچیده ریاضی و کشف…
This media is not supported in your browser
VIEW IN TELEGRAM
نکته جالب ویدیو رونمایی GPT-6 Astra ادای احترام به یکی از تاریخی‌ترین دموی‌های تاریخ علوم کامپیوتر بود !

کلیپی که اول ویدیو منتشر شد متعلق به پروژه‌ای معروف به نام "Put That There" محصول سال ۱۹۸۰ در آزمایشگاه MIT هستش.

در این دموی سال ۱۹۸۰، محققا برای اولین بار سیستمی رو نشون دادند که هم‌زمان صدای انسان و اشاره یا دستور حرکتی رو می‌فهمید.

کاربر با اشاره به صفحه و گفتن عبارت «یک دایره زرد اونجا بکش» یا «این را بگذار آنجا» با سیستم تعامل می‌کرد.

شرکت OpenAI این کلیپ ۴۶ ساله رو در ابتدای ویدیو قرار داده تا خط سیر تاریخ تعامل انسان و کامپیوتر رو نشان دهد

از روزهایی که کنترل یک دایره ساده با دستور صوتی یک رویای آزمایشگاهی بود، تا امروز که هوش مصنوعی میتونه به عنوان یک اپراتور تمام‌عیار بسیاری از کار هامون رو انجام بده !

#gpt6

@codehalics | کدهالیک
🔥9❤1
اگر در پروژه‌هاتون از ایجنت‌های کدنویسی مثل Cursor، Claude Code یا Codex استفاده می‌کنید و می‌خواهید ظاهری بسیار شیک و متمایز (مخصوصاً برای ابزارهای هوش مصنوعی) بسازید، این سایت فوق‌العاده کاربردیه.

سایت Libraries.dev مجموعه‌ای از افکت‌ها و کامپوننت‌های مدرن UI رو ارائه می‌ده که با ابزارهای AI سازگاری کامل دارن.

https://libraries.dev/

@codehalics | کدهالیک
❤4👍1
میکروتیک یه آسیب‌پذیری جدی تو RouterOS پیدا کرده و پچش رو گذاشته رو همه کانال‌های ۶ و ۷؛ نسخه‌های ۶.۴۹.۲۱، ۷.۲۳.۵، ۷.۲۴.۲ و بالاتر رو بزنید، بعد از آپدیت لاگ و کنسول رو چک کنید که Flagged نخورده باشه و کانفیگ عجیب و غریب (یوزر یا اسکریپت ناشناس) نداشته باشه، خودشون گفتن جزئیات رو فعلاً نمی‌گن تا همه فرصت آپدیت داشته باشن.​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

https://mikrotik.com/supportsec/september-2026-vulnerability/

@codehalics | کدهالیک
یه سایت پیدا کردم که می‌تونید بازی خاطره‌انگیز GTA Vice City رو مستقیم روی مرورگرتون بازی کنید! کیفیتش واقعاً عالیه و اصلاً لگ نداره و خیلی روان اجرا می‌شه. حتماً امتحانش کنید.

https://quenq.com/apps/vice-city-online

@codehalics | کدهالیک
❤15
کتابخانه jQuery بیست‌ساله شد؛ ابزاری که سال ۲۰۰۶ توسط John Resig متولد شد و با اون ساختار ساده‌اش تمام عذاب‌های DOM manipulation، زدن درخواست‌های Ajax و دردسرهای cross-browser تو مرورگرهایی مثل IE6 رو کلاً از بین برد. با اینکه این روزها فریم‌ورک‌های مدرن، تفکر declarative و قابلیت‌های نیتیو مرورگر مثل querySelectorAll و fetch جایگزینش شدن، اما هنوز روی حدود ۶۶ درصد از سایت‌های وب به لطف سیستم‌هایی مثل WordPress داره کار می‌کنه. جی‌کوئری نه‌تنها ورود به برنامه‌نویسی فرانت‌اند رو برای همه راحت‌تر کرد، بلکه جامعه‌ای رو ساخت که پایه‌گذار تمام فریم‌ورک‌ها و ابزارهای مدرن وب امروز شد.

@codehalics | کدهالیک
🔥12❤1👍1
کدهالیک | codehalic
کتابخانه jQuery بیست‌ساله شد؛ ابزاری که سال ۲۰۰۶ توسط John Resig متولد شد و با اون ساختار ساده‌اش تمام عذاب‌های DOM manipulation، زدن درخواست‌های Ajax و دردسرهای cross-browser تو مرورگرهایی مثل IE6 رو کلاً از بین برد. با اینکه این روزها فریم‌ورک‌های مدرن،…
لعنت بهت JQuery تمام تروماهای زندگیم توی برنامه نویسی رو از تو دارم با اون $ مسخره ات !

$(document).ready(function() {
console.log("codehalic");
});
هنوزم سینتکسش میبینم تروماهام زنده میشن!

@codehalics | کدهالیک
👍6😁5🤬2🤔1
کدهالیک | codehalic
کتابخانه jQuery بیست‌ساله شد؛ ابزاری که سال ۲۰۰۶ توسط John Resig متولد شد و با اون ساختار ساده‌اش تمام عذاب‌های DOM manipulation، زدن درخواست‌های Ajax و دردسرهای cross-browser تو مرورگرهایی مثل IE6 رو کلاً از بین برد. با اینکه این روزها فریم‌ورک‌های مدرن،…
حالا بیاید یه ترکیب به‌شدت خفن و کاربردی رو بهتون بگم که خودم این روزا تو پروژه‌ها دارم حسابی ازش جواب می‌گیرم!
ببینید، وقتی داریم با تمپلیت‌انجین‌هایی مثل Razor کار می‌کنیم، آوردن فریم‌ورک‌های سنگینی مثل React وسط کار خیلی منطقی به نظر نمی‌رسه؛ چون عملاً هدفمون اینه که یه پروژه یکپارچه داشته باشیم که هم بک‌اند رو هندل کنه و هم فرانت‌اند رو. اینجاست که به‌جای رفتن سراغ گزینه‌های قدیمی مثل همین jQuery بزرگوار، دست می‌ذاریم روی HTMX که واقعاً کار باهاش لذت‌بخش و جذابه!
ایده پشت HTMX به‌شدت ساده و آشناست؛ دقیقاً همون منطقی رو داره که Tailwind CSS بهمون یاد داد: «همون‌طور که واسه استایل دادن نیازی نیست فایل HTML رو ول کنی و بری سراغ نوشتن فایل‌های CSS مجزا، برای هندل کردن رفتارها و ریکوئست‌ها هم نیازی نیست HTML رو ول کنی و درگیر نوشتن کدهای طولانی جاوااسکریپت بشی!»
به این شکله که مثلاً فقط با اضافه کردن چندتا Attribute ساده به همون تگ HTML، می‌تونی یه ریکوئست بزنی و فقط یه بخش خاص از صفحه رو آپدیت کنی. فرض کنید می‌خوایم با کلیک روی یه دکمه، اطلاعات رو از بک‌اند بگیریم و تو یه div نشون بدیم:
<button hx-get="/users/list" hx-target="#user-list" hx-swap="innerHTML">
لیست کاربرا رو بیار
</button>

<div id="user-list">
<!-- دیتایی که از سمت سرور میاد (مثلا یه پارشیال ویو از Razor) مستقیم میشینه اینجا -->
</div>

فقط با همین Attribute ها خودش ریکوئست GET رو می‌فرسته به روت سرور، جواب رو می‌گیره و بی‌سروصدا (بدون رفرش شدن کل صفحه) جایگزین محتوای اون div می‌کنه. به همین تمیزی! همون حس یکپارچگی بک‌اند رو نگه می‌داری، دردسرهای ستاپ فریم‌ورک‌های جاوااسکریپتی رو نداری و همه‌چیز سریع، سبک و جمع‌وجور پیش میره.

تازه بهت همه قابلیت های SPA رو میده و تو عملا بدون فول رفرش شدن میتونی بخشی از صفحه رو آپدیت کنی روت رو تغییر بدی یا همه چیزایی که React رو داری به خاطرش انتخاب میکنی رو این بزرگوار به تمیزی بسیار زیاد بهت میده !

یه چکش کنین چیز جالب بامزه و بشدت ترندی تو دنیای امروزه !

https://htmx.org/

@codehalics | کدهالیک
❤10👍1
یک پژوهش جدید هشدار داده که گسترش مدل‌های زبانی مثل ChatGPT ممکنه شبیه انتشار یک «ویروس شناختی» در جامعه عمل کنه. پژوهشگران با ساخت یک مدل ریاضی بررسی کردن که چطور استفاده مداوم از هوش مصنوعی می‌تونه از یک نفر به نفر دیگه منتقل بشه و در صورت عبور از یک نقطه بحرانی، خیلی سریع به وابستگی گسترده منجر بشه. از نگاه این پژوهش، نگرانی اصلی خود AI نیست، بلکه حالتیه که استفاده از اون به‌قدری عمیق بشه که افراد به‌تدریج توانایی کار کردن و فکر کردن بدون کمک مدل‌ها رو از دست بدن. نویسندگان پیشنهاد می‌کنن برای جلوگیری از این وضعیت، باید امکان برگشت و حفظ مهارت‌های مستقل از AI همچنان وجود داشته باشه.

https://arxiv.org/abs/2609.03344

@codehalics | کدهالیک
👍1
کدهالیک | codehalic
یک پژوهش جدید هشدار داده که گسترش مدل‌های زبانی مثل ChatGPT ممکنه شبیه انتشار یک «ویروس شناختی» در جامعه عمل کنه. پژوهشگران با ساخت یک مدل ریاضی بررسی کردن که چطور استفاده مداوم از هوش مصنوعی می‌تونه از یک نفر به نفر دیگه منتقل بشه و در صورت عبور از یک نقطه…
حداقل چیزی که من توی اطرافیان خودم می‌بینم، یه نسخه خیلی کوچیک از همین نگرانیه. جایی که تقریبا قوه شناختی همه‌مون داره به مرور از بین میره. دیزاینرا دیگه حوصله ندارن دیزاین بزنن و میده AI انجام بده. پروداکت منیجرا تقریبا تمام پرزنتیشن‌ها و داکیومنت‌هاش رو میدن AI بنویسه. دولوپرها کدشون رو می‌میدن به AI و میگن بزن، هر طور صلاحه.
تهشم واقعا هیشکی خوشحال نیست چون یه روخونی ساده از کاری ک کرده هم انجام نمیده

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


@codehalics | کدهالیک
👍19
تیم Next.js برای مدیریت صف وحشتناک ۳۱۰۰ تایی Issueهای باز گیت‌هابش دست به یه حرکت به‌شدت خفن زده و به‌جای استفاده از بات‌های ساده، یه AI Agent محقق به اسم closability (بر پایه GPT-5.6 Luna) ساخته که یه محیط Sandbox ایزوله برای خودش بالا میاره، کامیت‌ها و PRها رو بررسی میکنه و خودش شخصاً تلاش می‌کنه باگ‌ها رو تست و بازتولید کنه. با این سیستم جذاب تونستن تو کمتر از یک ماه حدود ۱۵۰۰ تا ایشو رو با یه دقت بسیار زیاد ببندن (طوری که از این تعداد فقط ۳ تا ایشو دوباره توسط کاربرا باز شد!) و الان کار رو به جایی رسوندن که برای کیس‌های قطعی، دو تا ایجنت با هم مشورت می‌کنن و اگه هر دو بالای ۸۰ درصد مطمئن بودن، ایشو رو کاملاً خودکار و بدون دخالت انسان می‌بندن؛ یه دستاورد بزرگ که رسماً آینده نگهداری پروژه‌های نرم‌افزاری رو بهمون نشون میده.

https://nextjs.org/blog/how-we-closed-1500-github-issues?via=dailydev

@codehalics | کدهالیک
👍24❤9