.NET
Il-Proġett CRUD li Bnejt biex Ikolli Xi Ħaġa Nuri lir-Recruiters
Ispirat minn assessment ta' coding li André Baltieri (Balta) jagħti lill-kandidati, bnejt app CRUD ta' Student u Premium subscription b'awtentikazzjoni reali fi ftit jiem, imbagħad qattajt il-ħin iffrankat fuq dak li verament jagħmel proġett jidher lest.
Ridt proġett li nista' nurih lir-recruiters li kien verament lest, mhux idea oħra nofsha mibnija li tinsab xi mkien f'repo. Il-prompt għalih ġie minn video ta' André Baltieri, minn Balta, li jimxi minn assessment ta' coding li jagħti lill-kandidati għal rwol f'Balta.io: ibni app kompluta ta' Student u Premium subscription management b'awtentikazzjoni f'ASP.NET Core, ikkonsenjata fi ftit jiem.
Għaliex bnejt l-istess ħaġa
Il-punt kollu ta' Balta f'dak il-video kien li li ttemm xi ħaġa sempliċi u li taħdem tirbaħ verżjoni mhux lesta u over-engineered ta' xi ħaġa ambizzjuża. Dan qabel eżatt ma' dak li kelli bżonn għal biċċa portfolio, għalhekk bnejt l-istess brief għalija stess: app CRUD ta' Student u Premium subscription, awtentikazzjoni reali, xejn eżotiku.
X'verament għamilha malajra
Użajt l-Identity built-in ta' ASP.NET Core minflok ma ktibt l-awtentikazzjoni tiegħi stess mill-bidu:
dotnet new razor -au Individual
Dik il-flag waħda -au Individual tiskaffolda sistema sħiħa ta' identità lokali, reġistrazzjoni, login, logout, u cookies persistenti, mingħajr ma mist implimentazzjoni ta' JWT.
Għall-mudelli ta' Student u Premium, serraħt fuq data annotations minflok niktibx loġika ta' validazzjoni separata:
public class Student
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Full Name is required")]
[StringLength(80, MinimumLength = 5)]
public string Name { get; set; } = string.Empty;
[Required]
[EmailAddress]
public string Email { get; set; } = string.Empty;
public List<Premium> Premiums { get; set; } = new();
}
Attribut wieħed fuq il-mudell jittratta kemm il-constraint tad-database kif ukoll il-validazzjoni tal-formola fuq il-paġna, mingħajr JavaScript żejjed jew checks manwali fuq iż-żewġ naħat.
L-ieħor iffrankar kbir ta' ħin kien l-iskaffolding. Il-code generator ta' Microsoft jista' jibni s-sett sħiħ ta' paġni CRUD direttament kontra EF Core:
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet aspnet-codegenerator razorpage Create Create -m Student -dc ApplicationDbContext -sqlite -udl -outDir Pages/Students
Dak ġġenera l-views, il-form handlers, u s-sejħiet tas-salvar għal Create, Edit, Delete, Details, u l-list view fi ftit minuti minflok sigħat.
X'għamilt biċ-ċans li ffrankajt
Ladarba l-linja bażi ta' CRUD u l-awtentikazzjoni kienu jaħdmu, qattajt il-bqija tal-ħin fuq il-partijiet li verament jagħmlu proġett jidher lest minflok skaffoldjat: nirranġa l-kodiċi ġġenerat u l-ismijiet, nagħti stil tajjeb lill-UI minflok inħalli l-Bootstrap default, nissida d-database biex ma kinitx vojta l-ewwel darba li xi ħadd fetaħha, u nżid testijiet madwar l-endpoints ewlenin.
X'ħadt minnha
It-tagħlima reali kienet li proġett żgħir u komplut jgħid aktar lil recruiter minn wieħed akbar li huwa nofsu lest, u l-format tal-assessment ta' Balta huwa mod tajjeb biex tinforza dik il-limitazzjoni fuqek innifsek.