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

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Curious Geek ⚡️
پیرامون انواع بلاکچین ها
بلاکچین عمومی : برای همه باز است و محدودیتی در مشارکت وجود ندارد
بلاکچین خصوصی : دسترسی محدود به سازمان های خاصی دارد
بلاکچین کنسرسیومی: توسط گروهی از افراد و سازمان ها مدیریت می‌شود
هیبریدی: ترکیبی از عمومی و خصوصی برای انعطاف بیشتر است
برای مثال بیتکوین و اتر از بلاکچین های عمومی هستند.
🆔 @Hiradsajde
Forwarded from کدنویس یکروزه (𝕻𝖊𝖉𝖗𝖆𝖒 𝕽𝖆𝖍𝖎𝖒𝖎)
مدیریت-هزینه.htm
32.2 KB
اَپلیکیشن مدیریت هزینه ها
امنیت مضاعف و سه زبانه!

   توقع خودم رو از اپلیکیشن تک صفحه (SPA) بالا بردم که بدون رفرش صفحه یعنی بدون Server  و اینجا حتا بدون دیتابیس امن قراره کار کنه! کنجکاوی هم نگذاشت دست از سر هوش مصنوعی بسیار قدرتمند چینی به نام Deep Seek بردارم.
بنابراین برنامه‌ی دفتر تلفن پیشرفته رو که خودش نوشته بود بهش دادم و در قالب یک برنامه ی جدید برای «ثبت هزینه‌های ماهانه» این تغییرات رو ازش خواستم:
- اپلیکیشن سه زبانه: فارسی، انگلیسی و چینی!
- رمز عبور Hash یا رمزنگاری شده تا از لوکال استوریج داخل مرورگر قابل مشاهده نباشه!
- لیست هزینه ها از گران به ارزان یا برعکس قابل سورت و مرتب سازی!
- جمع مبلغ خریدها محاسبه و در زیر جدول هزینه‌ها.

  بله حدود ۶۰۰ خط کد پیچیده رو در ۵ دقیقه نوشت گذاشت جلوم! در حالی که قبل از این برنامه‌ی ساده و ۵۰ خطی محاسبه‌ی شارژ ساختمان رو یک ساعت طول کشید با کلی دیباگ و سرچ بنویسم!

ابزارهای مرتبط:
تبدیل وب به EXE
تبدیل وب به APK

#javanoscript  #html 
~> Oh Shit, Git!?!

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

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

🔗 مطالعه نوشته
🔗 صفحه گیت‌هاب

پ.ن:
توضیحات کپشن از خود وب‌سایت OhShitGit کپی شده...
#گیت #ترفند #میم #فان #راهنما #معرفی
~> @PinkOrca 🩷
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Gopher Academy
🔵 عنوان مقاله
Memos: A Privacy-First Go-Powered Note Taking App

🟢 خلاصه مقاله:
مقاله به معرفی یک برنامه وب جامع برای گرفتن یادداشت، که با مجوز MIT ارائه شده و قابل میزبانی شخصی است، پرداخته است. این برنامه از فریم‌ورک Echo استفاده می‌کند و داده‌های خود را در یک فایل SQLite ذخیره می‌کند. از آنجایی که این برنامه به طور مرتب به‌روزرسانی می‌شود، کاربران می‌توانند از پیشرفت‌ها و بهبودهای جدید بهره‌مند شوند. کد منبع برنامه در یک مخزن GitHub قابل دسترسی است، که این امکان را به کاربران می‌دهد که به صورت مستقل بر روی سرور خود برنامه را نصب و راه‌اندازی کنند. این برنامه گزینه‌ای مناسب برای افرادی است که به دنبال راه‌حلی امن و قابل تعیین برای ذخیره‌سازی و مدیریت یادداشت‌های خود هستند.

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


