آموزش C# و .Net
1.56K subscribers
442 photos
329 videos
19 files
2.83K links
تعرفه تبلیغات :
https://t.me/+w-o6dHW5O31jMWNk

آیدی ادمین:
@ma_limbs
Download Telegram
🔵 نکته برنامه نویسی

یک تکنیک نسبتاً عجیب ولی مؤثر در برنامه‌نویسی "Negative Testing" (آزمایش منفی) است.

برخلاف تست معمولی که بررسی می‌کنی آیا کد در شرایط درست درست کار می‌کند یا نه، در Negative Testing عمداً شرایط غلط، ورودی‌های عجیب یا سناریوهای غیرعادی را امتحان می‌کنی تا ببینی کد چطور واکنش نشان می‌دهد.

مثلاً:

ارسال رشته خالی یا Null به تابعی که انتظار ورودی معتبر دارد.

دادن اعداد خیلی بزرگ یا منفی جایی که معمولاً انتظار اعداد کوچک می‌رود.

شبیه‌سازی قطعی اینترنت در وسط یک درخواست API.

این کار باعث می‌شود نقاط ضعف و باگ‌های پنهان کد قبل از رسیدن به کاربر نهایی پیدا شوند.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🔵 نکته برنامه نویسی

Null Object Pattern 🪄

به‌جای این‌که همه‌جا if object is None بذاری، یک شیء پیش‌فرض می‌سازی که دقیقا مثل کلاس اصلی رفتار می‌کنه ولی کار خالی انجام می‌ده.
این باعث میشه کد تمیزتر و بدون شرط‌های اضافه بشه.
مثلاً:

مثلاً:

مثلاً:
Copy code
class NullLogger: def log(self, msg): pass # هیچ کاری نمی‌کنه logger = NullLogger() logger.log("Test") #باگ یا خطا نداره
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🔵 نکات برنامه‌نویسی




  Circuit Breaker
(شکستن مدار)


🔹 ایده اصلی

محافظت از سیستم در برابر شکست‌های پی‌درپی و جلوگیری از اثر دومینو.

⬅️ وقتی یک سرویس یا API خراب میشه و درخواست‌ها پشت سر هم Fail میشن، Circuit Breaker جلوی ارسال درخواست‌های بیشتر رو می‌گیره تا سرویس فرصت بازیابی پیدا کنه.

📌 مثل فیوز برق خونه:

⬅️ اگر جریان زیادی بره → فیوز قطع میشه تا آسیب بیشتری نرسه.



🔹 چرا مهمه؟

⬅️ جلوگیری از فاجعه در سیستم‌های توزیع‌شده
⬅️ کاهش فشار روی سرویس خراب
⬅️ بهبود پایداری و تجربه کاربری



مثال ساده (Python)

import time
import random

class CircuitBreaker:
def __init__(self, failure_threshold, recovery_time):
self.failure_threshold = failure_threshold
self.recovery_time = recovery_time
self.failures = 0
self.last_failure_time = None
self.state = "CLOSED" # CLOSED, OPEN, HALF-OPEN

def call(self, func):
now = time.time()
if self.state == "OPEN":
if now - self.last_failure_time > self.recovery_time:
self.state = "HALF-OPEN"
else:
return " Service unavailable"

try:
result = func()
self.failures = 0
if self.state == "HALF-OPEN":
self.state = "CLOSED"
return result
except Exception as e:
self.failures += 1
self.last_failure_time = now
if self.failures >= self.failure_threshold:
self.state = "OPEN"
return f"⚠️ Failure: {e}"


# مثال: سرویس با احتمال شکست
def unreliable_service():
if random.random() < 0.6:
raise Exception("Service failed!")
return " Service success"

breaker = CircuitBreaker(failure_threshold=3, recovery_time=5)

for i in range(10):
print(breaker.call(unreliable_service))
time.sleep(1)


📖 کاربردهای واقعی

➡️ Microservices → جلوگیری از اثر دومینو وقتی یک سرویس Down میشه
➡️ API Gateway → محدود کردن فشار روی سرویس‌های خارجی
⬅️ سیستم‌های مالی و پرداخت آنلاین → جلوگیری از تراکنش‌های خراب پی‌درپی



