کدهالیک | codehalic
ثبتنام «دورهٔ مهندسی بکاند با NestJS» شروع شد. اول از همه، از ۶۸ نفری که پیشثبتنام کردن ممنونیم. شما وقتی هنوز هیچ قسمتی از دوره منتشر نشده بود به ما اعتماد کردین، و این برامون خیلی ارزشمنده. به همین خاطر، دوره برای پیشثبتنامیها ۲۰ درصد تخفیف بیشتر…
امروز سرور کدهالیک یه مدت از دسترس خارج شد. بعد از پیگیری معلوم شد هیتسینک سرور مشکل داشته و همین باعث شده یکی از هاردها از کار بیفته، اونم هاردی که RAID نداشت.
خوشبختانه از بکآپ تونستیم همهچیز رو برگردونیم. چند ساعت آخرِ تراکنشها و لایسنسها توی بکآپ نبود، ولی همهشون رو دستی برگردوندیم و الان همه کسایی که دوره رو خریده بودن به دوره دسترسی دارن. اگه خرید کردی و هنوز دسترسی نداری، همینجا بهم پیام بده تا سریع درستش کنم.
درس بزرگی هم برام بود: فاصله بکآپها باید خیلی کوتاهتر از چیزی باشه که فکر میکردم، و همین الان دارم درستش میکنم.
از صبح خیلیهاتون پیام دادین و پیگیر ثبتنام بودین، ممنونم ازتون ❤️
بوتکمپ مهندسی بکاند دوباره برای ثبتنام بازه:
✅ قیمت با تخفیف، همچنان برای همه باز گذاشته شده
✅ پرداخت ۴ قسطی با اسنپپی از همین الان فعاله
✅ هر هفته جمعه فصلهای جدید اضافه میشن؛ این هفته رو زودتر از جمعه آپدیت میکنیم تا شروعمون عقب نیفته
👇 ثبتنام:
https://codehalic.ir/courses/backend-engineering-bootcamp
@codehalics | کدهالیک
خوشبختانه از بکآپ تونستیم همهچیز رو برگردونیم. چند ساعت آخرِ تراکنشها و لایسنسها توی بکآپ نبود، ولی همهشون رو دستی برگردوندیم و الان همه کسایی که دوره رو خریده بودن به دوره دسترسی دارن. اگه خرید کردی و هنوز دسترسی نداری، همینجا بهم پیام بده تا سریع درستش کنم.
درس بزرگی هم برام بود: فاصله بکآپها باید خیلی کوتاهتر از چیزی باشه که فکر میکردم، و همین الان دارم درستش میکنم.
از صبح خیلیهاتون پیام دادین و پیگیر ثبتنام بودین، ممنونم ازتون ❤️
بوتکمپ مهندسی بکاند دوباره برای ثبتنام بازه:
✅ قیمت با تخفیف، همچنان برای همه باز گذاشته شده
✅ پرداخت ۴ قسطی با اسنپپی از همین الان فعاله
✅ هر هفته جمعه فصلهای جدید اضافه میشن؛ این هفته رو زودتر از جمعه آپدیت میکنیم تا شروعمون عقب نیفته
👇 ثبتنام:
https://codehalic.ir/courses/backend-engineering-bootcamp
@codehalics | کدهالیک
❤12🔥2
Forwarded from کار باشه !
سلام دوستان
موسسه فرا رو آماده استخدام یک نیروی کارآموز حضوری در تهران برای پوزیشن فرانت اند دولوپره
اگر با فریم ورک های
React/Next JS
کار کردید
رزومه هاتون رو برای این ایمیل بفرستید
mail@fararo.org
#frontend
➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
موسسه فرا رو آماده استخدام یک نیروی کارآموز حضوری در تهران برای پوزیشن فرانت اند دولوپره
اگر با فریم ورک های
React/Next JS
کار کردید
رزومه هاتون رو برای این ایمیل بفرستید
mail@fararo.org
#frontend
➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
❤6
Media is too big
VIEW IN TELEGRAM
این پروژه خیلی جالب بود یه نفر نرم افزار مدیریت انبار رو از یه کار خشک و تکراری به یه بازی استراتژیک و جذاب تبدیل کرده که با Opus 5.5 ساخته شده.
@codehalics | کدهالیک
@codehalics | کدهالیک
❤13🔥5👍1
دوره جامع معماری نرمافزار منتشر شد.
در این آموزش ۴ ساعته و فشرده، مباحث Clean Architecture، DDD، میکروسرویس و Event-Driven با پیادهسازی تمامی مثالها روی NestJS تدریس شده است.
جلسه دموی پروژه نیز به دوره اضافه شده و امکان ثبتنام با ۵۰٪ تخفیف فعال است.
https://codehalic.ir/courses/software-architecture-course
@codehalics | کدهالیک
در این آموزش ۴ ساعته و فشرده، مباحث Clean Architecture، DDD، میکروسرویس و Event-Driven با پیادهسازی تمامی مثالها روی NestJS تدریس شده است.
جلسه دموی پروژه نیز به دوره اضافه شده و امکان ثبتنام با ۵۰٪ تخفیف فعال است.
https://codehalic.ir/courses/software-architecture-course
@codehalics | کدهالیک
🔥14❤3🤯3
یه اتفاق جالب افتاده: یه برنامهنویس موقع ساخت پروژه داتنت با Claude متوجه شده هوش مصنوعی خیلی شیک یه پکیج ناامن با آسیبپذیری جالبتوجه وارد پروژهش کرده! ماجرا اینه که AI بهجای سرچ آنلاین به دادههای قدیمی خودش اعتماد میکنه و حتی جدیدترین مدلها هم خودکار این مشکل رو حل نمیکنن؛ مگر اینکه توی پرامپت رسماً مجبورشون کنین برن توی سایت nuget.org و آخرین نسخه پایدار رو چک کنن.
https://www.roundthecode.com/dotnet-blog/ai-added-vulnerable-nuget-package-to-dotnet-app?via=dailydev
پ.ن : همیشه باید نظارت کنین روی چیزی که ai براتون داره جنریت میکنه !
@codehalics | کدهالیک
https://www.roundthecode.com/dotnet-blog/ai-added-vulnerable-nuget-package-to-dotnet-app?via=dailydev
پ.ن : همیشه باید نظارت کنین روی چیزی که ai براتون داره جنریت میکنه !
@codehalics | کدهالیک
Round The Code
AI added a vulnerable NuGet package to our .NET app
Find out why Claude added a NuGet package with a known vulnerability to a .NET app, why it happens, and how better prompting fixes it.
🔥11🤯4❤1👍1
توی نسخه جدید 16.4 نکسجیاس، مهمترین خبر اینه که مدل جدید Cache Components بالاخره کامل آماده شده و توی پروژههای جدید به صورت پیشفرض فعاله؛ یعنی با دایرکتیو
https://nextjs.org/blog/next-16-4
@codehalics | کدهالیک
'use cache' میتونی خیلی راحت و دقیق تعیین کنی کدوم کامپوننت کش بشه تا سرعت لود صفحات فوقالعاده بره بالا و بخشهای استاتیک و دینامیک بدون دردسر کنار هم قرار بگیرن. علاوه بر ابزارهای کنترلی جدید مثل ensureStatic (برای جلوگیری از اجرا شدن کدهای دینامیک توی صفحات استاتیک) و مدیریت دقیقتر Prefetch، قابلیتهای خفنی هم برای ایجنتهای هوش مصنوعی اضافه شده مثلاً دستور next upgrade --agent که آپگرید پروژه رو به ایجنتها میسپاره. در نهایت هم کلی بهینهسازی سرعت و حافظه داشتیم؛ از کاهش ۲۰ تا ۲۵ درصدی مصرف دیسک توی Turbopack و سبکتر شدن باندل پروداکشن گرفته تا پشتیبانی از ریاکت ۱۹.۳.https://nextjs.org/blog/next-16-4
@codehalics | کدهالیک
❤12👍5🔥3👏1
توی NestJS اینکه چند تا پوشه مثل
اینطوری بخش سفارشات کاری نداره پرداخت چطوری تو دیتابیس ذخیره میشه یا چه ایمیلی میفرسته، ماژولها کاملاً مستقل میمونن و دیگه لازم نیست چرخههای وابستگی رو با
https://javascript.plainenglish.io/nestjs-module-boundaries-that-survive-growth-3c6781b2baf1
@codehalics | کدهالیک
Orders و Payments بسازی معنیش کد ماژولار نیست. وقتی همه چی رو میریزی تو SharedModule و همهجا ایمپورتش میکنی، کدهات شدیداً بهم گره میخورن و موقع تست گرفتن از Orders مجبور میشی کل دیتابیس و سرویس ایمیل رو هم بالا بیاری. راه درست اینه که به جای اکسپورت مستقیم ریپازیتوریها، بین بخشها یه قرارداد (Interface + Symbol) بذاری؛ یعنی مثلاً تو Orders فقط بگی:
// OrdersService.ts
constructor(
@Inject('PAYMENTS_PORT') private payments: PaymentsPort
) {}
اینطوری بخش سفارشات کاری نداره پرداخت چطوری تو دیتابیس ذخیره میشه یا چه ایمیلی میفرسته، ماژولها کاملاً مستقل میمونن و دیگه لازم نیست چرخههای وابستگی رو با
forwardRef از بین ببری.https://javascript.plainenglish.io/nestjs-module-boundaries-that-survive-growth-3c6781b2baf1
@codehalics | کدهالیک
👍3❤1
کدهالیک | codehalic
توی NestJS اینکه چند تا پوشه مثل Orders و Payments بسازی معنیش کد ماژولار نیست. وقتی همه چی رو میریزی تو SharedModule و همهجا ایمپورتش میکنی، کدهات شدیداً بهم گره میخورن و موقع تست گرفتن از Orders مجبور میشی کل دیتابیس و سرویس ایمیل رو هم بالا بیاری.…
این نکته رو هم اضافه کنم که این مورد داره ۲ اصل از اصول SOLID رو رعایت میکنه !
اول DIP (معکوسسازی وابستگی) چون بخش سفارشات بهجای دیتابیسِ پرداخت به یه انتزاع وصل میشه، و دوم SRP (تکمسئولیتی) چون ماژول فقط حواسش به وظیفهٔ خودشه و تنها یک دلیل برای تغییر داره، نه اینکه بارِ زیرساخت بقیه رو هم دوش بکشه. اینطوری ماژولها کاملاً مستقل میمونن و دیگه نیازی به ماستمالی چرخههای وابستگی با forwardRef نداری.
@codehalics | کدهالیک
اول DIP (معکوسسازی وابستگی) چون بخش سفارشات بهجای دیتابیسِ پرداخت به یه انتزاع وصل میشه، و دوم SRP (تکمسئولیتی) چون ماژول فقط حواسش به وظیفهٔ خودشه و تنها یک دلیل برای تغییر داره، نه اینکه بارِ زیرساخت بقیه رو هم دوش بکشه. اینطوری ماژولها کاملاً مستقل میمونن و دیگه نیازی به ماستمالی چرخههای وابستگی با forwardRef نداری.
@codehalics | کدهالیک
❤5👏1
کتابخونه Replicant یه ابزار کاربردی تو داتنته که با اضافه کردن یه لایه کش رو دیسک برای HttpClient، سرعت درخواستهای تکراری شبکه رو بهشدت بالا میبره. این ابزار به جای ذخیره دادهها تو حافظه رم، اونا رو روی دیسک مینویسه تا حتی اگه برنامه ریستارت شد دادهها باقی بمونن و از هدرهای استاندارد کش مثل Cache-Control و ETag هم کاملا پشتیبانی میکنه. شما میتونید ازش هم به صورت کلاس مستقل HttpCache و هم به عنوان یه DelegatingHandler کنار HttpClientFactory استفاده کنید که گزینه خیلی خوبی برای کم کردن بار شبکه و بالا بردن بازدهی برنامهست.
https://www.nikolatech.net/blogs/replicant-http-client-caching-dotnet
@codehalics | کدهالیک
https://www.nikolatech.net/blogs/replicant-http-client-caching-dotnet
@codehalics | کدهالیک
❤2
Getbootstrap
Install Bootstrap
Add Bootstrap to your project with CDN, package manager, or source files.
بوتاسترپ ۶ نسخه آلفا ۱ منتشر شد و جالبترین تغییرش اینه که رسماً داره میره سمت سبک تیلویند.
مثلاً ساختار کلاسهای ریسپانسیوش تغییر کرده و دقیقاً شبیه تیلویند شده؛ یعنی به جای d-md-none الان باید بنویسید md:d-none.
پشتیبانی از مرورگرهای قدیمی رو هم کلا کنار گذاشتن و حداقل مرورگر مورد نیاز شده کروم ۱۳۰، فایرفاکس ۱۳۲ و سافاری ۱۸. با این کار کلاً پالیفیلها حذف شدن و مستقیم رفتن سراغ قابلیتهای جدید مرورگر مثل کانتینر کوئریها، انتخابگر :has، سیستم رنگی oklch و تگ <dialog>.
از نظر فنی هم متغیرهای Sass جاشون رو دادن به CSS Token Mapها، سورسکد با تایپاسکریپت بازنویسی شده و ابزارهایی مثل Rolldown و Vitest اومدن جای Rollup و Karma. ضمناً فایلهای llms.txt و Agent Skills رو هم اضافه کردن تا کار با دستیارهای هوش مصنوعی موقع کدنویسی راحتتر بشه.
https://getbootstrap.com/docs/6.0/getting-started/install/
@codehalics | کدهالیک
مثلاً ساختار کلاسهای ریسپانسیوش تغییر کرده و دقیقاً شبیه تیلویند شده؛ یعنی به جای d-md-none الان باید بنویسید md:d-none.
پشتیبانی از مرورگرهای قدیمی رو هم کلا کنار گذاشتن و حداقل مرورگر مورد نیاز شده کروم ۱۳۰، فایرفاکس ۱۳۲ و سافاری ۱۸. با این کار کلاً پالیفیلها حذف شدن و مستقیم رفتن سراغ قابلیتهای جدید مرورگر مثل کانتینر کوئریها، انتخابگر :has، سیستم رنگی oklch و تگ <dialog>.
از نظر فنی هم متغیرهای Sass جاشون رو دادن به CSS Token Mapها، سورسکد با تایپاسکریپت بازنویسی شده و ابزارهایی مثل Rolldown و Vitest اومدن جای Rollup و Karma. ضمناً فایلهای llms.txt و Agent Skills رو هم اضافه کردن تا کار با دستیارهای هوش مصنوعی موقع کدنویسی راحتتر بشه.
https://getbootstrap.com/docs/6.0/getting-started/install/
@codehalics | کدهالیک
👍4❤1🔥1
ابزار REA یا همون Reverse Engineer Anything یه ابزار CLI و مبتنی بر پروتکل MCPئه که به ایجنت هوش مصنوعیت وصل میشه تا بتونه هر نرمافزاری رو کالبدشکافی و مهندسی معکوس کنه؛ از تحلیل دقیق فایلهای باینری و توابع گرفته تا کالبدشکافی برنامههای الکترون و جاوااسکریپت و حتی ردگیری رفتار برنامه موقع اجرا و توی مرورگر، همهرو انجام میده تا دستیار هوشمندت دقیقاً بفهمه پشت صحنهی برنامههای کامپایلشده چی میگذره و منطق درونیشون چطوری کار میکنه.
https://rea.tools/
@codehalics | کدهالیک
https://rea.tools/
@codehalics | کدهالیک
🔥4
دیتابیسها چطور هم سرعت بالایی دارن و هم با کرش کردن سیستم، دیتا رو از دست نمیدن؟ کلید ماجرا WAL یا Write-Ahead Logging هست.
دیتابیس به جای اینکه هر تغییر رو همون لحظه توی فایلهای سنگین اصلی ذخیره کنه (که کُند و پرریسکه)، اول تغییرات رو خیلی سریع و پشتسرهم توی یه فایل لاگ (WAL) مینویسه. همین که تو لاگ نوشته شد، به ما میگه کار با موفقیت انجام شد! بعداً سر فرصت تو پسزمینه، این لاگها رو روی فایلهای اصلی دیتا اعمال میکنه.
این کار دو تا مزیت طلایی داره:
۱. سرعت بالا: نوشتن ترتیبی (Sequential I/O) تو فایل لاگ خیلی سریعتر از گشتن و نوشتن تو فایلهای مختلفه.
۲. تضمین بقای دادهها (Durability): اگه یهو سرور خاموش بشه، دیتابیس موقع بالا اومدن دوباره این فایل WAL رو میخونه و تمام دیتایی که رو فایل اصلی نرفته بود رو بازسازی میکنه.
https://www.postgresql.org/docs/current/wal-intro.html
@codehalics | کدهالیک
دیتابیس به جای اینکه هر تغییر رو همون لحظه توی فایلهای سنگین اصلی ذخیره کنه (که کُند و پرریسکه)، اول تغییرات رو خیلی سریع و پشتسرهم توی یه فایل لاگ (WAL) مینویسه. همین که تو لاگ نوشته شد، به ما میگه کار با موفقیت انجام شد! بعداً سر فرصت تو پسزمینه، این لاگها رو روی فایلهای اصلی دیتا اعمال میکنه.
این کار دو تا مزیت طلایی داره:
۱. سرعت بالا: نوشتن ترتیبی (Sequential I/O) تو فایل لاگ خیلی سریعتر از گشتن و نوشتن تو فایلهای مختلفه.
۲. تضمین بقای دادهها (Durability): اگه یهو سرور خاموش بشه، دیتابیس موقع بالا اومدن دوباره این فایل WAL رو میخونه و تمام دیتایی که رو فایل اصلی نرفته بود رو بازسازی میکنه.
https://www.postgresql.org/docs/current/wal-intro.html
@codehalics | کدهالیک
❤4👍1
کدهالیک | codehalic
دیتابیسها چطور هم سرعت بالایی دارن و هم با کرش کردن سیستم، دیتا رو از دست نمیدن؟ کلید ماجرا WAL یا Write-Ahead Logging هست. دیتابیس به جای اینکه هر تغییر رو همون لحظه توی فایلهای سنگین اصلی ذخیره کنه (که کُند و پرریسکه)، اول تغییرات رو خیلی سریع و پشتسرهم…
حالا که فهمیدیم WAL چیه، بیاید ببینیم پس بکآپ (Backup) این وسط چکاره است؟
فرض کنید WAL همون دفترچه یادداشت روی میز شماست که نمیذاره قطعی موقت برق کارتون رو خراب کنه؛ اما اگه یه روز کلاً دفتر کارتون آتیش بگیره، هارد سرور بسوزه یا یه نفر اشتباهی کل دادهها رو پاک کنه چی؟ اینجاست که بکآپ به دادتون میرسه! بکآپ یعنی یه کپی کامل و امن از کل دیتابیس بگیریم و تو یه جای کاملاً مجزا (مثل یه سرور دیگه یا فضای ابری) ذخیرهاش کنیم. جادوی دیتابیسهای مدرن اینه که میان یه بکآپ پایهای میگیرن و بعد اون رو با همون فایلهای WAL ترکیب میکنن؛ با این تکنیک خفن، شما میتونید دیتابیس رو دقیقاً به هر ثانیه یا لحظهای در گذشته که دلتون میخواد برگردونید (به این کار میگن Point-in-Time Recovery یا PITR).
https://www.postgresql.org/docs/current/continuous-archiving.html
@codehalics | کدهالیک
فرض کنید WAL همون دفترچه یادداشت روی میز شماست که نمیذاره قطعی موقت برق کارتون رو خراب کنه؛ اما اگه یه روز کلاً دفتر کارتون آتیش بگیره، هارد سرور بسوزه یا یه نفر اشتباهی کل دادهها رو پاک کنه چی؟ اینجاست که بکآپ به دادتون میرسه! بکآپ یعنی یه کپی کامل و امن از کل دیتابیس بگیریم و تو یه جای کاملاً مجزا (مثل یه سرور دیگه یا فضای ابری) ذخیرهاش کنیم. جادوی دیتابیسهای مدرن اینه که میان یه بکآپ پایهای میگیرن و بعد اون رو با همون فایلهای WAL ترکیب میکنن؛ با این تکنیک خفن، شما میتونید دیتابیس رو دقیقاً به هر ثانیه یا لحظهای در گذشته که دلتون میخواد برگردونید (به این کار میگن Point-in-Time Recovery یا PITR).
https://www.postgresql.org/docs/current/continuous-archiving.html
@codehalics | کدهالیک
❤2👍2