ebben az útmutatóban leírom a rendelkezésre álló webes keretrendszer opciókat A Clojure számára, és ajánlásokat adok.
Roll a saját verem ajánlott könyvtárak (hamarosan), ha csak a tanulás. Ez lesz a legjobb módja annak, hogy megértsük, hogyan működik minden.
használja a talapzatot, ha olyan gyártással tesztelt alapot szeretne, amelyre felépítheti alkalmazását.
használja a Luminus-t, ha azt szeretné, hogy a saját verem gördülése rugalmas legyen a munka nélkül.
- Bevezetés
- mi az (és nem) webes keretrendszer
- ajánlási kritériumok
- dokumentáció
- közösség
- érettség
- webes szabványok
- megközelítés
- telepítés
- erősen ajánlott
- talapzat (GitHub)
- Luminus (GitHub)
- a megjegyzés Egyéb keretrendszerei
- Fulcro (GitHub)
- csatorna
- Tadam
- Coast on Clojure (GitHub)
- Hoplon (GitHub)
- nem ajánlott
- not frameworks
Bevezetés
az egyik kérdés, amelyet a Clojure kezdők sokat tesznek fel nekem ,a következő: “Milyen webes keretet kell használnom?”Ez egy jó kérdés. A Pythonban ott van Django. PHP-ben, Drupal. És természetesen a Ruby-ban ott van az összes webes keretrendszer királya, a Ruby on Rails. De Clojure – ban ezt nehéz megválaszolni. Még annak eldöntése is nehéz lehet, hogy mi a keretrendszer és mi a könyvtár. Először ezzel kell foglalkoznunk.
mi az (és nem) webes keretrendszer
ezen útmutató alkalmazásában a webes keretrendszert olyan kódok és függőségek gyűjteményeként fogjuk meghatározni, amelyek holisztikus megközelítést biztosítanak egy webes alkalmazás felépítéséhez. Ez a definíció kizár számos olyan könyvtárat, amelyeket általában keretrendszereknek neveznek, mint például a Compojure és a Ring, mivel ezek önmagukban nem adnak megközelítést. Van azonban még néhány nagy versenyző, akiket itt figyelembe veszek.
mivel a saját verem görgetése a Clojure-ban általános alternatíva az előre elkészített keretrendszer használatával szemben, és holisztikus megközelítésnek tekinthető (nevezetesen az alkalmazás meglévő könyvtárakból történő felépítése), ezt az ajánlásokban is figyelembe veszem.
ajánlási kritériumok
ennek az útmutatónak az a célja, hogy határozott ajánlásokat adjon a webes keretrendszerekhez a különböző igényekhez. Itt vannak az egyes keretrendszerekkel kapcsolatos kritériumok:
dokumentáció
a keretrendszer könnyen követhető dokumentációval rendelkezik? Kezdő oktatóanyagokat Keresek fejlett témákon keresztül.
közösség
a nagy, aktív közösség fontos része a keret életképességének. Egy nagy közösség könnyebben biztosíthatja, naprakészen tarthatja a függőségeket, és teljesebb megoldást hozhat létre.
érettség
egy másik fontos tényező a projekt kora, és mennyi ideig használták a nagy méretű helyszíneken történő gyártásban. Jobban szeretem a régebbi kereteket, amelyeket jelentős webhelyekre telepítettek.
webes szabványok
a három nagy webes nyelv (HTML, CSS és JavaScript) mellett léteznek magának a HTTP protokollnak a szabványai és számos “legjobb gyakorlat”. HTTP válaszkódokról, tartalmi tárgyalásokról, CORS-ról, Websocketekről stb. Hogyan használja a keret ezeket a szabványokat? Hogyan sérti őket?
megközelítés
mivel a keretnek holisztikus megközelítést kell biztosítania, magát a megközelítést is figyelembe kell venni. Hogyan közelíti meg a keretrendszer az alkalmazás felépítését?
telepítés
amikor az alkalmazás készen áll, telepíteni kell. Milyen telepítési lehetőségek állnak rendelkezésre? A szélesebb változatosság jobb.
erősen ajánlott
furcsának érzem ezt mondani, de a kezdőknek a legjobb megoldás még mindig a saját gördítése. A saját verem gördítése nem olyan nehéz, mint amilyennek tűnhet. Meg tudod csinálni építeni egy funkcionális verem egy maroknyi könyvtárak. Elég gyakran, a robusztusabb, neked épített keretek több száz döntést hoztak az Ön számára a verem felépítéséről, de még mindig megkövetelik, hogy megértsék az általuk választott könyvtárak légióját.
amellett, hogy jó a tanuláshoz, a saját gördítése teljes ellenőrzést biztosít az adott funkció támogatásához vagy támogatásához.
a legnagyobb hátrány az, hogy sok döntést kell hoznia magának. Sok könyvtár van odakint, és ezek kiválasztása nehéz feladat lehet. Az egyik vigasz az, hogy a saját könyvtárak összeállításakor, legalábbis Clojure-ban, viszonylag könnyű könyvtárakat váltani, ha úgy találja, hogy az egyik nem működik az Ön számára.
amikor egy teljesebb megoldást akarsz (és meg is fogod), ha tovább építed magad, akkor elérsz valamit, ami nagyon hasonlít a robusztusabb keretrendszerekhez. Azt javaslom, hogy váltson a többi ajánlott megoldásra, ahelyett, hogy saját teljes keretet építene. Szerencsére a váltás közöttük könnyű, mivel mindannyian a gyűrűs szabványon dolgoznak.
talapzat (GitHub)
a talapzat egy érett könyvtárkészlet, amelyet eredetileg a Cognitect hozott létre modern, streaming webes alkalmazások fejlesztésére. Hosszú élettartamú kapcsolatok köré épül, amelyek lehetővé teszik az adatok továbbítását a szerverről az ügyfélre az idő múlásával. Ennek a funkciónak a támogatása érdekében a talapzat feltalálta az elfogók ötletét, amelyek módot adnak az aszinkron lépések csővezetékeinek meghatározására, amelyeken a kérés átmegy.
azért ajánlom a talapzatot, mert érett, aktív közösséggel rendelkezik, sokféle telepítési lehetőséget támogat, és jól támogatja a webes alkalmazásokat. A két kopogás ellene a dokumentációja és az egységesítő megközelítés hiánya. Van néhány útmutatója, amely végigvezeti Önt az alapvető Hello-n, világ! alkalmazások. De nem találtam semmit, ami megmagyarázná, hogyan kell összeállítani egy teljes alkalmazást. A megközelítés talapzat megkönnyíti, hogy az alacsony szintű alapozás lesz szüksége, mint egy talapzat, amelyen állni egy kicsit magasabb, mint a semmiből. Az biztos, hogy az alapozás fontos, de sok marad a fejlesztőnek, hogy kiválassza és felépítse magát. Például szándékosan nem rendelkezik HTML sablonmegoldással. Ezt “API-elsőnek”nevezi. Azt várnám, hogy egy teljes webes keretrendszer megoldást kínáljon a HTML létrehozására.
e problémák ellenére a talapzatot szilárd és rugalmas alapként ajánlom az alkalmazások felépítéséhez.
Luminus (GitHub)
Luminus lényegében egy sablon projekt. A sablonból létrehoz egy új webalkalmazást, és minden be van állítva az Ön számára. A Luminus ad néhány lehetőséget a sablonhoz, de általában az a megközelítése, hogy meghozza a döntéseket az Ön számára—néha saját könyvtárakat biztosít, néha pedig meglévő könyvtárakat használ. Amikor a projekt jön létre, akkor egy teljes webes verem, amely a tiéd építeni, vagy módosítani, ahogy jónak látod. A fő előny az egységes jövőkép, amely a könyvtárak választását irányította.
Luminus célja, hogy mindent meg kell írni a webes alkalmazások. Mindent megkapsz az útvonalaktól, a munkamenet-kezelésig, a ClojureScript összeállításához, az adatbázis-migrációkhoz. Mindez előre konfigurálva van, így azonnal elkezdheti az alkalmazás logikáját. Gondolj a Luminous-ra, mint a könyvtárak és konfigurációk halmazára, amelyeket 10 évnyi munka során építene fel egy alkalmazáson. Lehet, hogy először nincs rá szüksége, de végül biztonságot, naplózást, nemzetközivé válást szeretne, többek között. Luminus ezt egy paranccsal adja neked.
a Luminus fő hátránya, hogy sok könyvtár közvetlenül ki van téve. Igen, ez megadja a hatalmat, hogy konfigurálja őket, ahogy akarja. De ez azt is jelenti, hogy sokat kell értenie, ha az alapértelmezett viselkedésre akar építeni. Szerencsére a dokumentációs történet kiváló. Van még egy könyv, amely dokumentálja az ajánlott megközelítés az épület egy webes alkalmazás segítségével Luminus.
ezenkívül évek óta létezik, nagy alkalmazásokhoz telepítették, és számos telepítési lehetőséggel rendelkezik.
a megjegyzés Egyéb keretrendszerei
ezek a keretek innovatív megközelítésük szempontjából érdekesek.
Fulcro (GitHub)
a Fulcro egy fullstack megoldás. Használja reagál a frontend, de van egy teljes adatmodell ügyfél adatbázis. Ha ez a fajta egyesítő látás vonzó, próbáld ki. Kiváló dokumentáció van, és még mindig aktívan fejlesztik.
csatorna
csatorna egy Leiningen sablon megközelítés épület egy webes alkalmazás, mint egy sor konfigurációk. Például a csatornában az Útválasztás egy konfiguráció. A migráció egy konfiguráció. Ezzel az egyesítő, adatorientált megközelítéssel olyan webalkalmazást készít, amely determinisztikusan újratölthető. Úgy tűnik, hogy a keret tapadást kap.
Tadam
a Tadam számos meglévő könyvtárat konfigurált, és létrehozott egy szabványos könyvtárszerkezetet, hogy az egyszerű webhelyek írása nagyon egyszerű legyen. Még mindig új, de aktív.
Coast on Clojure (GitHub)
Coast on Clojure ad egy teljes megoldást (adatbázis kiszolgáló HTML), miközben összpontosítva tartja a dolgokat egyszerű.
Hoplon (GitHub)
a Hoplon egy érdekes megközelítésű fullstack megoldás. A frontend rész lefordítja a ClojureScript-et, és lehetővé teszi interaktív összetevők létrehozását, amelyek táblázatkezelő jellegű adatfolyam-modellt használnak. Meg lehet csatlakozni a backend hívásával funkciók, amelyek proxy funkciók a szerveren. Ez lehetővé teszi, hogy megkerülje az egész útválasztási helyzetet. A fejlesztés lassú.
nem ajánlott
ezek a keretrendszerek nem ajánlottak, mert nem fejlesztették túl sokáig aktívan, és soha nem kaptak elég tapadást. Nem értékeltem őket technikai érdemek alapján, mert nem ajánlanám őket pusztán inaktív fejlődésük alapján.
- webnf
- Clojure on Coils
- joodoo
- Datsys
not frameworks
ezeket a projekteket gyakran keretrendszereknek nevezik, de nem felelnek meg a “holisztikus megközelítés biztosítása a webes alkalmazás felépítéséhez”meghatározásának. Itt nem értékeltem őket.