DevTwitter | توییت برنامه نویسی – Telegram
DevTwitter | توییت برنامه نویسی
23.6K subscribers
4.36K photos
358 videos
6 files
4.1K links
توییت های برنامه نویسی و طراحی وب :)

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://news.1rj.ru/str/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
💫 ابر سپهر - خرید سرور مجازی ابری

خرید روزانه و تمدید خودکار
انتخاب ناحیه و دیتاسنتر
ساخت منابع دلخواه
ارتقا و کاهش منابع
ترافیک ارسالی رایگان و نامحدود
بیش از ۱۰ توزیع لینوکس و ویندوز
اسنپ شات و بک آپ
وب سرویس REST

@sepehrdotcloud

خرید سرور ابری :
https://sepehr.cloud/cloud
👍24🔥18👎82
بمب‌ دیگه که Anthropic توی ۲۴ ساعت گذشته انداخته اینکه، Agent Skills از الان تبدیل شده به یه Open Standard

با ساپورت این همه شرکت و پروژه!

https://agentskills.io

@DevTwitter | <Von Datawarehausen/>
👍31🔥52🍌1
با این مدل حلقه؛ کدت رو خیلی خوانا کن
در آینده بابت اینکار از خودت تشکر می‌کنی


@DevTwitter | <Vahid Kaargar/>
🍌62👍15👎121
یک قدم جدی‌تر به سمت UIهای قابل‌مالکیت — Shadcn UI v2 منتشر شد

اگر با shadcn/ui کار کرده باشید، احتمالاً می‌دونید چرا بین توسعه دهنده های فرانت اند محبوب شده.
نسخه‌ی 2 اما فقط یک آپدیت ساده نیست؛ بیشتر شبیه یک تغییر رویکرده.

مهم‌ترین نکته برای من:
تمرکز واقعی روی customization و ownership

- رابط CLI جدید و ساخت UI از صفر
الان می‌تونید با یک دستور، کل ساختار UI پروژه رو بر اساس سلیقه‌تون بسازید:
استایل کلی، فونت، رنگ‌ها، spacing و حتی اینکه زیرساخت کامپوننت‌ها Radix باشه یا Base UI.
خروجی هم کدی هست که کاملاً مال خود پروژه‌ست، نه یک abstraction سنگین.

- اضافه شدن Base UI
این بخش خیلی جذابه.
برای پروژه‌هایی که انعطاف‌پذیری بیشتر و وابستگی کمتر می‌خوان، Base UI می‌تونه انتخاب تمیزتری نسبت به Radix باشه — مخصوصاً وقتی کنترل کامل روی behavior کامپوننت‌ها مهمه.

- تجربه توسعه تمیزتر
ساختار آزادتر فایل‌ها، CLI هوشمندتر و دردسر کمتر برای هماهنگی با فریم‌ورک‌های مختلف. shadcn داره از یک مجموعه کامپوننت آماده عبور می‌کنه و به یک پایه‌ی واقعی برای ساخت UI تبدیل می‌شه — سریع، منعطف و کاملاً تحت کنترل توسعه‌دهنده.

@DevTwitter | <Hossein Akbari/>
👍195🔥1
یه پروژه جالب برای Agentic RAG
نمونه ساده و قابل فهم از سیستم RAG با استفاده از LangGraph.
این ریپو به‌صورت قدم‌به‌قدم نشون می‌ده چطور:
ایندکس‌سازی سلسله‌مراتبی ا
حافظه مکالمه
سوال‌های مبهم رو خودش اصلاح کنه
https://github.com/GiovanniPasq/agentic-rag-for-dummies

@DevTwitter | <Amir Pournasserian/>
16👍1
اگه نیاز دارید فایل هاتون رو توی یه سرور درون شبکه Host کنید یه برنامه نوشتم شاید به کارتون بیاد.

دیشب دیدم USB ندارم فایل هامو انتقال بدم به لپتاپ ایده اش رسید به ذهنم ساختمش.

https://github.com/ThisIsDara/PortPal

@DevTwitter | <Dara/>
🍌2612👍1👎1
تمرکز بیشتر روی Performance، Java مدرن و Cloud
Spring Boot 4:

