Codoloper Articles
18 subscribers
44 photos
44 links
مقاله های کدلپر اینجا منتشر میشن

کانال اصلی:
@Codoloper
Download Telegram
Forwarded from Codoloper
نوشته جدید: cuid و cuid2 - چرا نسخه‌ی دوم عملاً از صفر بازنویسی شد 🔄

وقتی می‌خوای برای رکوردهای دیتابیست یک شناسه‌ی یکتا بسازی، احتمالاً اول به auto increment فکر می‌کنی، بعد به UUID، و اگه دنبال چیزی سبک‌تر و url-friendly تر باشی، به cuid می‌رسی. ولی نکته‌ای که خیلی وقت‌ها گم می‌شه اینه که cuid و cuid2 دو چیز کاملاً متفاوتن — نه یک آپدیت جزئی، بلکه یک بازطراحی کامل با فرض‌های امنیتی متفاوت 🔐🔧

یک نکته بگم که اگر از zod استفاده می‌کنید، ورژن جدید cuid دپریکیت شده. پس این موضوع مهمه ⚠️

امیدواریم مفید باشه ✨

https://codoloper.ir/blog/cuid-w-cuid2-chra-nskhhy-dwm-amlaan-az-sfr-baznwysy-shd

#آموزش
Forwarded from Codoloper
نوشته جدید: Rate Limiting 🔒

فرض کن یک endpoint ساده داری که لیست محصولات رو برمیگردونه 📦. یک روز متوجه میشی سرورت زیر فشار عجیبی رفته، درحالی‌که تعداد کاربر واقعی زیاد نشده 📉. وقتی لاگ‌ها رو نگاه میکنی، میبینی یک IP تنها، چند هزار درخواست در ثانیه فرستاده — یا یک اسکریپت خرابه 🤖، یا یک نفر داره عمداً داده‌هات رو میخراشه (scrape میکنه) 🕸️، یا حتی داره تلاش میکنه با حجم درخواست سرویس رو از کار بندازه 🛑. Rate limiting دقیقاً همون لایه‌ایه که جلوی این سناریو رو میگیره 🛡️: تعیین میکنه هر کلاینت (بر اساس IP، کاربر، یا API key) توی یک بازه‌ی زمانی مشخص، حداکثر چند درخواست میتونه بفرسته ⏱️.

لایه‌های مختلف این مفهوم رو بررسی کردیم، روی وب سرور بزاریم یا روی اپلیکیشن یا اصلا نزاریم؟ 🤔 و خیلی مسائل دیگه...

امیدواریم مفید باشه ✨
https://codoloper.ir/blog/rate-limiting-chra-hr-api-bayd-yk-sqf-msrf-dashth-bashh
#آموزش
Forwarded from Codoloper
نوشته جدید: Message Queues 📬

در مقاله‌ی جدید کدلپر، از صفر توضیح دادیم که queue دقیقاً چیکار می‌کنه 🤔، چرا فقط یه background thread ساده کافی نیست، و چطور مفاهیمی مثل durability و retry باعث می‌شن سیستم در برابر کرش و قطعی مقاوم‌تر بشه 🛡.

مقایسه‌ی RabbitMQ و Kafka هم توش هست — با یه جمع‌بندی ساده از اینکه کِی کدومشون منطقی‌تره ⚖️.

نکته‌ای هم درباره‌ی idempotency و dead letter queue گفتیم که تو خیلی از tutorial ها نادیده گرفته می‌شه ولی زیر لود بالا خودش رو نشون می‌ده .

امیدواریم مفید باشه ✨

https://codoloper.ir/blog/message-queue-chyh-w-chra-hr-brnamhnwysy-bayd-bahash-aashna-bashh
#آموزش 📚
Forwarded from Codoloper
نوشته جدید: قضیه CAP در دیتابیس

یکی از مهم ترین مباحثی که باید راجع به دیتابیس های توزیع شده بدونید قضیه CAP هست

میگن که یک دیتابیس هیچ‌وقت نمیتونه این سه تا رو باهم تضمین کنه Consistancy, Availability و Partition tolerance

این مطلب مهمی هست در کل

امیدواریم مفید باشه
https://codoloper.ir/blog/qdhyhy-cap-chra-hych-dytabys-twzyashdhay-nmytwnh-hmhchyz-rw-ba-hm-dashth-bashh

#آموزش
Forwarded from Codoloper
⚙️ یه سؤال ساده: وقتی یه سرور کش رو اضافه یا حذف می‌کنی، چرا یهو کل کش خالی می‌شه و همه‌ی درخواست‌ها می‌ریزن رو دیتابیس؟ 🤔