👑 @gopher_academy
Forwarded from Meitix
مدیریت حافظه تو برنامه‌نویسی یه موضوع خیلی مهمه. وقتی برنامه‌ات چیزایی رو تو حافظه می‌سازه (مثل متغیر یا آبجکت)، باید یه جایی بهشون بگی "خب، کارت تموم شد، برو بیرون!". اما خب، کی حوصله داره این کارو دستی کنه؟ اینجا GC (Garbage Collection) میاد کمکمون.

توی گولنگ، یه روش معروف برای GC استفاده می‌شه به اسم Mark and Sweep. حالا چجوری کار می‌کنه؟

ماجرا از این قراره:

ا GC میاد همه چیزایی که تو حافظه‌ان رو می‌بینه. ابتدا روت هارو برسه میکنه(استک، گلوبال و ...) اونایی که هنوز برنامه بهشون نیاز داره رو پیدا می‌کنه و یه علامت روشون می‌زنه (این می‌شه مرحله مارک). بعد اخر سر بقیه چیزا که علامت نخوردن رو پاک می‌کنه (اینم می‌شه سوییپ).

حالا تکنیک Tri-Color چیه؟

یه جورای مدل خفن‌تر از همین Mark and Sweepه. آبجکت‌ها رو به سه دسته تقسیم می‌کنه:

سفید: چیزایی که هنوز بررسی نشدن.

خاکستری: اونایی که پیدا شدن ولی همه لینک‌هاشون چک نشده.

سیاه: اونایی که کامل بررسی شدن و دست بهشون نمی‌زنه.


اینجوری کار GC خیلی نرم‌تر و بهینه‌تر انجام می‌شه. مثلاً اگه وسط کار بخوای یه چیزی اجرا کنی، GC گیر نمی‌کنه که وایسا همه چی تموم شه!

در کل، گولنگ این سیستم رو خیلی خوب طراحی کرده که هم کارایی بالاتر بره، هم ما درگیر پاک کردن حافظه نشیم.

@meiti_x
Forwarded from Meitix
During this process, the running application is called the mutator. The mutator runs a small function named write barrier that is executed each time a pointer in the heap is modified. If the pointer of an object in the heap is modified, which means that this object is now reachable, the write barrier colors it grey and puts it in the grey set


@meiti_x
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
انجام قرارداد برای تبادل مجوزهای متقابل بین توزیع های لینوکس:

predator-os, emperor-os,little-psycho,Hubuntu

با شرکت Open Invention Network (OIN) در زمینه حق استفاده از اختراعات،محصولات و ثبت پتنت در رابطه با سیستم‌های لینوکسب بین یکدیگر را دارند.

این قرارداد به منظور موارد زیر صورت گرفت:

حمایت از اکوسیستم نرم‌افزارهای متن‌باز
کاهش خطر نقض حق اختراع
سو استفاده نفر سوم از محصولات متن باز
Forwarded from Go Casts 🚀
هفته نامه Golang Nugget رو اگه دوست داشتید دنبال کنید.
منابع خوبی رو معرفی میکنه
این یه نمونه ش هست

https://golangnugget.com/p/go-concurrency-upgrade-strategies-memory-management-january-6-2024

این خبرنامه رو آقا لیام عزیز مدیریت میکنه
https://x.com/liammanesh


@gocasts
می‌دونستی می‌تونی کوئری‌هات رو هوشمندانه‌تر و بهینه‌تر کنی؟
اگه توی پروژه‌هات همیشه برای فیلتر کردن محتوا بر اساس فیلدخاصی شرط می‌نویسی، می‌تونی این شرط رو یک بار برای همیشه به مدل اضافه کنی و از تکرار کدهای اضافی خلاص بشی!
کد اسلاید رو ببین:
ما یه Global Query Scope ساختیم به اسم TeamScope و به مدل Article اضافه کردیم. از این به بعد، هر وقت کوئری مربوط به مقالات رو بزنیم، خودکار فقط مقالات تیم کاربر لاگین شده برمی‌گرده.
نکته مهم:
این کار رو می‌تونید با سه روش مختلف پیاده‌سازی کنید که هر کدوم بسته به نیازتون کاربردی هستن.
نتیجه؟
کدهای تمیزتر و حرفه‌ای‌تر
حذف شرط‌های تکراری
راحت‌تر کردن نگهداری و گسترش پروژه