🛠️ مزایا

⬅️ افزایش پایداری سیستم
⬅️ کاهش فشار روی سرویس خراب
⬅️ تجربه کاربری بهتر در زمان خرابی



🎯 تشبیه ساده

Circuit Breaker مثل فیوز خانه :

⬅️ اگر جریان برق بیش از حد باشه → فیوز قطع میشه تا همه چیز نسوزه.
⬅️ بعد از مدتی می‌تونه دوباره وصل بشه و سیستم آزمایش کنه که سالمه یا نه.




ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته برنامه نویسی

یک تکنیک جالب و نسبتاً کم‌حرف‌زده در برنامه‌نویسی، "Memoization" (ذخیره‌سازی نتایج محاسبات) هست.

در این روش، وقتی یک تابع با ورودی مشخص محاسبه می‌شود، نتیجه آن در حافظه (مثل یک دیکشنری یا کش) ذخیره می‌شود. اگر دفعه بعد همان ورودی دوباره درخواست شود، به جای محاسبه دوباره، نتیجه ذخیره‌شده برگردانده می‌شود.

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

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk


🔵 نکته برنامه نویسی



📨 Dead Letter Queue
(صف نامه‌های مُرده)

DLQ یک صف ویژه هست که پیام‌هایی رو نگه می‌داره که سیستم نتونسته اون‌ها رو به‌درستی پردازش کنه.



📌 چرا مهمه؟

* توی سیستم‌های صف پیام (Message Queue) همیشه احتمال هست بعضی پیام‌ها مشکل داشته باشن (خراب، ناقص یا پردازش‌نشونده).
* اگه این پیام‌ها همین‌جوری توی صف بمونن، می‌تونن کل سیستم رو قفل کنن.
* DLQ مثل یک زباله‌دان هوشمند عمل می‌کنه: پیام خراب رو جدا می‌کنه تا بقیه سیستم درست کار کنن.



مثال ساده

فرض کن با RabbitMQ یا Kafka داری سفارش‌های خرید رو پردازش می‌کنی:

* پیام: { "order_id": 123, "amount": 50 } → اوکی
* پیام: { "order_id": null, "amount": -10 } → مشکل

اینجا پیام خراب به جای اینکه دوباره و دوباره تلاش بشه، به DLQ فرستاده میشه:

def process_message(msg):
try:
if not msg.get("order_id") or msg["amount"] <= 0:
raise ValueError("Invalid order")
print(" Order processed:", msg)
except Exception as e:
print(" Moved to DLQ:", msg)
dlq.append(msg)

dlq = []
process_message({"order_id": 123, "amount": 50})
process_message({"order_id": None, "amount": -10})


📖 جاهای کاربردی:

* پرداخت آنلاین → تراکنش خراب نباید سیستم رو متوقف کنه.
* IoT و داده‌های سنسور → داده ناقص به DLQ میره.
* سیستم‌های بزرگ Microservices → پیام‌های ناسازگار در صف اصلی نمی‌مونن.



🛠️ مزایا

* پایداری سیستم → پیام خراب جلوی پردازش پیام‌های سالم رو نمی‌گیره.
* امکان بررسی دستی → تیم توسعه یا پشتیبانی می‌تونه بعداً پیام‌ها رو تحلیل کنه.
* ردیابی خطا → کمک می‌کنه الگوهای خطا رو پیدا کنیم.



⚠️ چالش‌ها

* پیام‌های DLQ نباید همین‌جوری رها بشن → باید مکانیزم بررسی و اصلاح وجود داشته باشه.
* حجم زیاد DLQ می‌تونه نشونه یک بگ بزرگ توی سیستم باشه.
* بعضی وقت‌ها لازمه پیام‌ها رو بعد از اصلاح دوباره به صف اصلی برگردونیم.



👉 تشبیه ساده:
DLQ مثل بخش مرجوعی یک فروشگاهه 🛒
کالاهایی که مشکل دارن برن اونجا، تا هم مشتری‌های دیگه راحت خرید کنن، هم مسئول بررسی فرصت داشته باشه مشکل رو بررسی کنه.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین

تعادل بین Bias و Variance خیلی مهمه.

