Noțiuni de bază în web design

Noțiuni de bază în web design

Noțiuni de bază în web design

Suntem adesea întrebat despre modul în care să intre în lumea de design și nu merge nebun. O varietate de cunoștințe necesare, limbi și instrumente, uneori, intră într-o stupoare, rețeaua poate fi de obicei găsite doar mai degrabă recomandări generale. Am decis să punem capăt acest lucru și să împărtășească viziunea noastră despre cum să înceapă dezvoltarea web. Multe dintre sfaturi, desigur, potrivite pentru toate domeniile de dezvoltare, dar ne-am decis să se concentreze asupra a ceea ce știm cel mai bine.

La început poate părea că programarea - este cunoașterea special limbajul de programare, sau mai degrabă sintaxa acestuia. Acesta regizat numeroase cursuri în rețea, precum și în deschideri de locuri de muncă sunt aproape întotdeauna în căutarea scris <любой язык>-programator. În ciuda acestui fapt, de fapt, profesia programator este mult mai larg și include o varietate de cunoștințe din diferite direcții. Mai mult decât atât, programatorii lucrează deseori în echipe, care necesită bune abilități interpersonale.

În primul rând mulți sunt interesați de cât de mult au nevoie de programatori matematica. Răspunsul este: mai aveți de matematică, mai ales în subiectele mai profunde și mai avansate pe care le puteți arunca cu capul. De exemplu, fără o pregătire matematică adecvată cu greu să fie capabil să dezvolte sau să scrie software-ul de schimb autopilot, dar pentru a crea site-uri ar fi capabil să facă. Chiar și site-urile pot fi create în diferite moduri, iar matematica aici, de asemenea, poate ajuta.

Noțiuni de bază în web design

Foarte des, programul de studiu este legat de studiul structurilor de date și algoritmi, care sunt uneori foarte strâns legate de matematică. Suntem în nici un fel diminuează importanța cunoașterii de algoritmi, dar în același timp, dacă nu au studii profesionale (matematică și științe), apoi începe drumul lor în programare, prin intermediul algoritmi - ocuparea forței de muncă dificilă și aproape sigur inutil. Există unele kit de bază pe care trebuie să știți. Primul este conceptul de algoritm și complexitatea algoritmică. Alte posibile pentru a studia treptat, împreună cu o dezvoltare proces de scufundare.

Noțiuni de bază în web design

Procesul de scriere de cod în cele mai multe limbi de masă reflectă doar modul în care funcționează un calculator. Programatorul oferă instrucțiuni (instrucțiuni) cu privire la modul de a calcula valorile necesare. Astfel de limbi (în special la nivel scăzut) contribuie la înțelegerea structurii arhitecturii calculatorului. O astfel de programare este adesea menționată ca obligatoriu și de a folosi conceptul de paradigma imperativă.

Al doilea aspect este legat de structura codului în sine. Orice regulă de afaceri nou adăugat la programul nostru, creșterea complexității sale. Și-a lungul timpului, orice program este doar obtinerea mai dificil. Tot ceea ce putem contracara acest lucru este de a utiliza instrumentele, limbi și paradigme care ne permit să maximizeze complexitatea creștere lentă. Odată cu creșterea programului de vin la problemele de prim-plan, cum ar fi crearea de abstractizare puternice și competente, reutilizarea, compoziția. Dezvoltarea acestor competențe contribuie la paradigma declarativă. cod scrise în acest stil răspunde la întrebarea care ne permite să descriem soluția sub formă de specificații, a căror punere în aplicare este răspunsul la această întrebare. Un exemplu frapant al unui stil declarativ este expresii sql și regulate, precum și toate limbile funcționale și limbile de programare logică (prolog).

O idee importantă, care ar trebui să fie evident pentru profesionist, este de a înțelege că limbajul de programare este un instrument. La fel ca ghidul de studiu la telescopul nu te face un astronom studia sintaxa și lingvistice caracteristici nu te face un programator. Programatorul selecteaza instrumentul pe baza obiectivelor și mediul extern, iar în arsenalul său poate fi o varietate de limbi.

linia de comandă

Primul lucru pe care se confruntă cu aproape orice programator - o linie de comandă. Posesia a liniei de comandă are un impact mare asupra productivității și conferă competențe de bază în sistemul de operare, precum și dezvăluie dispozitivul ei. Acest lucru se aplică, de exemplu, procesele sistemului de fișiere de dispozitive.

Noțiuni de bază în web design

Notă despre ferestre

Cu Windows situația este un pic mai specială. Acesta poate fi, în general, începe să se dezvolte, dar dacă nu sunteți pe .net-platforma, este mai bine să se pregătească pentru o scufundare în sistemul UNIX. Acest lucru se datorează faptului că aproape toate software-ul de server este scris pentru sistemele de operare compatibile POSIX, care includ Linux. Mac OS X și multe altele. Și codul va rula aproape sigur pe o mașină de control Linux pe bord.

POSIX este un set de standarde care descriu interfața dintre sistemul de operare și software-ul de aplicație (API sistem), C biblioteca de limbă și set de aplicații și interfețele lor. Standardul este conceput pentru a asigura interoperabilitatea între diferite sisteme de operare UNIX -like și portabilitatea aplicațiilor la nivel de cod sursă, dar poate fi de asemenea utilizat pentru sisteme non-UNIX.