@DevTwitter | <Saber Qadimi/>
Forwarded from Anophel | آنوفل
💙 چرا سرورلس (Serverless) یک کلاه‌برداریه؟
خیلی‌ها این روزها دوباره دارن از سرورلس به سمت سرورهای اختصاصی و VPS برمی‌گردن. چند سال پیش همه دنبال سرورلس بودن، ولی الان؟ دیگه اوضاع فرق کرده! توی این پست می‌خوام چند تا از دلایلی که سرورلس یه انتخاب ضعیفه رو به زبون ساده باهاتون به اشتراک بذارم.

1️⃣ قیمت سرسام‌آور
شرکت‌های بزرگی مثل AWS و Azure دقیقاً می‌دونن چطوری شما رو قفل سیستم خودشون کنن. وقتی واردش می‌شید، بیرون اومدن ازش هزینه‌های وحشتناک داره: 

🔹انتقال دیتا؟ 
🔹تغییر معماری؟

  نتیجه؟ یه قبض ماهانه که هیچی ازش نمی‌فهمید ولی قطعاً خوشحال‌تون نمی‌کنه.
به‌قول یکی از مدیران بزرگ، اومدن روی VPS می‌تونه هزاران دلار صرفه‌جویی کنه. تازه، وقتی خودت سیستم رو مدیریت می‌کنی، دستت بازتره و همه‌چی رو کنترل می‌کنی.


2️⃣پیچیدگی غیرضروری
سرورلس به‌شدت پیچیده‌ست. مثال ساده؟  یه کانفیگ اشتباه می‌تونه میلیاردها تومان خسارت بزنه

بودند کسایی که به‌خاطر فراموش کردن تنظیمات S3، هزینه‌های سنگینی دادن!
 
توی VPS، همه‌چی رو می‌تونی ساده و شفاف مدیریت کنی. مثلاً یه آموزش ساده برای قفل کردن سرور با Fail2Ban و غیرفعال کردن رمز ورود برای کاربر Root می‌تونه امنیت رو به‌شدت بالا ببره.

3️⃣آپتایم (Uptime) یا بهتر بگم، قطعی‌های سرورلس
وقتی سیستم ساده‌تر باشه، کمتر قطع می‌شه. از وقتی از سرورلس به VPS مهاجرت کردم، سرویس‌هام هیچ‌وقت خودبه‌خود قطع نشدن. ولی سرورلس؟ 

🔹مثلاFirebase Auth تو سال ۲۰۲۳ چند ساعت کامل از دسترس خارج شد. 
🔹 یا AWS همون سال قطعی داشت. 
🔹حتی Azure هم قربانی یه قطع برق بزرگ شد! 

آپتایم ادعایی این شرکت‌ها معمولاً روی کاغذه. ولی واقعیت؟ یه اشتباه کوچیک، یه کلیک اشتباه و تمام اون ۹۹.۹۹٪ می‌پره.


4️⃣سرورلس و داستان امنیت
با سرورلس، هر سرویس جداگانه باید کانفیگ بشه. برای هر میکروسرویس
باید دستی کانفیگ امنیتی انجام بدی. این یعنی کار چند برابر

ولی روی VPS؟ یه سرور، یه کانفیگ، تمومه!

5️⃣ دی‌داس (DDoS) و راه‌حل‌های بهتر
بعضی‌ها می‌گن سرورلس بهتون محافظت رایگان DDoS
می‌ده. اما یه نکته‌ی جالب: 
شما همون محافظت رو می‌تونید با Cloudflare به‌صورت رایگان بگیرید.  کافیه پروکسی Cloudflare رو فعال کنید و SSL/TLS رو روی حالت Full بذارید. همون یه کلیک، همون امنیت. نیازی به سرورلس نیست.

