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

@dvtwi

Hashtags:
devtwitter.t.me/5

DevBooks Channel:
https://t.me/+AYbOl75CLNYxY2U0

Github:
https://github.com/DevTwitter

X:
https://x.com/devtwittir
Download Telegram
چند وقته برای ساخت بخش‌های مختلف Admin Panel تو پروژه‌هام از Filament PHP استفاده می‌کنم و باید بگم واقعاً یه ابزار فوق‌العاده‌ست! اگر با Laravel کار می‌کنید و دنبال یه راه حل سریع، شیک و منعطف برای پنل‌های ادمین می‌گردید، حتماً Filament رو امتحان کنید.

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

اگه تا حالا با Filament کار نکردید، پیشنهاد می‌کنم تو پروژه بعدیتون حتماً ازش استفاده کنید. مطمئنم تجربه‌تون تو ساخت پنل‌های مدیریتی کاملاً متحول می‌شه.

https://filamentphp.com

@DevTwitter | <Danial Rahimy/>
👍48🤣63🔥2
سرورلس کامپیوتینگ: تحول در دنیای توسعه نرم‌افزار
سرورلس کامپیوتینگ (Serverless Computing) یک مدل معماری است که به توسعه‌دهندگان این امکان را می‌دهد تا بدون نیاز به مدیریت زیرساخت‌های سرور، تنها بر روی نوشتن و پیاده‌سازی کد تمرکز کنند. برخلاف آنچه که از اسمش به نظر می‌رسد، سرورلس به این معنا نیست که هیچ سروری وجود ندارد، بلکه این به این معناست که تمام مدیریت سرور، مقیاس‌پذیری و نگهداری آن به عهده ارائه‌دهندگان خدمات ابری (مانند AWS، Google Cloud و Azure) است.
چرا سرورلس کامپیوتینگ یک تغییر بزرگ است؟
کارایی هزینه‌ای بالا: ما فقط برای منابعی که مصرف می‌کنیم هزینه پرداخت می‌کنیم. به این معنی که برای زمان‌هایی که کد شما اجرا نمی‌شود، هیچ هزینه‌ای نمی‌پردازیم. این ویژگی برای استارتاپ‌ها و کسب‌وکارهای در حال رشد که به دنبال صرفه‌جویی در هزینه‌ها هستند، ایده‌آل است.
مقیاس‌پذیری خودکار: در این مدل، نیازی به نگرانی درباره مقیاس‌پذیری و تنظیم تعداد سرورها نیست. ابزارهای سرورلس به‌طور خودکار بار ترافیک را مدیریت کرده و تعداد منابع مورد نیاز را بسته به تقاضا تنظیم می‌کنند.
تمرکز بیشتر روی کد: توسعه‌دهندگان می‌توانند بیشتر بر روی نوشتن منطق کسب‌وکار و ویژگی‌های جدید تمرکز کنند، بدون اینکه دغدغه‌ای در مورد مدیریت زیرساخت‌ها داشته باشند.
پیاده‌سازی سریع‌تر: به دلیل این که تنها قسمت‌های خاصی از برنامه به صورت مستقل اجرا می‌شوند، می‌توانیم ویژگی‌های جدید را در زمان کوتاهی پیاده‌سازی کرده و آن‌ها را سریع‌تر به محیط تولید منتقل کنیم.
انعطاف‌پذیری و سرعت: برای ایجاد API ها، پردازش‌های زمان واقعی، و میکروسرویس‌ها به راحتی می‌توان از سرورلس استفاده کرد که باعث افزایش سرعت توسعه و تغییرات می‌شود.
ابزارهای سرورلس معروف:
AWS Lambda
Google Cloud Functions
Azure Functions
این ابزارها به ما این امکان را می‌دهند که کدهای خود را در قالب توابع مستقل اجرا کنید و فقط زمانی که این توابع فراخوانی می‌شوند، منابع مصرف شوند.

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

@DevTwitter | <Mohammad Hosein Shahbazi/>
👍282👎2
افزایش کارایی در لاراول با جلوگیری از مشکل N+1

آیا می‌دانستید که N+1 Query Problem یکی از موضوعات رایج در مصاحبه‌های برنامه‌نویسی لاراول است؟ اگر به دنبال افزایش دانش خود برای پروژه‌ها و همچنین آمادگی برای مصاحبه هستید، این نکته طلایی را از دست ندهید!

مشکل N+1 چیست؟

