15 Considerații importante pentru alegerea unui cadru Web Dev

Noile cadre de dezvoltare web se dezvoltă într-un ritm mai rapid decât oricine ar putea ține pasul cu. În acest articol, vom determina cum să decideți asupra unui cadru pentru crearea următoarei dvs. aplicații web fierbinți.

În această zi și vârstă curentă, împingerea unei aplicații finisate, lustruită cu mult înainte de concurent este esențială. Codarea totului de la zero, excluzând lucrurile luminoase, poate fi extrem de consumatoare de timp și îi face pe dezvoltator să petreacă timpul reinventând roata, timp care ar fi mai degrabă cheltuit în implementarea unor noi caracteristici sau înăsprirea bazei de cod. Aici intră cadrele de dezvoltare web. Acestea acoperă adesea toate aspectele obișnuite ale unei aplicații, inclusiv accesul la baze de date, autentificarea, gestionarea sesiunilor și multe altele.

Astăzi, vom examina diferitele aspecte pe care ar trebui să le preocupați înainte de a alege un cadru. Interesat? Să începem imediat!

1. Contextul de utilizare

Înainte de a începe chiar să vă uitați la un cadru, va trebui să faceți o listă a cerințelor dvs. și dacă un cadru este potrivit pentru acest scop.

Aveți nevoie de un cadru dacă:

  • cererea dvs. se bazează în principal pe operațiunile CRUD
  • aveți nevoie de o separare corespunzătoare a interfeței utile și a logicii subiacente, dar nu aveți timp să implementați un sistem adecvat
  • vă găsiți că aveți o bibliotecă auto-utilizată pe care o utilizați în fiecare dintre aplicațiile dvs. care acoperă autentificarea utilizatorului, sesiunile și alte operații obișnuite asociate cu crearea unei aplicații web
  • aveți un șef care vă dorește să creați un CMS pentru ei în 2 zile și deja cunoașteți cadrul

NU aveți nevoie de un cadru dacă:

  • vrei doar un sistem URL simplu
  • doriți doar o anumită parte a cadrului ca ORM
  • vă aflați pe o linie de timp strânsă și trebuie să învățați cadrul de la zero
  • vi sa spus că cadrele vindecă cancerul

2. Licență

Înainte de a începe să dezvoltați cu un cadru, a se vedea ce tip de licență se distribuie cadrul. În timp ce majoritatea licențelor sunt destul de liberale pentru a lucra și vă permite să creați aplicații comerciale, unele dintre ele nu sunt atât de generoase. Ultimul lucru pe care doriți să-l creați este să creați o întreagă aplicație numai pentru a afla că licența nu vă permite să o distribuiți comercial. Faceți mai bine cercetarea înainte de a suferi după.

Rețineți că acest lucru nu se limitează la cadrul singur. Pluginul sau extensia pe care ați folosit-o pentru funcționalitatea suplimentară pot avea o clauză ascunsă. Verifică și licența!

3. Modelul de software


Din proiectul Symfony

Aproape fiecare cadru existent utilizează exclusiv modelul MVC. MVC, care reprezintă Model-View-Controller, vă ajută să vă păstrați datele: modelul, logica: controlerul și interfața cu utilizatorul: vederea, separate unul de celălalt. Aceasta, la rândul său, vă permite să scrieți un cod mai bun, mai strict, care în cele din urmă are ca rezultat aplicații mai bune.

Doar pentru că aproape toată lumea utilizează MVC nu înseamnă că este tot ce trebuie să știți totuși. Există câteva variante, inclusiv MVP: Model-View-Presenter, MVA: Model-View-Adapter și AVC: Application-View-Controller.

4. Cerințe de găzduire

Ca dezvoltatori web, am putea fi înclinați să construim aplicații pe platforme de ultimă oră, dar de multe ori nevoia și bugetul clientului este primul. Adesea, este posibil ca bugetul să nu fie necesar pentru a obține o gazdă dedicată pentru a plasa aplicațiile noastre și va trebui să ne stabilim cu găzduire partajată cu module și setări normale.

Cadrele care joacă frumos cu hosting partajat includ:

  • CodeIgniter
  • CakePHP
  • Kohana
  • Zend Framework
  • Cele mai multe alte cadre PHP

Cadre care necesită setări relativ non-tradiționale:

  • Ruby on Rails
  • Django
  • Piloni
  • Cele mai multe cadre non-PHP

Cu toată sinceritatea, totuși, puteți rula cadre ca Django de pe o gazdă partajată de pe raft. Se va cere doar ca serverul să aibă instalat modulul necesar. Este posibil să reușiți să o rulați de pe CGI, dar va fi mult mai lent decât să o rulați nativ.

5. Ușor de instalat

Ușurința la instalare joacă un rol foarte important în alegerea unui cadru. Un cadru, cu toate acestea, încărcat sau rapid poate fi, poate pune destul de o problemă, dacă cineva trebuie să treacă printr-o serie de pași doar pentru a obține instalat și de lucru.