نتیجه‌گیری: چرا سرورلس دیگه جواب نمی‌ده؟
🔹سرورلس گرونه. 
🔹 پیچیده‌ست. 
🔹 امنیتش دردسره. 
🔹 آپتایمش همیشه اون‌قدر که می‌گن، نیست. 
🔹 و مهم‌تر از همه، امروز ابزارهایی هستن که می‌تونن جایگزینش بشن. از PocketBase و Appwrite گرفته تا Supabase.

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

🔺 نظر شما چیه؟ شما سرورلس استفاده می‌کنید یا VPS؟ خوشحال می‌شم تجربه‌هاتون رو بخونم.



#سرورلس #میکروسرویس #serverless #vps
Please open Telegram to view this post
VIEW IN TELEGRAM
ماجرای crash کردن Windows 95 بعد از 49.7 روز!

امروز به یه مطلب جالبی برخوردم.
وقتی مایکروسافت نسخه اولیه ویندوز 95 رو منتشر کرد، بعد از مدتی متوجه شد که کامپیوتر هایی که از این سیستم عامل استفاده میکنن اگر 49.7 روز به طور مداوم روشن بمونن ویندوز یهو crash میکنه.

بعد از بررسی متوجه میشن علتش type متغیری هست که زمان روشن بودن سیستم(Uptime) رو نگهداری میکنه. این متغیر زمان روشن بودن سیستم رو به میلی ثانیه نگه میداره و type رو unsigned int 32 انتخاب کرده بودن که این تایپ نهایتا تا عدد 4,294,967,295 رو‌ میتونه توی خودش ذخیره کنه و چون بعد از 49.7 روز مقدار میلی ثانیه های گذشته از روشن بودن سیستم به عدد بالا میرسه، overflow رخ میده و این متغیر دوباره به 0 ریست میشه!

حالا بعضی از قسمت های سیستم عامل دائم در حال بررسی مقدار این متغیر هستن و این فرض رو دارن که این متغیر دائم باید در حال زیاد شدن باشه، وقتی که میبینن یهو ریست شده براشون غیر منتظرس و crash رخ میده.

بعد از اینکه مشکل رو پیدا کردن type رو به unsigned int 64 تغییر دادن و مشکل حل شد

@DevTwitter | <Bassam Nazemi/>
✳️ سایت لیت کد (LeetCode) یک پلتفرم برای کمک به ارتقای مهارت‌ها، گسترش دانش و آمادگی برای مصاحبه‌های فنی
گروهی دیگر برای machine learning نمونه این سایت را ساختند به نام Deep-ML

🔥 این سایت، شامل مفاهیم تمرینی برای یادگیری ماشین و هوش مصنوعی.
برای هر مساله توضیحاتی ارائه شده و میشه به‌صورت آنلاین کدنویسی و نتیجه رو برای چک کردن سابمیت کرد.

🗓 بیشتر تمریناتش مربوط به جبر خطی، یادگیری ماشین و یادگیری عمیق هست.
پروژه عملی مثل شبکه‌های عصبی یا بینایی کامپیوتر (Computer Vision)
ابزارهایی مثل TensorFlow و PyTorch و ...
توضیحاتش ساده و کاربردیه

🗓 سطح‌بندی سوال‌هاش
می‌تونین با مفاهیم پایه‌ای مثل رگرسیون و طبقه‌بندی شروع کنن
سطح متوسط روی موضوعاتی مثل شبکه‌های عصبی و تنظیم مدل‌ها تمرکز داره
حرفه‌ای‌ها هم سوال‌های پیچیده‌تری مثل طراحی مدل‌های پیشرفته یا حل پروژه‌های واقعی پیدا می‌کنن

