7 Tendințe extinse de dezvoltare web pentru 2011

La sfârșitul lunii decembrie, citiți lista celor mai tari tehnologii, instrumente și resurse ale lui Andrew, care vor veni din 2010. Astăzi, vom aștepta cu nerăbdare și vom arunca o privire asupra unor tehnologii și tendințe emergente.


Un Cuvânt al autorului

Instrumentele și tehnologiile pe care noi, în calitate de dezvoltatori web, le folosim, se află într-o stare constantă, la fel ca orice altă industrie. Ceea ce ne separă de restul este că trebuie să învățăm, să dezlănțuim și să relansăm noi evoluții într-un ritm mult mai rapid, mult mai frecvent.

Astăzi, aș vrea să vorbesc despre câteva tehnologii și tendințe care cred că vor fi foarte importante în anul următor: o pseudo predicție / o listă de dorințe /ceea ce vom acoperi anul acesta post de fel.

Tehnologiile enumerate mai jos nu au fost expuse exact recent. De fapt, unele sunt destul de vechi și au fost folosite pentru un timp acum, în nișele lor insulare. Acestea fiind spuse, mă simt că anul acesta câștigă și mai mult constientizarea mainstream. După cum a spus un mare om, O invazie a armatelor poate fi rezistată, dar nu o idee a cărei timp a venit. Să începem!


1. noSQL

De ce sunt incantati oamenii de noSQL? Și de oameni, vreau să spun unii dintre peștii mari, inclusiv Google, Facebook și Twitter. Pentru unul, conceptul de noSQL a redefinit modul în care percepem bazele de date și interacțiunile corespunzătoare.

Uneori, pur și simplu doriți să stocați și să aveți acces la datele dvs., cu o latență redusă și o scalabilitate excelentă.

Bazele de date, istoric, au fost aproape întotdeauna legate de implementarea modelului relațional și de respectarea în întregime a ACID. Dacă tranzacțiile dvs. nu erau ACID sau baza de date nu era relațională, oamenii v-au batjocorit pentru că sunteți o bază de date "kiddie".

Problema este că modelul relațional nu este absolut necesar peste tot. Nici ACID nu este, deși multe implementări noSQL pun în aplicare un fel de integritate și consistență a datelor. Uneori, pur și simplu doriți să stocați și să aveți acces la datele dvs., cu o latență redusă și o scalabilitate excelentă. Aplicațiile cu cantități masive de operațiuni de citire / scriere reprezintă o alegere excelentă.

Un alt factor important pentru mine este simplitatea pe care o aduce la schema mea: modelele tale de date pot deveni acum mult mai sănătoase. Nu pot să aștept nu s-ar putea să mă răzgândesc cu modelele mele doar pentru a se potrivi în modelul relațional.


Implementarea interesului

noSQL la Facebook

Nu poate fi un exemplu mai bun decât Facebook când vine vorba de modul în care să se ocupe de traficul enorm. Nu e de mirare că metodele tradiționale de scalare nu vor funcționa destul de bine pentru Facebook.

Acum, parte a Fundației Apache, Cassandra, o implementare noSQL, a fost dezvoltată in-house pentru a ajuta la căutarea datelor. În prezent, ea acționează căutarea prin căsuța de e-mail a Facebook.

Facebook folosește de asemenea o altă soluție noSQL, HBase, pentru platforma de mesagerie.

noSQL la Twitter

Fiabilitatea Twitter a fost, bine, infamă. Din principalele motive a fost faptul că configurarea lor nu era într-adevăr delimitată la fel de bine. Twitter utilizează acum un mix de SQL și noSQL pentru a-și gestiona datele.

La fel ca Facebook, Twitter foloseste un amestec de Cassandra si HBase. Cassandra este folosit pentru toate aplicațiile cu care se confruntă în față, în timp ce HBase este utilizat pentru extragerea de date, analiză și analiză.


2. Servere JavaScript

