Programmēšana

NOZĪME pret LAMP jūsu nākamajam programmēšanas projektam

Pāreja no visprogresīvākās ziņkārības uz praktisko darba zirgu nav tā, ko rada daudzas tehnoloģijas. Vakardienas pāragri iesācēji bieži neizpilda solīto versiju 0.1. Tas neattiecas uz tehnoloģijām, kas veido sīvi akronimizēto MEAN kaudzi.

Tikai pirms dažiem gadiem MongoDB, Express.js, AngularJS un Node.js paši uzcēla uzacis. Tagad viņi ir pieauguši un apvienojušies, un kopā viņi strādā nopietnu darbu, malā nelaižot izstrādātājus no plašās LAMP nometnes. Bet kā tieši šī jaunizveidotā MEAN lieta sakrīt ar LAMP? Kad labāk izvēlēties labi pārbaudītu, nobriedušu LAMP, salīdzinot ar šo moderno JavaScript orientēto tehnoloģiju kolekciju?

Atbilde ir tad, kad vienkāršība un kopīgā struktūra atvieglo jūsu dzīvi. MongoDB piedāvā elastīgāku, piemērotu slāni datu glabāšanai. Node.js nodrošina labāku saiti servera darbināšanai, savukārt Express palīdz standartizēt vietņu veidošanu. Klientam Angular nodrošina tīru interaktīvu funkciju un AJAX vadītu bagātīgu komponentu pievienošanas veidu. Apvienojiet tos visus kopā, un tie izveido tīru, saskaņotu mehānismu datu pārvietošanai no lietotāja uz disku fermu un atpakaļ.

Patiesais skaidrojums tomēr ir dziļāks. Šeit mēs piedāvājam deviņus iemeslus, kāpēc MEAN uzņemt nākamo projektu. Ne visiem ir laiks vai budžets, lai izmestu un pārkodētu veco jaunākajā, modernākajā sistēmā, un nevajadzētu izmest arī kaujas pārbaudīto rīku, piemēram, Apache, MySQL vai PHP, uzticamo uzticamību. Bet attiecībā uz zaļā lauka projektiem, kas varētu gūt labumu no elastības, vienkāršības un veiktspējas, LĪDZĪBA var padarīt jūsu dzīvi labāku, nekā jūs domājat.

MongoDB ir veidots mākonim

Ja jūsu tīmekļa lietotņu plānos ir iekļauts mākoņa solījumu par centu izpildē, MEAN kaudze MongoDB piedāvā pārliecinošu datu bāzes slāni. Šī mūsdienīgā datu bāze ir aprīkota ar automātisku dalīšanu un pilnu kopu atbalstu tieši no kastes. Pievienojiet MongoDB, un tas izplatās pa visu serveru kopu, lai piedāvātu kļūmjpārlēces atbalstu un automātisku replikāciju. Ņemot vērā to, cik viegli lietotnes var izstrādāt, testēt un mitināt mākonī, ir maz iemeslu neuzskatīt MongoDB par nākamo projektu.

MySQL struktūra ir ierobežojoša

Ikviens, kurš jebkādu laiku ir izstrādājis vai uzturējis lietotni, kas balstīta uz LAMP, zina, ka MySQL kā relāciju datu bāzes spēks dažkārt var justies mazliet ieslodzīts. Tāpat kā visas relāciju datu bāzes, arī MySQL liek datus ievietot tabulās. Šī nav problēma, ja katrs ieraksts iekļaujas tieši tajā pašā formātā, bet cik bieži pasaule ir tik dāsna? Ko darīt, ja diviem cilvēkiem ir viena adrese, bet ne viens konts? Ko darīt, ja vēlaties, lai uz adresi būtu trīs līnijas, nevis divas? Kurš gan nav mēģinājis labot relāciju datu bāzi, vienā kolonnā savācot pārāk daudz datu? Vai arī jūs galu galā pievienojat vēl vienu kolonnu, un tabula kļūst neierobežota.

