7 opwindende webontwikkelingstrends voor 2011

Eind december las je Andrews lijst met de heetste technologieën, hulpmiddelen en bronnen die uit 2010 komen. Vandaag gaan we vooruit kijken en een kijkje nemen naar een aantal opwindende opkomende technologieën en trends..


Een woord van de auteur

De tools en technologieën waarmee wij als webontwikkelaars samenwerken, verkeren in een constante stroom, net als elke andere branche. Wat ons scheidt van de rest is dat we veel sneller nieuwe ontwikkelingen moeten leren, afleren en opnieuw leren, veel vaker.

Vandaag wil ik het hebben over een paar technologieën en trends waarvan ik denk dat ze het komend jaar heel belangrijk zullen worden: een pseudo-voorspelling / wensenlijst /wat we dit jaar gaan bespreken bericht van soorten.

De onderstaande technologieën zijn onlangs niet echt gearceerd. Sommige zijn zelfs vrij oud en worden al een tijdje gebruikt in hun insulaire nissen. Dat gezegd hebbende, ik heb het gevoel dat dit het jaar is waarin ze nog meer verdienen mainstream bewustzijn. Zoals een groot man ooit zei, Een invasie van legers kan worden weerstaan, maar geen idee waarvan de tijd is gekomen. Laten we beginnen!


1. noSQL

Waarom zijn mensen enthousiast over noSQL? En door mensen bedoel ik enkele van de grote vissen, waaronder Google, Facebook en Twitter. Ten eerste heeft het concept van noSQL de manier gedefinieerd waarop we databases en de bijbehorende interacties waarnemen.

Soms wilt u simpelweg uw gegevens opslaan en gebruiken, met een lage latentie en uitstekende schaalbaarheid.

Databases zijn historisch gezien bijna altijd over de implementatie van het relationele model gegaan en zijn volledig ACID-compliant. Als uw transacties niet ACID waren of als uw database niet relationeel was, werd u bespot omdat u een "kiddie" -database was.

Het probleem is dat het relationele model niet echt overal nodig is. Evenmin is ACID, hoewel vele noSQL-implementaties een soort gegevensintegriteit en -consistentie afdwingen. Soms wilt u simpelweg uw gegevens opslaan en gebruiken, met een lage latentie en uitstekende schaalbaarheid. Toepassingen met enorme hoeveelheden lees- / schrijfbewerkingen zijn een uitstekende keuze.

Een andere grote factor voor mij is de eenvoud die het meebrengt in mijn schema: uw datamodellen kunnen nu veel gezonder worden. Ik kan niet wachten tot niet muck rond met mijn modellen gewoon om het te laten passen in het relationele model.


Implementaties van interesse

noSQL op Facebook

Er is misschien geen beter voorbeeld dan Facebook als het gaat om het omgaan met enorm veel verkeer. Het is geen verrassing dat traditionele scalingmethoden niet helemaal werken voor Facebook.

Nu, onderdeel van de Apache Foundation, is Cassandra, een noSQL-implementatie, intern ontwikkeld om te helpen bij het doorzoeken van gegevens. Op dit moment wordt Facebook's inbox-zoekfunctie versterkt.

Facebook maakt ook gebruik van een andere noSQL-oplossing, HBase, voor zijn berichtenplatform.

noSQL op Twitter

De betrouwbaarheid van Twitter was vroeger, nou ja, berucht. Een van de belangrijkste redenen was dat hun setup niet echt goed opschaalde. Twitter gebruikt nu een mix van SQL en noSQL om hun gegevens te beheren.

Net als Facebook gebruikt Twitter een mix van Cassandra en HBase. Cassandra wordt gebruikt voor alle applicaties aan de voorkant terwijl HBase wordt gebruikt voor datamining, analyse en analyse.


2. Serverside JavaScript

JavaScript is misschien de belangrijkste taal voor de komende jaren - en niet zonder reden. Veel van de crut en idiosyncrasies geassocieerd met de taal is meer te wijten aan browser eigenaardigheden, en minder als gevolg van het ontwerp van de taal zelf.