JavaScript este, fără îndoială, cea mai importantă limbă pentru următorii câțiva ani - și pentru un motiv bun. O mare parte din cruzimea și idiosincraziile asociate limbajului se datorează mai mult parcurgerilor de browser și mai puțin datorită designului limbii în sine.

Acesta a fost mulțumit de faptul că locuiesc doar în browser pentru o lungă perioadă de timp, cu toate acestea, această tendință se schimbă. Implementări și interes în partea de server JavaScript a crescut în ultimul an și mă aștept ca acesta să explodeze și mai mult în acest an, datorită motoarelor JavaScript care strigă rapid pentru a rula codul dvs..

Pentru persoanele care pun la îndoială nevoia de JavaScript pe partea serverului, vă prezint această situație unică, printre multe altele.

Indiferent de limbajul dvs. de backend de alegere este, veți reveni în cele din urmă la JavaScript pentru a construi frontend. Nu ar fi mai simplu să folosiți JavaScript universal?


Tehnologii de interes

node.js

node.js face crearea în timp real, de înaltă performanță, aplicații scalabile un cinch. Este în primul rând condus de eveniment și rulează pe motorul V8, motorul JavaScript care alimentează Chrome și îl face extrem de rapid.

Nu provoacă un fir separat pentru fiecare conexiune ca majoritatea celorlalte. În schimb, funcționează prin operațiuni asincrone care minimizează latența semnificativă. Dacă a încetat să mai aibă sens, nu uitați să citiți un primer pe node.js publicat chiar aici pe Nettuts +. De asemenea, vom aborda extensiv acest subiect în următoarele câteva luni, așa că rămâneți la dispoziție!


3. Gazduire mai ușoară, implementare și scalare

Linia de fund, scalarea este o durere.

Creșterea ca serviciu companiile au ajutat doar dezvoltatorii tangențial în trecut. Cele mai multe dintre ele au fost porturi de funcționalitate pe care noi necesar, cu excepția posibilității de urmărire a proiectelor și a erorilor. Recent, s-au deschis o serie de servicii care ușurează considerabil viața unui dezvoltator.

Implementarea a fost întotdeauna o problemă cu aplicații web non-trivială, deoarece trebuie să faceți mai mult decât să copiați fișierele pe server. De asemenea, scalarea a fost o problemă - nu doar în ceea ce privește lățimea de bandă, ci și capacitatea de calcul. Trebuie să configurați balansoare de încărcare, un sistem de cache, poate chiar un server ușor pentru a servi conținut static. Linia de fund, scalarea este o durere. Este o activitate destul de implicată, mai ales când ești legat de timp.

Platformele ca serviciu, așa cum sunt numiți în mod obișnuit, eliminați aproape toate dificultățile pentru un dezvoltator. Implementarea? Pur și simplu împingeți la un replică git și totul este tratat pentru dvs. Se așteaptă o grămadă de trafic rușinos și vă îngrijorează dacă aplicația dvs. se va aluneca? Pur și simplu adăugați mai multe noduri sau lucrători la instanța dvs. și ați terminat.


Servicii de interes

Heroku

Heroku este un exemplu perfect al serviciilor de simplitate ca acestea pot aduce la masă. Implementarea în aplicația mea este într-adevăr doar împingând codul la github repo. Capacitatea de memorie și memoria, printre altele, pot fi alocate dinamic. Ca un stimulent suplimentar, sunt disponibile și multe soluții noSQL, inclusiv Redis și MongoDB.

Serviciile Web ale Amazonului

Amazon Web Services este un termen umbrelă pentru un număr de servicii minunate pe care le execută. Cele de interes astăzi sunt:

  • Amazon Elastic Compute Cloud [EC2] permiteți crearea de servere virtuale care sunt incredibil de scalabile. Trebuie doar să alegeți puterea necesară.
  • Amazon Simple Storage Service [S3] oferă stocare ieftină și fiabilă pe web. Toate locațiile și piețele Envato utilizează S3 aproape exclusiv pentru a stoca și a servi conținut.