Savukārt MongoDB piedāvā daudz elastīgāku dokumentu struktūru. Vai vēlaties pievienot jaunu personiskās informācijas mazliet lietotāju profiliem? Vienkārši pievienojiet lauku savai formai, apkopojiet to ar pārējiem datiem JSON dokumentā un ievietojiet to savā MongoDB kolekcijā. Tas ir lieliski piemērots mainīgajiem projektiem un darbam ar datiem, kas galu galā var izrādīties sarežģīti ierobežot tabulas formā.

Vieta diskā ir lēta

Starp lielajām relāciju datu bāzu atklāsmēm bija JOIN komanda. Izmantojot JOIN, mēs varētu ietaupīt vietu diskā, noņemot atkārtotus laukus, piemēram, pilsēta, štats un pasta indekss. Uzglabājot šos bieži pieejamos un atkārtotos datus atsevišķās tabulās, kuras var iekļaut turpmākajos rezultātos, izmantojot JOIN, mēs uzturam savu datu bāzi kārtīgu un mūsu diskus slaidus.

Bet JOINs dažiem var būt grūts un grūti RAM, un, lai gan joprojām ir laba ideja izolēt un piekļūt datiem atsevišķās tabulās, izmantojot JOIN, tagad nav tik daudz jāglābj diska vieta, kad diskdziņi tiek mērīti vairākos terabaitos. Vieta ir tik lēta, ka daži datu bāzu dizaineri galu galā denormalizē savus datus, jo JOIN ir pārāk lēni. Kad tas būs izdarīts, jums nebūs tik daudz nepieciešama relāciju datu bāze. Kāpēc tā vietā neizmantot MongoDB?

Node.js vienkāršo servera slāni

Pārvietošanās dažādos LAMP kaudzes slāņos var būt sarežģīta deja no daudzām cepurēm, kas jums ir jāmaina dažādos konfigurācijas failos ar atšķirīgu sintaksi. MEAN to vienkāršo, izmantojot Node.js.

Vai vēlaties mainīt to, kā jūsu lietotne maršrutē pieprasījumus? Apkaisiet dažus JavaScript un ļaujiet Node.js darīt visu pārējo. Vai vēlaties mainīt loģiku, ko izmanto, lai atbildētu uz jautājumiem? Arī tur izmantojiet JavaScript. Ja vēlaties pārrakstīt URL vai izveidot nepāra kartējumu, tas ir arī JavaScript. MEAN kaudzes paļaušanās uz Node.js šāda veida cauruļvadus ievietoja vienā vietā, vienā valodā un vienā loģikas kaudzē. Jums nav jāpārlasa rokasgrāmatas par PHP, Apache un visu citu, ko pievienojat kaudzei. Kaut arī LAMP paaudzei visam ir atšķirīgi konfigurācijas faili, Node.js no šīs problēmas pilnībā izvairās. Ja viss ir vienā slānī, tas nozīmē mazāku neskaidrību un mazāk iespēju savādām kļūdām, ko rada dīvaina mijiedarbība starp vairākiem slāņiem.

MEAN padara kodu izomorfu

Vienkāršība neapstājas ar JavaScript lietošanu serverī. Pārejot MEAN, jūs varat izbaudīt to pašu JavaScript arī klientā, atstājot LAMP kaudzes klienta / servera šizofrēniju. Ja jūs rakstāt mezglam kodu un nolemjat, ka tas ir labāk ievietots leņķiskajā, varat to viegli pārvietot, un gandrīz droši darbosies tāpat. Šī elastība ievērojami atvieglo MEAN balstītu lietotņu programmēšanu. Turklāt, ja jūs strādājat pie projekta, jums nav jāmeklē PHP eksperts un JavaScript eksperts, kā arī priekšgala un aizmugures speciālists. Tā vietā tas viss ir JavaScript visā kaudzē.

JSON visur

Angular un MongoDB abi runā JSON, tāpat kā Node.js un Express. Dati kārtīgi plūst starp visiem slāņiem, nepārrakstot un nepārformatējot. MySQL vietējais formāts, lai atbildētu uz jautājumiem, ir viss pats. Jā, PHP jau ir kods MySQL datu importēšanai un atvieglo to apstrādi PHP, taču tas nepalīdz klienta slānim. Tas var būt nedaudz mazsvarīgs pieredzējušiem LAMP veterāniem, jo ​​ir tik daudz labi pārbaudītu bibliotēku, kas viegli pārveido datus, taču tas viss šķiet mazliet neefektīvs un mulsinošs. MEAN datiem visur izmanto vienu un to pašu JSON formātu, kas padara to vienkāršāku un ietaupa laika pārformatēšanu, šķērsojot katru slāni. Turklāt JSON visuresamība, izmantojot MEAN kaudzi, padara darbu ar ārējām API daudz vienkāršāku: GET, manipulējiet, prezentējiet, POST un glabājiet visu vienā formātā.

