DotNet | دات نت
قسمت شماره ۱: خداحافظی با کدهای تکراری در C# 14! سلام به همه برنامهنویسهای خفن داتنتی! 👋 خبرهای داغ داریم! 🔥 .NET 10 و C# 14 با یه سری ویژگیهای فوقالعاده از راه رسیدن که کدنویسی رو خیلی شیرینتر میکنه. بیاید چندتا از باحالترینهاش رو با هم ببینیم:…
قسمت ۱ :Extension Members
این یکی از بزرگترین تغییرات C# 14 هست! یادتونه با Extension Methods میتونستیم به کلاسهای دیگه (حتی کلاسهایی که سورسشون رو نداشتیم) رفتار (متد) اضافه کنیم؟
حالا با Extension Members میتونیم بهشون حالت (State) هم اضافه کنیم! یعنی میتونیم به کلاسی که مال ما نیست، Property، Field و حتی Event اضافه کنیم.
مثال: فرض کنید یه کلاس User از یه پکیج NuGet دارید و نمیتونید تغییرش بدید.
حالا میخوایم یه Property به اسم DisplayName بهش اضافه کنیم که اسم کامل رو برگردونه:
نحوه استفادهاش دقیقاً مثل یه Property عادیه:
قسمت ۲ : خداحافظی با پیچیدگی LeftJoin
اگه با Entity Framework Core کار کرده باشید، میدونید که پیادهسازی یه LEFT JOIN ساده (یعنی «همه کاربرها رو بیار، و اگه کتابی داشتن، کتابهاشون رو هم بیار») چقدر میتونست پیچیده باشه. معمولاً باید از GroupJoin و SelectMany و DefaultIfEmpty استفاده میکردیم که خیلی خوانا نبود.
خبر خوب: در EF Core 10، متدهای LeftJoin و RightJoin مستقیماً اضافه شدن!
مثال: میخوایم لیست همه «نویسندهها» و «عنوان کتابهاشون» رو بگیریم، حتی اگه نویسندهای هیچ کتابی نداشته باشه.
این کوئری جدید خیلی تمیزتره و دقیقاً همون چیزی رو مینویسید که تو ذهنتونه (و شبیه SQL اصلیه).
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
این یکی از بزرگترین تغییرات C# 14 هست! یادتونه با Extension Methods میتونستیم به کلاسهای دیگه (حتی کلاسهایی که سورسشون رو نداشتیم) رفتار (متد) اضافه کنیم؟
حالا با Extension Members میتونیم بهشون حالت (State) هم اضافه کنیم! یعنی میتونیم به کلاسی که مال ما نیست، Property، Field و حتی Event اضافه کنیم.
مثال: فرض کنید یه کلاس User از یه پکیج NuGet دارید و نمیتونید تغییرش بدید.
// این کلاس در یک لایبرری دیگه است:
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
حالا میخوایم یه Property به اسم DisplayName بهش اضافه کنیم که اسم کامل رو برگردونه:
// جادوی C# 14 با کلمه کلیدی 'extension'
public extension class UserExtension for User
{
// یه Property جدید به کلاس User اضافه کردیم!
public string DisplayName
{
// 'this' به همون نمونه 'User' اشاره داره
get => $"{this.FirstName} {this.LastName}";
}
// حتی میتونیم فیلد هم اضافه کنیم!
private bool _hasBeenWelcomed = false;
public void Welcome()
{
if (!_hasBeenWelcomed)
{
Console.WriteLine($"خوش اومدی، {this.DisplayName}!");
_hasBeenWelcomed = true;
}
}
}
نحوه استفادهاش دقیقاً مثل یه Property عادیه:
var user = new User { FirstName = "سارا", LastName = "رضائی" };
// مستقیم به Property الحاقی دسترسی داریم:
Console.WriteLine(user.DisplayName); // خروجی: سارا محمدی
user.Welcome(); // خروجی: خوش اومدی، سارا محمدی!
user.Welcome(); // (بار دوم چیزی چاپ نمیکنه)قسمت ۲ : خداحافظی با پیچیدگی LeftJoin
اگه با Entity Framework Core کار کرده باشید، میدونید که پیادهسازی یه LEFT JOIN ساده (یعنی «همه کاربرها رو بیار، و اگه کتابی داشتن، کتابهاشون رو هم بیار») چقدر میتونست پیچیده باشه. معمولاً باید از GroupJoin و SelectMany و DefaultIfEmpty استفاده میکردیم که خیلی خوانا نبود.
خبر خوب: در EF Core 10، متدهای LeftJoin و RightJoin مستقیماً اضافه شدن!
مثال: میخوایم لیست همه «نویسندهها» و «عنوان کتابهاشون» رو بگیریم، حتی اگه نویسندهای هیچ کتابی نداشته باشه.
// ----------------
// روش قدیمی در EF Core 8:
// ----------------
var oldWay = db.Authors
.GroupJoin(db.Books,
author => author.Id,
book => book.AuthorId,
(author, books) => new { Author = author, Books = books })
.SelectMany(
temp => temp.Books.DefaultIfEmpty(),
(temp, book) => new
{
AuthorName = temp.Author.Name,
BookTitle = book == null ? "(بدون کتاب)" : book.Title
});
// ----------------
// روش جدید و خوانا در EF Core 10:
// ----------------
var newWay = db.Authors
.LeftJoin(db.Books,
author => author.Id, // کلید از جدول چپ (Author)
book => book.AuthorId, // کلید از جدول راست (Book)
(author, book) => new // نتیجه نهایی
{
AuthorName = author.Name,
// اگه کتابی نباشه، 'book' و در نتیجه 'book.Title' نال میشه
BookTitle = book.Title
});
این کوئری جدید خیلی تمیزتره و دقیقاً همون چیزی رو مینویسید که تو ذهنتونه (و شبیه SQL اصلیه).
📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍1🔥1👏1
DotNet | دات نت
قسمت شماره ۱: خداحافظی با کدهای تکراری در C# 14! سلام به همه برنامهنویسهای خفن داتنتی! 👋 خبرهای داغ داریم! 🔥 .NET 10 و C# 14 با یه سری ویژگیهای فوقالعاده از راه رسیدن که کدنویسی رو خیلی شیرینتر میکنه. بیاید چندتا از باحالترینهاش رو با هم ببینیم:…
قسمت ۳ : پشتیبانی داخلی از (SSE) Server-Sent Events
اغلب وقتی میخوایم دیتای زنده از سرور به کلاینت بفرستیم (مثل نوتیفیکیشن، قیمت لحظهای ارز یا وضعیت یه پردازش طولانی)، اولین فکرمون میره سراغ WebSockets.
اما WebSockets یه پروتکل دوطرفه و پیچیدهست. خیلی وقتها ما فقط نیاز داریم سرور یکطرفه به کلاینت دیتا «پوش» کنه.
اینجا SSE (Server-Sent Events) وارد میشه. SSE بر پایه HTTP کار میکنه، سبکه و پیادهسازیش خیلی سادهتره.
در ASP.NET Core 10، پشتیبانی از SSE داخلی شده:
مثال (سمت سرور - C#):
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
اغلب وقتی میخوایم دیتای زنده از سرور به کلاینت بفرستیم (مثل نوتیفیکیشن، قیمت لحظهای ارز یا وضعیت یه پردازش طولانی)، اولین فکرمون میره سراغ WebSockets.
اما WebSockets یه پروتکل دوطرفه و پیچیدهست. خیلی وقتها ما فقط نیاز داریم سرور یکطرفه به کلاینت دیتا «پوش» کنه.
اینجا SSE (Server-Sent Events) وارد میشه. SSE بر پایه HTTP کار میکنه، سبکه و پیادهسازیش خیلی سادهتره.
در ASP.NET Core 10، پشتیبانی از SSE داخلی شده:
مثال (سمت سرور - C#):
app.MapGet("/live-clock", async (HttpContext context, CancellationToken ct) =>
{
// به مرورگر میگیم که این یه استریم SSE هست
await context.Response.WriteSseHeadersAsync(ct);
// یه حلقه که هر ثانیه، زمان سرور رو برای کلاینت میفرسته
while (!ct.IsCancellationRequested)
DRAFT:
{
// یه "ایونت" به اسم 'timeUpdate' میفرستیم
await context.Response.WriteSseEventAsync(
"timeUpdate", // اسم ایونت
$"ساعت سرور: {DateTime.Now:T}", // دیتا
ct);
await Task.Delay(1000, ct); // ۱ ثانیه صبر کن
}
});
مثال (سمت کلاینت - JavaScript):
// به همین سادگی به سرور وصل میشیم
const eventSource = new EventSource("/live-clock");
// به ایونت 'timeUpdate' گوش میدیم
eventSource.addEventListener("timeUpdate", (event) => {
console.log(event.data);
// خروجی: "ساعت سرور: 14:30:01"
// خروجی: "ساعت سرور: 14:30:02"
// ...
});📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4👏3
25195_WonderlandVS2026Sizzle_AvailableNow_v1.webm
3.4 MB
🔥 نسخه نهایی ویژوال استودیو ۲۰۲۶ منتشر شد! 🔥
بالاخره نسخه جدید غول برنامهنویسی مایکروسافت، Visual Studio 2026، همزمان با .NET Conf 2025 و همراه با .NET 10 به صورت رسمی (GA) منتشر شد!
این نسخه فقط یک آپدیت ساده نیست، بلکه به گفته مایکروسافت، اولین "محیط توسعه هوشمند" (Intelligent Developer Environment) محسوب میشه. تمرکز اصلی روی هوش مصنوعی، عملکرد و مدرنسازی بوده.
---
مهمترین تغییرات و ویژگیهای جدید:
محیط توسعه مبتنی بر هوش مصنوعی (AI-Native):
قسمت Copilot Agents: دیگه فقط یک پیشنهاددهنده کد نیست! Copilot حالا "ایجنتهای" تخصصی برای C# و C++ داره که میتونن وظایف پیچیدهتر مثل مدرنسازی کدهای قدیمی یا نوشتن تستهای واحد (Unit Test) رو انجام بدن.
دیباگینگ هوشمند: موقع دیباگ کردن، Copilot بهتون میگه که چرا یک متغیر این مقدار رو گرفته یا فلان if چطور ارزیابی شده.
جستجوی هوشمند: قابلیت "Did You Mean" به جستجوی داخل پروژه اضافه شده و منظور شما رو بهتر درک میکنه.
عملکرد و پایداری فوقالعاده:
بیش از ۵۰۰۰ باگ گزارششده توسط کاربران رفع شده.
هنگ کردنهای رابط کاربری (UI hangs) نسبت به VS 2022 بیش از ۵۰٪ کاهش پیدا کرده و محیط برنامه به شدت روانتر شده.
رابط کاربری جدید (Fluent UI):
ظاهر ویژوال استودیو بازطراحی شده و با زبان طراحی جدید مایکروسافت (Fluent UI) هماهنگ شده که مدرنتر و تمیزتره.
پشتیبانی کامل از پلتفرمهای جدید:
پشتیبانی کامل از آخرین نسخه .NET.
بهرهمندی از تمام قابلیتهای جدید زبان سیشارپ.
پشتیبانی درجه یک از فریمورک جدید مایکروسافت برای ساخت اپلیکیشنهای Cloud-Native.
پشتیبانی کامل از آخرین استانداردهای C++.
سازگاری اکستنشنها:
خبر خوب! اکثر اکستنشنهایی که برای ویژوال استودیو ۲۰۲۲ نوشته شدهاند، بدون مشکل روی نسخه ۲۰۲۶ هم کار میکنند.
---
🔗 لینک دانلود مستقیم از سایت مایکروسافت:
https://visualstudio.microsoft.com/downloads
---
🔑 لایسنسهای ارائه شده:
Enterprise:
Professional:
---
#VisualStudio #VS2026 #DotNet10 #CSharp14 #AI #Copilot
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
بالاخره نسخه جدید غول برنامهنویسی مایکروسافت، Visual Studio 2026، همزمان با .NET Conf 2025 و همراه با .NET 10 به صورت رسمی (GA) منتشر شد!
این نسخه فقط یک آپدیت ساده نیست، بلکه به گفته مایکروسافت، اولین "محیط توسعه هوشمند" (Intelligent Developer Environment) محسوب میشه. تمرکز اصلی روی هوش مصنوعی، عملکرد و مدرنسازی بوده.
---
مهمترین تغییرات و ویژگیهای جدید:
محیط توسعه مبتنی بر هوش مصنوعی (AI-Native):
قسمت Copilot Agents: دیگه فقط یک پیشنهاددهنده کد نیست! Copilot حالا "ایجنتهای" تخصصی برای C# و C++ داره که میتونن وظایف پیچیدهتر مثل مدرنسازی کدهای قدیمی یا نوشتن تستهای واحد (Unit Test) رو انجام بدن.
دیباگینگ هوشمند: موقع دیباگ کردن، Copilot بهتون میگه که چرا یک متغیر این مقدار رو گرفته یا فلان if چطور ارزیابی شده.
جستجوی هوشمند: قابلیت "Did You Mean" به جستجوی داخل پروژه اضافه شده و منظور شما رو بهتر درک میکنه.
عملکرد و پایداری فوقالعاده:
بیش از ۵۰۰۰ باگ گزارششده توسط کاربران رفع شده.
هنگ کردنهای رابط کاربری (UI hangs) نسبت به VS 2022 بیش از ۵۰٪ کاهش پیدا کرده و محیط برنامه به شدت روانتر شده.
رابط کاربری جدید (Fluent UI):
ظاهر ویژوال استودیو بازطراحی شده و با زبان طراحی جدید مایکروسافت (Fluent UI) هماهنگ شده که مدرنتر و تمیزتره.
پشتیبانی کامل از پلتفرمهای جدید:
پشتیبانی کامل از آخرین نسخه .NET.
بهرهمندی از تمام قابلیتهای جدید زبان سیشارپ.
پشتیبانی درجه یک از فریمورک جدید مایکروسافت برای ساخت اپلیکیشنهای Cloud-Native.
پشتیبانی کامل از آخرین استانداردهای C++.
سازگاری اکستنشنها:
خبر خوب! اکثر اکستنشنهایی که برای ویژوال استودیو ۲۰۲۲ نوشته شدهاند، بدون مشکل روی نسخه ۲۰۲۶ هم کار میکنند.
---
🔗 لینک دانلود مستقیم از سایت مایکروسافت:
https://visualstudio.microsoft.com/downloads
---
🔑 لایسنسهای ارائه شده:
Enterprise:
BW43B-4PNFP-V7GB7-36MBD-3PJTHProfessional:
DDBD6-NPCDC-2FH2P-PDP9M-G3F6W---
#VisualStudio #VS2026 #DotNet10 #CSharp14 #AI #Copilot
📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👏2🔥1
Forwarded from ʜᴜꜱꜱᴇɪɴ ʙᴇʏɢɪ
قسمت سوم :
🔥 اگه فکر میکنی Kibana فقط برای نگاهکردن لاگه… این ویدیو نظرت رو عوض میکنه!
همه جا میگن «الاستیکسرچ سریع و قدرتمنده»، ولی کسی واقعاً نشون نمیده چطوری باید ازش استفاده کرد.
تو این قسمت، بدون هیچ پیچیدگی، مستقیم میریم سراغ قلب ماجرا:
✅ ساخت ایندکس واقعی
✅ سرچهای کاربردی با Match و Multi-Match
✅ اولین Aggregation حرفهای
✅ فهم درست Doc, Index و REST API
و کلی نکتهای که معمولاً هیچجا گفته نمیشه…
اگر حتی یه بار با ElasticSearch کار کردی (یا میخوای شروع کنی)، این قسمت جامپاستارتته!
👇
https://youtu.be/HSodksRVtKU
🔥 اگه فکر میکنی Kibana فقط برای نگاهکردن لاگه… این ویدیو نظرت رو عوض میکنه!
همه جا میگن «الاستیکسرچ سریع و قدرتمنده»، ولی کسی واقعاً نشون نمیده چطوری باید ازش استفاده کرد.
تو این قسمت، بدون هیچ پیچیدگی، مستقیم میریم سراغ قلب ماجرا:
✅ ساخت ایندکس واقعی
✅ سرچهای کاربردی با Match و Multi-Match
✅ اولین Aggregation حرفهای
✅ فهم درست Doc, Index و REST API
و کلی نکتهای که معمولاً هیچجا گفته نمیشه…
اگر حتی یه بار با ElasticSearch کار کردی (یا میخوای شروع کنی)، این قسمت جامپاستارتته!
👇
https://youtu.be/HSodksRVtKU
❤5👍1🔥1
مدل Gemini 3 Pro منتشر شده و نتایج اولیه روی بنچمارکها از پیشرفت قابل ملاحظه نسبت به مدل قبلی خبر میده.
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤2🤯1
اتحاد غولهای هوش مصنوعی: مایکروسافت، انویدیا و آنتروپیک برای آینده هوش مصنوعی همکاری میکنند
در یک رویداد مهم، مدیران عامل شرکتهای مایکروسافت، انویدیا و آنتروپیک از یک همکاری استراتژیک چندجانبه برای تسریع نوآوری و گسترش هوش مصنوعی در سطح جهانی خبر دادند. بر اساس این توافق، مدلهای پیشرفته هوش مصنوعی Claude شرکت آنتروپیک بر روی پلتفرم ابری Azure مایکروسافت در دسترس قرار گرفته و در محصولات خانواده Copilot ادغام خواهند شد.
از سوی دیگر، انویدیا با تأمین پردازندههای گرافیکی قدرتمند خود و همکاری فنی برای بهینهسازی مدلها، زیرساخت لازم برای رشد آنتروپیک را فراهم میکند. این اتحاد با هدف ارائه بهترین زیرساختها، مدلهای هوش مصنوعی و برنامههای کاربردی به مشتریان، به ویژه در بخشهای سازمانی و صنعتی، شکل گرفته است تا پذیرش فناوری هوش مصنوعی در سراسر جهان را تسریع بخشد.
https://www.youtube.com/watch?v=bl7vHnOgEg0
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
در یک رویداد مهم، مدیران عامل شرکتهای مایکروسافت، انویدیا و آنتروپیک از یک همکاری استراتژیک چندجانبه برای تسریع نوآوری و گسترش هوش مصنوعی در سطح جهانی خبر دادند. بر اساس این توافق، مدلهای پیشرفته هوش مصنوعی Claude شرکت آنتروپیک بر روی پلتفرم ابری Azure مایکروسافت در دسترس قرار گرفته و در محصولات خانواده Copilot ادغام خواهند شد.
از سوی دیگر، انویدیا با تأمین پردازندههای گرافیکی قدرتمند خود و همکاری فنی برای بهینهسازی مدلها، زیرساخت لازم برای رشد آنتروپیک را فراهم میکند. این اتحاد با هدف ارائه بهترین زیرساختها، مدلهای هوش مصنوعی و برنامههای کاربردی به مشتریان، به ویژه در بخشهای سازمانی و صنعتی، شکل گرفته است تا پذیرش فناوری هوش مصنوعی در سراسر جهان را تسریع بخشد.
https://www.youtube.com/watch?v=bl7vHnOgEg0
📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Anthropic, Microsoft, and NVIDIA Announce Partnerships
Anthropic co-founder and CEO Dario Amodei, Microsoft Chairman and CEO Satya Nadella, and NVIDIA founder and CEO Jensen Huang discuss the new partnerships between their companies.
Subscribe to Microsoft on YouTube here: https://aka.ms/SubscribeToYouTube …
Subscribe to Microsoft on YouTube here: https://aka.ms/SubscribeToYouTube …
👍5❤3🔥3
از اضطراب تا اطمینان: پارادوکسِ ملالت
در دنیای مهندسی نرمافزار، جایی که پیچیدگی ذات سیستم است و تغییر تنها ثابتِ آن، «ترس» همواره در سایه کدها کمین کرده است. ترس از شکستن کدهای قدیمی هنگام افزودن قابلیتهای جدید، ترس از باگهای پنهان در لایههای زیرین، و ترس از آن لحظهی هولناکِ "Deploy" که نمیدانیم سیستم تاب میآورد یا خیر.
کنت بک در این جمله، مرز باریک میان یک «کدنویس» و یک «مهندس نرمافزار» را ترسیم میکند. او معیار کافی بودن تستها را نه در درصد پوشش کد (Code Coverage)، بلکه در آرامش روان توسعهدهنده جستجو میکند.
۱. ترس به عنوان سیگنال:
وقتی کدی مینویسید و هنوز اضطراب دارید، این ترس یک سیگنال فنی است. به این معناست که سیستم شما هنوز پیشبینیناپذیر است. شما هنوز تمام سناریوهای مرزی را رام نکردهاید. این ترسِ سازنده، سوختِ نوشتن تستهای بیشتر است.
۲. استحاله به ملالت (Boredom):
چرا «ملالت» یا «کسالت»؟ در اینجا کنت بک واژهی Boredom را به عنوان یک فضیلت ستایش میکند. هیجان در عملیات مهندسی، معمولاً نشانه خوبی نیست؛ هیجان یعنی غیرقابل پیشبینی بودن، یعنی خطر.
وقتی تستهای شما آنقدر کامل، دقیق و جامع هستند که اجرای آنها هیچ شگفتیای برایتان ندارد و نتیجهی سبز شدنشان از پیش برایتان مسجل است، شما به آن «ملالت مقدس» رسیدهاید.
نتیجهگیری:
تستنویسی فقط برای یافتن باگ نیست؛ ابزاری است برای خریدنِ اعتماد به نفس. جملهی کنت بک به ما یادآوری میکند که هدف نهایی TDD، تبدیل کردن فرآیند توسعه نرمافزار از یک ماجراجویی پرخطر و استرسزا، به یک روتینِ قابل پیشبینی، امن و حتی «خستهکننده» است.
زمانی که انتشارِ کد جدید برایتان به اندازه نوشیدن یک لیوان آب معمولی و بیهیجان شد، آنگاه میتوانید ادعا کنید که معماری سیستمتان بالغ شده است.
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
در دنیای مهندسی نرمافزار، جایی که پیچیدگی ذات سیستم است و تغییر تنها ثابتِ آن، «ترس» همواره در سایه کدها کمین کرده است. ترس از شکستن کدهای قدیمی هنگام افزودن قابلیتهای جدید، ترس از باگهای پنهان در لایههای زیرین، و ترس از آن لحظهی هولناکِ "Deploy" که نمیدانیم سیستم تاب میآورد یا خیر.
کنت بک در این جمله، مرز باریک میان یک «کدنویس» و یک «مهندس نرمافزار» را ترسیم میکند. او معیار کافی بودن تستها را نه در درصد پوشش کد (Code Coverage)، بلکه در آرامش روان توسعهدهنده جستجو میکند.
۱. ترس به عنوان سیگنال:
وقتی کدی مینویسید و هنوز اضطراب دارید، این ترس یک سیگنال فنی است. به این معناست که سیستم شما هنوز پیشبینیناپذیر است. شما هنوز تمام سناریوهای مرزی را رام نکردهاید. این ترسِ سازنده، سوختِ نوشتن تستهای بیشتر است.
۲. استحاله به ملالت (Boredom):
چرا «ملالت» یا «کسالت»؟ در اینجا کنت بک واژهی Boredom را به عنوان یک فضیلت ستایش میکند. هیجان در عملیات مهندسی، معمولاً نشانه خوبی نیست؛ هیجان یعنی غیرقابل پیشبینی بودن، یعنی خطر.
وقتی تستهای شما آنقدر کامل، دقیق و جامع هستند که اجرای آنها هیچ شگفتیای برایتان ندارد و نتیجهی سبز شدنشان از پیش برایتان مسجل است، شما به آن «ملالت مقدس» رسیدهاید.
نتیجهگیری:
تستنویسی فقط برای یافتن باگ نیست؛ ابزاری است برای خریدنِ اعتماد به نفس. جملهی کنت بک به ما یادآوری میکند که هدف نهایی TDD، تبدیل کردن فرآیند توسعه نرمافزار از یک ماجراجویی پرخطر و استرسزا، به یک روتینِ قابل پیشبینی، امن و حتی «خستهکننده» است.
زمانی که انتشارِ کد جدید برایتان به اندازه نوشیدن یک لیوان آب معمولی و بیهیجان شد، آنگاه میتوانید ادعا کنید که معماری سیستمتان بالغ شده است.
📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥1👏1
انقلاب گوگل در طراحی رابط کاربری: معرفی Generative UI
گوگل در مقاله تحقیقاتی جدیدش توضیح داده که چطور با استفاده از مدل Gemini 3 Pro، فرآیند ساخت رابطهای کاربری را کاملاً خودکار کرده است. این سیستم دیگر فقط یک چتبات متنی نیست؛ بلکه یک پایپلاین مهندسی کامل است که مثل یک برنامهنویس Front-End عمل میکند.
معماری این سیستم روی سه ستون اصلی بنا شده است:
1️⃣ فراتر از مدل زبانی (Tools & Integration)
مدل زبانی در این سیستم تنها نیست و به ابزارهای قدرتمندی دسترسی دارد. اتصال به جستجوی وب، تولید تصویر (Image Gen) و دیتابیسها باعث میشود خروجی نهایی صرفاً یک متن نباشد، بلکه محتوایی زنده و متصل به دنیای واقعی باشد.
2️⃣ مغز متفکر سیستم (System Instructions)
کیفیت خروجی وابسته به دستورالعملهای دقیقی است که به مدل داده میشود. قوانین مربوط به ساختار HTML/CSS، محدودیتهای دیزاین سیستم و نحوه تعامل کامپوننتها در این مرحله به مدل تزریق میشود تا کد استاندارد تولید کند.
3️⃣ تضمین کیفیت نهایی (Post-Processing)
خروجی خام مدل هرگز مستقیماً به کاربر نمایش داده نمیشود. لایه پردازش نهایی وظیفه دارد کدها را بررسی کند، تگهای اشتباه را اصلاح کند و جلوی مشکلات امنیتی را بگیرد تا نتیجه در مرورگر بدون نقص اجرا شود.
نتیجه نهایی چیست؟
کاربر به جای خواندن یک توضیح متنی خشک، یک رابط کاربری (UI) تعاملی، گرافیکی و قابل کلیک تحویل میگیرد که دقیقاً برای نیاز او ساخته شده است.
🔗 لینک مقاله کامل:
https://generativeui.github.io/static/pdfs/paper.pdf
#Google #Gemini #GenerativeUI #AI #Frontend
🎺 برای یادگیری بیشتر و دریافت مطالب مفید در زمینه .NET و برنامهنویسی، به کانال ما بپیوندید!
📚💻 @dotnetcode🖥 👨💻
گوگل در مقاله تحقیقاتی جدیدش توضیح داده که چطور با استفاده از مدل Gemini 3 Pro، فرآیند ساخت رابطهای کاربری را کاملاً خودکار کرده است. این سیستم دیگر فقط یک چتبات متنی نیست؛ بلکه یک پایپلاین مهندسی کامل است که مثل یک برنامهنویس Front-End عمل میکند.
معماری این سیستم روی سه ستون اصلی بنا شده است:
1️⃣ فراتر از مدل زبانی (Tools & Integration)
مدل زبانی در این سیستم تنها نیست و به ابزارهای قدرتمندی دسترسی دارد. اتصال به جستجوی وب، تولید تصویر (Image Gen) و دیتابیسها باعث میشود خروجی نهایی صرفاً یک متن نباشد، بلکه محتوایی زنده و متصل به دنیای واقعی باشد.
2️⃣ مغز متفکر سیستم (System Instructions)
کیفیت خروجی وابسته به دستورالعملهای دقیقی است که به مدل داده میشود. قوانین مربوط به ساختار HTML/CSS، محدودیتهای دیزاین سیستم و نحوه تعامل کامپوننتها در این مرحله به مدل تزریق میشود تا کد استاندارد تولید کند.
3️⃣ تضمین کیفیت نهایی (Post-Processing)
خروجی خام مدل هرگز مستقیماً به کاربر نمایش داده نمیشود. لایه پردازش نهایی وظیفه دارد کدها را بررسی کند، تگهای اشتباه را اصلاح کند و جلوی مشکلات امنیتی را بگیرد تا نتیجه در مرورگر بدون نقص اجرا شود.
نتیجه نهایی چیست؟
کاربر به جای خواندن یک توضیح متنی خشک، یک رابط کاربری (UI) تعاملی، گرافیکی و قابل کلیک تحویل میگیرد که دقیقاً برای نیاز او ساخته شده است.
🔗 لینک مقاله کامل:
https://generativeui.github.io/static/pdfs/paper.pdf
#Google #Gemini #GenerativeUI #AI #Frontend
📚💻 @dotnetcode
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥1🥰1😱1