Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 لاراول در معماری‌های Enterprise: انعطاف‌پذیر، تمیز و مقیاس‌پذیر

لاراول، در نگاه اول، شاید یک فریم‌ورک PHP محبوب برای ساخت اپلیکیشن‌های CRUD ساده به نظر برسد. اما اگر کمی عمیق‌تر نگاه کنیم، متوجه می‌شویم که این فریم‌ورک می‌تواند به‌راحتی در قلب معماری‌های enterprise-grade قرار گیرد و حتی در کنار معماری‌هایی مانند microservices، serverless یا modular monoliths.

چرا لاراول در معماری‌های بزرگ موفق است؟


- تفکیک‌پذیری ماژولار

با استفاده از سرویس کانتینر، binding، service providers و سرویس‌های قابل تزریق، Laravel امکان ساخت ماژول‌های مستقل و loosely coupled را فراهم می‌کند. این پایه‌گذار ساختارهایی مانند DDD یا Microkernel است.

- تعامل آسان با سایر سرویس‌ها

چه بخواهید Laravel را به‌عنوان یک API Gateway استفاده کنید، یا یک سرویس خاص در ساختار میکروسرویس، Laravel با ابزارهایی مثل Passport، Sanctum و GraphQL به‌خوبی تعامل بین سرویس‌ها را مدیریت می‌کند.

- سرورلس؟ مشکلی نیست

با ابزارهایی مثل Laravel Vapor یا معماری‌های مبتنی بر AWS Lambda، می‌توان Laravel را به‌صورت serverless deploy کرد—بدون نگرانی از سرور و با مقیاس‌پذیری خودکار.

- کارایی بالا با ابزار Octane

در معماری‌هایی که نیاز به پاسخگویی سریع دارند، استفاده از Laravel Octane با پشتیبانی از Swoole یا RoadRunner باعث می‌شود PHP از حالت traditional خارج شده و performance قابل‌مقایسه با Node یا Go ارائه دهد.

- سازگاری با DevOps و ابزارهای مدرن

لاراول به‌خوبی با Docker، Kubernetes، CI/CD pipelines و ابزارهایی مثل GitHub Actions و GitLab CI هماهنگ می‌شود. فایل‌های .env، پیکربندی YAML-friendly و جداسازی concerns این کار را ساده‌تر می‌کنند.

- کدبیس خوانا، قابل تست و maintainable

در معماری‌های بزرگ، مهم‌ترین فاکتور بعد از performance، نگه‌داری بلندمدت است. Laravel با تاکید بر code readability، تست‌پذیری و طراحی تمیز، گزینه‌ای عالی برای تیم‌های چندنفره است.

لاراول حالا دیگر صرفاً یک فریم‌ورک برای پروژه‌های کوچک نیست؛ بلکه بستری توانمند برای ساختارهای مدرن و مقیاس‌پذیر در دنیای enterprise است.

</Vahid Aghazadeh>

#لاراول

@TheRaymondDev
وبسایت پایان ۱۰ رو ترجمه کردم و برای کی‌دی‌ای فرستادم.

منتظرم تا ترجمم کامیت بشه و بعدش این وبسایت به فارسی در دسترسه.

اگر در توانم باشه رویدادی مربوط به همین موضوع (جشن نصب) برگذار خواهم کرد.

https://endof10.org/


#مشارکت
@SohrabContents
سلام دوستان وقت به خیر
میخوام چند تا چنل خوب YouTube بهتون معرفی کنم که خودم سابسکرایب کردم:

صفحه پادکست طبقه 16 (سهیل علوی) در مورد استارتاپ، تکنولوژی و بیزنس:
📎 https://www.youtube.com/@Tabaghe16/

صفحه کوشیار در مورد استارتاپ، تکنولوژی ماشین لرنینگ، بازارهای مالی، توسعه فردی:
📎 https://www.youtube.com/@Kooshiar

صفحه استارتاپ با مانوئل (فاندر ایسمینار) در مورد استارتاپ و بیزنس:
📎 https://www.youtube.com/@manuelohan

صفحه پادکست بی پلاس (علی بندری) در مورد تاریخ، کتاب و توسعه فردی:
📎 https://www.youtube.com/@BplusPodcast

صفحه پادکست امیرفر (امیرحسین فرزانه) در مورد بیزنس، ورزش و توسعه فردی:
📎 https://www.youtube.com/@amirhosseinfarzaneh