فریمورک Spring Boot 4 رو می‌شه ادامه‌ی منطقی مسیری دونست که از Boot 3 شروع شد؛
ولی این بار با تمرکز پررنگ‌تر روی ویژگی‌های جدید، ساده‌سازی عمیق‌تر و هماهنگی کامل با Java مدرن.
برخلاف نسخه‌های قبلی، Spring Boot 4 بیشتر روی «بهتر شدن تجربه‌ی واقعی در پروژه‌های production» تمرکز داره تا اضافه کردن featureهای نمایشی.

پشتیبانی عمیق‌تر از Javaهای جدید
یکی از مهم‌ترین تغییرات Spring Boot 4، وابستگی کامل به نسخه‌های جدید Java هست.
این یعنی:
استفاده‌ی بهتر از قابلیت‌های جدید JVM
حذف بخش‌های قدیمی و legacy
کدی تمیزتر و آینده‌دارتر
ابزار Spring Boot 4 عملاً برای پروژه‌هایی ساخته شده که می‌خوان چند سال بدون دردسر نگه‌داری بشن.

پرفورمنس بهتر و Startup سریع‌تر
پرفورمنس همیشه یکی از دغدغه‌های اصلی پروژه‌های بک‌اند بوده و در Boot 4 جدی‌تر از قبل بهش پرداخته شده:
بهینه‌سازی فرآیند startup
مصرف حافظه‌ی کمتر
هماهنگی بهتر با Native Image و GraalVM
این موضوع مخصوصاً برای microserviceها و سیستم‌های cloud-based خیلی مهمه.

طراحی CloudNative واقعی‌تر
فریمورک Spring Boot 4 بیش از قبل برای اجرا در محیط‌های Cloud و Kubernetes طراحی شده:
بهبود در health checkها
و observability قوی‌تر (metrics, tracing, monitoring)
رفتار پایدارتر در محیط‌های distributed
یعنی وقتی اپلیکیشن وارد production می‌شه، کمتر با رفتارهای غیرمنتظره مواجه می‌شی.

پیکربندی شفاف‌تر و قابل فهم‌تر
یکی از تغییرات مهم Boot 4، کم شدن جادوی پنهان هست.
پیکربندی‌ها واضح‌تر شدن و توسعه‌دهنده دقیق‌تر می‌فهمه چه اتفاقی داره می‌افته:
خطاهای واضح‌تر در زمان اجرا
کاهش وابستگی‌های غیرضروری
کنترل بیشتر روی auto configuration
این موضوع توی پروژه‌های بزرگ واقعاً نجات‌دهنده‌ست.

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

جمع‌بندی:
فریمورک Spring Boot 4 بیشتر از اینکه یک نسخه‌ی پر زرق‌وبرق باشه، یک نسخه‌ی بالغ و حرفه‌ایه:
سریع‌تر
بهینه‌تر
سازگار با Java و Cloud امروزی
اگر با Spring Boot کار می‌کنی، Boot 4 قراره تجربه‌ی تمیزتر و قابل اعتماد‌تری بهت بده.

@DevTwitter | <parham saghazadeh/>
👍202👎2🔥1
یکی از اینفلوئنسرهای حوزه Ai بنام Robin Eber سایت پایین رو ساخته که بصورت رایگان، پرامپت شما رو آنالیز میکنه و بهش نمره میده.
بهتون میگه که آیا پرامپتتون رو خوب نوشتید یا نه و اگر نه، ایرادش کجاست و چطور میتونید بهترش کنید که بهترین خروجی ممکن رو بگیرید.

https://coach.robinebers.com/

@DevTwitter | <Amin Anvary/>
23🍌5👎4👍3
مواردی که توی PHP8.6 مورد انتظار هستن توی این پست آورده شده.

البته هنوز خیلی زوده چون تازه php8.5 اومده.
ولی خب یک سری موارد با توجه به آپدیت‌ها تایید شدن.

https://nabilhassen.com/php-86

@DevTwitter | <Milad Niroee/>
🔥20🍌6👎21
#میم_شبانگاهی

در خارج از ماتریکس چه می‌گذرد؟؟