❤️ ممنون از حمایت هاتون 💐🌺
#AI
🌐 خب خب خب لایه شبکه (Network Layer) در مدل OSI

لایه شبکه، سومین لایه از مدل OSI، مسئول انتقال داده‌ها بین شبکه‌های مختلفه. این لایه کاری می‌کنه که داده‌ها از یه مبدأ به مقصد مشخص (تو هر گوشه دنیا) برسن، بدون این که مسیر و راهش گم بشه. این لایه مثل یه سیستم حمل‌ونقل بزرگ عمل می‌کنه که بسته‌های اطلاعاتی رو از یه نقطه به نقطه دیگه منتقل می‌کنه. بیاین جزئیاتش رو مرحله‌به‌مرحله بررسی کنیم. 🚀

📍 وظایف اصلی لایه شبکه

🧭 آدرس‌دهی منطقی (Logical Addressing):
هر دستگاه تو شبکه یه آدرس منحصربه‌فرد داره که بهش آدرس IP می‌گن. این آدرس مشخص می‌کنه داده‌ها باید دقیقاً به کجا برن.
مثال:
فرض کن می‌خوای یه بسته پستی ارسال کنی. بدون داشتن آدرس خونه مقصد، عملاً ارسال بسته غیرممکنه. تو شبکه هم آدرس IP دقیقاً مثل آدرس خونه عمل می‌کنه.

🛣️ مسیریابی (Routing):
وقتی داده‌ها باید از یه شبکه به شبکه دیگه برن، این لایه تصمیم می‌گیره که از چه مسیری برن تا سریع‌تر و مطمئن‌تر به مقصد برسن.

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

📦 بسته‌بندی داده‌ها (Packetization):
داده‌هایی که از لایه انتقال (Transport Layer) میان، به بخش‌های کوچیک‌تری به اسم پکت (Packet) تقسیم می‌شن. هر پکت شامل اطلاعات زیره:
آدرس مبدأ: دستگاهی که داده رو ارسال کرده.

آدرس مقصد: جایی که داده باید بره.

داده اصلی: همون اطلاعاتی که باید منتقل بشه.

اطلاعات کنترلی: برای اطمینان از انتقال درست داده.


🔍 مثال:
فرض کن می‌خوای یه پیتزای بزرگ رو با دوستات بخوری، ولی ظرفت کوچیکه.
پیتزا رو به برش‌های کوچیک تقسیم می‌کنی و هر برش رو جداگونه می‌فرستی.

🚦 کنترل تراکم (Congestion Control):
اگه یه شبکه شلوغ بشه و داده‌ها نتونن به موقع منتقل بشن، این لایه کمک می‌کنه ترافیک مدیریت بشه.
مثال:
فرض کن تو صف یه سوپرمارکت شلوغی. فروشنده سعی می‌کنه با اضافه کردن صندوق‌دار بیشتر، صف رو کوتاه‌تر کنه. لایه شبکه هم همین طور ترافیک شبکه رو کنترل می‌کنه.

🔧 تکه‌تکه کردن و دوباره‌سازی (Fragmentation and Reassembly):
گاهی وقتا داده‌ها بزرگ‌تر از ظرفیت انتقال یه شبکه هستن. این لایه داده‌ها رو به قطعات کوچیک‌تر تقسیم می‌کنه و وقتی به مقصد رسید، دوباره به هم وصلشون می‌کنه.
مثال:
فرض کن یه مبل بزرگ رو می‌خوای از در کوچیک خونه رد کنی. مبل رو باز می‌کنی، قطعاتش رو یکی‌یکی رد می‌کنی و دوباره اون‌طرف سر هم می‌کنی.

⚙️ پروتکل‌های مهم لایه شبکه
IPv4 (Internet Protocol Version 4):
پرکاربردترین پروتکل برای آدرس‌دهی و مسیریابی.
از آدرس‌های ۳۲ بیتی استفاده می‌کنه (مثلاً: 192.168.1.1).

