کدهالیک | codehalic
4.14K subscribers
547 photos
55 videos
67 files
623 links
دوره های آموزشیمون رو از داخل سایت ببینید

https://codehalic.ir
Download Telegram
قوانین مهندسی نرم افزار رو خیلی وقته دیگ بررسی نکردیم امروز میخوام راجب یکی از اصل های اساسی و بنیادینی که 90% مهندسای نرم افزار بهش بی اهمیتن رو براتون بازگو کنم !
قانون YAGNI (You Aren't Gonna Need It)(فعلاً بهش نیاز نداری!) می‌گه هیچ‌وقت به امید اینکه «شاید بعداً فلان قابلیت به کارمون بیاد»، برای سیستم کد اضافه ننویس. کدهایی که برای نیازهای فرضی آینده پیش‌بینی می‌کنی، در ۹۰ درصد مواقع یا هیچ‌وقت استفاده نمیشن یا وقتِ اجرا آن‌قدر همه چیز تغییر کرده که مجبور میشی همه‌شون رو بریزی دور! مثلاً وقتی داری یک بخش ورود ساده می‌سازی، نیازی نیست از همین اول سیستم ورود با گوگل، اثر انگشت و ارسال پیامک رو هم پیاده کنی تا پروژه اوور-انجینیر بشه؛ همون ورود ساده رو تمیز تحویل بده و هروقت کاربران واقعاً به قابلیت جدیدی نیاز داشتند، کدت رو رفکتور کن و توسعه‌اش بده.

#lawsofsoftwareengineering

@codehalics | کدهالیک
❤6🔥3👍1
کدهالیک | codehalic
قوانین مهندسی نرم افزار رو خیلی وقته دیگ بررسی نکردیم امروز میخوام راجب یکی از اصل های اساسی و بنیادینی که 90% مهندسای نرم افزار بهش بی اهمیتن رو براتون بازگو کنم ! قانون YAGNI (You Aren't Gonna Need It)(فعلاً بهش نیاز نداری!) می‌گه هیچ‌وقت به امید اینکه «شاید…
اصل YAGNI اتفاقاً تو عصر هوش مصنوعی صد برابر مهم‌تر شده! الان که AI با یک دستور ساده برامون فیچر می‌زنه، بزرگ‌ترین تله اینه که وسوسه بشیم بگیم «خب اینم اضافه کن، کاری نداره که!» ولی نتیجه‌اش میشه کدی پیچیده، دست‌پاشکسته و پر از دردسر.
مثلاً سر سناریوی تست یک شرکت، قرار بود یک ویدیوپلیر ساده با پشتیبانی از HLS و زیرنویس بزنم. با خودم گفتم «بذار AI برام فیچر شخصی‌سازی زیرنویس (تغییر رنگ و فونت) رو هم بزنه که خفن‌تر بشه!»؛ دقیقاً همین‌جا YAGNI رو گذاشتم زیر پام. نتیجه؟ فیچری که نه کارفرما خواسته بود و نه حتی یک کاربر بهش نیاز داشت، بازخوردها و اصلاحیه‌های بی‌‌پایانی آورد که کلی از وقت و انرژیم رو گرفت. هوش مصنوعی کد زدن رو بی‌نهایت ساده کرده، اما استراتژیِ کد ننوشتن هنوز با ماست! ازش درست استفاده کنین خودتون رو نندازین گوشه رینگ ! اندازه چیزی که ازتون خواسته شده خروجی بدین وگرنه بعدا بابت چیز هایی که قرار نیست خروجی بدین بازخواست خواهین شد ! یا کدتون باگ میخوره و ادب میشین یا فیچره اورانجیر میشه و عذابتون میده ! از من به شما نصیحت ...

#lawsofsoftwareengineering
@codehalics | کدهالیک
🔥6👍2❤1
کدهالیک | codehalic
اصل YAGNI اتفاقاً تو عصر هوش مصنوعی صد برابر مهم‌تر شده! الان که AI با یک دستور ساده برامون فیچر می‌زنه، بزرگ‌ترین تله اینه که وسوسه بشیم بگیم «خب اینم اضافه کن، کاری نداره که!» ولی نتیجه‌اش میشه کدی پیچیده، دست‌پاشکسته و پر از دردسر. مثلاً سر سناریوی تست…
یک روز مدیرم حرفی بهم زد که تا مدت‌ها داشتم بهش فکر می‌کردم. برگشت بهم گفت: «پوریا، چرا نمی‌شه برای یک پروژه‌ی ۲۰ میلیونی، ۱۰۰ میلیون کد زد؟!»
خیلی از ما برنامه‌نویس‌ها فکر می‌کنیم اگه برای یک پروژه‌ی کوچک و کم‌بودجه، بیایم معماریِ سنگین سیستم‌های غول‌پیکر رو پیاده کنیم یا فیچرهای فرضیِ آینده رو همین اول کار کد بزنیم، داریم در حق کارفرما لطف می‌کنیم و کار مهندسی و خفن تحویل می‌دیم! اما حقیقت اینه که این کار دقیقاً زیر پا گذاشتن اصل YAGNI است.
یاد خاطره‌ی یکی از همکارام افتادم که می‌گفت: «اوایل کارم برای یک مشتری که کلاً ۲۰ میلیون بودجه داشت و یک سیستم ساده می‌خواست، رفتم سراغ پیاده‌سازی Microservices و CQRS و Event Sourcing و کشینگ چندلایه‌ای با Redis! با خودم می‌گفتم من یک مهندس نرم‌افزارم و نباید از کیفیت کار بزنم. اما چی شد؟ پروژه‌ای که قرار بود ۲ هفته‌ای جمع بشه، ۳ ماه طول کشید! هزینه‌های سرور مشتری سر به فلک کشید و موقع تغییر یک فیچر ساده، آن‌قدر کدها کلافِ سردرگم شده بود که مشتری کلافه شد و کلاً پروژه شکست خورد.»
کیفیت در مهندسی نرم‌افزار یعنی تحویلِ یک راه‌حل ساده، پایدار و دقیقاً متناسب با نیازِ امروز. اگه برای زیرساخت ۲۰ میلیونی، ۱۰۰ میلیون کد بزنی، کیفیت خلق نکردی؛ بلکه یک «فیل سفید» پرهزینه ساخته‌ای که فردا نه خودت و نه هیچ‌کس دیگه از پس نگهداری و توسعه‌اش برنمی‌آید!

به اندازه کافی نصیحتتون کردم ولی به قول ما لر ها :

گیوه بی‌‌کِش، صلا به پا نکو

گیوه‌ای که اندازه‌ت نیست و کش نمیاد رو به زور پات نکن

#lawsofsoftwareengineering
@codehalics | کدهالیک
❤9🔥3👏3
بزرگ‌ترین تغییری که بعد از AI توی تیم ما افتاد، حذف کامل جیرا، اسپرینت، تسک، استوری‌پوینت، پوکر پلنینگ و دیلی بود!

یه زمانی اگه جیرا آپدیت نبود حکم تیر داشتی، اما الان یادم نیست آخرین بار کی رفتم تسک‌هام رو ببینم. چقدر یه روزی اجایل و اسکرام برامون مقدس بود؛ انگار آیه نازل شده بود، اما الان رسماً برای کسی اهمیتی ندارن.

درباره این ترندهای جدید کار تیمی در عصر AI چیزی شنیدید یا توی تیمتون تجربه‌شون کردید؟

Spec-Driven Development

Continuous Shipping

Async-First Culture

Outcome over Process

PRP

توی کامنت‌ ها بهم بگین این روزا چیکارا میکنین !؟

@codehalics | کدهالیک
👍6❤2
یک مجموعه کامپوننت مدرن و خوش‌ساخت مخصوص Design Engineerها، طراحی‌شده با Tailwind CSS و هماهنگ با Shadcn.

https://www.cult-ui.com/

@codehalics | کدهالیک
❤7
کاش زومیت با بیشتر از ۱۵ سال سابقه و اعتبار، انقدر مستقیم و بدون ویرایش از خروجی هوش مصنوعی استفاده نمیکرد. خوندن متنی که لحن و ساختارش کاملاً داد میزنه توسط AI تولید شده، برای رسانه‌ای با این همه تجربه واقعاً دلسردکننده‌ست...

@codehalics | کدهالیک
👍18
This media is not supported in your browser
VIEW IN TELEGRAM
یه بازی براتون آوردم که میتونین هر سایتی رو با اسلحه های مختلف نابود کنین !
تازه میشه MultiPlayer هم با رفیقاتون بازیش کنین !

لینک بازی: destroy.spritefusion.com

@codehalics | کدهالیک
❤8👏1😁1
Media is too big
VIEW IN TELEGRAM
ثبت‌نام «دورهٔ مهندسی بک‌اند با NestJS» شروع شد.

اول از همه، از ۶۸ نفری که پیش‌ثبت‌نام کردن ممنونیم. شما وقتی هنوز هیچ قسمتی از دوره منتشر نشده بود به ما اعتماد کردین، و این برامون خیلی ارزشمنده. به همین خاطر، دوره برای پیش‌ثبت‌نامی‌ها ۲۰ درصد تخفیف بیشتر داره و فقط کافیه با حسابشون وارد دوره بشن به طور اتوماتیک حساب میشه !

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

قسمت اول از فصل یک هم منتشر شد: دموی کامل پروژه. پیشنهاد می‌کنیم قبل از ثبت‌نام ببینیدش تا دقیقاً بدونید قراره چی بسازیم.

تماشای قسمت اول:
https://codehalic.ir/courses/backend-engineering-bootcamp/videos/introduction

ثبت‌نام در دوره:
https://codehalic.ir/courses/backend-engineering-bootcamp

@codehalics | کدهالیک
🔥12❤6👏1
خبر فوری برای دنیای .NET؛ Polly هم پولی شد!

این ابزار هم رفت سراغ مدل تجاری و بخشی از استفاده ازش قراره با لایسنس پولی ارائه بشه؛ اتفاقی که فقط مربوط به خود Polly نیست و می‌تونه نشونه یه تغییر جدی‌تر توی دنیای Open Source باشه.

واقعیت اینه که نگهداری پروژه‌های بزرگ اوپن‌سورس، مخصوصاً ابزارهایی که کلی تیم و شرکت بهشون وابسته‌ان، هم هزینه داره، هم زمان و نیروی زیادی می‌بره. برای همین مدل «همه‌چی رایگان برای همه» دیگه مثل قبل راحت قابل ادامه نیست.

قبلاً هم نمونه‌هایی مثل AutoMapper، MediatR و MassTransit رو دیدیم که بعد از رفتن به سمت مدل تجاری، با واکنش جدی برنامه‌نویس‌ها روبه‌رو شدن و میزان استفاده و دانلودشون افت کرد.
از یه طرف دولوپرها دوست ندارن برای ابزارهایی که سال‌ها رایگان بودن هزینه بدن، از یه طرف هم نگهداری این پروژه‌ها بدون درآمد پایدار روزبه‌روز سخت‌تر می‌شه.

احتمالاً Polly هم آخرین ابزار بزرگی نیست که وارد این مسیر می‌شه.
پ.ن: Portainer هم قبلاً تقریباً همین مسیر رو رفت و بخشی از مدلش پولی شد.

@codehalics | کدهالیک
👍7😁1
کدهالیک | codehalic
خبر فوری برای دنیای .NET؛ Polly هم پولی شد! این ابزار هم رفت سراغ مدل تجاری و بخشی از استفاده ازش قراره با لایسنس پولی ارائه بشه؛ اتفاقی که فقط مربوط به خود Polly نیست و می‌تونه نشونه یه تغییر جدی‌تر توی دنیای Open Source باشه. واقعیت اینه که نگهداری پروژه‌های…
دقیقاً مشابه این اتفاق چند سال پیش برای Faker.js افتاد؛ نگهدارنده اصلی پروژه بعد از مدت‌ها توسعه رایگان، صراحتاً گفت: «یا هزینه‌اش رو بدید، یا پروژه رو Fork کنید و خودتون ادامه بدید.» ماجرا در نهایت به حذف و رها شدن نسخه اصلی Faker.js رسید و بعدش یه گروه دیگ دولوپش کردن !


@codehalics | کدهالیک
👍4😁3
تو این مقاله‌ای که خوندم نویسنده میگه هنوز برای ساختن یه کسب‌وکار از صفر تو عصر هوش مصنوعی دیر نشده، فقط مدل بازی عوض شده و اقتصاد رفته سمت یه الگوی دمبلی. تو این وضعیت جدید، غول‌های بزرگ فناوری اون بالا و کارآفرین‌های تک‌نفره و چابک این پایین بیشترین سود رو می‌برن، اما شرکت‌های متوسط این وسط دارن لِه میشن. پایین اومدن شدید هزینه‌های ساخت محصول و فاصله‌ای که بین توانایی هوش مصنوعی با سطح استفاده مردم عادی وجود داره، کلی فرصت خوب تو بازارهای کوچیک و تخصصی ایجاد کرده. در نهایت نباید از روی ترسِ عقب موندن تصمیم گرفت، بلکه باید با تحلیل درست یا بریم سمت مقیاس‌های خیلی بزرگ یا کلاً رو یه حوزه بی‌نهایت تخصصی تمرکز کنیم.

https://vladdusenkoo.medium.com/is-it-too-late-to-build-something-from-zero-in-the-ai-era-cffc842e56e3

@codehalics | کدهالیک
❤8
کدهالیک | codehalic
تو این مقاله‌ای که خوندم نویسنده میگه هنوز برای ساختن یه کسب‌وکار از صفر تو عصر هوش مصنوعی دیر نشده، فقط مدل بازی عوض شده و اقتصاد رفته سمت یه الگوی دمبلی. تو این وضعیت جدید، غول‌های بزرگ فناوری اون بالا و کارآفرین‌های تک‌نفره و چابک این پایین بیشترین سود…
یه اصطلاح باحالی توش استفاده کرد بود به اسم«اقتصاد دمبلی» (Barbell Economy)

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

بامزه بود ! چیز جدید یاد گرفتم باهاتون به اشتراک گذاشتمش :)

@codehalics | کدهالیک
👍14❤9
Forwarded from کار باشه !
کارآموز .net


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

در این دوره، روی پروژه‌های واقعی کار می‌کنید، از اعضای باتجربه تیم یاد می‌گیرید و بازخورد و منتورینگ دریافت می‌کنید. پس از موفقیت در ارزیابی دوره، فرصت استخدام در اکالا خواهید داشت.

*تجربه فنی قبلی الزامی نیست* ولی آشنایی اولیه با موارد زیر امتیاز محسوب می‌شود:

• C# / ASP.NET Core
• JavaScript / TypeScript / React.js
• Git و Version Control
• HTTP و REST API
• پایگاه داده‌های رابطه‌ای مانند SQL Server
• Microservices، Docker، Kubernetes و CI/CD
• Agile / Scrum

⏳ مدت دوره: ۲ تا ۶ ماه، متناسب با عملکرد و پیشرفت شما.

لینک ارسال رزومه: https://lnkd.in/eTznJ736

📩 فرایند ارزیابی: پس از ارسال رزومه، لینک پرسشنامه برایتان ایمیل می‌شود؛ لطفاً در اولین فرصت آن را تکمیل کنید.

https://careers.okala.com/job-detail/d79eed3c-582f-48a7-b82f-d024a7d84cb8

#backend

➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
کدهالیک | codehalic
ثبت‌نام «دورهٔ مهندسی بک‌اند با NestJS» شروع شد. اول از همه، از ۶۸ نفری که پیش‌ثبت‌نام کردن ممنونیم. شما وقتی هنوز هیچ قسمتی از دوره منتشر نشده بود به ما اعتماد کردین، و این برامون خیلی ارزشمنده. به همین خاطر، دوره برای پیش‌ثبت‌نامی‌ها ۲۰ درصد تخفیف بیشتر…
امروز سرور کدهالیک یه مدت از دسترس خارج شد. بعد از پیگیری معلوم شد هیت‌سینک سرور مشکل داشته و همین باعث شده یکی از هاردها از کار بیفته، اونم هاردی که RAID نداشت.

خوشبختانه از بک‌آپ تونستیم همه‌چیز رو برگردونیم. چند ساعت آخرِ تراکنش‌ها و لایسنس‌ها توی بک‌آپ نبود، ولی همه‌شون رو دستی برگردوندیم و الان همه کسایی که دوره رو خریده بودن به دوره دسترسی دارن. اگه خرید کردی و هنوز دسترسی نداری، همین‌جا بهم پیام بده تا سریع درستش کنم.

درس بزرگی هم برام بود: فاصله بک‌آپ‌ها باید خیلی کوتاه‌تر از چیزی باشه که فکر می‌کردم، و همین الان دارم درستش می‌کنم.
از صبح خیلی‌هاتون پیام دادین و پیگیر ثبت‌نام بودین، ممنونم ازتون ❤️

بوت‌کمپ مهندسی بک‌اند دوباره برای ثبت‌نام بازه:

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

👇 ثبت‌نام:
https://codehalic.ir/courses/backend-engineering-bootcamp

@codehalics | کدهالیک
❤13🔥2
Forwarded from کار باشه !
سلام دوستان
موسسه فرا رو آماده استخدام یک نیروی کارآموز حضوری در تهران برای پوزیشن فرانت اند دولوپره
اگر با فریم ورک های
React/Next JS
کار کردید
رزومه هاتون رو برای این ایمیل بفرستید
mail@fararo.org

#frontend

➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
❤7
Media is too big
VIEW IN TELEGRAM
این پروژه خیلی جالب بود یه نفر نرم افزار مدیریت انبار رو از یه کار خشک و تکراری به یه بازی استراتژیک و جذاب تبدیل کرده که با Opus 5.5 ساخته شده.

@codehalics | کدهالیک
❤16🔥5👍2
دوره جامع معماری نرم‌افزار منتشر شد.

در این آموزش ۴ ساعته و فشرده، مباحث Clean Architecture، DDD، میکروسرویس و Event-Driven با پیاده‌سازی تمامی مثال‌ها روی NestJS تدریس شده است.

جلسه دموی پروژه نیز به دوره اضافه شده و امکان ثبت‌نام با ۵۰٪ تخفیف فعال است.

https://codehalic.ir/courses/software-architecture-course

@codehalics | کدهالیک
🔥15❤3🤯3
یه اتفاق جالب افتاده: یه برنامه‌‌نویس موقع ساخت پروژه دات‌نت با Claude متوجه شده هوش مصنوعی خیلی شیک یه پکیج ناامن با آسیب‌پذیری جالب‌توجه وارد پروژه‌ش کرده! ماجرا اینه که AI به‌جای سرچ آنلاین به داده‌های قدیمی خودش اعتماد می‌کنه و حتی جدیدترین مدل‌ها هم خودکار این مشکل رو حل نمی‌کنن؛ مگر اینکه توی پرامپت رسماً مجبورشون کنین برن توی سایت nuget.org و آخرین نسخه پایدار رو چک کنن.

https://www.roundthecode.com/dotnet-blog/ai-added-vulnerable-nuget-package-to-dotnet-app?via=dailydev

پ.ن : همیشه باید نظارت کنین روی چیزی که ai براتون داره جنریت میکنه !

@codehalics | کدهالیک
🔥12🤯4❤1👍1
توی نسخه جدید 16.4 نکس‌جی‌اس، مهم‌ترین خبر اینه که مدل جدید Cache Components بالاخره کامل آماده شده و توی پروژه‌های جدید به صورت پیش‌فرض فعاله؛ یعنی با دایرکتیو 'use cache' می‌تونی خیلی راحت و دقیق تعیین کنی کدوم کامپوننت کش بشه تا سرعت لود صفحات فوق‌العاده بره بالا و بخش‌های استاتیک و دینامیک بدون دردسر کنار هم قرار بگیرن. علاوه بر ابزارهای کنترلی جدید مثل ensureStatic (برای جلوگیری از اجرا شدن کدهای دینامیک توی صفحات استاتیک) و مدیریت دقیق‌تر Prefetch، قابلیت‌های خفنی هم برای ایجنت‌های هوش مصنوعی اضافه شده مثلاً دستور next upgrade --agent که آپگرید پروژه رو به ایجنت‌ها می‌سپاره. در نهایت هم کلی بهینه‌سازی سرعت و حافظه داشتیم؛ از کاهش ۲۰ تا ۲۵ درصدی مصرف دیسک توی Turbopack و سبک‌تر شدن باندل پروداکشن گرفته تا پشتیبانی از ری‌اکت ۱۹.۳.

https://nextjs.org/blog/next-16-4

@codehalics | کدهالیک
❤13👍5🔥3👏1
توی NestJS اینکه چند تا پوشه مثل 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 | کدهالیک
👍4❤1