Aceasta va reprezenta și o problemă mare odată ce aplicația este gata, testată și trebuie să fie instalată pe serverul de producție. Un cadru cu ușurință de instalare și o implementare la fel de ușor devine aici.

Pentru o mulțime de cadre, configurarea este la fel de simplă ca setarea valorilor corecte în fișierul de configurație, în timp ce pentru alții poate fi o afacere foarte consumatoare de timp, elaborată. Alegeți un cadru care vă permite să vă ridicați și să derulați cât mai repede posibil.

6. Curba de învățare

Fiecare cadru are propriul său univers mic: convențiile de denumire, structura directorului și ceea ce nu este. Unele cadre sunt mai degrabă flexibile când vine vorba de acestea, în timp ce altele sunt foarte, foarte stricte, care aruncă erori la cele mai mici greșeli. Unele cadre respectă convențiile generale în timp ce pun în aplicare o caracteristică, în timp ce altele pot lovi și își fac lucrurile. În timp ce alegeți un cadru, amintiți-vă să alegeți una care are cea mai mică curbă posibilă de învățare.

Dacă nu cunoașteți limba în care este scris cadrul, faceți o notă de includere a limbii însuși în curba de învățare. Am vazut un numar de dezvoltatori care sare la Django de la CakePHP si se luptau deoarece au nevoie sa invete atat Python cat si Django in acelasi timp. Dacă trebuie să înveți atît cadrul, cît și limba în care a fost scrisă, pace-te!

7. Biblioteca centrală

Hai sa recunoastem; este pentru biblioteca principală ca majoritatea oamenilor să adopte un cadru. Biblioteca trebuie să fie în așa fel încât să vă elibereze să scrieți cod repetitiv, dar vă oferă încă o modalitate de a vă juca cu ea dacă aveți nevoie de mai mult control sau de caracteristici.

Cele mai multe cadre oferă biblioteci care acoperă aproape toate din următoarea listă:

  • AJAX
  • Autentificare
  • Autorizare
  • Caching
  • Sanitizarea datelor
  • Data validarii
  • templating
  • Maparea sau rescrierea URL-urilor

Bineînțeles, nu fiecare are nevoie de un cadru plin de trăsături. O mulțime de oameni preferă cadre pentru a gestiona minimul gol, permițând dezvoltatorului să se ocupe de restul. În aceste cazuri, va trebui să vă asigurați că cadrul în cauză are doar caracteristicile de care aveți nevoie.

O tendință actuală în cadrul cadrelor este aceea că acestea sunt create ca o bibliotecă de biblioteci. Cu alte cuvinte, vă permite să schimbați părți din bibliotecă cu o altă parte la alegere. Un excelent exemplu ar fi Pilonii. Vă permite să închideți aproape toate părțile, pornind de la ORM până la limbajul său templating. Oamenii le plac cadrele asociabile, la fel de mult ca și cadrele care se cuplează strâns în ceea ce privește componentele sale principale.

8. AB Abstraction și ORM

Aproape fiecare aplicație trebuie să acceseze o bază de date pentru a citi sau a edita conținutul. Oricum, veți face acest lucru de-a lungul aplicației și având în vedere acest lucru, majoritatea cadrelor vă permit să utilizați o clasă de acces la baza de date pe care o puteți folosi. Deci, în timp ce alegeți o aplicație, alegeți una care permite aplicației dvs. să devină agnostică a bazei de date. Nu va trebui niciodată să vă pasa de partea bazei de date incase aveți nevoie pentru a dezactiva bazele de date în cazul în care cadrul dvs. are grijă de asta.

A doua parte va trebui să vă gândiți este capabilitățile ORM ale cadrului. Fără obtinerea datelor tehnice, ORM sau Object Relational Mapping vă permite să exprimați datele ca un obiect și să vedeți cum se leagă de alte obiecte. Imaginați-vă o bază de date de obiecte din care puteți trage informații, dacă doriți.

Cadrele care au capacități ORM includ CakePHP, Django și Ruby. Cu cadre precum Pilonii, puteți utiliza ORM-ul ales.

9. Biblioteca JS inclusă

Un alt punct de discuție este biblioteca JavaScript asociată. În timp ce majoritatea bibliotecilor vă permit să schimbați biblioteca cu ușurință, metodele AJAX din interiorul cadrului sunt orientate în mare parte către o anumită bibliotecă JS. Acest lucru implicit înseamnă că va trebui să scrieți manual funcționalitatea. Pe de altă parte, există cadre cu metode agnostice ale bibliotecilor, care vă permit să schimbați biblioteca JavaScript cu puțin până la hassle.

Doar ca o referință, ambele CakePHP și Ruby on Rails nava cu Prototype și Scriptaculous ca standard.

10. Testarea unităților

Sunt unul dintre dezvoltatorii care jură prin testarea unităților. Wikipedia definește testarea unității ca:

Testarea unității este o metodă de verificare și validare a software-ului în care un programator testează dacă unitățile individuale de cod sursă sunt potrivite pentru utilizare. O unitate este cea mai mică parte testabilă a unei aplicații.

