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 Linuxor ?
اینم یه فونت که برای برنامه نویسی و چیزای کدی ساخته شده

نصب‌ و توضیحات :
typeof.net/Iosevka

@Linuxor
Forwarded from Software Engineer Labdon
دلیل اینکه در زبان‌هایی مثل Go یا Rust یا حتی C دچار سردرگمی میشید، بخاطر این هست که میخواهید ساختارهایی که از زبان‌های شی‌گرا در ذهن دارید رو دقیقا به همون شکل در این‌ها هم داشته باشید. این زبان‌ها هم تا حدی این توهم رو ایجاد میکنند که اینکار شدنی هست؛ و میتوان گفت که همینطور است، ولی فقط در ظاهر!

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

مثلا اگر امروز به یک برنامه‌نویس Go یا Rust یک پروژه‌ی بانکی یا یک سیستم فروشگاه رو محول کنید، به احتمال زیاد این پروژه رو مبتنی بر DDD انجام خواهد داد! حتی یک برنامه‌نویس Clojure هم احتمالا همین رویه را دنبال خواهد کرد! الان احتمالا در ذهن شما این سوال پیش آمده که DDD؟ چطور همچین چیزی ممکن هست؟ مگه این برای شی گرایی نیست؟ خیر، «شما» اون رو با شی گرایی یاد گرفتید، ولی خودش یک ایده‌ی عمومی است.

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

این دیدگاه، شما را دچار مشکل میکند، و دلیل اصلی اش این است که شما حتی در زبان‌های شی‌گرا هم به درستی درک نکرده بودید که کلاس چیست! و همان دیدگاه اشتباه خود درباره کلاس رو به سایر زبان‌ها هم انتقال میدهید!

وقتی حرف از کلاس میشود، بیشتر افراد میکنند کلاس یک بلاک از کد است که تعدادی فیلد و متد را بین دو {} گرد هم آورده است.

اما کسی سوال نمیکند خب چرا اینکار را کردند؟ فقط چون میخواستند یک سری فیلد داشته باشند و یک سری تابع بتوانند روی ان‌ها کار کنند؟

خب این رو که از قدیم در همه زبان‌ها داشتیم. مگر اصلا جور دیگری میشود برنامه نویسی کرد؟ در تمام زبان‌ها یک سری دیتا داریم و یک سری تابع که روی آن دیتا کار میکنند. قدیمی ترین کد C ای که میتوانید پیدا کنید را باز کنید، احتمالا در آن یک استراکت پیدا میکنید به همراه تعدادی تابع که روی آن استراکت کار میکنند. این رویه قبل از شی گرایی هم وجود داشته... فقط چون این دو را کنار هم درون {} قرار میدهید اسمش میشود کلاس؟ یعنی فقط چون میخواستند کنار هم باشن؟ که تنها نباشن؟ غصه نخورن؟ فکر نمیکنید شاید دلایل مهمتری برای این موضوع وجود داشته؟

ویژگی‌هایی وجود دارد که باعث میشود کلاس، کلاس بشود:

۱. کلاس دارای مکانیزم وراثت است.
۲. کلاس پلی مورفیسم مبتنی بر وراثت را فراهم میکند (متدهای virtual)
۳. از روی کلاس، میتوان آبجکتی در حافظه تولید کرد.
۴. کلاس آبجکت‌ها را دسته بندی میکند (برای همین اسمش class است). یعنی باید بتوان جواب این سوال را جویا شد: ایا فلان آبجکت جزو فلان کلاس است؟
۵. آبجکت‌های ساخته شده از روی کلاس، دارای لایف تایم متفاوتی از سایر بلاک ها هستند. ابجکت‌ها حالت رفرنس دارند. به این معنی که تقریبا در تمام زبان‌ها، در هیپ قرار میگیرند.

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

اینکه شما یک استراکت بسازید، و چند تابع تعریف کنید که روی آن استراکت کار کنند، کدام یک از ویژگی‌های بالا را شامل میشود؟ این دو بخش لزومی هم ندارد که جدا از هم باشند. مثلا در zig میتوانید توابع را عین یک کلاس درون همان بلاک مربوط به استراکت قرار دهید. ولی باز هم در صورت انجام اینکار، تبدیل به کلاس نمیشود چون هیچکدام از ویژگی‌های بالا را ندارد.