Node.js ir ļoti ātrs

Apache bija lielisks, taču šajās dienās Node.js bieži darbojas ātrāk. Vairāki etaloni parāda, ka Node.js piedāvā labāku sniegumu, vienlaikus darot daudz vairāk. Varbūt tas ir koda vecums. Varbūt Node.js notikumu virzītā arhitektūra ir ātrāka. Tas nav svarīgi. Šajās dienās, it īpaši nepacietīgu mobilo ierīču lietotāju vidū, ir svarīgi skūstīt pat milisekundes no jūsu lietotnes veiktspējas, un Node.js to var izdarīt, vienlaikus piedāvājot Turing-complete mehānismu tās pārprogrammēšanai.

Dziļumam ir nozīme

PHP mīļotājiem patīk pieķerties lieliskajām kodu bibliotēkām, kas tika izveidotas dominējošām platformām, piemēram, WordPress vai Drupal. Viņiem ir nopietni iemesli lepoties, taču viņu priekšrocības izzūd, jo Node.js to panāk.

Node.js pakotņu pārvaldnieks NPM atvieglo koda koplietošanu, un publiskie krātuves, kuru mērķauditorija ir Node.js, strauji pieaug. Lai gan PHP pūlis šajā brīdī var vadīt, nākotne var dot priekšroku Node.js. Turklāt pašreizējie operatori bieži izrādās trausli, ņemot vērā mainīgās tendences. Katrs mēģinājums modernizēt iesakņojušos platformu, piemēram, Drupal, ar jaunu versiju nozīmē, ka daudzi citi izstrādātāji, iespējams, ļauj acīm skatīties uz jaunākām, veiklākām platformām, kas izveidotas ap Node.js.

Leņķiskais ir svaigs

Nav gluži taisnīgi salīdzināt “MEAN” “A” ar kaut ko LAMP kaudzē, jo LAMP nav analoga. Ja vēlaties kaut ko darīt klienta pusē, esat viens pats. Protams, ir daudz labu PHP balstītu sistēmu, kas darbojas ar MySQL, taču katra no tām ir nedaudz atšķirīga un virzās savā virzienā. Piemēram, WordPress, Joomla un Drupal piedāvā dažādas stratēģijas, un ir grūti pārslēgties starp tām, nemaz nerunājot par porta kodu no viena uz otru. Svaidot vienu klienta sistēmu, tiek nodrošināta konsekvence un stabilitāte.

Tas arī palīdz, ka Angular ir izveidojuši cilvēki ar 20 gadu pieredzi tīmekļa lietotņu izveidē. Viņi zināja pietiekami labi, lai projektēšanas darbus atstātu HTML un CSS ziņā. Viņi arī izdomāja, kā pievienot mazliet JavaScript, lai skenētu HTML. Angular dizaineri apskatīja, ko cilvēki dara labi, pēc tam pielāgoja JavaScript, lai atbalstītu cilvēkus. Veidņu sistēma un loģikas slāņi ir dramatiski tīrāki nekā iepriekš redzētie, daļēji tāpēc, ka komanda izdomāja vienkāršākus veidus, kā izmantot JavaScript vietējo spēku, lai uzminētu, ko jūs darāt.

Sajauc un savieno

Protams, ja jūs patiešām esat izvēlīgs, nav iemesla, kāpēc jūs to nevarētu mazliet sajaukt. Daudzi izstrādātāji izmanto MongoDB ar Apache un PHP, un citi izvēlas MySQL ar Node.js. Angular darbojas diezgan labi ar jebkuru serveri, pat ar vienu, kurā darbojas PHP, lai piegādātu datus no MySQL. Jums nav jābūt akronīmu vergam.

$config[zx-auto] not found$config[zx-overlay] not found