Het is al lang tevreden met alleen in de browser wonen, maar deze trend is aan het veranderen. Implementaties en interesse in JavaScript aan de serverzijde zijn het afgelopen jaar gegroeid en ik verwacht dat het dit jaar nog verder zal exploderen, dankzij de schreeuwerig snelle JavaScript-engines om je code op te draaien.

Aan de mensen die twijfelen aan de behoefte aan JavaScript aan de serverkant, presenteer ik u deze enkele situatie, tussen vele anderen.

Wat je backend taal ook is, je komt uiteindelijk terug bij JavaScript voor het bouwen van de frontend. Zou het niet eenvoudiger zijn om JavaScript gewoon universeel te gebruiken??


Interessante technologieën

node.js

node.js maakt het creëren van real-time, high-performance, schaalbare applicaties een makkie. Het is voornamelijk door gebeurtenissen aangestuurd en werkt op V8, de JavaScript-engine die Chrome aandrijft en het grillig snel maakt.

Het spawnt geen aparte thread voor elke verbinding zoals de meeste andere. In plaats daarvan werkt het via een asynchrone bewerking die de latentie aanzienlijk minimaliseert. Als het zinloos is geworden, vergeet dan niet om een ​​inleiding op node.js te lezen die hier op Nettuts + wordt gepubliceerd. We zullen dit onderwerp ook de komende maanden uitgebreid behandelen, dus houd het in de gaten!


3. Eenvoudiger Hosting, Deployment en Scaling

Bottom line, schalen is lastig.

De opkomst van als een service Bedrijven hebben ontwikkelaars in het verleden alleen tangentieel geholpen. De meesten van hen waren functionaliteitshavens die wij verplicht, met uitzondering van misschien project- en bug-tracking. Onlangs zijn een aantal diensten ontsloten die het leven van een ontwikkelaar aanzienlijk versoepelen.

Implementatie is altijd een probleem geweest met niet-triviale webtoepassingen, omdat u meer moet doen dan de bestanden naar de server kopiëren. Schalen is ook een probleem geweest - niet alleen in de bandbreedte, maar ook in de rekencapaciteit. We moeten load balancers instellen, een caching-systeem, misschien zelfs een lichtgewicht server om statische content te serveren. Bottom line, schalen is lastig. Het is een nogal betrokken activiteit, vooral als je tijd vastzit.

Platforms als een service, zoals ze in de volksmond worden genoemd, verwijder bijna al het gedoe voor een ontwikkelaar. Het inzetten? Druk gewoon op een git repo en alles wordt voor je afgehandeld. Verwacht u een enorme verkeersstroom en maakt u zich zorgen of uw applicatie zal afnemen? Voeg alleen meer knooppunten of werknemers toe aan uw instantie en u bent klaar.


Diensten van belang

Heroku

Heroku is een perfect voorbeeld van de eenvoud die deze diensten op tafel kunnen brengen. Implementeren naar mijn app is eigenlijk gewoon het pushen van code naar mijn github repo. Computing capaciteit en geheugen, onder andere, kunnen ook dynamisch worden toegewezen. Als extra stimulans zijn er ook veel noSQL-oplossingen beschikbaar voor gebruik, waaronder Redis en MongoDB.

Amazon's webservices

Amazon Web Services is een overkoepelende term voor een aantal geweldige services die ze uitvoeren. De interesses van vandaag zijn:

  • Amazon Elastic Compute Cloud [EC2] laat je virtuele servers maken die ongelooflijk schaalbaar zijn. Je hoeft alleen maar de hoeveelheid kracht te kiezen die je nodig hebt.
  • Amazon Simple Storage Service [S3] biedt goedkope, betrouwbare webgebaseerde opslag. Alle sites en marktplaatsen van Envato gebruiken S3 vrijwel uitsluitend om inhoud op te slaan en te presenteren.

4. Nuttige JS-bibliotheken

