اصول پرامپتنویسی مهندسی در GitHub Copilot
نویسنده: وحید نصیری
تاریخ: ۱۴۰۵/۰۵/۲۹ ۱۲:۰۰
آدرس: www.dntips.ir
async/await، عدم افشای مستقیم موجودیتهای EF Core و ارسال CancellationToken.Results یا ActionResult).ایجاد یک اکشن متد در کنترلر سفارشات (OrdersController) در ASP.NET Core با الزامات زیر:
CancellationToken.404 Not Found در صورت عدم وجود سفارش.OrderResponseDto.IOrderService) از طریق Dependency Injection.[ApiController]
[Route("api/[controller]")]
public class OrdersController : ControllerBase
{
private readonly IOrderService _orderService;
private readonly ILogger<OrdersController> _logger;
public OrdersController(IOrderService orderService, ILogger<OrdersController> logger)
{
_orderService = orderService;
_logger = logger;
}
[HttpGet("{id:guid}")]
[ProducesResponseType(typeof(OrderResponseDto), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult<OrderResponseDto>> GetOrderByIdAsync(
Guid id,
CancellationToken cancellationToken)
{
var order = await _orderService.GetByIdAsync(id, cancellationToken);
if (order is null)
{
_logger.LogWarning("Order with ID {OrderId} was not found.", id);
return NotFound();
}
var response = new OrderResponseDto(
order.Id,
order.OrderDate,
order.TotalAmount,
order.Status);
return Ok(response);
}
}Order.cs و OrderResponseDto.cs را باز نگه دارید تا ساختار پراپرتیها و تایپها را بدون نیاز به تایپ مجدد شناسایی کند.@ و # استفاده کنید (مانند #file:OrderService.cs یا #selection) تا مدل دقیقاً بداند بر اساس کدام بخش از سورسکد باید پیادهسازی را انجام دهد.copilot-instructions.md: برای عدم تکرار محدودیتهای سراسری، یک فایل با نام .github/copilot-instructions.md در ریشه مخزن بسازید و قواعدی نظیر «همیشه از C# File-scoped namespaces استفاده کن» یا «همه اکشنها باید CancellationToken داشته باشند» را تعریف کنید تا به طور خودکار به تمام پرامپتها ضمیمه شود.var customer = یا فراخوانیهای تکخطی LINQ)، رفتار پیشفرض هوش مصنوعی بر پایهی توقف و تکمیل خودکار (Ghost Text) بهترین عملکرد و بیشترین سرعت را دارد. قاعده کلی: هرچه تصمیم فنی بزرگتر و حساستر باشد، زمینه و قیود پرامپت باید دقیقتر و کاملتر تعیین شوند.