صفحه پادکست رخ در مورد افراد تاثیرگذار تاریخ:
📎 https://www.youtube.com/@rokhpodcast

صفحه برنامه کتاب باز سروش صحت در مورد کتاب
📎 https://www.youtube.com/@ketabbaz

صفحه برنامه TED در یوتیوب، سخنرانی‌های کوتاه تاثیرگذار:
📎 https://www.youtube.com/@TED

صفحه بهفر کانادا در مورد اپلای، زبان و زندگی دانشجویی در کانادا:
📎 https://www.youtube.com/@BehfarCanada

صفحه Team Rondi در مورد آموزش‌های دیزاین با کنوا (Canva):
📎 https://www.youtube.com/@TeamRonDi

صفحه پادکست کارنکن در مورد داستان شغلی آدم‌ها:
📎 https://www.youtube.com/@karnakonyoutube3600

صفحه Jeff Su یوتیوبر خفن در مورد توسعه فردی، ابزارهای تکنولوژی و ... :
📎 https://www.youtube.com/@JeffSu

صفحه ایمان خرمی نژاد در مورد مصاحبه با افراد متخصص تکنولوژی:
📎 https://www.youtube.com/@ImanKhoraminezhad-coach

🔴 شما هم اگر صفحه خوبی در یوتیوب می‌شناسید در کامنت‌ها معرفی کنید ✌️

ارادت | مجید حسینی |12 مهر

🌀 @majidhosseinis
Please open Telegram to view this post
VIEW IN TELEGRAM
📣 وبینار آشنایی با ویکی‌داده

🗣️ ویکی‌مدیای ایران در راستای آشنایی بیشتر جامعه فارسی‌زبان با پروژه‌های ویکی‌مدیا، وبینار ویژه‌ای با موضوع «آشنایی با ویکی‌داده» برگزار می‌کند.

📆 شنبه ۶ اردیبهشت ۱۴۰۴
ساعت ۲۰
💵هزینه ثبت‌نام:‌ رایگان
🔗 وبینار
🔹🔹🔹🔹🔹
#Wiki #FaWiki
#wikidata #ویکی_داده
🔹🔹🔹🔹🔹
✈️ تلگرام
™️ توییتر
📺 یوتیوب
🐘 ماستودون
🖥 وبسایت
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Codino School (ایمان غفوری)
آیا میدونید iterable interface در زبان PHP چیه و چه کاربردی داره؟
Anonymous Poll
22%
بله
61%
خیر
17%
حدودی یه چیزایی تو ذهنم هست
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
امروز، ۲۲ آوریل، روز جهانی‌ «زمین» است.

روز زمین از سال ۱۹۷۰ در آمریکا جشن گرفته می‌شه و امروزه در کل دنیا روزی برای افزایش آگاهی و قدردانی نسبت به محیط زیست کرهٔ زمین است.

🔗 doodles.google
🤓 hadi @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۲۴۴

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

#مولانا | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
2X-40X Faster Docker Builds with Blacksmith

🟢 خلاصه مقاله:

ابزار Blacksmith با ایجاد یک تغییر کد یک خطی، امکان ساخت افزایشی برای تصاویر Docker را در اجراکننده GitHub Actions با نصب حافظه لایه‌ای Docker فراهم می‌کند. این رویکرد جدید با کاهش زمان ساخت و تکراری‌نبودن فرآیند، کارآمدی را افزایش می‌دهد. بیش از ۳۰۰ شرکت، از جمله Ashby، Clerk و Mintlify از Blacksmith استفاده کرده‌اند، که نشان‌دهنده تأثیر قابل توجه آن در بهینه‌سازی فرایندهای توسعه است.

🟣لینک مقاله:
https://golangweekly.com/link/167571/web


👑 @gopher_academy
اگه از Claude code استفاده میکنید چی بهتر از اینکه از خود مهندسهای کمپانی Anthropic یاد بگیرید که best practice ها برای استفاده از این ابزار چیا هست!
بلاگ خوش دست و خوانا نوشته شده و همه نکات و ریزه کاریها را توضیح میده!

https://www.anthropic.com/engineering/claude-code-best-practices