این مشکل زمانی رخ می‌دهد که برای هر رکورد، یک کوئری جداگانه اجرا شود. مثلاً وقتی لیست کتاب‌ها را با نویسنده‌هایشان واکشی می‌کنید، به‌جای یک کوئری کلی، چندین کوئری اجرا می‌شود که کارایی برنامه را به شدت کاهش می‌دهد.
راه‌حل؟ (Eager Loading):

با استفاده از with() در لاراول، می‌توانید روابط مدل‌ها را در یک کوئری بازیابی کنید و از N+1 جلوگیری کنید

در تصویر نمونه درست و غلط رو هم درج کردم

با این روش، همه نویسنده‌ها همراه با کتاب‌ها در یک کوئری واکشی می‌شوند و سرعت اپلیکیشن شما افزایش می‌یابد.

نکته مصاحبه‌ای:

مصاحبه‌کنندگان اغلب می‌پرسند: "چگونه می‌توان از مشکل N+1 جلوگیری کرد؟" حالا شما با این پاسخ آماده هستید!

@DevTwitter | <Alireza Ahmadi/>
👍28🤣8👎1
اگه تجربه توسعه مینی اپای تلگرام رو داشته باشید احتمالا دردسرای تانل کردن و ماک کردن دیتا و تست کردن همزمان نسخه اندروید و ios رو دیدید. عرفان با این اپش همه این مشکلات رو حل کرده و شما میتونید یه محیط توسعه کامل برای مینی اپا رو داشته باشید
https://github.com/erfanmola/TMA-Studio

@DevTwitter | <MohammadReza Shahmoradi/>
👍47🤣145🔥3
مارکدان خیلی خوبه؛ ولی اگر بتونی خیلی راحت فایل‌های پی‌دی‌اف و آفیس و... رو بهش تبدیل کرد، بهتر هم می‌شه. مایکروسافت یه لایبری پایتونی داده براش.
https://github.com/microsoft/markitdown
یه اپ هم یکی با استفاده ازش ساخته که غیر برنامه‌نوس‌ها هم راحت استفاده کنن:
https://msftmd.replit.app

@DevTwitter | <Amin Mesbahi/>
👍36
میخواستم ببینم هر ماژول به چه ماژولی دیپندنسی داره و بخصوص چی بهش دیپندنسی داره کلی سرچ کردم و کارای احمقانه آخرش تو نیم‌ساعت یه اسکریپت پایتون نوشتم و تامام کدش هم خیلی و ساده و احمقانه هست ولی کار میکنه و کافیه

https://gist.github.com/behdad222/4d016d20ea64ad0ca56743c67496821a

@DevTwitter | <Behdad Abedi/>
🤣15👍7🔥5
خیلی دلم میخواد توی این پارسر پایتونی که نوشتم کل ast رو عوض کنم به جای اینکه درخت باشه یه آرایه درست کنم و با اندیس parent/child رو به هم وصل کنم ببینم چقدر سرعتش بهتر میشه ولی اصلا وقت نمیشه

@DevTwitter | <Shaygan/>
🤣275👍3👎2
شروع پروژه متن‌باز Shop Center

دارم روی بک‌اند یه فروشگاه بزرگ با NestJS کار می‌کنم که قراره ویژگی‌های جذاب و مقیاس‌پذیر داشته باشه. پروژه کاملا متن‌بازه و منتظر پیشنهادها و مشارکت‌های شما هستم!

گیت‌هاب:
https://github.com/AliDeWeb/Shop-Center

@DevTwitter | <Ali Moradi/>
👍51🤣10🔥7👎4
سیستم‌های هوش مصنوعی داده‌های تمیز و ساختارمند رو می‌خواد، اما آماده‌سازیش سخته.

ابزار FireCrawl این کار رو آسون می‌کنه! یه ابزار متن‌باز برای کراول و تبدیل وب‌سایت به فرمت‌های آماده مثل Markdown و HTML، با قابلیت مدیریت پروکسی، ضدربات و محتوای داینامیک.

https://github.com/mendableai/firecrawl

@DevTwitter | <Reza Jafari/>
👍313
وقتی سرور لینوکسی آلوده می‌شود رویه استاندارد امحا کامل و جایگزینی با یک سیستم تمیز جدید است، ولی خب نیاز است که شما حمله‌ها را شناسایی و یا نحوه Compromise شدن را شناسایی کنید تا خود را ایمن نگه دارید. یک منبع خوب مرتبط با این مباحث:

https://github.com/cr0nx/awesome-linux-attack-forensics-purplelabs