یا مثلا در C یا سایر زبان‌ها، فیلد‌ها و متدها را در ماژول‌ها گرد هم میاورند. ایا با اینکار آن ماژول تبدیل به کلاس شده است؟

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

این همان جایی است که در زبان‌هایی مانند Go و Rust و Zig  و C سایرین به مشکل بر میخورید. برای همین هست که میگویند این‌ها را با زبان‌های شی گرا اشتباه نگیرید. چون این‌ها از نظر ظاهری، شاید شرایطی را فراهم کنند که به چشم شما مشابه چیزی باشد که در شی گرایی به یاد داشتید، ولی از نظر Semantics با زبان‌های شی گرا متفاوت اند.

| <Amirreza Gh/>
Forwarded from Linuxor ?
اگه تازه می‌خوای بیای سمت ‌Vue این وبسایت خیلی کارتو جلو می‌ندازه یه مجموعه از ابزارها (utilities) برای Vue 3 هست که به‌صورت Composable طراحی شدن.

vueuse.org

@Linuxor
Forwarded from Linuxor ?
می‌خوای بدون دردسر SPA (SPA وبسایت تک صفحه ای هستش که با کلیک روی بخش هاش محتواش رفرش می‌شه بجای باز شدن صفحه جدید) بسازی ولی نمی‌خوای React یا Vue اضافه کنی؟ jquery-pjax یه گزینه سبک و سرراسته‌ست که با jQuery کار می‌کنه و نیاز به تغییر ساختار بزرگ نداره. تنها کاری که می‌کنی لینک‌ها و container صفحه رو مشخص می‌کنی.
github.com/defunkt/jquery-pjax

@Linuxor
بزرگترین حمله‌ی supply-chain تاریخ دیروز اتفاق افتاد.
با یه ایمیل فیشینگ ساده به حساب‌های اصلی دسترسی گرفتند و نسخه‌های آلوده منتشر شد.

تو متن نوشته اگه احراز هویتت رو آپدیت نکنی حسابت لاک میشه و تمام، تارگت کلیک کرد.

باید به همه چیز شک داشت مگه اینکه خلافش ثابت بشه.

@DevTwitter | <Sabber/>
Forwarded from Science Factory News
🎧 اپیزود ۶، فصل دوم | امیرحسین پناهی‌فر

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

📝 برای امیرحسن یادگیری یعنی اینکه سخت نگیری، از قدم‌های کوچیک شروع کنی و کنجکاوی‌ت رو زنده نگه داری.

🔄 توی پروژه پایان‌نامه‌اش «مدل‌سازی جوامع احساسی» رو بررسی کرد و علاقه‌اش به هوش مصنوعی و سیستم‌های شبکه‌محور عمیق‌تر شد.

🌱 از روزهای کرونا گفت، از ورژن‌های مختلف خودش و اینکه چطور اصالت درونیش رو حفظ کرده و بذری از خودش رو توی دل آدم‌ها می‌کاره.

🏔️برای امیرحسین، علم یک مسیر جمعیه؛ چیزی فراتر از رقابت. باور داره که ما ادامه‌دهنده‌ی راه کسانی هستیم که قبل از ما چراغ علم را روشن نگه داشتن. هرکس پله‌ای به این مسیر اضافه می‌کنه، و در نهایت با هم آینده رو می‌سازیم.

⚔️«گلادیاتور زندگی» خودشه، که ارزش لحظه‌های زود گذر رو به خوبی درک ‌کرده.

🧱 پیام آخرش برای ساینس فکتوری: «آیین چراغ خاموشی نیست؛ وقتی شروع کردی، ادامه بده تا ته راه.»

🔗 کست باکس

🔗 اسپاتیفای

@sciencenfactory
👌1
Forwarded from Linuxor ?
Media is too big
VIEW IN TELEGRAM
یه ویدیو از CNCF هست که خیلی خوب توضیح می‌ده چطور دیتابیس هاتون رو با Vitess گسترش بدید و scale کنید

