یه چالش جالب که پرداختن بهش میتونه تجربه کاربری بهتری برای مصرفکننده نهایی و تجربه بهتری سمت توسعهدهندهها ایجاده کنه:
حالا میتونه یه تاریخ باشه که تو یه فرم پر میکنن، یه عدد باشه که تو چت وارد میکنن یا یه عبارت مثل "یه هفته بعد" که قراره تبدیل به یه تاریخ واقعی بشه. اینجاست که ابزاری مثل Microsoft Recognizers Text میاد وسط و همه این کارا رو برامون سادهتر میکنه.
کتابخونه Microsoft Recognizers Text ابزاری قدرتمنده که وظیفه اصلیش اینه که متن ورودی رو بخونه و بفهمه. این یعنی چی؟ یعنی اگه کاربر شما بنویسه:
- "سهشنبه آینده"
- "۱۰۰ دلار"
- "۴۵ درصد"
- یا حتی یه شماره تلفن یا آدرس ایمیل
این ابزار میفهمه که با چه نوع دادهای سروکار داره و اون رو به یه فرمت ساختیافته (Structured Format) تبدیل میکنه.
فرض کن داری یه بات چت میسازی یا یه اپلیکیشن هوشمند که باید ورودیهای کاربر رو تجزیه و تحلیل کنه. این ابزار میتونه بهت کمک کنه تا:
۱. زمان و تاریخ: هر نوع تاریخ یا زمانی که به زبان طبیعی نوشته شده (مثل "فردا ساعت ۳").
۲. اعداد و واحدها: درصدها، مقادیر پولی (مثل "۲۰۰ یورو") یا اندازهها (مثل "۵ کیلو").
۳. ساختارهای متنی خاص: مثل ایمیل، شماره تلفن، آدرس IP، URL و غیره.
کتابخونه Recognizers Text یه ابزار کراسپلتفرمه که فعلاً برای NET ،Python و JavaScript آماده استفادهست. برای جاوا هم به زودی ریلیز خواهد شد. پس هرجایی که این زبانها رو داریم، میتونیم راحت ازش استفاده کنیم.
۱. سرعت توسعه بالا: به جای اینکه خودمون یه الگوریتم برای تشخیص این چیزا بنویسیم، یا توی regexهای ساده دست و پا بزنیم تا ایمیل و شماره تلفن بفهمیم، از یه ابزار آماده و غنی استفاده کنیم که کلی بهبود زمان و کیفیت رو تجربه کنیم.
۲. دقت و قابلیت اطمینان: این ابزار توسط مایکروسافت توسعه داده شده و از زیر تستهای زیادی موفق بیرون اومده.
۳. انعطافپذیری: میتونیم به راحتی یه مدل جدید بسازیم یا یه زبانی که ساپورت نمیکنه رو بهش اضافه کنیم.
برای استفاده، باید یکی از پکیجهای آمادهشده رو نصب کنی:
- برای NET.: بسته Microsoft.Recognizers.Text
- برای پایتون:
pip install recognizers-text
- برای JavaScript:
npm install @microsoft/recognizers-text
فرض کن میخوایم یه تاریخ رو از متن کاربر استخراج کنی. کد زیر رو تو Python اجرا کن:
from recognizers_date_time import DateTimeRecognizer
recognizer = DateTimeRecognizer("en-us")
model = recognizer.get_date_time_model()
result = model.parse("I have a meeting tomorrow at 3 PM.")
print(result)
string inputText = "I have a meeting tomorrow at 3 PM.";
string culture = CultureInfo.GetCultureInfo("en-US").Name;
var model = DateTimeRecognizer.RecognizeDateTime(inputText, culture);
foreach(var result in model) {
Console.WriteLine($ "Text: {result.Text}");
Console.WriteLine($ "Type: {result.TypeName}");
foreach(var resolution in result.Resolution["values"]) {
Console.WriteLine($ "Resolution: {resolution}");
}
}
خروجی این میشه یه آبجکت که اطلاعات دقیق تاریخ و زمان رو در خودش داره. راحتتر از این هم داریم؟
کاربرد در دنیای واقعی
این ابزار خیلی توی حوزههایی مثل اینا محبوبه:
- چتباتها: مثل باتهایی که رزرو یا نوبتگیری انجام میدن.
- اپلیکیشنهای مالی: تجزیه و تحلیل تراکنشها.
- پروژههای هوش مصنوعی: وقتی نیاز به تجزیه و تحلیل زبان طبیعی داری.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3😍2
سلام! مستندنویسی فنی یکی از مغفولترین بخشهای توسعه نرمافزار، خصوصا در ایرانه! همه میگن خیلی واجبه و ما خیلی ارج مینهیم به مستندات، ولی آخرش همون همه، مشمول ترک واجبات و ارج ننهادن میشن! حتی technical write پوزیشن گمنامیه توی لیست مشاغل. حالا اینکه چطور کلودفلر، به عنوان شرکتی که توی ۱۹٪ اینترنت رد پاش دیده میشه و درآمد حدود ۱.۳ میلیارد دلاری داره (۲۰۲۳) چجوری به مستندات فنیاش نگاه میکنه و رویکردش چیه؛ میتونه خیلی آموزنده باشه.
یه روزی حدود ۷ سال پیش توی یکی از استارتاپهای اثرگذار ایران، با کلی بحث و استدلال، پوزیشن تکنیکال رایتر رو باز کردم و به سختی تلاش کردم مستندات رو یک محصول از تیم معرفی کنم. ولی ۲-۳ سال پیش خوندم که کلودفلر، خیلی ساختارمند و اصولی، مستندات فنی رو محصول میدونن، و حتی ترم PCX یا Product Content Experience خلق کردند. یعنی دقیقاً همونطور که روی محصولاتشون وقت میذارن، برنامهریزی میکنن و بهبودش میدن، با مستنداتشون هم همینطور رفتار میکنن.
خب، فکر کنید شما یه محصول عالی دارید ولی کسی نمیدونه چطور ازش استفاده کنه! اینجاست که مستندات خوب به کمکتون میاد. کلودفلر فهمیده که مستندات خوب میتونه تجربه کاربری رو خیلی بهتر کنه.
یا حتی نسلی از توسعهدهندهها محصول خیلی خوبی تولید کردند، به هر دلیلی اون توسعهدهندهها نیستند دیگه (مهاجرت، ارتقاء، انتقال به تیم دیگه یا ترک شرکت)؛ تکلیف بعدیها چیه؟ قراره چیو تحویل بگیرن و بهبود بدن؟ چیزی رو که نمیشناسن؟!
۱. تیم مخصوص دارن: یه تیم مخصوص به اسم PCX یا Product Content Experience دارن که کارشون اینه که مطمئن بشن مستندات در بهترین کیفیت ممکن هستن.
۲. سریع عمل میکنن: هر وقت یه محصول جدید یا آپدیت میاد، مستنداتش هم همون موقع آمادهست. یعنی شما هیچوقت با یه محصول جدید روبرو نمیشید که ندونید چطور باید ازش استفاده کنید.
۳. اپن سورس هستن: جالبه بدونید که مستندات کلودفلر اپن سورسه! یعنی هر کسی میتونه توش مشارکت کنه و بهترش کنه.
۱. سرعت بالا: وقتی مستندات رو مثل محصول در نظر میگیرن، میتونن خیلی سریعتر آپدیتش کنن
۲. کیفیت بهتر: چون یه تیم مخصوص روش کار میکنه، کیفیت محتوا خیلی بهتره
۳. بازخورد مستقیم: کاربرا میتونن مستقیم بازخورد بدن و مستندات بهتر میشه
📌 نتیجهگیری
به نظر من، این رویکرد کلودفلر خیلی هوشمندانهست. اونا فهمیدن که مستندات خوب به اندازه خود محصول مهمه. وقتی شما یه سرویس یا محصول میسازید، مستنداتش هم باید در همون سطح باشه. سالها پیش یادمه یکی توی یک مصاحبه از یکی از مدیران مایکروسافت پرسید شما چرا اینقدر کند هستید توی دلیور محصولات؟! پاسخ داد میدونی ما بعد از هر تولید و تستهای فراوون و چک کردنهای روالهای قانونی و حق پتنتها و.. تازه باید مستندات کامل و مثال و… به چندین زبان فراهم کنیم و ویراستاری کنیم و… در حالیکه خیلی شرکتها هیچ کدوم از این مراحل رو ندارن!
شاید بد نباشه یه نگاهی به این رویکرد داشته باشید. شاید بشه ازش ایده گرفت و توی پروژههاتون اینجوری نگاه کنید! برخی هزینهها، سرمایهگذاری و برخی پیشگیری از شکسته.
📱 ریپازیتوری مستندات کلودفلر
⛏ بخش توسعهدهندههای کلودفلر
✨ابزار Astro که جدیدا بهش مهاجرت کردن (قبلا روی Hugo بودن)
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - cloudflare/cloudflare-docs: Cloudflare’s documentation
Cloudflare’s documentation. Contribute to cloudflare/cloudflare-docs development by creating an account on GitHub.
👍11🔥2🤔1
یه ابزار باحال که طی چند سال گذشته بهتر و کاملتر شده، و البته به جای سرچ کردن «فلان چیز online» کار رو راحت کرده. DevToys یه اپلیکیشن اوپنسورسه که روی ویندوز و مک و لینوکس نصب میشه و مجموعهای از ابزارهای کاربردی رو یکجا جمع کرده. خودش میگه یه چاقوی سوئیسی که همه چی توش پیدا میشه!
یکی از قابلیتهای جذاب DevToys امکان توسعه و اضافه کردن ابزارهای جدیده. نیازی هم نیست با دیگران اشتراک بگذارید، میتونه کاملا لوکال و درون تیمی باشه.
📱 ریپو گیتهاب
🔗 سایت DevToys
🔌 راهنمای ساده نوشتن افزونه جدید
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🚀 📱 نقشه راه Rider برای ۲۰۲۵.۱
۱. تسهیل پروفایلینگ
با اینکه ابزارهای فعلی مثل Dynamic Program Analysis و dotTrace خوبن، ولی تیم Rider میخواد اونها رو سادهتر و عمیقتر توی فرآیند توسعه ادغام کنه. عملا با توسعه نرمافزار یکپارچهترشون کنه و دیگه ابزار جداگانه به نظر نیان.
۲. دیباگینگ
دیباگ کردن همزمان کدهای NET. و ++C، مخصوصاً برای Unity، Unreal، و اپهای Desktop با Mixed Mode Debugging.
۳. توسعه از راه دور (Remote Development)
پشتیبانی کامل از Windows برای توسعه از راه دور. دیگه چه ویندوز باشه، چه مک یا لینوکس، حس یه IDE لوکال رو خواهی داشت. (مثل SSH/WSL Remote development در VS Code)
۴. پشتیبانی از پروژههای SQL
ارتقا ابزارهای SQL با استفاده از SQL Tools API (مثل VS Code). مدیریت مستقیم پروژههای SQL Server. مقایسه دقیق Schemaها. کراسپلتفرم شدن برای کار با دیتابیسها. (عملا بخشی از DataGrip رو میاره توی Rider)
۵. پشتیبانی پیشرفتهتر Roslyn
📅 برنامههای آینده
ویژگیهای مهم مثل Mixed Mode Debugging هنوز اول راه هستن، ولی قابلیتهایی مثل Visualizerها و Remote Development در حال آماده شدن هستن.
برنامه Early Access Program (EAP) به زودی شروع میشه و میتونید نسخههای غیرنهایی رو تست کنید.
منبع ۱
منبع ۲
۱. تسهیل پروفایلینگ
با اینکه ابزارهای فعلی مثل Dynamic Program Analysis و dotTrace خوبن، ولی تیم Rider میخواد اونها رو سادهتر و عمیقتر توی فرآیند توسعه ادغام کنه. عملا با توسعه نرمافزار یکپارچهترشون کنه و دیگه ابزار جداگانه به نظر نیان.
۲. دیباگینگ
دیباگ کردن همزمان کدهای NET. و ++C، مخصوصاً برای Unity، Unreal، و اپهای Desktop با Mixed Mode Debugging.
۳. توسعه از راه دور (Remote Development)
پشتیبانی کامل از Windows برای توسعه از راه دور. دیگه چه ویندوز باشه، چه مک یا لینوکس، حس یه IDE لوکال رو خواهی داشت. (مثل SSH/WSL Remote development در VS Code)
۴. پشتیبانی از پروژههای SQL
ارتقا ابزارهای SQL با استفاده از SQL Tools API (مثل VS Code). مدیریت مستقیم پروژههای SQL Server. مقایسه دقیق Schemaها. کراسپلتفرم شدن برای کار با دیتابیسها. (عملا بخشی از DataGrip رو میاره توی Rider)
۵. پشتیبانی پیشرفتهتر Roslyn
📅 برنامههای آینده
ویژگیهای مهم مثل Mixed Mode Debugging هنوز اول راه هستن، ولی قابلیتهایی مثل Visualizerها و Remote Development در حال آماده شدن هستن.
برنامه Early Access Program (EAP) به زودی شروع میشه و میتونید نسخههای غیرنهایی رو تست کنید.
منبع ۱
منبع ۲
Please open Telegram to view this post
VIEW IN TELEGRAM
The JetBrains Blog
Rider 2025.1 Roadmap | The .NET Tools Blog
The start of the new year is the perfect time to share our plans for JetBrains Rider 2025.1. These plans are subject to change based on available resources, evolving development priorities, and shifts
👍6
تعامل با APIها اینقدر رایجه که میشه بخش جداییناپذیری از توسعه دونست. هرچند، این تعامل با HttpClient بومی داتنت میتونه گاهی پیچیده و زمانبر بشه. توی این پست یه توضیح ابتدایی در مورد Refit میدم تا اگر 🤓 شدیم، توضیح کاملتری بدم. Refit کتابخونهایه که میتونه تجربهی کار با APIها رو سادهتر، خواناتر و کارآمدتر کنه. البته، Refit رو با سایر کتابخونههای مشابه مثل RestSharp، EasyHttp، و RestEase مقایسه میکنم.
بومیترین ابزار HttpClient است، ولی مشکلاتی هم داره:
حالا Refit یک کتابخونه REST برای داتنت است که امکان تعریف APIها به صورت اینترفیس رو فراهم میکنه. این کتبخونه به طور خودکار اینترفیس رو پیادهسازی و تمام عملیات HTTP را مدیریت میکنه.
ویژگیهای برجسته Refit:
public interface IApiService
{
[Get("/users/{id}")]
Task<User> GetUserAsync(int id);
[Post("/users")]
Task<User> CreateUserAsync([Body] User user);
}
// استفاده از Refit
var api = RestService.For<IApiService>("https://api.example.com");
var user = await api.GetUserAsync(1);
مقایسه اولیه با Refit با RestSharp, EasyHttp, و RestEase
قدمت و کاربرد: RestSharp یکی از قدیمیترین لایبرریهای داتنت برای کار با REST APIها است.
مزایا:
پشتیبانی قوی از پارامترها و هدرهای پیچیده.
انعطافپذیری بالا در مدیریت درخواستها و پاسخها.
معایب:
کدها نسبت به Refit کمتر خوانا هستند.
نیاز به سریالایز/دسریالایز دستی در مواردی خاص.
سادگی: EasyHttp برای توسعهدهندههایی طراحی شده که به دنبال سادهترین روش ارسال درخواستهای HTTP هستن.
مزایا:
سریع و آسان برای شروع.
معایب:
عدم پشتیبانی پیشرفته از تایپ-سیف و ساختار اینترفیس.
انعطافپذیری کمتر نسبت به RestSharp و Refit.
مشابهت با Refit از این نظر که از اینترفیسها برای تعریف API استفاده میکنه.
مزایا:
قابلیت تعریف و تغییر هدرها و پارامترها در سطح متد.
معایب:
پیچیدگی بیشتر در پیکربندی.
جامعهی کاربری و مستندات کمتر نسبت به Refit.
خلاصه اینکه Refit به دلیل خوانایی بالا، پشتیبانی از تایپ-سیف، و مدیریت خودکار دادهها انتخاب مناسبی برای پروژههاییه که به توسعه سریع و قابل نگهداری نیاز دارن.
در مقایسه با سایر لایبرریها:
در مقابل HttpClient: کدهای سادهتر و خواناتر.
در مقابل RestSharp: رویکرد مدرنتر و استفاده از اینترفیسها.
در مقابل EasyHttp: قابلیتهای پیشرفتهتر.
در مقابل RestEase: مستندات بهتر و پشتیبانی گستردهتر.
📚 مستندات
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓14👍2❤1
🧠🧠 عاملهای هوش مصنوعی یا AI Agents
عاملهای هوش مصنوعی یا AI Agentها که این روزها خیلی تب داغی دارن، در واقع برنامههایی هستن که میتونن به طور خودکار و مستقل تصمیم بگیرن و عمل کنن. این عاملها از محیط اطرافشون اطلاعات میگیرن، اونها رو پردازش میکنن و بر اساس هدفی که براشون تعریف شده، بهترین اقدام رو انجام میدن.
🎮 انواع عاملهای هوش مصنوعی
1️⃣ عاملهای بازتابی ساده (Simple Reflex Agents):
فقط بر اساس قوانین از پیش تعریفشده و دادههای لحظهای عمل میکنه. این نوع ایجنتها نمیتونن به شرایطی که خارج از "شرط-عمل" مشخصشده هستن، واکنش بدن. برای همین، بیشتر برای کارهای سادهای مناسبن که نیاز به آموزش پیچیده ندارن.
- مثل: یه ترموستات که فقط دمای فعلی رو میبینه و تصمیم میگیره که سیستم گرمایش رو روشن یا خاموش کنه.
- مثل: ریست کردن رمز عبور استفاده کنید، بهشرطی که کلمات کلیدی خاصی رو در مکالمهی کاربر شناسایی کنه.
2️⃣ عاملهای بازتابی مبتنی بر مدل (Model-based Reflex Agents):
این ایجنتها خیلی شبیه ایجنتهای بازتابی ساده اند، اما تصمیمگیریشون پیشرفتهتره. بهجای اینکه فقط یه قانون خاص رو دنبال کنن، نتایج و پیامدهای احتمالی رو قبل از تصمیمگیری بررسی میکنن. با استفاده از دادههای موجود، یه مدل داخلی از دنیای اطراف خودشون میسازن و از اون برای تصمیمگیری کمک میگیرن.
- مثل یه ربات مسیریاب که نقشه محیط رو داره و میتونه بهترین مسیر رو پیدا کنه.
- مثل ماشینهای خودران
3️⃣ عاملهای مبتنی بر هدف (Goal-based Agents):
اسم دیگهشون ایجنتهای قاعدهمنده (rule-based agent) و توانایی استدلال قویتری دارن. علاوه بر تحلیل دادههای محیط، روشهای مختلف رو مقایسه میکنن تا به بهترین شکل به هدفشون برسن. این ایجنتها همیشه بهینهترین مسیر رو انتخاب میکنن و برای انجام کارهای پیچیده مثل پردازش زبان طبیعی (NLP) یا اپلیکیشنهای رباتیک خیلی مناسبن.
- مثال: سیستمهای توصیهگر مثل اونایی که تو خرید آنلاین میبینیم.
- مثال: جاروبرقیهای روبوتیک که یک هدف دارن، تمیز کردن تمام سطوح قابل دسترسی و مسیر و عملکردشون رو منطبق با رسیدن به این هدف تنظیم میکنن.
4️⃣ عاملهای مبتنی بر مطلوبیت (Utility-based Agents):
اینا از الگوریتمهای پیچیدهای برای کمک به کاربر استفاده میکنن تا بهترین نتیجه ممکن رو بگیرن. عملا سناریوهای مختلف رو با توجه به مقدار مطلوبیت یا مزایای هرکدوم مقایسه میکنن و گزینهای رو انتخاب میکنن که بیشترین منفعت رو داشته باشه.
- مثل: مشتریها میتونن از یه ایجنت مبتنی بر مطلوبیت برای پیدا کردن بلیط پرواز با کمترین زمان سفر استفاده کنن، حتی اگه قیمت بالاتر باشه.
- مثل: عاملهای مورد کاربرد برای معامله سهام یا رمزارز که سعی میکنن بیشترین منفعت رو به کاربر برسونن.
5️⃣ عاملهای یادگیرنده (Learning Agents):
دائماً از تجربههای گذشته خودشون یاد میگیرن و نتایجش رو بهبود میدن (مثل reinforcement learning توی ml). با استفاده از ورودیهای حسگرها و مکانیزمهای بازخورد، این ایجنتها در طول زمان خودشون رو تطبیق میدن و یادگیریشون رو ارتقا میدن. علاوه بر این، از یه مولد مسئله استفاده میکنن تا وظایف جدیدی طراحی کنن و با استفاده از دادههای جمعآوریشده و نتایج گذشته خودشون رو آموزش بدن.
- مثل: عاملهای شناسایی کلاهبرداری که مرتبا روشهای جدید و راه دررو های قبلی رو بررسی میکنه و خودش رو تطبیق میده
- مثل: عاملهای پیشنهاد دهنده محتوا که بر اساس رفتار و بازخورد کاربر خودشون رو مرتبا بهبود میدن.
6️⃣ عاملهای سلسلهمراتبی (Hierarchical Agents)
اینا یه گروه منظم از ایجنتهای هوشمندن که در چندین سطح سازماندهی میشن. ایجنتهای سطح بالاتر وظایف پیچیده رو به کارهای کوچکتر تقسیم میکنن و اونها رو به ایجنتهای سطح پایینتر محول میکنن. هر ایجنت بهطور مستقل کار خودش رو انجام میده و گزارش پیشرفت رو به ایجنت ناظر خودش ارسال میکنه. ایجنت سطح بالاتر نتایج رو جمعآوری میکنه و ایجنتهای زیرمجموعه رو هماهنگ میکنه تا بهطور جمعی به اهدافشون برسن.
- مثل: ایجنت کنترل ترافیک هوایی یا مدیریت انبار، اینا اینقدر پیچیده هستن و کارهای متعدد دارن که به صورت سلسلهمراتبی مدیریت میشن.
7️⃣ سیستمهای چند عاملی (Multi-Agent Systems)
سیستمهای چندعاملی جذابیتشون توی تنوع و تعاملات غنیشونه. ایجنتهای مختلف در تعامل با هم کار میکنن. هر ایجنت بهصورت نیمهمستقل عمل میکنه ولی طوری طراحی شده که با بقیه ایجنتها تعامل داشته باشه و یه اکوسیستم پویا بسازه که رفتار جمعی از اقدامات فردی به وجود بیاره.
عاملهای هوش مصنوعی یا AI Agentها که این روزها خیلی تب داغی دارن، در واقع برنامههایی هستن که میتونن به طور خودکار و مستقل تصمیم بگیرن و عمل کنن. این عاملها از محیط اطرافشون اطلاعات میگیرن، اونها رو پردازش میکنن و بر اساس هدفی که براشون تعریف شده، بهترین اقدام رو انجام میدن.
فقط بر اساس قوانین از پیش تعریفشده و دادههای لحظهای عمل میکنه. این نوع ایجنتها نمیتونن به شرایطی که خارج از "شرط-عمل" مشخصشده هستن، واکنش بدن. برای همین، بیشتر برای کارهای سادهای مناسبن که نیاز به آموزش پیچیده ندارن.
- مثل: یه ترموستات که فقط دمای فعلی رو میبینه و تصمیم میگیره که سیستم گرمایش رو روشن یا خاموش کنه.
- مثل: ریست کردن رمز عبور استفاده کنید، بهشرطی که کلمات کلیدی خاصی رو در مکالمهی کاربر شناسایی کنه.
این ایجنتها خیلی شبیه ایجنتهای بازتابی ساده اند، اما تصمیمگیریشون پیشرفتهتره. بهجای اینکه فقط یه قانون خاص رو دنبال کنن، نتایج و پیامدهای احتمالی رو قبل از تصمیمگیری بررسی میکنن. با استفاده از دادههای موجود، یه مدل داخلی از دنیای اطراف خودشون میسازن و از اون برای تصمیمگیری کمک میگیرن.
- مثل یه ربات مسیریاب که نقشه محیط رو داره و میتونه بهترین مسیر رو پیدا کنه.
- مثل ماشینهای خودران
اسم دیگهشون ایجنتهای قاعدهمنده (rule-based agent) و توانایی استدلال قویتری دارن. علاوه بر تحلیل دادههای محیط، روشهای مختلف رو مقایسه میکنن تا به بهترین شکل به هدفشون برسن. این ایجنتها همیشه بهینهترین مسیر رو انتخاب میکنن و برای انجام کارهای پیچیده مثل پردازش زبان طبیعی (NLP) یا اپلیکیشنهای رباتیک خیلی مناسبن.
- مثال: سیستمهای توصیهگر مثل اونایی که تو خرید آنلاین میبینیم.
- مثال: جاروبرقیهای روبوتیک که یک هدف دارن، تمیز کردن تمام سطوح قابل دسترسی و مسیر و عملکردشون رو منطبق با رسیدن به این هدف تنظیم میکنن.
اینا از الگوریتمهای پیچیدهای برای کمک به کاربر استفاده میکنن تا بهترین نتیجه ممکن رو بگیرن. عملا سناریوهای مختلف رو با توجه به مقدار مطلوبیت یا مزایای هرکدوم مقایسه میکنن و گزینهای رو انتخاب میکنن که بیشترین منفعت رو داشته باشه.
- مثل: مشتریها میتونن از یه ایجنت مبتنی بر مطلوبیت برای پیدا کردن بلیط پرواز با کمترین زمان سفر استفاده کنن، حتی اگه قیمت بالاتر باشه.
- مثل: عاملهای مورد کاربرد برای معامله سهام یا رمزارز که سعی میکنن بیشترین منفعت رو به کاربر برسونن.
دائماً از تجربههای گذشته خودشون یاد میگیرن و نتایجش رو بهبود میدن (مثل reinforcement learning توی ml). با استفاده از ورودیهای حسگرها و مکانیزمهای بازخورد، این ایجنتها در طول زمان خودشون رو تطبیق میدن و یادگیریشون رو ارتقا میدن. علاوه بر این، از یه مولد مسئله استفاده میکنن تا وظایف جدیدی طراحی کنن و با استفاده از دادههای جمعآوریشده و نتایج گذشته خودشون رو آموزش بدن.
- مثل: عاملهای شناسایی کلاهبرداری که مرتبا روشهای جدید و راه دررو های قبلی رو بررسی میکنه و خودش رو تطبیق میده
- مثل: عاملهای پیشنهاد دهنده محتوا که بر اساس رفتار و بازخورد کاربر خودشون رو مرتبا بهبود میدن.
اینا یه گروه منظم از ایجنتهای هوشمندن که در چندین سطح سازماندهی میشن. ایجنتهای سطح بالاتر وظایف پیچیده رو به کارهای کوچکتر تقسیم میکنن و اونها رو به ایجنتهای سطح پایینتر محول میکنن. هر ایجنت بهطور مستقل کار خودش رو انجام میده و گزارش پیشرفت رو به ایجنت ناظر خودش ارسال میکنه. ایجنت سطح بالاتر نتایج رو جمعآوری میکنه و ایجنتهای زیرمجموعه رو هماهنگ میکنه تا بهطور جمعی به اهدافشون برسن.
- مثل: ایجنت کنترل ترافیک هوایی یا مدیریت انبار، اینا اینقدر پیچیده هستن و کارهای متعدد دارن که به صورت سلسلهمراتبی مدیریت میشن.
سیستمهای چندعاملی جذابیتشون توی تنوع و تعاملات غنیشونه. ایجنتهای مختلف در تعامل با هم کار میکنن. هر ایجنت بهصورت نیمهمستقل عمل میکنه ولی طوری طراحی شده که با بقیه ایجنتها تعامل داشته باشه و یه اکوسیستم پویا بسازه که رفتار جمعی از اقدامات فردی به وجود بیاره.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3
به نظرم خوبه تا برنامهنویسها ایجنتنویسی رو تمرین کنن، مدیرمحصولها بهش فکر کنن و نادیده نگیرنشون. چون مثلا یه ایجنت ساده و جمعوجور میتونه کارتابل، یا لیست سفارشات یا... رو بررسی کنه و نتیجه رو یا توی رابط کاربری منعکس کنه یا بفرسته برای یه ایجنت دیگه برای یه کار دیگه.
و اینکه APIهامون رو سعی کنیم تا حد امکان Agent Friendly طراحی کنیم تا بعدن بتونیم agent ها رو توی چرخه اضافه کنیم. ایجنتها دقیقا همون بخشهایی هستن که بهرهوری و دقت کاربر رو بالا میبرن و درست یا غلط، شاعبهی حذف فرصتهای شغلی زیادی رو در آینده به وجود آوردن. فرض کنید ایجنتی که اسناد مالی رو بررسی و موارد مشکوک رو جدا میکنه، چقدر وقت حسابرسی و ممیزی رو صرفهجویی میکنه؟ یا انواع مثالهای دیگه حتمن در حوزه کاریتون به ذهنتون میٰرسه.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
«عینهو bash یا python»
پیش اومده براتون که نیاز داشته باشید از قابلیتهای سیشارپ برای خودکار کردن کاری استفاده کنید ولی یا یه پوشه داشته باشید توش فقط و فقط فایل csx. بگذارید و صداشون کنید برای اجرا؟
مثلا: یه فایل داشته باشید به اسم backup_copy_notify.csx که از یه سری چیز بکاپ بگیره، یه جا کپی کنه و نتیجه رو ایمیل کنه. یا مثلا یه API صدا کنه یه چیزی از دلش بیرون بکشه و بنویسه توی یه فایل. یا...
یه ابزار ساده به نام dotnet-script هست که شاید توی vs code هم ازش استفاده کرده باشید (البته ذاتا جزو dotnet tool است و کامندلاینی است، ولی میشه همراه با script runner توی vs code هم به کار برد)
نصب: (مک، ویندوز، لینوکس)
dotnet tool install -g dotnet-script
برای یادگیری کافیه ۱۰ دقیقه وقت بگذارید و از مستندات خودش ببینید چیه و چجوری کاربرد داره
📱 ریپو گیتهابش
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - dotnet-script/dotnet-script: Run C# scripts from the .NET CLI.
Run C# scripts from the .NET CLI. Contribute to dotnet-script/dotnet-script development by creating an account on GitHub.
👍15❤3
ویدیو کامل دورهمی هفته گذشته با موضوع داتنت اسپایر شامل از معرفی تا پیادهسازی و دپلوی
مدت: ۱ ساعت و ۱۳ دقیقه
#dotnet #aspire #video
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
وبینار داتنت اسپایر .NET Aspire
وبینار کار با داتنت اسپایر
معرفی داتنت اسپایر
شروع پروژه جدید یا اضافه کردن به پروژهای موجود
درک اجزاء داتنت اسپایر (Integration, Orchestration, Deployment)
اپلیکیشن مدل در داتنت اسپایر
معرفی داتنت اسپایر
شروع پروژه جدید یا اضافه کردن به پروژهای موجود
درک اجزاء داتنت اسپایر (Integration, Orchestration, Deployment)
اپلیکیشن مدل در داتنت اسپایر
❤12
Final Results
53%
حتمن میام.
17%
نمیام.
30%
اسم مینویسم ولی میدونم که نمیام.
❤7
سلام
دوستانی که جلسه یکشنبه میان، لطفا ایمیلشون رو اینجا بگن که براشون لینک گوگل میت رو بفرستم. اگر موضوع خاصی هم دوست دارید بگید یا بشنوید (خودتون در ارائه مشارکت کنید، یا من به موضوعات اضافه کنم (اگر بلد باشم البته)) توب فرم ذکر کنید لطفا 😊🌱
https://forms.gle/DwXev6SPuSftJsKv6
دوستانی که جلسه یکشنبه میان، لطفا ایمیلشون رو اینجا بگن که براشون لینک گوگل میت رو بفرستم. اگر موضوع خاصی هم دوست دارید بگید یا بشنوید (خودتون در ارائه مشارکت کنید، یا من به موضوعات اضافه کنم (اگر بلد باشم البته)) توب فرم ذکر کنید لطفا 😊🌱
https://forms.gle/DwXev6SPuSftJsKv6
👍3
tech-afternoon pinned «سلام دوستانی که جلسه یکشنبه میان، لطفا ایمیلشون رو اینجا بگن که براشون لینک گوگل میت رو بفرستم. اگر موضوع خاصی هم دوست دارید بگید یا بشنوید (خودتون در ارائه مشارکت کنید، یا من به موضوعات اضافه کنم (اگر بلد باشم البته)) توب فرم ذکر کنید لطفا 😊🌱 https://fo…»
tech-afternoon
سلام دوستانی که جلسه یکشنبه میان، لطفا ایمیلشون رو اینجا بگن که براشون لینک گوگل میت رو بفرستم. اگر موضوع خاصی هم دوست دارید بگید یا بشنوید (خودتون در ارائه مشارکت کنید، یا من به موضوعات اضافه کنم (اگر بلد باشم البته)) توب فرم ذکر کنید لطفا 😊🌱 https://fo…
ببخشید بابت مشکلی که در لینک بود، برطرف شد 🙏
🔥2
tech-afternoon
ببخشید بابت مشکلی که در لینک بود، برطرف شد 🙏
یه توضیح در مورد عنوان ایمیل که اشتباه بوده 😅 (لینک و محتوا کاملا صحیح است)
از اونجایی که تعداد محدودی ایمیل میفرستم استفاده از سرویسهای آنلاین که بیشتر مناسب ارسال انبوه است، بهصرفه نیست. و از طرفی فرمت HTML میخوام بفرستم که style هم توش گنجونده بشه، که اینم با امکانات اولیه جیمیل نمیشه. لذا یه کد جمعوجور نوشتم به نام چاپار که توی گیتهاب است، اسمش «چاپار» است. یه کد پایتونی (فعلا) که که تمپلیت HTML، لیست گیرندگان و کانفیگ رو میگیره و یکییکی میفرسته (بهش REST API هم اضافه کردم). تمپلیت فارسی و انگلیسی اولیه (مینیمال و مشابه چیزی که دریافت کردید) هم توی ریپو است. شاید در آینده کاملتر ودارای UI و... هم بشه (شاید).
خلاصه اینکه عنوان «تغییر لینک دورهمی امروز» اشتباه است. ولی لینک و محتوای ایمیل، درست 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - aminmesbahi/chapar: A simple Python based email sender (bulk, HTML format). "Chapar" refers to the ancient postal couriers…
A simple Python based email sender (bulk, HTML format). "Chapar" refers to the ancient postal couriers who swiftly delivered messages across distances. - aminmesbahi/chapar
🙏10
🚀 خلاصه اتفاقات پیشروی SQL Server در سال ۲۰۲۵
✅ نسخه سنتی SQL Server 2025
نوامبر ۲۰۲۴، نسخه جدید SQL Server یعنی SQL Server 2025 معرفی شد و الان در نسخه پیشنمایش خصوصی قرار داره. ویژگیهایی مثل مدیریت مدلهای هوش مصنوعی، پردازش Vectorها، و امکاناتی مثل پشتیبانی از نوع داده JSON، RegEx، Change Event Streaming و REST API رو با خودش همراه داره.
امسال اول پیشنمایش عمومی منتشر خواهد شد و بعدش هم به صورت عمومی در دسترس قرار میگیره.
✅ نسخه SQL Database در Microsoft Fabric
پلتفرم Fabric یه بستر یکپارچه برای نگهداری دادهها است (Data Lake, Data Warehouse, BI, Real-Time Analysis, Data Science + Data Engineering Modeling, ETL/ELT) خب همه چیز داره جز یه چیز، که حالا با اضافه کردن پایگاه داده عملیاتی (Operational Database) که از SQL Server استفاده میکنه، کامل شده. توی ۲۰۲۵ میشه در کسری از ثانیه دیتابیس جدید ایجاد کرد، اپلیکیشنهای AI ساخت و همه اینها رو داخل اکوسیستم Fabric انجام داد.
✅ اپلیکیشنهای AI و SQL Server
یکی از قابلیتهای جالب SQL Server 2025 اینه که میشه اپلیکیشنهای RAG (Retrieval-Augmented Generation) و چتباتها رو با استفاده از امنیت و مقیاسپذیری دیتابیس ساخت. مثلا:
*️⃣ دسترسی به مدلهای هوش مصنوعی Azure OpenAI
*️⃣ نوع داده جدید برای Vector
*️⃣ پشتیبانی از جستجوی برداری (Vector Search) با تکنولوژی DiskANN
✅ ابزارها و کوپایلوتها
سال ۲۰۲۴، ابزارها آپدیت شدن و سرمایهگذاری اصلی روی SQL Server Management Studio (SSMS) انجام شد. نسخه 21 SSMS پشتیبانی از Git داره و نسخه ۶۴ بیتی ویژوالاستدیو رو داره.
همچنین کوپایلوتهای جدیدی معرفی شدن که کمک میکنن با وارد کردن درخواستهایی مثل "دیتابیس من کند هست" یا "این ایندکس چرا استفاده نمیشه" مشکلات رو شناسایی و برطرف کنیم.
📎 ✨ اگر برای چند هفته بخواهیم مطالب دیتابیسی داشته باشیم روی PostgreSQL باشه (ریاکشن 🤪 ) یا SQL Server (ریاکشن ⚙️ )؟
نوامبر ۲۰۲۴، نسخه جدید SQL Server یعنی SQL Server 2025 معرفی شد و الان در نسخه پیشنمایش خصوصی قرار داره. ویژگیهایی مثل مدیریت مدلهای هوش مصنوعی، پردازش Vectorها، و امکاناتی مثل پشتیبانی از نوع داده JSON، RegEx، Change Event Streaming و REST API رو با خودش همراه داره.
امسال اول پیشنمایش عمومی منتشر خواهد شد و بعدش هم به صورت عمومی در دسترس قرار میگیره.
پلتفرم Fabric یه بستر یکپارچه برای نگهداری دادهها است (Data Lake, Data Warehouse, BI, Real-Time Analysis, Data Science + Data Engineering Modeling, ETL/ELT) خب همه چیز داره جز یه چیز، که حالا با اضافه کردن پایگاه داده عملیاتی (Operational Database) که از SQL Server استفاده میکنه، کامل شده. توی ۲۰۲۵ میشه در کسری از ثانیه دیتابیس جدید ایجاد کرد، اپلیکیشنهای AI ساخت و همه اینها رو داخل اکوسیستم Fabric انجام داد.
یکی از قابلیتهای جالب SQL Server 2025 اینه که میشه اپلیکیشنهای RAG (Retrieval-Augmented Generation) و چتباتها رو با استفاده از امنیت و مقیاسپذیری دیتابیس ساخت. مثلا:
سال ۲۰۲۴، ابزارها آپدیت شدن و سرمایهگذاری اصلی روی SQL Server Management Studio (SSMS) انجام شد. نسخه 21 SSMS پشتیبانی از Git داره و نسخه ۶۴ بیتی ویژوالاستدیو رو داره.
همچنین کوپایلوتهای جدیدی معرفی شدن که کمک میکنن با وارد کردن درخواستهایی مثل "دیتابیس من کند هست" یا "این ایندکس چرا استفاده نمیشه" مشکلات رو شناسایی و برطرف کنیم.
Please open Telegram to view this post
VIEW IN TELEGRAM
بعد از این چند هفته تمرکز روی SQL Server سراغ PostgreSQL هم خواهیم رفت؛ در گذشته هم داشتیم که با هشتگ #MSSQL_to_PGSQL توی کانال در دسترس است.
مسیر یادگیری اصولی SQL Server، سلیقه من یا دیگری نیست! بلکه منطبق بر نظر خالق محصوله. مایکروسافت بارها مسیر یادگیری SQL Server (و سایر تکنولوژیهاش) رو با نیازهای بازار و تغییرات محصولاتش تغییر داده. ولی به صورت کلی و بیان ساده، SQL Server رو میشه با سرفصلهای کلان زیر یاد گرفت:
تمرکز اصلی دولوپر بر طراحی، توسعه و بهینهسازی ساختار و کد دیتابیسه. باید توی نوشتن کوئریهای پیچیده، توابع، پروسیجرها وتریگرها تسلط داشته باشه و با امکاناتی مثل XML, JSON, Spatial, Graph، ساختارهای سلسلهمراتبی و... آشنا باشه و البته درک عمیقی از نرمالسازی و طراحی اصولی دیتابیس داشته باشه.
تسلط روی نحوهی کارکرد دیتابیس (مفاهیمی مثل Set Theory یا Predication Logic یا Cardinality)، تسلط روی T-SQL، درک عمیق مدلسازی داده (Database Modeling) بخشی از الزامات توسعهدهنده است.
مسئولیت نگهداری، امنیت و عملکرد بهینه دیتابیس سرور رو بر عهده داره. باید با مفاهیم ابتدایی مثل backup و recovery، اشنا باشه و مانیتورینگ پرفرمنس، High Availabilty، Disaster Recovery تنظیمات امنیتی و مدیریت دسترسیها رو خوب بلد باشه. همچنین توانایی عیبیابی و رفع مشکلات احتمالی بسیار مهمه. طبیعتا باید درک عمیقی از استورج داشته باشه.
ترکیبی از مهارتهای توسعه و مدیریت رو نیاز داره؛ با تمرکز روی زیرساختهای دیتابیس، طراحی سیستمهای توزیعشده، مدیریت Performance در سطح پیشرفته، و گاهی خودکارسازی (Automation) فرایندهای دیتابیس.
نیازمندیهاش هم علاوه بر موارد بالا، دانش عمیق از مفاهیم معماری نرمافزار، آشنایی با اسکریپتنویسی (PowerShell یا Python)، مدیریت سرورها و درک نیازمندیهای Business برای طراحی راهکارهای مقیاسپذیر. علاوه بر تسلط بر SQL، باید با مفاهیم مهندسی نرمافزار، معماری سیستم و یکپارچهسازی سرویسها رو هم دونست تا طراحی سیستمهای مقیاسپذیر که از وظایف اصلیه این نقش است رو درست به انجام رسوند.
بیشتر روی استخراج و تحلیل دادهها برای کمک به تصمیمگیریهای تجاری متمرکزه. تسلط روی کوئرینویسی پیشرفته، شناسایی الگوها و روندها (Trends)، گزارشگیری و ویژوالایز کردن دادهها ضروریه. آشنایی با ابزارهای BI مثل Power BI مزیت محسوب میشه (دوران SQL Server Reporting Services یا SQL Server Analysis Services تقریبا به سر رسیده؛ لذا ابزارهای مدرنتر جایگزین شدن).
این مسیر ترکیبی از SQL Server و هوش مصنوعیه، خصوصا کار با مدلهای جدید و LLMها یا AI Agentها. علاوه بر مهارتهای پایه SQL، باید با SQL Server Machine Learning Services و زبانهای Python یا R آشنا بود. همچنین درک عمیق از الگوریتمهای یادگیری ماشین ضروری است.
روزی لازم بود تا Data Warehouse رو دنبال کنه، ولی امروز Data Lake و Transactional Data Lake. یه روزی SSRS برای ساخت گزارشات و BI کافی بود، ولی امروز PowerBI و یکپارچگیش با Fabric لازمه.
یکی از مزیتهای SQL Server و Oracle اینه که دوره آموزشی + منابع آموزشی رسمی دارن و این در تربیت متخصص بهتر، خیلی موثره.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9 3
📊 توابع جدید مرتبط با سریهای زمانی در SQL Server 2022
دادههای سری زمانی یکی از رایجترین انواع دادهها توی سیستمهای مدرنه؛ از لاگهای سرور گرفته تا دادههای سنسورها و حتی قیمت سهام و فروش و...
این نوع دادهها بر اساس زمان ثبت میشن و تحلیلشون معمولاً به دستهبندی و تجمیع توی بازههای زمانی مشخص نیاز داره. قبل از نسخه ۲۰۲۲ SQL Server، انجام این کارها کلی کدنویسی دستی و پیچیدگی داشت؛ مثل استفاده از توابع عجیبوغریب برای ساخت بازههای زمانی یا تولید دادههای مصنوعی برای شبیهسازی سریها. اما حالا با ابزارهایی مثل DATE_BUCKET و GENERATE_SERIES این مشکلات تا حد زیادی حل شده و میتونیم دادهها رو خیلی راحتتر دستهبندی و تحلیل کنیم.
نتیجه؟ هم توی زمان صرفهجویی میکنیم، هم کدمون تمیزتر میشه و هم بابت هر کار سادهای نیاز به مهاجرت به دیتابیس انجینهای سریزمانی مثل InfluxDB نمیشیم.
این دو تا پوستر رو برای معرفی و توضیح این توابع ببینید و طبیعتا اگر نظر و سوالی دارید بنویسید 😉
#SQLServer #DB #SQLServer_Week
دادههای سری زمانی یکی از رایجترین انواع دادهها توی سیستمهای مدرنه؛ از لاگهای سرور گرفته تا دادههای سنسورها و حتی قیمت سهام و فروش و...
این نوع دادهها بر اساس زمان ثبت میشن و تحلیلشون معمولاً به دستهبندی و تجمیع توی بازههای زمانی مشخص نیاز داره. قبل از نسخه ۲۰۲۲ SQL Server، انجام این کارها کلی کدنویسی دستی و پیچیدگی داشت؛ مثل استفاده از توابع عجیبوغریب برای ساخت بازههای زمانی یا تولید دادههای مصنوعی برای شبیهسازی سریها. اما حالا با ابزارهایی مثل DATE_BUCKET و GENERATE_SERIES این مشکلات تا حد زیادی حل شده و میتونیم دادهها رو خیلی راحتتر دستهبندی و تحلیل کنیم.
نتیجه؟ هم توی زمان صرفهجویی میکنیم، هم کدمون تمیزتر میشه و هم بابت هر کار سادهای نیاز به مهاجرت به دیتابیس انجینهای سریزمانی مثل InfluxDB نمیشیم.
این دو تا پوستر رو برای معرفی و توضیح این توابع ببینید و طبیعتا اگر نظر و سوالی دارید بنویسید 😉
#SQLServer #DB #SQLServer_Week
👍7
چند وقته توی کامیونیتی توصیفات عجیب و غریبی توسط جَواگِره عزیز (جمع مکسر جوگیر) راجع به Rust میبینیم. گویی که «امروزه، عصر Rustنویسی است و مابقی کدها شایستهی لعنت کائنات» (همینو در مورد چیزهای دیگه هم میبینیم، ولی باشه برای پستهای بعدی 😁)
خیلی مهمه که بدونیم «چرا» لینوکس، ویندوز، اندروید و کلی پروژه مهم دیگه در حال بازنویسی برخی کدهای موجود و توسعه برخی کدهای جدیدشون با Rust هستن؟
مثلا توی کرنل ویندوز یک سال و نیمه که راست به صورت رسمی وجود داره (System32\win32kbase_rs.sys) یا لینوکس کرنل ۶.۱۳ که این هفته ریلیز شد علاوه بازهم بخشهای جدیدتری رو با راست بازنویسی کرده (البته خیلی وقته برخی درایورهاش رو با راست نوشتن) و...
با اینکه فریمورک وب و دسکتاپ و... برای راست میبینیم، حتی جایگزین برای الکترون و.. هم داره، باید قبل از افتادن توی حباب، ببینیم «چه مسئله» ای رو قراره برامون حل کنه!
علیایحال؛ اگر خواستید بیشتر باهاش آشنا شید (برای یادگیری مفاهیم طراحی زبان، روشهای مدیریت همزمانی و حافظه و... مایکروسافت به عنوان یکی از اعضاء جدی و مهم بنیاد راست، مستندات خیلی خوبی ویژهی توسعهدهندگان داتنت که قصد مهاجرت یا یادگیری Rust دارن، توسعه داده که میتونید به عنوان یک رفرنس عالی ازش استفاده کنید)
https://microsoft.github.io/rust-for-dotnet-devs/latest/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5
image_2025-01-23_00-38-51.png
372.4 KB
تاحالا شده موقع ساخت یا بازسازی ایندکس روی سروری که کاربرهای همزمان زیادی داره دچار مشکل شید و lockها جلو کارتون رو بگیرن؟ اگر پاسخ مثبته پوستر رو بخونید 😊
حالا یه سوال دیگه؟ تا حالا شده بخواهید روی یک جدول بزرگ ایندکس / کلید اصلی بسازی یا ایندکس بازسازی کنی ولی حجم فعالیت سنگین باشه و آرزی کنی ای کاش میشد تا اینجا رو pause کنم، بقیهاش رو بعدن ادامه بدم؟ اگر پاسخ مثبته، این چند کد رو که توی نسخه ۲۰۲۲ کار میکنه ببین لطفا:
ALTER TABLE table1
ADD CONSTRAINT PK_Constrain PRIMARY KEY CLUSTERED (a)
WITH (ONLINE = ON, MAXDOP = 2, RESUMABLE = ON, MAX_DURATION = 240);
ALTER TABLE table2
ADD CONSTRAINT PK_Constrain UNIQUE CLUSTERED (a,b)
WITH (ONLINE = ON, MAXDOP = 2, RESUMABLE = ON, MAX_DURATION = 240);
این موضوع اینقدر مهمه که اگر فکر میکنید در درک صحیح و عمیق ایندکس مشکل دارید، با ریاکشن
Please open Telegram to view this post
VIEW IN TELEGRAM