جواب این سؤال به یه فرمول ساده برمی‌گرده: hash(key) % N. تا وقتی N ثابته همه‌چیز خوبه ✅، ولی همین که یه سرور کم یا زیاد بشه، تقریباً همه‌ی کلیدها جابه‌جا می‌شن 🔄. تو مقاله‌ی جدید کدلپر، از صفر توضیح دادیم consistent hashing چطور این مشکل رو حل می‌کنه 🛠️ و چرا فقط K/N کلید (به‌جای همه‌شون) جابه‌جا می‌شه.

توش رفتیم سراغ:
🔹 یه پیاده‌سازی واقعی با پایتون 🐍
🔹 مفهوم virtual node و این‌که چرا بدونش توزیع بار روی سرورها اصلاً یکنواخت نمی‌شه ⚖️
🔹 کاربردهای واقعیش تو Cassandra، DynamoDB و Memcached 🗄️
🔹 محدودیت‌هایی که کمتر کسی درباره‌شون حرف می‌زنه؛ مثل چالش سرورهای با ظرفیت متفاوت و رابطه‌ش با replication 🚧

👉 https://codoloper.ir/blog/consistent-hashing-chtwr-yh-systm-twzyashdh-rw-dr-brabr-adhafh-w-km-shdn-srwr-mqawm-myknh

#آموزش
Forwarded from Codoloper
نوشته جدید: اصول SOLID 🛠️

اصول SOLID احتمالاً یکی از پرتکرارترین موضوعاتی هست که تو مصاحبه‌های برنامه‌نویسی ازش سؤال می‌شه 🤔، ولی همین تکرار زیاد باعث شده خیلی وقت‌ها به یه سری تعریف حفظی تبدیل بشه که کسی واقعاً نمی‌دونه کِی و چرا باید ازشون استفاده کنه. 🧠

این پنج اصل، راهنمای طراحی کلاس‌ها و ماژول‌ها هستن که هدفشون کد قابل نگهداری‌تر و کمتر شکننده در برابر تغییره 🛡️؛ نه یه سری قانون مقدس که باید همیشه و همه‌جا کورکورانه اجراشون کنی. ✨

امیدواریم مفید باشه 🚀

https://codoloper.ir/blog/aswl-solid-chyzy-kh-hmh-azsh-asm-mybrn-wly-kmtr-ksy-drst-azsh-astfadh-myknh
#آموزش 📚
Forwarded from Codoloper
نوشته جدید: Test-Driven Development 🧪📝

داخل این آموزش بررسی کردیم که چطوری میشه اول تست نوشت، بعد برای اون تست لاجیک نوشت و اصلا چرا باید اینکار رو بکنیم؟ 🤔

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

این روش بسیار برای کسانی که میخوان بزرگ کد بزنن کمک کننده هست. 🚀

امیدواریم مفید باشه 🌟
https://codoloper.ir/blog/tdd-chyh-w-chra-nwshtn-tst-qbl-az-kd-mntqytr-az-chyzyh-kh-bh-nzr-myrsh

#آموزش
Forwarded from Codoloper
نوشته جدید: wget vs curl 🛠️

اگه تا حالا تو ترمینال یه فایل دانلود کردی یا یه API رو تست کردی، احتمالاً با هر دوی این ابزارها برخورد داشتی. هر دو کارشون رفتن سراغ یه URL و گرفتن داده از اونه، و تو خیلی از موارد ساده، هر کدوم رو که استفاده کنی فرقی نمی‌کنه. ولی وقتی پای موارد پیچیده‌تر وسط بیاد، این دو تا فلسفه کاملاً متفاوتی دارن که دونستنش از انتخاب اشتباه و کلنجار رفتن با فلگ‌های اضافه جلوگیری می‌کنه. 🚀📉

امیدواریم مفید باشه 💡
https://codoloper.ir/blog/curl-dr-mqabl-wget-kdwm-rw-key-astfadh-knym
#آموزش 📚
Forwarded from Codoloper
نوشته جدید: Design Patterns

دیزاین پترن‌ها یکی از اون موضوعاتیه که تو مصاحبه‌ها خیلی می‌پرسنش، ولی همین تکرار زیاد باعث شده خیلی‌ها فقط ۲-۳ تا پترن رو حفظ کنن بدون اینکه بدونن دقیقاً چه مشکلی رو حل می‌کنن 🤔. نتیجه‌ش می‌شه کدی که پر شده از Factory، Strategy و Observer 🏗، در حالی که خود پروژه اصلاً به هیچ‌کدومشون نیاز نداشته! 🙄