4. Bibliotecile JS de utilitate

Chiar dacă avem un număr mare de biblioteci JavaScript care elimină unele dintre cele mai ludice sarcini, cum ar fi manipularea DOM și AJAX, ele lasă o mulțime de funcții neatinse.

Am văzut o serie de biblioteci de utilități, cum ar fi Modernizr, care a câștigat o popularitate imensă anul trecut - un semn că dezvoltatorii caută mereu biblioteci nifty care le permit să utilizeze tehnologia de vârf, economisind timp. Anul acesta ar trebui să fie echilibrat. Iată câteva instrumente care ar putea să vă piardă interesul.


Bibliotecile de interes

Head.JS

Această bibliotecă este o adevărată putere. Se ocupă de încărcarea script-urilor într-o natură paralelă, mimează Modernizr adăugând clase specifice documentului dvs. și multe altele. Cu siguranta un ceas mult!

underscore.JS

Aceasta este o bibliotecă utilă pură, care aduce un set puternic de metode de utilitate pentru JavaScript, fără a extinde tipurile de bază din partea de jos. Similar cu felul în care hărțile jQuery fac clic pe $ caractere în mod implicit, hărți de subliniere la _ caracter. Verificați site-ul pentru o descriere completă a funcțiilor utilitare pe care le conține.

mustache.JS

Aceasta este o bibliotecă simplă de template care ar trebui să facă datele de manipulare mult mai simple. Trebuie doar să creați un șablon personalizat, să-l mapați pe datele dvs. și să executați codul. Dacă sunteți chiar puțin interesați, ar trebui să verificați un sfat rapid pe care l-am publicat cu câteva luni în urmă!


5. Testarea mai bună a unităților pentru JavaScript

Testarea este o parte integrală, intrinsecă a procesului de dezvoltare a software-ului.

Testarea unităților, în special, este testarea componentelor software individuale.

Diferența este că aceste teste sunt efectuate de dezvoltator, deoarece testele de scriere, în general, necesită cunoașterea sursei.

JavaScript a rămas în urma altor platforme de dezvoltare atunci când vine vorba de testarea corectă. Chiar și acum, testarea unităților nu este o afirmație frecventă printre dezvoltatorii JavaScript tipici, iar o parte din motiv este lipsa instrumentelor adecvate pentru a face acest lucru. Iată câteva instrumente care ar trebui să vă facă mult mai ușor să vă testați codul:


Instrumente de interes

QUnit

Realizat de echipa jQuery și folosit ca suită oficială de testare pentru platformă, Qunit este un cadru puternic de testare a unităților. Acesta poate testa orice bucată generică de cod JavaScript, chiar și codul care trebuie executat în interiorul unui motor JavaScript.

FireUnit

FireUnit este implementat ca extensie Firefox și necesită Firebug. Acest lucru poate fi bun sau rău în funcție de perspectiva dvs. Pentru mine, deoarece Firebug este deja o mare parte din fluxul de lucru al dezvoltării, aceasta este o binefacere. FireUnit adaugă o suplimentare Test la Firebug, prin care puteți accesa testele și rezultatele.

JsUnit

JsUnit este un cadru de testare open source pentru JavaScript. Inspirat de JUnit, este scris în întregime în JavaScript și rulează în browser-ul dvs. De asemenea, include o platformă pentru automatizarea executării testelor.


6. Bibliotecile Raphael-esque pentru panza

HTML5 ne-a adus elementul de pânză care ne-a deschis noi viziuni. Acesta a oferit nivel scăzut, per pixel de control asupra zonei de desen, care a fost nemaiauzit de înainte. Anterior, de obicei, trebuie să recurgeți fie la redarea unei imagini în backend și la redirecționarea acesteia, fie folosind un plugin de browser.

Panza este un schimbător de jocuri în acest aspect.

