Miért jobb a konvenció a konfigurációnál webappoknál?
Miért jobb a konvenció, mint a végtelen konfiguráció webes alkalmazásoknál
Mindenki ismeri ezt az érzést. Új projekt indul, és ahelyett hogy rögtön kódolni kezdenél, három órát töltesz különböző ORM-ek összehasonlításával. Aztán jön a kérdés, hogy hol legyenek a modellek, és hogy melyik konfigurációs fájlt használja. Mire végre elkezdenél érdemi munkát, már teljesen kimerültél.
De ennek nem kell így lennie.
Miért jó, ha egy keretrendszernek vannak véleményei
Az elmúlt tíz évben a fejlesztés egyik iránya a teljes szabadság felé mutatott. Mindenhez több lehetőség közül választhattál – hitelesítéshez, gyorsítótárhoz, bármihez. Ez a szabadság azonban könnyen bénítóvá vált.
Egy másik megközelítés szerint a keretrendszer hoz döntéseket helyettünk. Nem azért, hogy korlátozzon, hanem mert már végiggondolta, hogyan érdemes webes alkalmazásokat építeni. Te pedig csak építed azt, amit építened kell.
A három alapelv
1. Az emberek olvassák a kódot, nem a gépek
A kód teljesítményénél fontosabb, hogy érthető legyen. Ha egy rendszer olyan szerkezetet kínál, hogy mindenki azonnal tudja, hol keresse a keresett részt, akkor hosszú távon sokkal gyorsabban dolgozol. Ez különösen fontos, amikor hónapok múlva visszakerülsz saját kódodhoz,或者 amikor új fejlesztőt veszel fel a csapatba.
2. Konvenció a konfiguráció felett
Ha egyszer megtanulod, hogy egy adott keretrendszerben mindig models/post.py fájlban találod a Post modelt, és a hozzá tartozó nézetek a views/pages/post/ mappában vannak, akkor nem kell minden alkalommal új döntéseket tegyel. Ezeket a döntéseket egyszer megtette valaki,而不是 hogy minden fejlesztő újra és újra végigmenjen rajta.
3. CRUD mint alap
A legtöbb alkalmazás alapvetan 7 standard műveletből áll: létrehozás, olvasás, létrehozát, törlés és a dazugehörigen szürke átmenetiek. Minden alkalmazás elvégre a CRUD műveletekhez hängt ab.
A legtöbb alkalmazás alapvetően 7 standard műveletből áll: létrehozás, olvasás, frissítés, törlés. Ha egy erőforrás nem igényel minden műveletet, akkor egyszerűen elhagyod azokat. Ha valamilyen más műveletre van szükséged, akkor általában új erőforrást hozol létre.
A közös infrastruktúra
Minden webes alkalmazásnak szüksége van néhány „unalmas” komponensre. Ezek közé tartoznak az alábbi elemek:
- Authentication & Sessions – Jelszókezelés, rate limiting, törött jelszavak ellenőrzése
- Forms – Beépített validáció és ORM kapcsolat
- Caching – Több rétegű gyorsítótár különböző backendekkel
- Email – Sablonokkal, úgy működik a fejlesztői és a production környezetben
- File Storage – S3 és lokálisan, képfeldolgozás és szignált URL-ek
- Background Jobs – Feladatok sorban, retry és cron támogatással
- Internationalization – Fordítások és helyi formázások
- WebSockets – Realtime kapcsolatok és jelenlét
A jó keretrendszer ezeket nem külön modulként vagy extra telepítendő csomagokként kezelék, hanem már integráltan és dokumentáltan csomagoljuk őket.
Generátorok segítenek a konzisztenciában
Ha egy generátor egyszerre létrehoz egy modellt, a zugehörigen controller-t és a nézeteket, valamint az ehhez gehörigen routes-okat, akkor nem copy-paste-tel tartasz kézi munkát és valyhaft. Kopieren und Paste het.
A kódot egyszerre és már helyes módon generálod. Így nem meg
A kódot egyszerre és már helyes módon generálod. Így nem meg