@DevTwitter | <Mehdi Allahyari/>
Forwarded from Geek Alerts
موقعیت‌یابی مثلثی با دکل مخابراتی باعث میشه دقیقا متوجه شد شما سر کدوم چهار راه هستی یا تو کدوم خیابون داری میری. گوشی وقتی روشنه (حتی سیم‌کارت روش نیست) به دکل‌های مخابراتی اطرافش پینگ میفرسته، یه تخمین از اینکه سرعت پینگ چقدر بوده و چند تا فاکتور دیگه میشه محاسبه کرد فاصله گوشی شما از هر دکل حدودا چقدر هست.

از نظر هندسی، اگه فاصله یه چیزی رو از سه نقطه مجزا داشته باشی، میشه با فهمید کجاست. در حالت عادی معمولا بیش از ۳ دکل سیگنال رو میگرین. حتی بعضی از دکل‌های مخابراتی از آنتن‌های جهت دار استفاده میکنن که دقیق‌تر میشه فهمید سیگنال گوشی از کدوم سمت میاد. اگه براتون سواله که نرخ خطای این روش چقدر هست عددش رو میشه میانگین حدود ۳۰ متر گفت، چون بستگی به عوامل محیطی مثل ساختمون‌ها و ... داره.

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

🔗 x
🤓 @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM
این زیبا رو برای کار با LLMها از دست ندید.
https://github.com/CherryHQ/cherry-studio

@DevTwitter | <Ayub Kokabi/>
Forwarded from Gopher Academy
در گولنگ (و به‌طور کلی در سیستم‌های مبتنی بر یونیکس)، تفاوت stdin`، `stdout و stderr در واقع به کانال‌های ورودی/خروجی استاندارد مربوط می‌شه. این مفاهیم پایه‌ای در اکثر زبان‌ها یکسان هستند، ولی تو Go هم به شکل زیر کاربرد دارن:

---

## 📥 1. stdin — Standard Input
این همون ورودی استاندارد**ه که برنامه ازش داده می‌گیره. پیش‌فرض اینه که از **کیبورد یا خط فرمان میاد.

### مثال Go:

package main

import (
"bufio"
"fmt"
"os"
)

func main() {
fmt.Print("Enter your name: ")
scanner := bufio.NewScanner(os.Stdin)
if scanner.Scan() {
fmt.Println("Hello,", scanner.Text())
}
}

> اینجا os.Stdin ورودی رو می‌خونه.

---

## 📤 2. stdout — Standard Output
خروجی استاندارده که معمولاً به ترمینال یا همان صفحه نمایش می‌ره. اکثر توابع fmt.Print, fmt.Println, fmt.Printf از os.Stdout استفاده می‌کنن.

### مثال:

fmt.Fprintln(os.Stdout, "This is a normal message.")


---

## ❗️ 3. stderr — Standard Error
خروجی برای خطاها. فرقش با stdout اینه که حتی اگر خروجی برنامه به یه فایل هدایت بشه (> out.txt)، خطاها هنوز روی ترمینال باقی می‌مونن مگر اینکه مشخصاً مسیر stderr هم تغییر کنه.


### مثال:

fmt.Fprintln(os.Stderr, "This is an error message.")


👑 @gopher_academy
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰راهنمای توزیع مستقل CRUX Linux – انتخابی حرفه‌ای برای عاشقان سادگی و کنترل

🔹معرفی کلی

توزیع CRUX یک توزیع سبک و مینیمالیستی از لینوکس است که مخصوص کاربران حرفه‌ای طراحی شده. تمرکز آن بر سادگی، سرعت، و حداکثر کنترل کاربر بر سیستم است. برخلاف توزیع‌هایی مثل Ubuntu یا Fedora، CRUX تجربه‌ای کاملاً دستی و غیراتوماتیک را ارائه می‌دهد و برای کسانی مناسب است که می‌خواهند سیستم‌عامل‌شان را از پایه و مطابق نیاز خود بسازند.

🔹تاریخچه و فلسفه
توزیع CRUX در سال 2001 توسط Per Lidén توسعه یافت و هدف اصلی‌اش پیاده‌سازی اصل KISS (Keep It Simple, Stupid) در دنیای لینوکس بود. این توزیع برخلاف بسیاری از سیستم‌عامل‌ها، مبتنی بر هیچ توزیع قبلی نیست و ساختار کاملاً منحصر‌به‌فردی دارد. از اسکریپت‌های سبک BSD برای راه‌اندازی سیستم استفاده می‌کند و فاقد نصب‌گر گرافیکی یا ابزارهای پیش‌فرض متعدد است.