Hoewel we een enorm aantal JavaScript-bibliotheken hebben die een aantal van de meer alledaagse taken wegnemen, zoals DOM-manipulatie en AJAX, laten ze veel functionaliteit onaangetast.

We zagen een aantal hulpprogramma-bibliotheken, zoals Modernizr, die vorig jaar een immense populariteit verwierven - een teken dat ontwikkelaars altijd op zoek zijn naar handige bibliotheken waarmee ze geavanceerde technologie kunnen gebruiken terwijl ze tijd besparen. Dit jaar zou gelijk moeten zijn. Hier zijn een paar tools die je interesse kunnen opwekken.


Bibliotheken van belang

Head.JS

Deze bibliotheek is een echte krachtpatser. Het zorgt ervoor dat uw scripts parallel worden geladen, bootst Modernizr na door specifieke klassen aan uw document toe te voegen en nog veel meer. Absoluut een horloge!

underscore.JS

Dit is pure hulpprogramma-bibliotheek die een krachtige set hulpprogramma's voor JavaScript biedt zonder de onderliggende typen eronder uit te breiden. Vergelijkbaar met hoe jQuery wordt toegewezen aan de $ tekens standaard onderstrepen kaarten naar de _ karakter. Bekijk de site voor een volledig overzicht van de hulpprogramma's die het bevat.

mustache.JS

Dit is een eenvoudige sjabloonbibliotheek die het verwerken van gegevens veel eenvoudiger moet maken. U hoeft alleen maar een aangepaste sjabloon te maken, deze aan uw gegevens toe te wijzen en de code uit te voeren. Als je zelfs maar een beetje geïnteresseerd bent, zou je eens moeten kijken naar een snelle tip die we een paar maanden geleden publiceerden!


5. Betere unit-testing voor JavaScript

Testen is een integraal, intrinsiek onderdeel van het softwareontwikkelingsproces.

Het testen van eenheden, in het bijzonder, is het testen van individuele softwarecomponenten.

Het verschil is dat deze tests worden uitgevoerd door de ontwikkelaar, omdat schrijftests over het algemeen kennis van de bron vereisen.

JavaScript is wat betreft goed testen wat betreft andere ontwikkelingsplatformen achtergebleven. Zelfs nu is het testen van eenheden geen veelgehoorde uitspraak onder de typische JavaScript-ontwikkelaars en een deel van de reden is het ontbreken van de juiste tools om dit te doen. Hier zijn enkele hulpmiddelen die het voor u aanzienlijk eenvoudiger zouden moeten maken om uw code te testen:


Interessante hulpmiddelen

QUnit

Gemaakt door het jQuery-team en gebruikt als de officiële testsuite voor het platform, is QUnit een krachtig testkader voor eenheden. Het kan elk generiek stukje JavaScript-code testen, zelfs code die moet worden uitgevoerd in een JavaScript-engine.

FireUnit

FireUnit is geïmplementeerd als een Firefox-extensie en vereist Firebug. Dit kan goed of slecht zijn, afhankelijk van je perspectief. Omdat Firebug al een groot deel is van mijn ontwikkelingsworkflow, is dit voor mij een zegen. FireUnit voegt een extra toe test tab naar Firebug waardoor je toegang hebt tot je tests en resultaten.

JsUnit

JsUnit is een open source testraamwerk voor JavaScript. Geïnspireerd door JUnit, het is volledig in JavaScript geschreven en wordt in uw browser uitgevoerd. Het bevat ook een platform voor het automatiseren van de uitvoering van tests.


6. Raphael-achtige bibliotheken voor canvas

HTML5 bracht ons het canvaselement dat nieuwe perspectieven voor ons opende. Het leverde een laag niveau, per pixel controle over het tekengebied dat nog nooit eerder was gehoord. Vroeger moest u gewoonlijk een afbeelding in de backend renderen en dit doorsturen of een browserinvoegtoepassing gebruiken.

Canvas is in dat opzicht een game-wisselaar.