@DevTwitter
🔥89🍌38👎61
اقا ما بدلیل محدودیت های مادی یه اپی ساختیم برای تست برد های الکتریکی
خلاصه اینطوریه که با یه اردوئینو کار اسیلوسکوپ‌میکنه ،
https://github.com/Mooch3384/El-Board-Tester

@DevTwitter | <موچی/>
1🔥27👍42
لینوکس fedora نسخه 43 منتشر شد

فدورا لینوکس یکی از توزیع‌های پیشرو دنیای لینوکس هستش که توسط پروژه fedora و با پشتیبانی شرکت Red Hat توسعه داده میشه. چرخه ریلیز جدید fedora حدودا هر شش ماه هست و هر ریلیز تا 13 ماه پشتیبانی میشه.

ویژگی‌های مهم fedora 43:

- هسته لینوکس 6.17: پشتیبانی بهتر از سخت افزار های جدید و بهبود در مدیریت چند هسته ای.

- محیط دسکتاپ Workstation (GNOME 49): اجرای پیشفرض بر روی Wayland و پایان پشتیبانی از X11.

- نسخه KDE Plasma (Plasma 6.4.5): رفع باگ های KWin و مدیریت رنگ و خروجی بهتر در Wayland.

- مدیریت بسته‌ها با RPM 6.0: افزایش امیت بسته ها و بهبود مدیریت امضا ها.

منبع:
https://fedoramagazine.org/whats-new-fedora-workstation-43

@DevTwitter | <Mohammad Mortazavi/>
🔥14👎65
ایشون باگی رو در str_replace ورژن 8.5 php پیدا کرده که جالبه

باگ از xdebug میاد که اگر ورژن قدیمی باشه، باعث مشکل در این فانکشن میشه

مطالب خوبی در زمینه php میذاره کلا
https://www.youtube.com/watch?v=dWM1VkBtkA8

@DevTwitter | <hadi mirzaie/>
👍13🔥1
از وقتی هوش مصنوعی قدرت گرفته بیشتر به این نتیجه میرسم که اشتباه کردم و سالها بجای زبان پایتون Python زبان های Asp , Php یاد گرفتم .

این که کد چیکار میکند همین قدر که با Proxy های مختلف و شبیه ساز دیوایس های مختلف از انواع گوشی تلفن همراه ، تبلت و ... را در سراسر جهان شبیه سازی میکند و ...

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


@DevTwitter | <Hossein Eftekharrad/>
👎98👍17🍌14🔥1
فایل access.log باهامون حرف میزنه... :)))

چند وقت پیش توی شرایطی قرار گرفتم که لازم بود یک پروژه‌ی کوچیکِ بدون مانیتورینگ رو بررسی کنم.

میدونستم که دیتای مورد نیازم داخل access.log هست ولی جمع بندی کردن و ارائه‌ی یک گزارش قابل دفاع ازش سخت بود.
بعد از بوسیدن روی گل claude به یک ابزاری رسیدم که می‌تونه یه گزارش تمیز و شفاف از هر چیزی که اتفاق افتاده یا داره میوفته رو بده.

ابزار GoAccess این کار رو مثل آب خوردن انجام می‌ده؛ بهت خروجی HTML هم میده.
اگر روی سرور نصبش کنی می‌تونی به صورت real-time ببینی چه خبره و داره چه اتفاقی میوفته، از همه چیز هم گزارش میده.

https://goaccess.io/

@DevTwitter | <Milad Niroee/>
🔥165
به عنوان کسی که اول با php کار میکردم بعد اومدم سمت Java میخوام به یک مشکل بزرگ توی استک php اشاره کنم

مشکل اینه که phpرو حالت پیشفرض برای هر درخواست کاربر همه چیو از صفر load میکنه و مموری رو بین درخواست های مختلف share نمیکنه

چیزیو توی مموری نگه نمیداره و برای هر درخواست برنامه از اول bootstrap میشه

هر درخواست =
اجرای composer autoload
ایجاد connection‌ها
انجام task
حذف کامل state

در حالی که وقتی با جاوا کار میکنی اپلیکیشن یکبار توی مموری load میشه و هر درخواست توی thread جدید همون اپلیکیشن یا process هندل میشه و مموری process بین thread ها یعنی درخواست ها share میشه

و خب بنظرم توی اپلیکیشن های امروزی که تعداد کاربران که با وبسایت کار میکنن زیاده این یک مشکل بزرگ هست