🔹ویژگی‌های فنی برجسته
معماری: مخصوص سیستم‌های ۶۴ بیتی (x86-64)؛ پورت‌هایی برای معماری‌های دیگر هم وجود دارد (مانند PowerPC، Sparc).
کرنل: از نسخه‌های جدید کرنل لینوکس استفاده می‌کند و به‌روزرسانی‌های مداوم دارد.
نصب: فرآیند نصب کاملاً دستی و از طریق خط فرمان انجام می‌شود؛ مناسب برای کاربران با دانش فنی بالا.
بوت: از اسکریپت‌های ساده‌ی shell به سبک BSD استفاده می‌کند، بدون systemd یا Upstart.
پکیج‌ها: بر پایه فایل‌های فشرده tar.gz است که فقط فایل‌های ضروری را شامل می‌شود.
سیستم پورت‌ها (Ports)

یکی از مهم‌ترین نوآوری‌های CRUX، سیستم Ports آن است که از FreeBSD الهام گرفته شده. هر پورت در واقع یک دایرکتوری شامل فایل‌های لازم برای کامپایل یک نرم‌افزار است:
🔹مدیربسته Pkgfile برای تنظیمات و دستورات ساخت
🔹وصله‌ها یا patchها در صورت نیاز
🔹برنامه‌ها از منبع اصلی دانلود و با تنظیمات دلخواه کامپایل می‌شوند. این سیستم امکان سفارشی‌سازی کامل را به کاربر می‌دهد.

🔹مدیریت بسته‌ها
ابزار pkgutils: ابزار اصلی برای نصب، حذف و به‌روزرسانی پکیج‌ها
ابزار prt-get: رابط پیشرفته‌تر برای تعامل راحت‌تر با پورت‌ها
قابلیت‌هایی مثل جستجوی وابستگی‌ها، مدیریت تاریخچه، و بررسی اطلاعات پورت قبل از نصب را دارد.

توجه داشته باشید که مدیریت وابستگی‌ها در CRUX دستی است، یعنی نصب وابستگی‌ها بر عهده‌ی خود کاربر است. این موضوع بر اصل شفافیت و کنترل کامل بر سیستم تأکید دارد.
https://crux.nu/

📌نویسنده: حسین سیلانی
📌منبع :  آکادمی کندوی دانش
https://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
کوبونتو ۲۵.۰۴ به‌طور پیش‌فرض از Wayland استفاده می‌کند
در نسخه جدید کوبونتو ۲۵.۰۴، تغییر مهمی اتفاق افتاده: حالا به‌طور پیش‌فرض از Wayland به‌جای X11 استفاده می‌شود. البته اگر کسی بخواهد، هنوز هم می‌تواند X11 را انتخاب کند.

در اوایل سال ۲۰۲۴، KDE پیشنهاد کرد که به‌طور پیش‌فرض از Wayland استفاده شود، همزمان با انتشار Plasma 6. خیلی از توزیع‌هایی که از KDE استفاده می‌کنند، فعلاً صبر کردند — از جمله کوبونتو. اما حالا این تغییر اعمال شده است.

از دیگر ویژگی‌های مهم این نسخه می‌توان به ارتقاء به نسخه‌های جدیدتر نرم‌افزار اشاره کرد: Plasma 6.3.4، Qt 6.8.3، KDE Frameworks 6.12 و KDE Gear 24.12.3. البته هنوز همه برنامه‌ها به آخرین نسخه‌ها به‌روزرسانی نشده‌اند، چون بعضی نسخه‌های جدید همین امروز منتشر شده‌اند.
Forwarded from Gopher Academy
تفاوت بین stdout و stderr توی ظاهر ممکنه کوچیک به نظر بیاد، ولی توی دنیای واقعی (به‌خصوص در سرور‌ها، لاگینگ، کانتینرها و automation) خیلی مهمه.


## 🔧 مثال کاربردی: اجرای برنامه و جداسازی خروجی‌ها

فرض کن برنامه‌ای داریم به نام myapp که هم لاگ عادی داره و هم خطا:


// main.go
package main

import (
"fmt"
"os"
)

func main() {
fmt.Fprintln(os.Stdout, "Everything is running fine.") // خروجی عادی
fmt.Fprintln(os.Stderr, "Oops! Something went wrong!") // پیام خطا
}



الان اگه اینو تو ترمینال اجرا کنیم:

go run main.go


هردو پیام روی ترمینال میان. ولی اگه بخوای فقط خروجی معمول رو بریزی تو فایل:

go run main.go > output.txt


📁 نتیجه:
- output.txt: فقط شامل "Everything is running fine."
- پیام خطا همچنان روی ترمیناله

اما اگه بخوای خطا رو هم بریزی تو یه فایل دیگه:


go run main.go > output.txt 2> error.txt



📁 نتیجه:

- output.txt → خروجی عادی (stdout)
- error.txt → پیام خطا (stderr)

---


## 🐳 در دنیای کانتینرها (مثلاً Docker)

خیلی از ابزارهای لاگینگ (مثل fluentd, logstash, یا خود docker logs) فقط stdout و stderr رو بررسی می‌کنن. پس جداسازی درستش باعث میشه:
- مانیتورینگ بهتر انجام بشه
- خطاها مشخص‌تر باشن
- عملکرد بهتر در CI/CD


👑 @gopher_academy
Forwarded from آموزش لینوکس و اوپن سورس
لوبونتو ۲۵.۰۴؛ نگاهی به نسخه LTS بعدی

تیم لوبونتو سخت در تلاش است برای آینده، اما هنوز نتوانسته تغییرات بزرگی را در این نسخه ارائه دهد.

علاوه بر ویژگی‌های جدیدی که با دیگر توزیع‌ها مشترک است، لوبونتو حالا از Qt نسخه ۶.۸.۳ استفاده می‌کند.

در ادامه مسیر، انتظار می‌رود که در نسخه ۲۶.۰۴ پشتیبانی کامل از Wayland اضافه شود و تقریباً همه چیز به Qt6 منتقل شود.
Forwarded from آموزش لینوکس و اوپن سورس
زوبونتو ۲۵.۰۴ دسکتاپ جدید را آورده، اما برای Wayland باید صبر کرد

در نسخه ۲۵.۰۴ زوبونتو (با نام رمز Plucky Puffin)، دو تغییر مهم دیده می‌شود: دسکتاپ به نسخه Xfce 4.20 ارتقاء یافته که شامل بخش‌ها و برنامه‌هایی از Gnome 48 نیز هست.

با اینکه در این نسخه پیشرفت‌هایی در جهت پشتیبانی از Wayland انجام شده، اما هنوز به جایی نرسیده که بتوان یک نشست Wayland را ارائه کرد. فعلاً به‌صورت رسمی باید از Xorg استفاده کرد.

از دیگر تغییرات می‌توان به موارد زیر اشاره کرد:
اضافه شدن پشتیبانی از OpenVPN
پشتیبانی از فرمت‌های تصویری avif، heic، heif و webp بعد از نصب اولیه
عملکرد کلید META برای باز کردن منو بهتر شده و راحت‌تر می‌توان آن را تنظیم کرد
پیش‌نمایش چاپ اکنون از Atril پشتیبانی می‌کند
پشتیبانی از ماشین‌های مجازی بهبود یافته
و همچنین نسخه ۳.۰ برنامه GIMP هم در این نسخه قرار گرفته است.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
انتشار Pinta 3.0؛ ویرایشگر تصویر با پشتیبانی از GTK4

پس از انتشار نسخه ۳.۰ برنامه محبوب GIMP، حالا نوبت به Pinta 3.0 رسیده است؛ یک ویرایشگر تصویر متن‌باز که از برنامه Paint.NET الهام گرفته شده و حالا به GTK4 و libadwaita منتقل شده است.

Pinta برنامه‌ای ساده و سبک برای ویرایش تصویر است و در زبان C# نوشته شده است. بزرگ‌ترین تغییر در نسخه جدید، استفاده از ابزار توسعه GTK4 و کتابخانه طراحی libadwaita است که ظاهر و عملکرد برنامه را مدرن‌تر کرده است.

در نسخه ۳.۰ همچنین شاهد ویژگی‌های جدیدی هستیم:
نصب‌کننده ARM64 برای سیستم‌عامل macOS
افکت‌های تصویری جدید
امکان خروجی گرفتن به فرمت PPM
پشتیبانی از بزرگ‌نمایی تصویر با الگوریتم nearest-neighbor
پشتیبانی از فرمت WebP در ویندوز

اطلاعات بیشتر و لینک دانلود نسخه جدید در سایت رسمی Pinta-Project.com در دسترس است.