Het probleem is hier dat het is echt laag niveau. Per pixelbesturing is leuk, maar als je iets groters wilt maken, wil je dat deze details van je worden geabstraheerd. Een beetje zoals hoe Raphael de details uit het SVG-element abstraheert. En let wel, SVG is een stuk eenvoudiger om mee te werken.

Bibliotheken zoals die waar ik naar op zoek ben, zijn niet echt beperkt tot het leveren van interfaces voor vormen enzovoort. Een aantal spel Er zijn zelfs bibliotheken vrijgegeven waarmee je op een steeds hoger niveau kunt werken.


Bibliotheken van belang

Processing.js

Processing.JS is een uitstekende bibliotheek die een interface op hoog niveau biedt met het canvaselement. Het is een JavaScript-poort van de Processing, een leuke, kleine taal om niet-programmeurs te helpen programmeren te begrijpen.

De bibliotheek ontrafelt je volledig van de initialisatie en andere trivialiteiten van het canvaselement en zorgt voor ongelooflijk zachte inhoud.

Akihabara

Onslaught! Arena, een HTML5-canvasgame

Akihabara is een uitgebreide bibliotheek waarmee je snel spellen kunt maken. Zoals verwacht maakt het gebruik van het canvaselement.

Het helpt u met een groot aantal taken, waaronder rendering, botsingen en invoer. Zelfs relatief worden esoterische functies zoals z-geïndexeerde objecten en dubbele buffering * ondersteund.

* Als je begrijpt wat dit betekent, krijg je een cookie!


7. True JavaScript-frameworks

Server side development heeft het goed.

Server side development heeft het goed. Je hebt veel keuzes, ongeacht de taal waarmee je hebt gekozen om mee te werken; je kunt alles kiezen tussen een modulair raamwerk met je eigen componenten, alle omringende full-stack-raamwerken, alles daar tussenin.

Aan de voorkant echter moesten we werken bibliotheken in plaats van frameworks, ook al is er maar één taal om mee om te gaan: JavaScript. DOM-manipulatie en andere gesorteerde functies zijn zeker weggevaagd, maar bij het bouwen van een complete gebruikersinterface voor een toepassing zijn functies op een laag niveau als deze slechts een fractie van uw zorgen..

Meestal zou je iets moeten kiezen voor je templatebehoeften, UI en widgets, afhankelijkheidsbeheer, DOM-manipulatie, MVC en andere gesorteerde functionaliteiten. Een aantal frameworks zijn langzaam in een stroomversnelling terecht gekomen die, hoewel ze niet allesomvattend zijn, een veel betere ontwikkeling van de front-end ontwikkeling beloven..


Interessante technologieën

SproutCore

SproutCore is een JavaScript-framework, afkomstig van Apple, waarmee gebruikers desktop-achtige webapplicaties snel kunnen maken. Vanzelfsprekend vereist de volledige frontend alleen JavaScript.

Het raamwerk bestaat uit een aantal onderdelen, waaronder een widgetsysteem om verschillende delen van de gebruikersinterface te bedienen en een sleutelwaarnemingssysteem om elk onderdeel te bedraden, waardoor de hoeveelheid lijmcode in uw toepassing aanzienlijk wordt verminderd.

Een van de meest openbare applicaties van SproutCore is Apple's MobileMe.

cappucino

Cappucino, ontwikkeld door 20North, dat nu eigendom is van Motorola, hanteert een compleet andere benadering van een dergelijk raamwerk. Cappuccino introduceert een gerichte, kleine superset van JavaScript met de naam Objective-J.

Het platform zelf bestaat uit de taal zelf, Objective-J, en een uitgebreide bibliotheek die een poort is van de Cocoa-kaders op OS X.


Klaar is kees!

En daar gaan we. Ik heb zeven trends vermeld die ik hoop werkelijk aanwinsten mainstream bewustzijn dit jaar. Heb ik iets belangrijks gemist? Laat het ons weten in de comments. Heel erg bedankt voor het lezen