Ha egy projekten egynél több ember dolgozik, akkor a kódolási konvenciók megléte egy projekt esetén mondhatni kulcsfontosságú. A jól összerakott konvenciók és azok betartása segÃti a kód karbantarthatóságát. A projekten kialakÃtott konvenció akkor jó, ha kellÅ‘en megengedÅ‘ és szigorú egyben.
Ez elsőre ellentmondásnak tűnhet, de ha belegondolunk, akkor logikus. Kellően engedékeny, hogy ne érezzük nyűgnek, de kellően szigorú a kulcsfontosságú kérdésekben.
Kérdés az, hogy mi lehet egy projekt esetén kulcsfontosságú? Szinte minden, de érdemes kiindulni a Microsoft által ajánlott konvenciókból (https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions). A könyv eddigi részeiben bemutatott kódrészletek ezeket többségében követik.
Ha a kódolási konvenciók kialakÃtásra kerültek, akkor a nehezebb feladat ezek betartatása. Ennek egy módszere a kód keview. A kód review lényegében az elkészült kód beolvasztás elÅ‘tti áttekintése egy vagy több ember által. Ez egyrészt a konvenciók követését ellenÅ‘rzi, másrészrÅ‘l pedig a minÅ‘ségbiztosÃtás egy eszköze, mivel ilyenkor a megÃrt kód minÅ‘sége és logikája is átnézésre kerül.
Ez az átnézendÅ‘ sorok számától függÅ‘en akár több órás folyamat is lehet, ami egyrészt fárasztó, mársrészt pedig senki sem tévedhetetlen. Ezért nagy segÃtség lenne, ha ezeket a konvenciókat már kódolás közben rá tudnánk "kényszerÃteni" a fejlesztÅ‘kre.
Lényegében erre való az EditorConfig projekt. Ez a leÃrása alapján:
"Az EditorConfig segÃt konzisztens kódolási stÃlusok fenntartásában több fejlesztÅ‘ számára, akik ugyanazon a projekten dolgoznak különbözÅ‘ szerkesztÅ‘kben és IDE-kben. Az EditorConfig projekt egy fájlformátumból valamint olyan szövegszerkesztÅ‘ beépülÅ‘ modulok gyűjteményébÅ‘l áll, amelyek lehetÅ‘vé teszik a szerkesztÅ‘k számára a fájlformátum olvasását és a meghatározott stÃlusok betartását.
A fájlformátum a kódolási stÃlusok meghatározására szolgál, könnyen olvashatók, és szépen együttműködnek a verziókezelÅ‘ rendszerekkel. "
Az EditorConfig fájlokat a Visual Studio a 2019-es változat óta támogatja és a 2022-es verziótól kezdve egy grafikus szerkesztővel is rendelkezik.
Az EditorConfig fájl onnan ismerhető fel, hogy a neve .editorconfig. Visual Studio-ban egy projekten belül az "Add new item" dialógusban hozható létre.
Parancssorból pedig a következőképpen tudunk létrehozni egy alapértelmezettet:
dotnet new editorconfig
A fájlt egyébként a projekt veziókezelt fÅ‘mappájába érdemes elhelyezni, Ãgy a fÅ‘mappában lévÅ‘ projektfájlra alkalmazhatjuk ugyanazt a szabályrendszert.
A szabályok szerkesztésénél beállÃtható, hogy milyen szinten legyenek ezek kezelve. Ezek a következÅ‘ek a legmegengedÅ‘bbtÅ‘l a legszigorúbb felé:
-
Refactoring only
Ebben az esetben csak a CTRL+. hatására megjelenÅ‘ menüben kapunk ajánlást a javÃtásról.
-
Suggestion
A konvenciónak nem megfelelÅ‘ részek zöld aláhúzást kapnak és a CTRL+. menü javÃtási ajánlatokkal szolgál.
-
Warning
Mint a suggestion szint, csak kiegészÃtve azzal, hogy a nem megfelelÅ‘ részek fordÃtás közben figyelmeztetéseket generálnak.
-
Error
Mint a suggestion szint, csak kiegészÃtve azzal, hogy a nem megfelelÅ‘ részek fordÃtási hibát generálnak.
A fájl létrehozása önmagában a beállÃtásoktól függetlenül még nem fogja azt magával hozni, hogy az Error vagy Warning tÃpusúra állÃtott szabályok ténylegesen fordÃtási hibát vagy figyelmeztetést okozzanak. Ehhez módosÃtani kell a projektfájlt is.
A projektfájlban egy szimpatikus PropertyGroup-ba fel kell vennünk az alábbi sort:
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
Ez a grafikus felületen is beállÃtható a projekt beállÃtásainál, a Code Analysis kategóriában:
A könyv ezen részének Ãrásának pillanatában ez még egy kÃsérleti funkcióként érhetÅ‘ el, ami azt jelenti, hogy lehetnek hibái.