🔹 خطای بایاس یا Bias : وقتی مدل خیلی ساده باشه و نتونه الگوهای واقعی داده رو یاد بگیره → Underfitting.
🔹 واریانس Variance : وقتی مدل خیلی پیچیده باشه و روی جزئیات و نویز داده‌ها بیش‌ازحد حساس بشه → Overfitting.

⚖️ هدف یادگیری ماشین پیدا کردن یک نقطه‌ی تعادل بین این دو هست.

مدل‌های ساده (مثل Linear Regression) بایاس بالا ولی واریانس کم دارن.

مدل‌های پیچیده (مثل Random Forest عمیق یا Neural Network بزرگ) واریانس زیاد ولی بایاس کم دارن.

به زبان ساده:

یعنی Bias زیاد = مدل “کُند ذهنه” 🤔

از اون طرف Variance زیاد = مدل “خیلی وسواسیه” 😅

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🔵 نکته برنامه نویسی

یک نکته مفید درباره یادگیری الگوهای طراحی (Design Patterns) اینه که:

🌿🌿 الگوهای طراحی مثل “زبان مشترک” بین برنامه‌نویس‌ها عمل می‌کنند؛ وقتی بلدشون باشی، هم فهمیدن کد دیگران ساده‌تر میشه، هم می‌تونی سریع‌تر و تمیزتر مسائل مشابه رو حل کنی.

مثلاً وقتی میگی «این بخش از کد از الگوی Singleton استفاده کرده»، هم‌تیمی یا هر برنامه‌نویسی که اون الگو رو می‌شناسه، فوراً می‌فهمه هدف چی بوده و ساختار چطوریه.

مزایای یادگیری الگوهای طراحی:

⬅️ کاهش دوباره‌کاری در حل مسائل معمول.
⬅️ افزایش خوانایی و نگهداری کد.
⬅️ داشتن راه‌حل‌های اثبات شده برای مشکلات رایج.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین

الگوریتم Density-Based Clustering (مثل DBSCAN) برای خوشه‌بندی داده‌های با شکل‌های پیچیده مناسب است.

🔹 ایده اصلی: خوشه‌ها مناطقی با چگالی بالا از نمونه‌ها هستن و نمونه‌های پراکنده به عنوان Noise شناخته می‌شن.
🔹 مزایا:

نیازی به تعیین تعداد خوشه‌ها از قبل نیست.

می‌تونه خوشه‌های غیرخطی و پیچیده رو پیدا کنه.

داده‌های پرت به صورت خودکار شناسایی می‌شن.

🔹 پارامترهای مهم:

پارامتر eps: شعاع همسایگی برای تعریف چگالی.

پارامتر min_samples: حداقل تعداد نمونه‌ها در همسایگی eps برای تشکیل خوشه.

به زبان ساده: DBSCAN مثل پیدا کردن “جزیره‌های جمعیت” در یک نقشه پراکنده از آدم‌هاست 🏝؛ هر کسی که تنهاست جزیره‌ش نیست.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏استفاده از Record Types برای داده‌های تغییرناپذیر

🟢 سوال :

‏کدام یک از موارد زیر یک روش برای مقایسه دو Record Type است؟

گزینه ۱:
‏استفاده از تابع Compare()

گزینه ۲:
‏استفاده از تابع Equals()

گزینه ۳:
‏استفاده از عملگر ==

گزینه ۴:
‏استفاده از تابع Match()

🔵 گزینه صحیح: 3

🟢 توضیح :

‏عملگر == برای مقایسه دو Record Type استفاده می‌شود.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 با عضویت در لیست تلگرامی جامع آموزش زبان زیر عضو بی نظیرترین‌ و کامل ترین مجموعه آموزش زبان انگلیسی تلگرامی شوید:

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

https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
https://t.me/addlist/hK74E7joz0ZiOGY0
🔵 نکته یادگیری ماشین

سوگیری و واریانس (به زبان تصویر) 🎯

تصور کن یه تیرانداز هستی و می‌خوای به هدف (داده‌های واقعی) بزنی.

سوگیری (Bias) یعنی تیرانداز چقدر از مرکز هدف دور می‌زنه.

واریانس (Variance) یعنی چقدر تیرهای تیرانداز به هم نزدیک و متمرکزن.