IPv6 (Internet Protocol Version 6):
نسخه جدیدتر IPv4 که ظرفیت بیشتری برای آدرس‌دهی داره (۱۲۸ بیتی).
مشکل کمبود آدرس‌های IPv4 رو حل کرده.

ICMP (Internet Control Message Protocol):
برای ارسال پیام‌های کنترلی (مثل خطاها) و تست شبکه (مثل ابزار Ping).

ARP (Address Resolution Protocol):
تبدیل آدرس IP به آدرس فیزیکی (MAC Address).

🔄 انواع ارتباطات تو لایه شبکه
تک‌پخشی (Unicast):
ارسال پکت فقط به یه مقصد خاص.
مثال: ارسال ایمیل به مدحج.

چندپخشی (Multicast):
ارسال پکت به گروهی از دستگاه‌ها.
مثال: استریم زنده یه بازی برای چند کاربر خاص.

همگانی (Broadcast):
ارسال پکت به همه دستگاه‌های یه شبکه.
مثال: اعلام عمومی پیام تو یه گروه چت.

🎯 جمع بندی
لایه شبکه یه پل حیاتی بین دستگاه‌ها تو شبکه‌های مختلفه. این لایه مطمئن می‌شه که هر پکت به موقع و بدون اشتباه به مقصدش برسه. با وظایفی مثل مسیریابی، آدرس‌دهی، و کنترل ترافیک، این لایه ستون فقرات اینترنت و شبکه‌های مدرنه. بدون لایه شبکه، ارتباطات جهانی غیرممکن بودن 🌍

#⃣ #network




🥷 CHANNEL | GROUP
Media is too big
VIEW IN TELEGRAM
لطفا این ۵ دقیقه رو توی هر سن و سالی که هستید ببینید و به خانواده هاتونم نشون بدید !

پی‌نوشت
آقای علی عبدالعالی ۴، ۵ سال همسایه ما بودن، یکی از افرادی که خیلی تلاش کردن توی ایران برای تغییر و تحول توی سیستم آموزشی، و تا جایی که تونستن در مدارسی که دسترسی داشتن این سیستم رو تا حد خیلی خوبی عملی کردن و همچنان هم در حال تلاش برای تغییر این سیستم اموزشی در کل کشور هستن و واقعا کارشون با ارزشه سعی کنید به اشتراک بزارید ❤️


🚀 @coolycode
تجربه نشون داده کسایی که با اسکریپت آرچ‌اینستال آرچ رو نصب می‌کنن، در انتها با برخورد به اولین مشکل نمیتونن رفعش کنن😁 بخصوص مشکلاتی که نیازمند chroot زدن به سیستم هستش.



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


@SohrabContents
Forwarded from Gopher Academy
🔵 عنوان مقاله
Build Go Apps using Project IDX and the Gemini API

🟢 خلاصه مقاله:
IDX یک فضای کاری آنلاین مجهز به هوش مصنوعی است که توسط گوگل توسعه یافته و برای توسعه اپلیکیشن‌های فول‌استک طراحی شده است. این پلتفرم به توسعه‌دهندگان امکان می‌دهد تا بر روی توسعه کاربردی در زبان برنامه‌نویسی Go تمرکز کنند. IDX با ارائه ابزارها و خدمات مختلف، فرایند توسعه نرم‌افزار را ساده‌تر و سریعتر می‌کند. بهره‌گیری از IDX برای کار با Go نیازمند دانستن اصول اولیه استفاده از این پلتفرم می‌باشد، که شامل نحوه راه‌اندازی پروژه‌ها، تنظیم محیط توسعه و استفاده از امکانات مختلف IDX برای بهینه‌سازی فرآیند توسعه است. این مقاله به عنوان راهنمایی برای شروع به کار با IDX در پروژه‌های مبتنی بر زبان Go عمل می‌کند و نکات کلیدی برای استفاده موثر از این ابزار را ارائه می‌دهد.

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