چرا؟
چون Resource های سنگین مثل Connection هارو برای هر درخواست از اول باز میکنه و امکان Connection pooling نیست

یعنی اگه مثلا کد php ما میخواد یک api توی سرویس دیگه ای رو تحت پروتکل Http صدا بزنه برای هر درخواستِ کاربر، php باید کانکشن جدید بسازه و tcp handshake هر بار تکرار میشه

یا وقتی میخواد با دیتابیس ارتباط بگیره برای هر درخواست یهConnection جدید باز میکنه که به شدت کارایی برنامه رو میاره پایین. چون کانکشن های دیتابیس علاوه بر tcp handshake ها باید به ازای هر کانکشن که ایجاد میشه احراز هویت و لاگین هم انجام بشه. یا سمت سرور دیتابیس برای هر کانکشن یک process جدید توی سیستم عامل ایجاد میشه که یه بار اضافه روی سرور دیتابیس هم میندازه

در حالی که اگه state حفظ بشه میشه این Connection ها وResource های سنگین رو باز نگه داشت و چندین بار ازشون استفاده کرد و یا اصطلاحا Pool کرد که کارایی برنامه بشدت میره بالا

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

تو فکرم اینه که اگه کد php میخواد مثلا با gRPC با یک میکروسرویس دیگه ارتباط داشته باشه کل مزیت streaming این پروتکل از دست میره و نمیتونه اون Persistent connection رو داشته باشه و همه تعاملات رو با اون انجام بده در واقع Multiplexing از بین میره. و برای هر درخواست gRPC یک کانکشن جدید ساخته میشه!!!!!

البته وقتی از php-fpm برای serve اپلیکیشن استفاده می‌کنید. php-fpm میتونه به ازای هر woker process کانکشن هارو توی مموری نگه داره (پیشفرض اینکارو نمیکنه)

اما خب این کانکشن به ازای هرworker process هست و باز بین درخواست ها share نمیشه. صرفا درخواست جدیدی که با اونworker process هندل بشه این کانکشن رو میتونه داشته باشه.

و خب برای هندل کردن درخواست های همزمان تعداد زیادی کانکشن به دیتابیس ایجاد میشه که باز میتونه یه مشکل دیگه باشه و اپلیکیشن ما میتونه به تنهایی کل توان پردازشی دیتابیس رو مصرف کنه(کنترلی روی حداکثر تعداد کانکشن ها نیست)

و تو این حالتم نمیشه از پروتکل هایی که همه تعاملات رو با یک کانکشن انجام میدن استفاده کرد. Multiplexing برای این ساخته شد که با یک کانکشن همه تعاملات انجام بشه. ولی تو این حالت به ازای هر worker processو درخواستی که هندل میکنه یک کانکشن داریم

فقط هم gRPC نیست، برای ارتباط گرفتن با کافکا هم کلاینت کافکا از یک کانکشن برای بهینه کردن و رد بدل اطلاعات با بروکر استفاده میکنه

حتی RabbitMQکه channel هارو توی یک تک کانکشنtcp هندل میکنه

ابزار های مختلفی مثل FrankenPHP/Swoole/RoadRunnner یا Laravel Octane برای حل چنین مشکلاتی ساخته شدن که phpرو تبدیل به اپلیکیشن سرور میکنن

@DevTwitter | <Hossein Soleimani/>
👍18👎119🍌1
این ارور "declared and not used" واقعا یکی از بزرگترین مزیت‌های گولنگ نسبت به پایتون بوده تا اینجا.
داره میگه آقا، اگر متغیری رو تعریف کردی، حق نداری بلااستفاده ولش کنی! یا باید پاکش کنی، یا کامنت، و یا اینکه استفادش کنی

@DevTwitter | <Matin SenPai/>
👎92👍534🔥1
سیستم مدیریت تایمرها در Unity
(برای LiveOps، فیچرها، Cooldownها و Eventها)

یکی از الگوهای اشتباه و رایجی که بارها در پروژه‌های Unity (کوچک و حتی بزرگ) دیدم اینه که:
- هر Feature تایمر مخصوص به خودش رو داره
- هر برنامه‌نویس منطق زمان‌بندی رو جداگانه پیاده‌سازی میکنه