حالا چهار حالت مختلف رو ببین:

سوگیری کم، واریانس کم (هدف ایده‌آل):
این همون مدل رویایی ماست. 🤩 تیرانداز ما هر بار به مرکز هدف می‌زنه و تیرهاش هم خیلی به هم نزدیک و متمرکزن. این مدل هم دقیق و هم قابل اعتماده.

سوگیری بالا، واریانس کم (کم‌برازش یا Underfitting):
این مدل ساده‌لوح ماست. 🤷‍♂️ تیرانداز هر بار به یک نقطه مشخص می‌زنه، اما اون نقطه از مرکز هدف خیلی دوره. مدل ما همیشه در یک جهت اشتباه می‌کنه، ولی حداقل قابل پیش‌بینیه!

سوگیری کم، واریانس بالا (بیش‌برازش یا Overfitting):
این مدل وسواسی ماست. 🤯 تیرانداز هر بار به یه نقطه مختلف می‌زنه. تیرهاش دور تا دور مرکز هدف پخش شدن، اما میانگین همه‌شون تقریباً به مرکز هدفه. مدل ما سعی می‌کنه دقیق باشه، اما خیلی بی‌ثباته و به جزئیات بی‌ربط حساسه.

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

خلاصه:
هدف اصلی در یادگیری ماشین اینه که با تکنیک‌هایی مثل رگولاریزیشن، اعتبارسنجی متقابل و مهندسی ویژگی، از اون سه حالت بد دور بشیم و به حالت ایده‌آل نزدیک‌تر بشیم!

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین


رگرسیون خطی مثل یک آچار فرانسه 🔧 در دنیای داده‌هاست که می‌تونه در زمینه‌های مختلف به ما کمک کنه تا روابط رو کشف و آینده رو پیش‌بینی کنیم. 🔮

اقتصاد 📊

در اقتصاد، رگرسیون خطی به تحلیل‌گرها کمک می‌کنه که تأثیر عوامل مختلف رو روی یک متغیر خاص بررسی کنن. مثلاً می‌تونیم بفهمیم که افزایش نرخ بهره چه تأثیری روی میزان تورم داره، یا افزایش تبلیغات چقدر باعث افزایش فروش می‌شه. 📈💰

علوم اجتماعی 🧐

در علوم اجتماعی، می‌تونیم با استفاده از رگرسیون خطی، تأثیر سطح تحصیلات یا وضعیت اجتماعی-اقتصادی رو روی میزان رضایت از زندگی بررسی کنیم. این مدل به محققان کمک می‌کنه تا الگوهای رفتاری رو بهتر درک کنن و سیاست‌های مؤثرتری رو طراحی کنن. 👩‍🎓➡️😊

مهندسی و کنترل کیفیت ⚙️

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

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

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 کوییز #سی_شارپ

🟣 موضوع : ‏مدیریت مجموعه‌ها (Collections) در C#

🟢 سوال :

‏کدام یک از موارد زیر یک ویژگی Collections است؟

گزینه ۱:
‏تغییرپذیری (Mutability)

گزینه ۲:
‏وراثت (Inheritance)

گزینه ۳:
‏قابلیت ذخیره و مدیریت مجموعه‌ای از اشیاء با قابلیت‌های مختلف

گزینه ۴:
‏استفاده از حلقه‌های for

🔵 گزینه صحیح: 3

🟢 توضیح :

‏Collections قابلیت ذخیره و مدیریت مجموعه‌ای از اشیاء با قابلیت‌های مختلف را فراهم می‌کنند.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین

بریم سراغ یه حوزه خیلی جذاب و پرکاربرد که به مدل‌ها یاد می‌ده چطور زبان انسان‌ها رو بفهمن! 🗣

پردازش زبان طبیعی (NLP) 💬

کامپیوترها اعداد رو می‌فهمن، نه کلمات رو. 🔢 یه جمله مثل "این فیلم عالی بود!" برای یک کامپیوتر فقط مجموعه‌ای از کاراکترهاست که هیچ معنی‌ای نداره.

پردازش زبان طبیعی (Natural Language Processing) یا NLP، شاخه‌ای از هوش مصنوعی است که روی آموزش مدل‌ها برای فهمیدن، تفسیر و تولید زبان انسان تمرکز داره.