@Linuxor
Forwarded from Golden Code (@lix)
گاهی در API یا فرم‌ها نیاز داری مطمئن بشی یک آرایه ورودی دقیقا شامل کلیدهایی باشه که انتظار داری. از لاراول 10.9 به بعد میتونی بهراحتی با rule جدید required_array_keys این کارو انجام بدی.

📌 مثال:

فرض کن ورودیه API به این شکل میاد:

{
  "user": {
    "name": "Ali",
    "email": "[email protected]"
  }
}

برای اینکه مطمئن بشیم حتما کلیدهای name و email داخل user وجود دارن، کافیه اینطوری بنویسیم:

$request->validate([
    'user' => ['required', 'array', 'required_array_keys:name,email'],
]);

حالا اگه یکی از این کلیدها در ورودی نبود، لاراول خطا میده.

این روش خیلی تمیزتر و کوتاه‌تر از نوشتن چندین rule برای هر فیلده و مخصوصا در API ها بسیار کاربردیه.
#Laravel  #لاراول

@GoldenCodeir
(به منبع و مثالش دقت کنید 👇🏾)
https://x.com/PovilasKorop/status/1964988360193155402?s=35
1
سه Collection Method‌ کم تر شناخته شده در لاراول
1- متد pipe
بهمون اجازه میده که یه منطق سفارشی رو وسط زنجیره قرار بدیم بدون اینکه نیاز باشه Collection رو قطع کنیم و متغیر جدید بسازیم ، در نتیجه کد تمیزتر و خواناتر میشه (تصویر اول)
بدون pipe باید مرحله به مرحله متغیر بسازیم.
2- متد mapInto
هر عنصر Collection را به یک شیء از یک کلاس تبدیل می‌کنه.
برای مثال فرض کنید که کلاسی به نام UserData داریم که شامل پروپرتی های name
و registeredAt هستش(تصویر دوم)
در تصویر سوم با استفاده از این متد ، کالکشن رو تبدیل به آرایه ای از آبجکت ها میکنیم.
3- متد reduce
این متد یک جمع‌بندی یا تجمیع روی Collection انجام می‌ده مثل حلقه‌ای که مقدار اولیه می‌گیره و روی هر عنصر اعمال می‌شه (تصویر چهارم)

@DevTwitter | <Babak Mirhosseini/>
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 یاد گرفتن HTML، CSS و JavaScript و ساختن لندینگ ‌پیج رو توسعه دهنده وب صدا نزنید.

#توییت

@TheRaymondDev
Forwarded from Curious Geek ⚡️
تا الان شده بخواهید وقتی git push میزنید نسخه جدید پروژه خودش روی سرور دیپلوی بشه؟ 🤔

با این سه پروژه میتونید پیاده سازی چرخه GitOps در سازمان های کوچک و متوسط رو پیش ببرید.

1⃣ thegeeks.ir/dokku/dokku
2⃣ thegeeks.ir/coollabsio/coolify
3⃣ thegeeks.ir/dokploy/dokploy

🆔 @Hiradsajde
Forwarded from AiSegaro 👾
Media is too big
VIEW IN TELEGRAM
آیفون ۱۷ اینجاست! 🤯 کدوم مدل برای شما مناسبه؟

بالاخره انتظارها به سر رسید و خانواده آیفون ۱۷ معرفی شد! 🤩

آیفون ۱۷: با نمایشگر فوق‌العاده و تراشه قدرتمند A19

آیفون ایر: باریک‌ترین آیفون تاریخ با طراحی خیره‌کننده

آیفون ۱۷ پرو و پرومکس: قدرتمندترین آیفون‌ها با دوربین حرفه‌ای و زوم اپتیکال ۸ برابر! 📸

امسال اپل با معرفی مدل جدید آیفون ایر همه رو غافلگیر کرده. این گوشی با ضخامت تنها ۵.۶ میلی‌متر، باریک‌ترین آیفونیه که تا به حال ساخته شده!
از طرفی، مدل‌های پرو و پرومکس با دوربین سه‌گانه ۴۸ مگاپیکسلی و زوم اپتیکال بی‌نظیر، یه استودیوی عکاسی کامل توی جیب شماست! 🌟
برای اینکه بدونید کدوم مدل برای شما ساخته شده، این ویدیو رو تماشا کنید. 👆