این رویکرد شاید در کوتاه‌مدت جواب بده، اما در مقیاس بزرگ باعث میشه:
کد تکراری زیاد شود - Code Duplication
نگهداری پروژه سخت‌تر شود - Maintainability
خوانایی کد کم بشود - Readability
توسعه ی کد سخت بشود - Scalability
اعمال تغییرات سراسری تقریباً غیرممکن شود

از دید معماری نرم‌افزار، هر زمان منطق‌های تکراری و پایدار داریم، باید بدونیم که این منطق‌ها می‌تونن با یک سیستم مرکزی مدیریت بشن.
در بازی‌ها هم تایمرها همه‌جا هستند . مثلاً:
- فیچر Daily Reward با بازه‌ی ۲۴ ساعته
- آفرها یا بسته‌های فروشگاهی با زمان چند ساعته
- فیچر های متنوع که زمان محدودی دادن

حالا فرض کنید تصمیم بگیریم همه‌ی تایمرها از حالت Local خارج شوند و به زمان سرور (UTC) متصل شوند.
اگر هر تایمر جداگانه پیاده‌سازی شده باشد، این تغییر به یک فاجعه تبدیل می‌شود
اما با یک سیستم مرکزی، معمولاً با تغییر در یک نقطه، این قانون روی همه‌ی تایمرها اعمال میشه

به همین دلیل، من یک TimerManager عمومی طراحی کردم که از هر Feature یا Script قابل استفاده است اما مدیریت زمان‌بندی‌ها به‌صورت مرکزی انجام میشه
کار باهاش خیلی ساده هست .

ویژگی‌های TimerManager
️ مدیریت تایمرها بر اساس Key
️ استفاده از Callback برای بروزرسانی UI
️ استفاده از API برای شروع و توقف تایمر
️ نمایش زمان در فرمت های مختلف
️ ادغام ساده در هر Feature

امیدوارم این پیاده‌سازی براتون کاربردی باشه.
کد کامل در GitHub:
https://github.com/seidmoh3n/Unity-Timer-Manager

@DevTwitter | <Mohsen Mirshamsi/>
👍14🔥1
Media is too big
VIEW IN TELEGRAM
بعضی پروژه‌ها به ما یادآوری می‌کنن که وب‌سایت‌ها فقط برای انتقال اطلاعات نیستن؛می‌تونن یه «تجربه» باحال باشن و سایت Floor796 دقیقاً یکی از همون‌هاست!

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

چرا این سایت انقدر خاصه؟
چون یه دنیای پیکسلیِ بی‌نهایت پیش‌روتونه، پر از کاراکترهای نوستالژیک! وقتی زوم می‌کنی، تازه می‌فهمی چه خبره!!!

هر لایه از این ایستگاه فضایی پر از کاراکترهاییه که باهاشون خاطره داریم؛ از دنیای گیم گرفته تا انیمیشن‌های معروف، همه اینجا جمع شدن. فقط کافیه زوم کنید تا غرق جزئیات و داستان‌های ریز و درشتش بشید.
https://floor796.com/

@DevTwitter | <Soheil Ghanbary/>
51🔥5👍1👎1
هوش مصنوعی Z.ai مدل GLM-4.7 رو معرفی کرد. طبق اعلام خودشون کیفیت کد زنی تقریباً مشابه Opus 4.5 از شرکت آنتروپیک رو داره.

با تنظیماتی که تو لینک زیر هست خیلی راحت میشه داخل Cursor هم استفاده کرد.
https://docs.z.ai/devpack/tool/cursor

@DevTwitter | <Mohammad/>
🍌18👍85👎2
DevTwitter | توییت برنامه نویسی
#کوته_نیوز گیتهاب self-runner رو پولی کرد 0.002 دلار به ازای هر دقیقه @DevTwitter
#کوته_نیوز

اون قضیه 0.002 دلار به ازای هر دقیقه برای self-hosted runnerهای گیت‌هاب که قرار بود از اول مارس ۲۰۲۶ شروع بشه در پی سر و صداهای زیادش فعلاً به تعویق افتاد.

@DevTwitter | <Hamed/>
👍47🔥61🍌1