Cadrele care îmi permit să scriu teste de unitate sunt un plus important în acest caz. O mulțime de cadre, inclusiv codul Igniter, CakePHP și Zend vă permit să creați teste personalizate în plus față de testele de bază pentru a verifica părțile critice ale aplicației dvs..

11. Scalarea

Dezvoltatorul mediu de web nu trebuie să-și facă griji în legătură cu scalabilitatea unui cadru. Așa cum este cazul, I / O și latența rețelei sunt adesea problema, mai degrabă decât scalabilitatea unui cadru. Chiar problema legată de scalabilitatea mitică a lui Twitter nu a fost vina cadrului în cauză.

Dacă cineva vă cere să vă deconectați un cadru care să indice probleme de scalare, ignorați-le. Cadrul este rareori motivul problemei de scalare. Sigur, puteți optimiza codul puțin, dar de multe ori greutatea problemei de scalare se află în altă parte.

12. Documentație

Documentația unui cadru este adesea cheia succesului său. Bine explicată, documentația detaliată atrage utilizatorii de putere și evangheliștii care aduc apoi mai mulți oameni. Cu o documentație confuză, confuză, oamenii vor merge doar la confuzie și deranjați.

Căutați un cadru care are o documentație detaliată, cu o mulțime de exemple, fragmente, exemple de cod, articole și tutoriale. Screencast-uri precum Jeffrey's sunt un plus special, deoarece te va lasa sa te grabi de-a dreapta.

13. Comunitatea

În mod inevitabil, chiar dacă aveți o documentație adecvată, veți fi în eroare pentru a rectifica ceea ce, va trebui să întrebați comunitatea din spatele cadrului de ajutor. Am interacționat personal cu comunități care au atacat vitriolic programatori noi în cadrul și i-au șters pe ei, în timp ce pe cealaltă extremă am văzut comunitățile întâmpină cu veselie începătorii și îi învață trucurile comerțului. Cred că nu este nevoie să spun care este contextul pe care l-am ales și am început să lucrez permanent.

Așa cum se întâmplă adesea, comunitățile din spatele unui cadru fac sau rupe cadrul. Prea snobby-ul și vei păsa de cadre în loc de oameni. Ei bine, manevrați și veți gravita spre cadru. Alegeți un cadru care are o comunitate prietenoasă care ajută dezvoltatorii noi la platformă.

14. Remederi / actualizări de erori

Unul dintre motivele pentru care dezvoltatorii web se tem de a-și crea propriile cadre este faptul că ei singuri sunt responsabili de repararea bug-urilor și actualizărilor. Cu un cadru mare, aveți literalmente mii de programatori care cercetează codul și îl puneți în ritmul său zilnic. Bug-urile, dacă și când sunt găsite, sunt stropite cât mai curând posibil după ce se găsesc.

Alegeți un cadru care nu este stagnat. Nu doriți ca un hacker să vă spună că există o vulnerabilitate de securitate în cadrul unei pagini prin care a fost compromis pe site-ul dvs. Ați auzi mai degrabă acest lucru de la dezvoltatorii de cadre, sperăm, cu o legătură într-un patch la această problemă. Alegeți un cadru care este actualizat adesea, este deschis cu privire la bug-urile pe care le găsește și, mai important, stabilește bug-urile pe care le întâlnesc oamenii cât mai curând posibil.

15. Ușurința de a crea o extensie și o disponibilitate

În timp ce un cadru acoperă toate bazele importante ale unei aplicații, există șanse, va trebui totuși să scrieți o grămadă de cod. Asigurați-o destul de generică și o puteți reconfigura într-o componentă potrivită pentru reutilizare în celelalte aplicații sau chiar mai bine eliberați-o publicului larg, astfel încât să-l folosească în aplicațiile lor ...

Alegeți un cadru care vă permite să extindeți cadrul ușor și cu o agitație minimă. Cu CakePHP de exemplu, extinderea unui controler este luată în considerare de către componente și opinii de către ajutoare. În orice caz, crearea unei extensii este la fel de simplă ca definirea unei noi clase care moștenește de la o clasă de bază părinte.

În timp ce alegeți un cadru, rețineți și disponibilitatea pluginurilor. Adesea nu veți avea timp să creați o extensie personalizată de la zero. Având o piscină uriașă de extensii pentru a alege de la mare ușurează această problemă. Nu alegeți numărul de extensii, ci calitatea extensiilor.

Concluzie

Și am terminat! Am analizat toate aspectele pe care ar trebui să le luați în considerare înainte de a alege un cadru de dezvoltare web. Ne-am uitat la tot, de la maparea dacă ar corespunde scopurilor noastre de a remedia erorile și actualizări. Sperăm că acest lucru a fost util pentru dvs. și l-ați găsit interesant.

Întrebări? Ce lucruri frumoase de spus? Critici? Activați secțiunea de comentarii și lasă-mă un comentariu. Codificare fericită!

  • Urmați-ne pe Twitter sau abonați la Nettuts + RSS Feed pentru cele mai bune tutoriale de dezvoltare web de pe web.


Cod