اولین و مهم‌ترین کار در NLP اینه که کلمات و جملات رو به فرمی تبدیل کنیم که کامپیوتر بتونه بفهمه‌شون. این کار با استفاده از تکنیکی به نام جاسازی کلمات (Word Embeddings) انجام می‌شه.

به زبان ساده‌تر:

تصور کن برای هر کلمه، یک "نماینده عددی" درست می‌کنی. 🤝 این نماینده‌ها طوری ساخته می‌شن که کلماتی که معنی مشابهی دارن، نماینده‌های عددی مشابهی هم داشته باشن.

مثلاً نماینده عددی کلمه "پادشاه" در فضای عددی به نماینده "ملکه" خیلی نزدیکه. 👑 این نزدیکی عددی به مدل کمک می‌کنه که روابط بین کلمات رو بفهمه. به این ترتیب، مدل می‌تونه بفهمه که "پادشاه" و "ملکه" به هم مربوط هستن، حتی بدون اینکه معنی واقعی اون‌ها رو بدونه.

NLP در دنیای واقعی کاربردهای بی‌شماری داره:

ترجمه خودکار: 🌐 مثل گوگل ترنسلیت.

تحلیل احساسات: 😊😠 فهمیدن اینکه یک متن (مثلاً نظر یک مشتری) حس مثبتی داره یا منفی.

فیلتر اسپم: 🚫 تشخیص ایمیل‌های ناخواسته.

چت‌بات‌ها و دستیارهای صوتی: 🤖 مثل سیری و دستیار گوگل.

خلاصه که، پردازش زبان طبیعی یه دریچه به دنیای بی‌نهایت متن و کلمات باز می‌کنه و به مدل‌ها اجازه می‌ده مثل ما فکر کنن و صحبت کنن! 😉

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 دوست داری برنامه نویس حرفه ای بشی یا مهارت های کامپیوتری خودت رو افزایش بدی؟ با عضویت در لیست تلگرامی زیر در بی نظیر ترین کانال های برنامه نویسی ما عضو شوید:

🟢 پایتون، هوش مصنوعی، یادگیری ماشین، سی ++، سی شارپ، دات نت، نود جی اس، جاوا اسکریپت، شبکه، علم داده، پایگاه داده، sql، nosql ، مهارت های ICDL، سیستم عامل، لینوکس، فتوشاپ، گرافیک، اندروید، جاوا، ساخت اپلیکیشن موبایل، ری اکت، جی کوئری، php و laravel، دروس رشته کامپیوتر، کنکور کامپیوتر و ...

عضو لیست جامع شوید:

https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
https://t.me/addlist/_UjG99eD_E4zYzhk
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 C# Beginners Tutorial - 118 - Drag and Drop

🟢 کیفیت : متوسط

🔴 توجه کنید با تنظیمات خود تلگرام می توانید حجم و کیفیت ویدیو را بر اساس سرعت اینترنت خود تنظیم نمایید.

🟣 C# Beginners Tutorials Playlist

🟢 زبان آموزش: انگلیسی


ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته برنامه نویسی

یک تکنیک جالب "Rubber Duck Debugging" است. 🦆

در این روش، وقتی در کد به مشکلی می‌خوری، بدون این‌که فوراً از کسی کمک بخواهی، مشکل و منطق کدت را مرحله‌به‌مرحله برای یک شیء بی‌جان (مثلاً یک اردک پلاستیکی روی میزت) توضیح می‌دهی.

چرا جواب می‌دهد؟
وقتی مجبور می‌شوی مرحله به مرحله برای "یک شنونده" توضیح دهی، ذهنت شفاف‌تر فکر می‌کند و خیلی وقت‌ها خودت وسط توضیح، ایراد را پیدا می‌کنی.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir


🔵 نکات برنامه‌نویسی



## 🌀 Idempotency


(ایدمپوتنسی یا بی‌اثر بودن چندباره)** 🌀


به زبان ساده یعنی:
👉 اگر یک عملیات رو چند بار پشت سر هم انجام بدی، نتیجه همیشه یکی باشه.



📌 چرا مهمه؟