فرض کن شش ماه پیش یه پروژه رو تموم کردی 🗓. امروز مدیرت میگه فقط یه قابلیت کوچیک بهش اضافه کن ➕. پروژه رو باز می‌کنی، ولی بعد از چند دقیقه می‌بینی خودتم نمی‌دونی چرا اون کدها رو اون‌جوری نوشتی 🤷‍♂️. هر تغییری یه جای دیگه رو میشکنه 🧱 و انگار پروژه تبدیل شده به یه دومینوی آماده سقوط 🃏. اگه این تجربه برات آشناست 🤝، احتمالاً همینجاست که به اهمیت واقعی دیزاین پترن‌ها نزدیک می‌شی 💡.

امیدواریم مفید باشه
https://codoloper.ir/blog/dyzayn-ptrnha-chyzy-kh-hmh-asmshw-bldn-wly-kmtr-ksy-mydwnh-key-bayd-azsh-astfadh-knh

نویسنده: آرش بهادری
#آموزش
Forwarded from Codoloper
نوشته جدید: Bun vs Deno vs Node 🚀

هر سه‌ی این‌ها یه runtime کامل جاوااسکریپت/تایپ‌اسکریپت هستن؛ یعنی هر کدوم می‌تونه کد سمت سرور رو اجرا کنه، پکیج نصب کنه، و پروژه رو build کنه. تفاوتشون تو فلسفه‌ی طراحی، عملکرد، و چیزیه که هر کدوم به‌صورت پیش‌فرض بهت می‌دن. تو این مقاله این سه تا رو کنار هم می‌ذاریم تا ببینیم کدوم برای چه نوع پروژه‌ای منطقی‌تره. 💡🔍

امیدواریم مفید باشه ✨
https://codoloper.ir/blog/bun-vs-deno-vs-nodejs-kdwm-rw-antkhab-knym

#آموزش 📚 #مقایسه ⚖️
Forwarded from Codoloper
اگه چند وقتیه دنبال اخبار دنیای دیتابیس‌ها و کش بودی 🗄️، احتمالاً اسم Valkey رو دیدی و برات سؤال شده چرا یهو یه رقیب جدی برای Redis ظاهر شده 🆚، در حالی که تا همین چند سال پیش Redis عملاً بدون رقیب تو حوزه‌ی خودش بود 🏆. داستان این fork، بیشتر به یه تغییر لایسنس برمی‌گرده تا یه اختلاف فنی ⚖️.

امیدواریم مفید باشه ✨
https://codoloper.ir/blog/valkey-vs-redis-chra-yh-fork-jdyd-awmd-w-kdwm-rw-bayd-antkhab-kny

کانال:
@codoloper 📢

#مقایسه
Forwarded from Codoloper
✨ مقایسه - React vs Vue: واقعا یکیش از یکی دیگه بهتره ؟ ✨

ری‌اکت و Vue دو تا از پرکاربردترین ابزارها برای ساخت رابط کاربری هستن، و اختلافشون بیشتر از یه بحث سینتکسی ساده‌ست؛ فلسفه‌ی طراحی، مدل reactivity، و نوع تجربه‌ی توسعه‌ای که بهت می‌دن کاملاً متفاوته. تو این مقاله این دو تا رو از چند زاویه‌ی عملی کنار هم می‌ذاریم.

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #آموزشی #فریمورک #نقد_و_بررسی

📣 @codoloper
Forwarded from Codoloper
✨ معماری هگزاگونال (Ports and Adapters): جدا کردن منطق اصلی برنامه از دنیای بیرون ✨

یه سناریوی آشنا رو تصور کن: تصمیم می‌گیرن از PostgreSQL به یه دیتابیس دیگه سوییچ کنن و متوجه می‌شی این وابستگی تا عمق منطق اصلی برنامه نفوذ کرده. معماری هگزاگونال دقیقاً برای جلوگیری از این مشکل طراحی شده. این وابستگی میتونی هر چیزی باشه، یک کتابخونه، لایه API ها و ...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #آموزشی #توسعه_نرم‌افزار

📣 @codoloper
Forwarded from Codoloper
✨ کدوم مناسب پروژه من هست ؟ Next.js vs Nuxt vs SvelteKit vs TanStack Start vs Remix ✨

اگه امروز بخوای یه پروژه‌ی فرانت‌اند جدی بسازی، احتمالاً دیگه مستقیم سراغ React یا Vue خام نمی‌ری؛ سراغ یه meta-framework می‌ری که routing، server-side rendering، و بهینه‌سازی‌ها رو از قبل برات حل کرده. مشکل اینجاست که الان پنج تا گزینه‌ی جدی داری، هر کدوم با فلسفه‌ی متفاوت. ت...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #فریمورک #نقد_و_بررسی

📣 @codoloper
Forwarded from Codoloper
✨ اومنی‌روت (OmniRoute): گیت‌وی متن‌باز برای ۳۳۹ مدل زبانی ✨