@DevTwitter | <Vahid Nameni/>
👍25
This media is not supported in your browser
VIEW IN TELEGRAM
خبر خوب برای برنامه نویس‌ها: گیت‌هاب Copilot رایگان شد!

از حالا میتونین در VS Code از هوش مصنوعی گیتهاب کوپایلوت به صورت رایگان استفاده کنین و به صورت مستقیم از ChatGPT و Claude در IDE استفاده کنید.

نسخه پولی کوپایلوت هم میارزید، چه برسه به مجانی!

@DevTwitter | <Farokh/>
👍82🔥27🤣65
دیروز شرکت OpenAI از مدل O3 رونمایی کرد. نکته شگفت‌انگیز ماجرا این بود که این مدل تونسته بنج‌مارک ARC AGI رو با دقت 87% پاس کنه!
این در حالیه که سال‌ها طول کشید تا مدل‌ها سر این بنچ‌مارک به دقت 5% برسن و تا همین اواخر هم زیر 50% بودن!

@DevTwitter | <Shahriar Shariati/>
🔥55👍9👎31
امروز یه کار خیلی باحال کردم

اومدم یه Agent درست کردم که Evaluationهای LLM-as-a-Judge رو انجام بده وقتی Agent اصلی کارش تموم شد.

برای اینکه inovkeاش کنم اومدم انداختمش روی Background Taskهای FastAPI

وقتی استریم جواب Agent اصلی تموم شد این ران میشه!

خودم خیلی خوشم اومد.

@DevTwitter | <Von Datawarehausen/>
🤣30👍16🔥51
واقعا برنامه نویس بودن تو ایران ،یه مسیر شغلی کاملا مسخره است.
یوتیوب فیلتره ، سایت های آموزشی تحریم هستیم. پرداخت ارزی به سختی اتفاق میوفته و غیره.

در هر صورت خواستم بگم Github Copilot
به صورت رایگان در دسترس هست. اما تحریم هستیم.
https://aka.ms/vscode-activatecopilotfree
https://code.visualstudio.com/docs/copilot/setup-simplified

@DevTwitter | <پوریای اصلی قدیمی/>
🤣168👍47👎111
اگر بلد نیستید رزومه و کاور لتر و مقاله هاتون رو با لاتکس ترتمیز تر و باکلاس تر :) بنویسید، اینجا یک سری آموزش براش هست:
https://github.com/guanyingc/latex_paper_writing_tips

@DevTwitter | <Shana/>
👍17🔥4🤣21
اگه ردیس بدون پسورد دارید، احتمالا باید نگران باشید!

https://redrays.io/blog/redis-cve-2024-31449-how-to-reproduce-and-mitigate-the-vulnerability/

@DevTwitter | <Hosein Ghasemi/>
👍24
اگر نیاز دارید و یا دنبال طراحی و develop کردن AI Agent ها هستید حتما بلاگ جدید Anthropic با عنوان "ساخت ایجنت‌های مؤثر با مدل‌های زبانی بزرگ (LLM)" را بخونید.
اگه فقط بخوام تو یک جمله مقاله را خلاصه کنم تاکیدش روی سادگی طراحی و پیاده سازی هست.
نکته کلیدی؟ موفق‌ترین سیستم‌ها روی سادگی و الگوهای ترکیبی تمرکز دارند. یک کم بیشتر بازش کنم:

ایجنت‌ها چیستند؟
ایجنت‌ها سیستم‌هایی هستند که ابزارها و وظایف را به صورت پویا و انعطاف‌پذیر مدیریت می‌کنند.
آن‌ها با گردش‌کارهایی که از مسیرهای کد از پیش تعریف‌شده پیروی می‌کنند (predefined workflows)، متفاوت‌اند.
کی از ایجنت‌ها استفاده کنیم؟
- اول با روش‌های ساده شروع کنید! اکثر کاربردها با یک فراخوانی LLM و نمونه‌های داخل متنی(in-context examples) حل می‌شوند.
- برای وظایف قابل پیش‌بینی از workflow استفاده کنید.
- وقتی نیاز به تصمیم‌گیری در مقیاس بالا دارید، از ایجنت‌ها بهره ببرید (البته به هزینه و زمان توجه کنید).
فریمورک ها و اهمیت سادگی
فریمورک هایی مثل LangGraph، Amazon Bedrock، و Vellum توسعه را ساده می‌کنند، اما لایه‌های اضافی ممکن است باعث ابهام شوند.
از API مستقیم شروع کنید تا کنترل و شفافیت را حفظ کنید. فقط زمانی از فریمورک ها استفاده کنید که واقعاً ارزش افزوده داشته باشند.

