Ember. Je beste gok.

Als je overweegt welke tool je kunt gebruiken om je volgende applicatie te bouwen, moet je Ember.js overwegen. Het bouwen van een frontend-applicatie is uiterst complex en omvat verschillende problemen. Het is een avontuur dat u niet alleen wilt nemen en u wilt voorbereid zijn op elk scenario dat zich voordoet. Ember staat achter je en ik ga wat licht werpen op waarom je het voor je volgende project zou moeten overwegen.

Bibliotheken zijn geen frameworks.

Bibliotheken zijn hulpmiddelen. Ze stellen u in staat om iets specifieks te doen. Overweeg een kwast, deze doet slechts één taak. Frameworks omvatten meerdere tools. In Ember zijn deze tools door een community samengesteld om de beste oplossingen te zijn voor enkele van de meest gecompliceerde en meest voorkomende problemen bij frontend-ontwikkeling.

Ember is een goed samengestelde toolbox

Het probleem dat ik zie is dat de frontend-gemeenschap als geheel de twee nogal in verwarring heeft gebracht. Glimmer.js, Vue.js en React.js zijn bijvoorbeeld hulpmiddelen voor weergavelagen - ze helpen u bij het beheren van weergave-elementen op een pagina. Er zijn echter tools die andere problemen aanpakken, zoals React-Router en router.js voor routeringsondersteuning, evenals create-react-app en ember-cli voor tooling.

Frameworks omvatten deze tools zodat u kunt beginnen met het bouwen van uw app. Mijn eerste framework was Rails, een uitstekend voorbeeld van een framework dat bestaat uit een aantal uitstekende bibliotheken. Het probleem is dat een backend-framework zich niet mentaal vertaalt op de frontend, omdat de frontend immers alleen de gebruikersinterface is - toch?

Nee. Frontend-ontwikkeling omvat ondersteuning voor web-api, tooling, implementatie, testen en meer. Deze afzonderlijke stukken zijn door veel bibliotheken verbeterd, maar een framework in je zak is cruciaal - het stelt je in staat om sneller software te leveren, waardoor beslissingsmoeheid wordt geminimaliseerd.

Software leveren.

Het is mijn primaire verantwoordelijkheid om ervoor te zorgen dat geweldige software wordt verzonden. Als software-ingenieur bouw ik dingen. Deze dingen zijn klantgericht en alles dat dat doel in de weg staat, is een afleiding.

Sommigen zullen zeggen dat het opstellen van een framework de verantwoordelijkheid is van een software-ingenieur. En het is. We moeten echter ook een evenwicht vinden tussen de kosten van klusjes en de gebruikerswaarde.

De teams die ik graag met de meeste zorg voor verzendingssoftware werk. Ze erkennen dat er een delicaat evenwicht is en dat er een duidelijk verschil is tussen de noodzaak om veelvoorkomende ontwikkelingsproblemen op te lossen met de behoeften van de klant.

Ember doet dit uit de doos. Het heeft een community opgezet die samenwerkt om veelvoorkomende problemen op te lossen en tegelijkertijd de functies biedt die u het meest nodig hebt in uw app. Als het niet heeft wat u nodig heeft, heeft het uitgebreide add-on ecosysteem zeker een oplossing voor u. Als dat uiteindelijk niet werkt, weet ik zeker dat u anderen zult vinden die u willen helpen.

Voordelen voor het kiezen van Ember.

Een eenvoudiger leven.

Sinds ik voor Ember heb gekozen, heb ik me geen zorgen meer gemaakt over tooling, ondersteuning voor web-api, beveiliging en meer. Waarom is dat? Omdat de community bestaat uit experts op deze gebieden die hun leven hebben gewijd aan het helpen van jou, mij en alle anderen.

Testen in Ember is een perfect voorbeeld van hoe het leven gemakkelijker is geworden. Eenheid, integratie en volledige acceptatietests maken deel uit van het raamwerk. U hoeft alleen te kiezen welke testloper (bijv. Qunit [2], mokka, enz.) U wilt gebruiken. Al het andere komt samen en u kunt snel beginnen met het schrijven en uitvoeren van uw tests.

Door technici in staat te stellen moeiteloos acceptatietests te schrijven, kan de behoefte aan een afzonderlijke QA-afdeling worden verwijderd, vooral voor kleine teams en krappe budgetten. En je krijgt dit allemaal gratis.

Een vriendelijke gemeenschap.

De community is waarschijnlijk een van de beste aspecten bij het kiezen van Ember. Omdat gesprekken transparant zijn en open voor het publiek, zijn de redenen waarom een ​​patroon op een ander is geïmplementeerd of waarom een ​​bepaalde techniek beter is, allemaal gedocumenteerd op het web [3]. Klaar om te beoordelen, bekritiseren, vermijden of implementeren.

Merk ook op dat Ember niet weggaat. De basis die de Ember-gemeenschap heeft gelegd, is gebouwd door een coalitie van individuen en bedrijven. Iedereen in de gemeenschap heeft verschillende achtergronden, met verschillende problemen en heel veel meningen. Maar dit is waar de kernkracht van het framework ligt - in de gezonde discussie, implementatie en levering van geteste oplossingen.

Documentatie.