mediu de dezvoltare
Sistemul de control al versiunii

Noțiuni de bază în web design

În prezent, standardul de facto este un Git. scris de creatorul sistemului de operare Linux. Linus Torvalds. Interacțiunea cu Git are loc prin linia de comandă, iar versiunea de bază are doar câteva echipe, studiind pe care le puteți începe să lucreze cu GIT.

Noțiuni de bază în web design

Un alt aspect important este de testare. Din păcate, realitatea este că testele nu scriu cât mai multe dezvoltatori cât ar putea. În acest caz, testarea automată este ceva care face programarea o experiență cu adevărat plăcută. Fără ele nu se poate garanta nimic, schimbarea unor părți ale codului va duce la deteriorarea altora, și tu despre asta, cel mai probabil, nu va învăța. Codul va conține o mulțime de bug-uri, dintre care multe vor fi afișate numai în cursul funcționării, dezvoltarea va fi mai lent, pentru că trebuie să repete în mod constant brațele deja finalizate cazuri de utilizare. Unele limbi au un cadru de testare direct în biblioteca standard, iar în celălalt este necesar pentru a pune pachete suplimentare.

În plus, orice limbă nu este numai codul sursă și compilator / interpret, dar, de asemenea, ecosistemul. Pentru limbi diferite, include componente diferite, dar unele sunt o parte obligatorie a oricărui stivă:

  • Versiunile manageri - poate pune o mulțime de versiuni diferite ale limbajului de programare și ușor de a comuta între ele, este util mai ales dacă aveți proiecte diferite folosesc versiuni diferite. Mai ales adevărat în limbi dinamice.
  • Dependență manager / lot - aceasta este una dintre cele mai importante sub-sisteme, care este responsabil pentru instalare și actualizare dependențele.
Crearea unui mediu local și de luptă

În plus față de codul sursă, software-ul pentru utilizatorul final (nu bibliotecă) conține întotdeauna o mulțime de componente terțe părți, cum ar fi: baze de date, server web, server de coadă, și multe altele. Toate acestea necesită instalarea și configurarea mai multor componente într-un sistem.

Noțiuni de bază în web design
Pe de cealaltă parte a benzii, aceste componente pot fi realizate pe mașini diferite și există ca servicii complet separate. Astfel, este important să se maximizeze mediul local corespundeau mediul de luptă (un loc în care software-ul este răsucită pentru această utilizare). Există un drept și o modalitate greșită de multe organizații locale / mediu Productions a procesului de implementare. Modul corect se numește un sistem de management a configurației și implică utilizarea de software special care automatizează instalarea și configurarea. Ansiblu este mediul cel mai accesibil și popular. Curs practic pe ansiblu disponibile pe Hekslete.

Baze de date

Abilitatea de a lucra cu baze de date relaționale - o abilitate cerută de toți dezvoltatorii web. La centrul de orice SGBD (sistem de management al bazei de date) este o algebra relațională și sql. sql - un limbaj declarativ pentru manipularea datelor în baza de date. Acesta nu este asociat cu un limbaj de programare, o expresie de interogare SQL executate direct în baza de date. Din fericire, sql standardizate și în cazul de bază este aceeași pentru toate bazele de date relaționale.

Noțiuni de bază în web design
Prin urmare, spre deosebire de limbaje de programare, tranziția de la o bază la alta poate fi practic transparent pentru programator.

În general, studiul SQL poate fi împărțit în două părți: crearea de baze de date, de conținut, și interogări la baza de date. Pe Hekslete două cursuri disponibile care acoperă aceste subiecte - Baze de date: SQL DDL / DML și Baze de date: SQL DQL.

Protocoale (TCP / IP, http, WebDAV, WebSockets)

Principala întregul Internet (și în general orice rețea) este o stiva de protocoale TCP / IP. Desigur, nu este necesar să învețe din corzi, dar fără a înțelege ce port, și modul în care are loc comunicarea, nu merge departe, în general. Dar, cu http poveste total diferită. Acest protocol, din care comunică cu site-ul browser-ul backend peste PPȚ. http text pe bază de protocol, fără a stat cu destul de simple, reguli de lucru. Este important să se cunoască, iar cea mai mare parte este că nu este dificil.

Există, de asemenea, în creștere de protocol de utilizare webbsockets. care vă permite să faceți aplicația cu adevărat interactivă și receptiv. Este indispensabil pentru dezvoltarea de aplicații în timp real, cum ar fi chat-ul, jocuri.

Layout-ul este utilizat în mod activ diferite pre- și post-procesoare care pot rezolva multe probleme ale css statice. precum și să ofere o oportunitate de a utiliza standarde moderne css fara „cârje“. Prima este o tehnologie, cum ar fi postcss și autoprefixer sale plug-in cele mai populare.

siguranță

Factorii care plătesc cel mai puțin atenția, în special în stadiile incipiente. Aceasta conduce la faptul că milioane de site-uri de internet care conțin vulnerabilități critice. Potrivit rețelei de mers pe jos în mod constant roboți care scanează servere și site-uri pentru zeci, sau chiar sute de vulnerabilități. Atacuri ei înșiși sunt împărțite în mai multe tipuri diferite și afectează modul în care partea frontend cererii, și partea backend.

Și apoi ce?

Și apoi alegeți teancul pe care le place și te implici!