📽 زیرنویس فارسی
🧠 مناسب برای همه، چه مبتدی چه حرفه‌ای
🌐 ترجمه این ویدیو با وب‌سایت isega.ro انجام شده — حتماً سر بزن!
☯️ 💳 با حمایت (Donate) از من، محتوای بیشتری در آینده قرار می‌دهم. لینک دونیت (ریالی و کریپتو): donate.isega.ro
📌 برای دیدن قسمت‌های بعدی کانال رو دنبال کن:
📺🌐 @AiSegaro
🚀 هر روز یک قدم نزدیک‌تر به آینده‌ای هوشمند!
📤 بازنشر آزاد با ذکر منبع 🙏❤️
Forwarded from AiSegaro 👾
Media is too big
VIEW IN TELEGRAM
محصولات جدید اپل اینجا هستند! 🤩 از آیفون ۱۷ تا اپل واچ سری ۱۱ و ایرپاد پرو 3

اپل در رویداد اخیرش از جدیدترین گجت‌هاش رونمایی کرد! 🚀 خلاصه این رویداد در 16 دقیقه خدمت شما
توی این ویدیو می‌تونید با تمام محصولات جدید اپل آشنا بشید:

ایرپاد Pro 3: با حذف نویز دو برابر قوی‌تر و قابلیت ترجمه زنده! 🎧

اپل واچ سری 11, SE3, Ultra 3: با طراحی جدید، قابلیت‌های سلامتی پیشرفته و عمر باتری بیشتر ⌚️

آیفون 17, Air, 17 Pro: با طراحی‌های خیره‌کننده، دوربین‌های فوق‌العاده و تراشه‌های قدرتمند A19 و A19 Pro 📱
اگه از طرفداران اپل هستید، این ویدیو رو از دست ندید! 😉

📽 زیرنویس فارسی
🧠 مناسب برای همه، چه مبتدی چه حرفه‌ای
🌐 ترجمه این ویدیو با وب‌سایت isega.ro انجام شده — حتماً سر بزن!
☯️ 💳 با حمایت (Donate) از من، محتوای بیشتری در آینده قرار می‌دهم. لینک دونیت (ریالی و کریپتو): donate.isega.ro
📌 برای دیدن قسمت‌های بعدی کانال رو دنبال کن:
📺🌐 @AiSegaro
🚀 هر روز یک قدم نزدیک‌تر به آینده‌ای هوشمند!
📤 بازنشر آزاد با ذکر منبع 🙏❤️
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۸۶۶

در عشق موافقت بود چون جانی
در مذهب هر ظریف معنی دانی
از سی و دو دندان چو یکی گشت دراز
بی دندان شد از چنان دندانی

#مولانا | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
A-go-ha! Gopher Hawaiian Shirt Patterns

🟢 خلاصه مقاله:
**
در اواخر تابستان، خبر جالبی برای جامعهٔ Go منتشر شده است: در سال ۲۰۲۳ راس کاکس همراه با رنه فرنچ، خالق ماسکات گوفر، پیراهن‌های هاوایی با طرح‌های مرتبط با Go طراحی و چاپ کردند. اکنون الگوهای این طرح‌ها در چند رنگ به‌طور عمومی در دسترس قرار گرفته‌اند تا علاقه‌مندان بتوانند نسخه‌های خودشان را تهیه یا از آن‌ها استفاده خلاقانه کنند. این یک حرکت سرگرم‌کننده و نمادین از فرهنگ جامعهٔ Go است که حال‌وهوای برنامه‌نویسی را با استایل تابستانی پیوند می‌دهد.

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


👑 @gopher_academy
Forwarded from Project X Channel
Xray-core v25.9.10 正式版,支持 VLESS Reverse Proxy 极简配置

VLESS NFT 自成一个系列,每个图片都不同且只有一个,你可以选择自己喜欢的图片来收藏,先到先得

https://opensea.io/collection/vless 首发放出了二十个不同的 VLESS NFT 图片

本次还放出了两个稀缺的 Project X NFT,如果你有余力,请支持一下:https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/1
Forwarded from SoniaCircuit (Sonia Fatholahi)
خیلی خلاصه
اومدن انکریپشن رو به vless اضافه کردن اسمشم کذاشتن Post quantum encryption