تصور کن یک کاربر روی دکمه پرداخت کلیک می‌کنه و اینترنتش قطع میشه. دوباره کلیک می‌کنه.

⬅️ اگر سیستم Idempotent باشه → فقط یک بار پول برداشت میشه.
⬅️ اگر نباشه → کاربر دوبار پول از دست میده 😬



مثال ساده (Python)

# درخواست برداشت پول
def withdraw(balance, amount, already_processed):
if already_processed: # اگر قبلاً انجام شده
return balance
return balance - amount

print(withdraw(100, 20, False)) # 80
print(withdraw(80, 20, True)) # 80 (هیچ تغییری نکرد)


📖 جاهای کاربردی

* پرداخت‌های آنلاین 💳 (Stripe, PayPal, بانک‌ها)
* APIهای REST (مثلاً PUT و DELETE معمولاً باید Idempotent باشن)
* سیستم‌های لاگ‌گذاری (اگر یک لاگ دوباره ارسال شد، تکراری ذخیره نشه)



🛠️ مزایا

⬅️ افزایش اعتماد کاربر (چند بار کلیک کنه هم امنه)
⬅️ جلوگیری از پردازش تکراری و هزینه اضافی
⬅️ راحتی در Retry (در صورت خطای شبکه)



⚠️ نکته مهم

Idempotency با عدم تغییر (Immutability) فرق داره.

* Immutability = داده هیچ‌وقت تغییر نمی‌کنه.
* Idempotency = ممکنه تغییر کنه، ولی چند بار پشت سر هم زدن نتیجه یکسان میده.



👉 تشبیه ساده

مثل کلید چراغ برق 💡

⬅️ هرچقدر دکمه "خاموش" رو بزنی → چراغ خاموش می‌مونه.
⬅️ هرچقدر دکمه "روشن" رو بزنی → چراغ روشن می‌مونه.



ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
🔵 نکته یادگیری ماشین

یادگیری بدون‌نظارت (Unsupervised Learning) برای کشف الگوها در داده‌های بدون برچسب استفاده می‌شه.

🔹 این الگوریتم‌ها نیازی به برچسب ندارن و هدفشون کشف ساختار داخلی داده‌هاست.

🔹 مثال‌ها:

خوشه‌بندی Clustering : مثل K-Means، DBSCAN → گروه‌بندی مشتریان بر اساس رفتار.

الگوریتم های Dimensionality Reduction: مثل PCA، t-SNE → کاهش بعد داده و فهم ساختار.

الگوریتم های Association Rules: مثل Apriori → کشف قوانین پنهان بین ویژگی‌ها (مثلاً بازارهای خرید).

مزایا:

وقتی برچسب نداری، باز می‌تونی الگو پیدا کنی.

کمک می‌کنه ویژگی‌های مهم یا گروه‌های مشابه رو شناسایی کنی.

به زبان ساده: Unsupervised Learning مثل “دیدن نقشه بدون داشتن راهنماست” 🗺؛ خودت باید مسیرها و خوشه‌ها رو پیدا کنی.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ


لطفا ما رو به دیگران هم معرفی کنید...

آدرس کانال اصلی :
https://t.me/Tu_24

آدرس وبسایت:
https://Tutorial24.ir
💠 عضو جامع ترین کانال های توسعه فردی، روانشناسی و موفقیت شوید:

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

شامل موضوعات آموزشی زیر:

توسعه و رشد فردی
افزایش ثروت
هدف گذاری و مدیریت زمان
مهارت های اجتماعی، ارتباطی و فن بیان
روانشناسی و خودیاری
موفقیت
عادات موثر
سلامت و تغذیه سالم
موفقیت شغلی
عبارات تاکیدی
مدیریت اضطراب و خشم
روان درمانی CBT و ACT
شخصیت شناسی و تحلیل روانشناسی
انگیزشی
کودک درون
تکنیک های NLP
یوگا
افزایش حافظه
مدیتیشن
موفقیت تحصیلی
مطالعه موثر
افزایش اعتماد به نفس
افزایش تمرکز
تفکر مثبت
افزایش خلاقیت
نقل قول های انگیزشی

با کلیک بر روی لینک زیر عضو تمامی این کانال ها شوید:

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0

➡️ https://t.me/addlist/AX8uaLK6gE1jNzg0