سه اصل کلیدی برای موفقیت
1- طراحی ایجنت را ساده نگه دارید.
2- برنامه‌ریزی ایجنت را شفاف و قابل مشاهده کنید.
3- ابزارها را دقیق مستند و آزمایش کنید تا قابل اطمینان باشند.

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

لینک بلاگ:
https://anthropic.com/research/building-effective-agents

@DevTwitter | <Mehdi Allahyari/>
👍13🔥71
خب بلاخره فریم ورک Astro از nuxt توی استفاده پیشی گرفت در آینده ی نه چندان دور جای next رو هم میگیره!
2سال پیش این شرط رو بستم :)))))

@DevTwitter | <Soroush Moosapour/>
🤣598👍6👎3
امسال شاید پر کاربردترین برنامه جدیدی که استفاده کردم github.com/atuinsh/atuin‎ بود که جایگزین تاریخچخ پیش فرض خط فرمانم شده، مخصوصا دستور atuin history list --cwd --human رو تو هر فولدری که یادم نیاد قبلا چه دستوراتی توش زدم میزنم و راحت دوباره ذهنم میاد روی خط اون پروژه :)

@DevTwitter | <Farid/>
👍29🤣2👎1
برای یادگیری زبان Rust شاید این ریپو هم بدرد کسی خورد:
https://github.com/0ne-zero/easy_rust_fa

میتونه مقدمه‌ی خوبی باشه.

@DevTwitter | <Pouriya/>
28🤣5👎2🔥2
تجربیاتی که از مسابقات برنامه‌نویسی با زبان php دارم:

۱. هیچوقت به ارور‌ها اعتماد نکن. خیلی جاها php به دلیل مهربونی زیاد بهت Error نمیده اما مشکل داری. (علی الخصوص نسخه‌های قبل از ۸)

۲. علامت $ رو روی کیبوردت ریمپ کن. تجربه خوبی از نرم‌افزار xremap دارم. اینطوری میتونی تنظیم کنی موقعی که برنامه‌نویسی می‌کنی هر جا روی کیبوردت 4 رو فشار بدی به جاش $ بنویسیه و هر وقت SHIFT + 4 رو فشار بدی 4 رو بنویسه. اینطوری سرعتت خیلی میره بالاتر. (لینکش رو در ادامه قرار خواهم داد)

۳. از پوینتر‌ها استفاده کن. پوینترها در زبان php بشدت پرسرعت هستند و خیلی از زبان‌های برنامه نویسی به گرد پای php هم نمی‌رسند.

۴. کمتر از آرایه‌ها استفاده کن. آرایه‌ها در زبان php یک ترکیبی از تمامی Data Structure های موجود در کره زمین هستند این باعث میشه سرعت توسعه‌ات بره بالا اما تو مسابقه سرعت الگوریتمت مهمه،‌ پس پیشنهاد‌ میکنم اگر تونستی ازش کمتر استفاده کن.

۵. حواست به function های built in زبان php باشه. این خیلی کمکت میکنه چون php بشدت function های بدرد بخور داره که تو مسابقه میتونن کمکت کنن. مثلا usort، array_shift، array_count_values و...

۶. زبان php رو دوست داشته باش. اگه دوستش داشته باشی خیلی‌جاها کمکت میکنه ولی اگه بخوای ساز مخالف بزنی و هی زبان‌های دیگه رو بزنی تو سرش، جیگرتو میسوزونه!

۷. اگر امکان انتخاب زبان‌های type safe رو داری، انتخابشون کن! مگه اینکه php یک ابزار خاصی بهت بده. (از دید یک مهندس و توسعه‌دهنده نرم‌افزار در شرایط برابر و خلع، همیشه حق با یک زبان type safe هستش - البته در دنیای حقیقی هیچوقت نه شرایط برابره و نه در خلع هستیم)


یکی از ویژگی‌های خوبی هم که داره اینه که میتونی تنظیم کنی این remap روی کدوم نرم افزار اجرا بشه. مثلا میتونی فقط روی vscode یا phpstorm پیاده اش کنی.
خلاصه اگر دکمه‌ای روی کیبوردت خراب بود،‌ چیزی از دم دستت دور بود، $ چیزی داشتی، ازش استفاده کن

اینم نرم افزار xremap:
https://github.com/xremap/xremap

@DevTwitter | <Ali Zeinodin/>
1🤣54👍448🔥3