👑 @gopher_academy
همزمانی (Concurrency) در لاراول 11 را بیشتر بشناسیم
همزمانی یا Concurrency در Laravel نقش مهمی در بهبود عملکرد و مدیریت بار دارد. با استفاده از مکانیزم Queue و قابلیت Task Scheduling، می‌توان وظایف را به‌صورت همزمان اجرا کرد. برای جلوگیری از Race Condition، اغلب از Lock و Transaction در سطح دیتابیس بهره می‌بریم. هنگامی که تعداد درخواست‌ها بالا می‌رود، توزیع بار توسط سرورهای متعدد در کنار مدیریت صحیح Session و Cache، Concurrency را کارآمدتر می‌کند. همچنین نظارت بر Performance و پیاده‌سازی الگوی Event-driven رویکردی کلیدی برای ساخت اپلیکیشن‌های مقیاس‌پذیر است. همچنین به‌کارگیری ابزارهایی مثل Horizon جهت مانیتورینگ Queue و Jobها، در تضمین سلامت Concurrency کمک میکند.

@DevTwitter | <Alireza Javadi/>
Forwarded from DevAcademy
استخدام برنامه نویس Nest.js

Required Skills:
Strong proficiency in Nest.js and Node.js
Experience with TypeScript
Familiarity with GraphQL and RESTful APIs
Hands-on experience with MongoDB or PostgreSQL
Knowledge of Microservices Architecture and Message Brokers (RabbitMQ, Kafka)
Experience with Docker and Kubernetes is a plus
Understanding of CI/CD Pipelines

Responsibilities:
🔹 Develop and maintain backend services using Nest.js
🔹 Optimize system performance and scalability
🔹 Collaborate with frontend and DevOps teams
🔹 Write unit and integration tests to ensure code quality

First month test
payment 10 $ per hour
Cv: Zoobin@predipie.com
working time from
12pm dubai time to 8pm dubai time
project: Game

💻@DevAcaademy
💬
@DevAcademyGroup
چرا بعضی Unit Testها به هیچ دردی نمی خورن؟

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

خب، چرا این اتفاق می افته؟
یه سری اشتباهات رایج باعث می شه تست ها بی اثر بشن. مثلا:

استفاده از داده های واقعی به جای داده های ساختگی:
فکر کنید تست تون روی دیتابیس واقعی اجرا بشه. اگه رکوردها تغییر کنن یا دسترسی به دیتابیس قطع بشه، تست می ترکه. تست خوب باید مستقل از محیط باشه.

عدم استفاده از Mocking:
وقتی همه وابستگی های کد واقعی باشن، دارین کل سیستم رو تست می کنید، نه فقط یه بخش خاص رو. این دیگه Unit Test نیست! استفاده از Mock باعث می شه به جای اینکه به API واقعی یا دیتابیس وصل بشید، شبیه ساز اون ها رو تست کنید.

نوشتن تست های زیاد ولی بدون هدف مشخص:
یه زمانی فکر می کردم هرچی تعداد تست ها بیشتر باشه بهتره. بعد فهمیدم تستی که هدفمند نباشه، فقط کد رو شلوغ می کنه و باعث می شه موقع تغییرات کلی مشکل زا بشه.

حالا راه حل چیه؟
۱. وابستگی ها رو Mock کنید. با ابزارهایی مثل Mockito می تونید رفتار وابستگی ها رو شبیه سازی کنید.
۲. از داده های ثابت و ساختگی (Fake Data) استفاده کنید که تغییر نمی کنن.
۳. روی سناریوهای کلیدی تمرکز کنید. مثلا یه تابع مهم چطوری ورودی های خاص رو هندل می کنه؟ این مهم تر از اینه که صد تا تست بنویسید که همشون بی هدف باشن.

@DevTwitter | <Hamed Farzanefar/>