اگه از چند تا ابزار agentic (Claude Code، Cursor، Codex، Cline) هم‌زمان استفاده می‌کنی و خسته شدی از این‌که هر کدوم rate limit جدا داره، یا هر وقت quota یکی تموم می‌شه مجبوری دستی سوییچ کنی، OmniRoute دقیقاً برای همین مشکل ساخته شده. این یه AI gateway متن‌باز و local-first است که همه‌ی...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #نقد_و_بررسی #هوش_مصنوعی

📣 @codoloper
Forwarded from Codoloper
✨ وب اسمبلی (WebAssembly) چیه و چرا این‌قدر سروصدا کرده ✨

اگه اسم WebAssembly (یا به اختصار Wasm) رو شنیدی و کنجکاو شدی دقیقاً چیه، جواب کوتاهش اینه: یه فرمت باینری برای اجرای کد با سرعت نزدیک به native، مستقیم تو مرورگر (و جاهای دیگه). ولی این جواب کوتاه نمی‌گه چرا این تکنولوژی این‌قدر مهمه. برای فهمیدنش بهتره از مشکلی شروع کنیم که Wasm حلش می‌کنه.

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #آموزشی #توسعه_نرم‌افزار #شبکه

📣 @codoloper
❤1
Forwarded from Codoloper
✨ اومنی‌روت (OmniRoute) vs 9Router: کدوم گیت‌وی رایگان برای مدیریت چند AI Provider بهتره؟ ✨

هر دوی این ابزارها یه مشکل مشترک رو حل می‌کنن: خسته شدن از rate limit و جابه‌جایی دستی بین چند تا provider مدل زبانی. هر دو هم متن‌باز، رایگان، و زیر لایسنس MIT هستن، و هر دو یه endpoint سازگار با OpenAI رو رو localhost:20128/v1 بالا میارن (که خودش نشون می‌ده این دو تا از یه فضای مشترک الهام گرفت...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #نقد_و_بررسی #هوش_مصنوعی

📣 @codoloper
Forwarded from Codoloper
✨ نقدر و بررسی Ox Alpha؛ مدلی که حالا معلوم شد GLM-5.3-Flash بوده ✨

چند روزی Ox Alpha رو از طریق opencode امتحان کردم و اولین چیزی که حس کردم، سرعتشه؛ به شدت کندتر از بقیه مدل‌هایی که استفاده کردم جواب می‌ده . تست عددی خاصی نگرفتم، فقط بر اساس همون چیزی که موقع کار باهاش اتفاق می‌افتاد می‌گم، ولی حدسم اینه که این کندی به درجه‌ی reasoning بالایی که روش گذاشته...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #خبر #نقد_و_بررسی #هوش_مصنوعی

📣 @codoloper
Forwarded from Codoloper
✨ LLMها چطوری عکس رو می‌فهمن؟ ✨

آیا واستون سؤال شده که مثلاً ChatGPT یا Gemini چطوری با اینکه یه LLM هستن و منطقا فقط باید بتونن متن ورودی بگیرن، عکس شما رو می‌فهمن؟

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: سروش باقریه

🏷️ #آموزشی

📣 @codoloper
Forwarded from Codoloper
✨ فریمورک Meteor: فریمورکی که قول داد فرانت‌اند و بک‌اند رو یکی کنه ✨

قبل از این‌که Next.js و Nuxt و بقیه‌ی meta-framework های امروزی به‌وجود بیان، یه پروژه به اسم Meteor (سال ۲۰۱۲) یه ایده‌ی جسورانه رو دنبال می‌کرد: چرا باید فرانت‌اند و بک‌اند رو با دو تا زبون و دو تا مدل ذهنی جدا بنویسیم، وقتی جاوااسکریپت می‌تونه هر دو طرف رو پوشش بده؟ Meteor...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #فریمورک #نقد_و_بررسی

📣 @codoloper
Forwarded from Codoloper
✨ وسپ - Wasp: فریمورک full-stack ای که با یه فایل تنظیمات، بک‌اند رو براتون می‌سازه ✨

اگه هر بار که یه پروژه‌ی full-stack جدید شروع می‌کنی، خودت رو تو یه چرخه‌ی تکراری می‌بینی (نصب و تنظیم auth، وصل کردن Prisma، نوشتن API routes برای هر عملیات ساده‌ی CRUD، تنظیم ارسال ایمیل، پیکربندی deploy)، Wasp دقیقاً برای حذف همین تکرار طراحی شده. این فریمورک، به‌جای این‌که یه ک...

💡 امیدواریم مفید باشه

🔗 مشاهده پست

✍️ نویسنده: عرفان دهقانی

🏷️ #آموزشی #فریمورک #نقد_و_بررسی

📣 @codoloper