De bibliotheek is buitengewoon goed gedocumenteerd [4]. Van broncode, handleidingen of slack channel-gesprekken - u kunt het antwoord op uw vraag vinden. En nog beter - het wordt serieus genomen. Documentatie heeft een versie, op gemeenschap gebaseerde gesprekken op Github zijn grondig en het kernteam heeft richtlijnen geïmplementeerd die helpen bij het implementeren van deze standaardprocedure in het uitgebreide add-onsysteem.

Veel voorkomende kritiek op Ember.

Het is niet cool.

Nou ja, het is - er zijn een heleboel functies in het kader waarvan ik wed dat je het graag wilt gebruiken. Bronkaarten werken bijvoorbeeld meteen - wat betekent dat u de ontwikkeltools van Chrome kunt gebruiken om uw app uitgebreid te bouwen.

Voorstander van stabiliteit is misschien niet flitsend als je begint, en het kan je storen dat Ember je niet laat dingen breken. We deden dat vroeger en het was niet zo leuk.

Het goede nieuws is dat je stem te horen is. Ember heeft een georganiseerd RFC-proces om over belangrijke veranderingen in het kader te debatteren. U kunt leren over veranderingen voordat ze zich voordoen, geef uw twee cent of maak uw eigen RFC voor feedback.

Leercurve is steil.

Ember bestaat uit verschillende cruciale onderdelen die het applicatieontwikkelingsproces helpen verlichten. Routing, implementaties en geautomatiseerde testen zijn bijvoorbeeld ingebakken. Dit betekent dat u niet alleen meer moet leren over de aanbevolen ontwerppatronen van Ember, maar dat u ook moet leren over andere aspecten van het verzenden van goed werkende software.

Dit maakt de leercurve een beetje steil, want er is meer dan alleen leren over het samenstellen van componenten voor de visuele laag. Het argument over de steile leercurve van Ember is ertegen gebruikt, maar ik zou dat willen betwisten met het feit dat je uiteindelijk deze andere aspecten van ontwikkeling zou moeten leren naarmate je behoeften voorbij de kijklaag groeien.

Merk op dat dit de aandacht heeft getrokken van het kernteam, en er is een grote beweging om dingen te vereenvoudigen om ervoor te zorgen dat de toetredingsdrempel wordt vereenvoudigd. Bijvoorbeeld, verhuizen naar JavaScript-klassen, waarbij de noodzaak voor this.get en this.set en meer is verwijderd om de grootste verwarringbronnen voor JavaScript-ontwikkelaars te verwijderen.

Inheems is geen primaire burger.

Ember is een raamwerk voor de architectuur van de Single Page Application (SPA). De voordelen die u krijgt van SPA zijn de voordelen van Ember. Aangezien SPA geen concept is voor native apps, is Ember slecht geschikt voor native.

Houd er rekening mee dat Ember vooruitgang boekt met progressieve web-apps. Dus als dat een optie is die je zou willen overwegen, bekijk dan een mix van een progressieve web-app met Ember van mixonic.

Waarom je voor Ember zou moeten kiezen.

Ember wordt gebruikt in de startup-wereld en op bedrijfsniveau. Er zijn verschillende toepassingen die zich tegen de tijd hebben bewezen. Het wordt in veel industrieën gebruikt en heeft bewezen snel en effectief te schalen. Ember heeft bedrijven geholpen waarde te verzenden en ontwikkelingsteams te stabiliseren.

Vanuit een softwaretechnisch perspectief is de stabilisatie van een team meer waard dan al het andere waaraan ik heb gewerkt. Wanneer u in een team kunt werken en dezelfde taal kunt delen met weinig tot geen verwarring over technieken, groeit het team en wordt het waardevoller dan het eigenlijke product.

Vanuit een productperspectief ziet u snelle vooruitgang. Als de door u gekozen tool u in staat stelt snel functies uit te voeren en feedback in weinig tot geen tijd te implementeren, lijkt mij dat de juiste tool voor de klus.

En uiteindelijk vanuit een zakelijk perspectief, hoe sneller ik waarde aan mijn product kan toevoegen, hoe beter.

Als u wilt dat uw team productiever en tevredener is bij het leveren van waarde, moet u overwegen Ember te kiezen. Als je nog steeds aarzelend bent, neem dan gerust contact met me op via Twitter op @alvincrespo, ik help je graag met het vinden van de beste tool voor de klus.

Bedankt.

Bedankt aan iedereen die me heeft geholpen dit bericht te schrijven. Uw tijd en moeite wordt zeer op prijs gesteld en ik hoop dat mijn woorden hier uw beoordeling correct weergeven.

Notes.

[1] create-react-app (CRA) is enigszins gebaseerd op dezelfde filosofie als ember-cli. CRA biedt een beginervaring bij het maken van een app, maar zodra uw behoeften de doelen van dat project overtreffen, staat u er alleen voor. Aan de andere kant biedt ember-cli een add-on ecosysteem waarmee je de cli kunt aansluiten om je builds aan te passen.

[2] ember-qunit is de standaardtestagent en vereist geen configuratie vooraf

[3] Voorbeelden van transparante gesprekken:

  • https://github.com/emberjs/rfcs/pull/176
  • https://github.com/emberjs/rfcs/pull/240

[4] Voorbeelden van documentatie:

  • https://github.com/emberjs/ember.js/blob/v2.15.0/packages/ember-runtime/lib/mixins/observable.js#L96
  • https://github.com/emberjs/ember.js/blob/v2.15.0/packages/ember-routing/lib/system/route.js#L1458