Problema aici este că este cu adevărat scăzut. Controlul pixelilor este frumos, dar când încercați să creați ceva mai mare, veți dori ca aceste detalii să vă fie abstracte. Un fel de felul în care Raphael abstractează detaliile de la elementul SVG. Si tine minte, SVG este mult mai usor de folosit.

Bibliotecile ca cea pe care o caut nu se limitează doar la a oferi interfețe pentru forme și așa mai departe. Un numar de joc bibliotecile au fost chiar eliberate, care vă permit să lucrați la un nivel tot mai înalt.


Bibliotecile de interes

Processing.JS

Processing.JS este o bibliotecă excelentă care oferă o interfață de nivel înalt pentru elementul de panza. Este un port JavaScript al procesării, o limbă distractivă, puțină pentru a ajuta programatorii să nu înțeleagă programatorii.

Biblioteca vă abstază complet din inițierea și alte trivialități ale elementului de panza și permiteți-vă să creați conținut incredibil de suav.

Akihabara

Atac violent! Arena, un joc cu canvas HTML5

Akihabara este o bibliotecă extinsă care vă permite să creați jocuri rapid. Așa cum era de așteptat, face uz de elementul de panza.

Vă ajută cu un număr mare de sarcini, inclusiv randare, coliziuni și introducere. Chiar și caracteristicile esoterice, cum ar fi obiectele indexate z și bufferingul dublu *, sunt suportate.

* Dacă înțelegi ce înseamnă asta, primești un cookie!


7. Cadre JavaScript adevărate

Dezvoltarea de la partea serverului este bună.

Dezvoltarea de la partea serverului este bună. Aveți multe opțiuni, indiferent de limba în care ați ales să lucrați; puteți alege orice dintre cadrele modulare ale componentelor pick-your-component, la toate cadrele complete de stivă, la tot ce este între.

În față, totuși, cu care trebuia să lucrăm biblioteci in loc de cadre, chiar dacă există o singură limbă de rezolvat: JavaScript. Manipularea DOM și alte funcționalități asortate sunt îndepărtate, sigur, dar atunci când construiți un UI complet pentru o aplicație, funcțiile de nivel scăzut cum ar fi acestea nu reprezintă decât o fracțiune din grijile dvs..

De obicei, trebuie să alegeți ceva pentru nevoile dvs. de template, UI și widget-uri, managementul dependenței, manipulare DOM, MVC și alte funcționalități asortate. O serie de cadre au câștigat încet ritmul, care, deși nu sunt destul de cuprinzătoare, promite o experiență de dezvoltare mult mai bună la sfârșitul anului.


Tehnologii de interes

SproutCore

SproutCore este un cadru JavaScript, provenit de la Apple, care permite utilizatorilor să creeze rapid desktop-uri precum aplicațiile web. Nu este nevoie să spun că întregul frontend necesită doar JavaScript.

Cadrul constă dintr-un număr de părți, inclusiv un sistem widget pentru a gestiona diferite părți ale interfeței utile și un sistem de observare a valorii cheie care să conecteze fiecare parte, ceea ce reduce în mod semnificativ cantitatea de cod de adeziv din aplicația dvs..

Una dintre aplicațiile cele mai publice cu care se confruntă SproutCore este Apple MobileMe.

Cappucino

Cappucino, dezvoltată de compania 20North, care este în prezent deținută de Motorola, adoptă o abordare complet diferită față de acest cadru. Cappuccino introduce o sursă concentrată de mici dimensiuni a JavaScript numită Objective-J.

Platforma în sine constă în limba în sine, Obiectiv-J, și o bibliotecă cuprinzătoare, care este un port de cadre de cacao pe OS X.


Și asta e un Wrap!

Și acolo mergem. Am enumerat șapte tendințe pe care le sper cu adevărat câştigurile constientizarea mainstream anul acesta. Mi-a fost dor de ceva important? Spuneți-ne în comentariile. Vă mulțumesc foarte mult pentru lectură

Cod