MEAN pret LAMP steku plusi un mīnusi
Tīmekļa skursteņi gadu gaitā ir attīstījušies, attīstoties tehnoloģijām un valodām. Pašlaik divas no populārākajām tīmekļa kaudzēm ir LAMP un MEAN. Tās balstās uz divām dažādām tehnoloģijām, kas paredzētas backend valodām, datu bāzēm un serveru vidēm. Termins "kaudze" attiecas uz tehnoloģijas, kas sakrājas viens otram, lai izveidotu tīmekļa servera vidi.
Šajā rakstā es gribētu noskaidrot šos divus tīmekļa skatus, aplūkojot viņu tehnoloģiju izvēli, gan plusus, gan mīnusus. Kur katrs kaudze izceļas? Un kāda veida projekti būtu ieguvēji no abām iespējām? Ja jūs esat jauni tīmekļa tehnoloģijās vai vienkārši vēlaties uzzināt par šīm divām skurstēm, šajā rokasgrāmatā ir viss nepieciešamais.
Tradicionālā LAMP attīstība
Lielākā daļa izstrādātāju jāzina par tradicionālo LAMP kaudzi, jo tas ir bijis jau kopš sākuma. LAMP nozīmē Linux, Apache, MySQL un PHP. Katrs no tiem ir individuāli programmatūras pakotnes, kas apvienotas, lai izveidotu daudzpusīgu servera risinājumu.
Lielākais iemesls, kāpēc pielikt LAMP, ir drošību un plašu atbalstu. Tas ir bijis apmēram gadu desmitiem, un tā ir pierādīta metode tīmekļa vietņu izvietošanai.
Visi backend tehnoloģiju, piemēram, PHP un MySQL ir labi zināms, un atbalsta visi lielākie hostinga pakalpojumu sniedzēji. Ja jūs strādājat ar LAMP steku, jūs faktiski varat izvietot jebkur. Turklāt jūs saņemsiet piekļuve populārākajiem CMS dzinējiem. WordPress, Drupal un Joomla visi darbojas uz PHP / MySQL.
Tur ir pielāgojamas iespējas LAMP arhitektūrā, piemēram, LEMP, kas aizstāj Apache ar nginx. Varat arī palaist variantu Windows serverī kā WAMP steku.
Tomēr visas galvenās programmatūras - tostarp Apache, MySQL un PHP - bija atvērti, galvenokārt Linux. Šī iemesla dēļ Linux ir visnozīmīgākā servera vidē, un tāpēc LAMP ir izturējis laika pārbaudi mūsdienu tīmekļa attīstībai.
Lielākā daļa izstrādātāju iet šajā maršrutā, jo tas ir vienkāršākais veids, kā iegūt tīmekļa vietni tiešsaistē. Jūs atradīsiet daudz atbalsta forumos, kas aptver visu nepieciešamo, lai konfigurētu un novērstu LAMP vidi. Piemēram, varat uzzināt šo servera kļūdas jautājumu, lai iegūtu vairāk informācijas.
JavaScript backend ar MEAN
Node.js ir jaunākā tehnoloģija izstrādātājiem, kas apņēmušies palaist skalojamās lietojumprogrammas, kas izveidotas ar JavaScript. Mezgls pilnvaro MEAN kaudzi, un piedāvā galveno priekšrocību: viss darbojas vienā valodā.
MEAN nozīmē MongoDB, Express.js, Angular.js, un protams Node.js. Šis akronīms nenosaka servera operētājsistēmas vai servera programmatūras prasību. MEAN kaudze var darboties jebkurā OS, un mezgls pat nāk ar savu serveri, lai apstrādātu JS uz backend.
Mean.io tīmekļa vietnē jūs atradīsiet daudz dokumentu un atbalsta.
Lai gan šī kaudze ir guvusi lielu uzmanību, tai joprojām nav gandrīz nekāda stabila atbalsta apjoma kā tradicionālā LAMP kaudze.
Tātad, kāpēc kāds iet ar MEAN? Jo tas ir galu galā ātrāk un vieglāk mērogot. MongoDB ir a NoSQL datu bāze kas optimizē vaicājumus. Fullstack JavaScript izmantošana uzlabo attīstību, jo viena valoda attiecas uz visiem frontend un backend darbiem.
Turklāt daudzas citas JS sistēmas ir kā stabili risinājumi. Piemēram, MEAN var pārslēgt uz a MEEN kaudze aizstājot leņķi ar cilvēku.
Programmētāji mīl MEAN kaudzi, jo tas būs atdala uzturēšanas un izaugsmes kodu. Tas to padara vieglāk organizēt JavaScript tīmekļa lietojumprogrammas, lai tās darbotos dabiskā vidē.
Ir daudz ko mācīties šajā jautājumā, un tas, iespējams, ir lielākais šķērslis jaunu izstrādātāju ienākšanai. Mācības visu tehnoloģiju, kas nepieciešama, lai pārvaldītu MEAN lietotni, var ilgt mēnešus. Bet, ja jums patīk Node, un vēlaties palaist visu JavaScript, tas ir tā vērts.
Šeit ir daži iesācēju konsultācijas, lai sāktu darbu.
- Absolute Beginner's Guide to Node.js
- Felixa Node.js iesācēju ceļvedis
- Express.js ievads
- Uzziniet, kā veidot mūsdienīgas Web Apps ar MEAN
- Darba sākšana ar Node.js, Express un MongoDB
PHP pret mezglu
PHP ir bijis kopš 90. gadu vidus, un tā ir patiešām populārākā backend valoda. Daudzi tīmekļa izstrādātāji sākas ar (vai beidzot mācās) PHP, jo tas ir tik dominējošs pār tīmekļa platformām un hostinga pakalpojumu sniedzējiem.
Mezgls ir jaunāks ietvars, bet tās popularitāte ir ārkārtīgi strauja. Tas ietver NPM kā tīmekļa izstrādātāju paketes pārvaldnieka popularitāti un paplašinās tālāk spēcīgās frontendu sistēmās, piemēram, 2. leņķī..
Otrs Node ieguvums ir tas, ka tas ir nāk ar savu tīmekļa serveri. JavaScript ir viss, kas atrodas MEAN stekā, tāpēc, ja jums patīk JS, tad jums patiešām patīk MEAN tīmekļa lietotņu veidošana.
Daudzi izstrādātāji uzskata, ka PHP ir slikti izstrādāta valoda, jo radītājs, Rasmus Lerdorfs to faktiski neplānoja kā valodu. PHP sākās kā a vispārējs risinājums tīmekļa vietnēm, un ātri kļuva par lielu bibliotēku ar nesaistītām funkcijām.
Bet ar PHP 7 mēģina noteikt daudzas valodas kļūdas un bez maksas OOP piemēram, Laravel, PHP tagad ir daudz labāka valoda nekā jebkad agrāk.
Līdz ar to diskusijas par valodu notiek Jūsu personīgā izvēle. Vai tiešām patīk rakstīt JavaScript? Tad mezgls ar MEAN kaudzi varētu būt vērts apsvērt.
Ja jūs jau zināt PHP, un vēlaties palikt pie tā, ko jūs zināt, LAMP ir arī dzīvotspējīgs ceļš.
Vispārējie plusi un mīnusi:
Tur ir vairāki slāņi salīdziniet katru tīmekļa steku, ieskaitot operētājsistēmu, servera programmatūru, datu bāzi un backend valodu.
(1) The MEAN kaudze arī ietver leņķi kas ir frontend sistēma. LAMP stekā nav neviena nepieciešamā regulējuma, bet jūs vienmēr varat pievienot savu savai lietotnei.
(2) Kas attiecas uz OS, LAMP kaudze meklē Linux atvasinājumu. Linux parasti ir labākā izvēle servera videi neatkarīgi no kaudzes, un tas attiecas arī uz MEAN.
(3) Tagad servera operētājsistēma ir tikai datora programmatūra, bet tā nav tīmekļa servera programmatūra. Lai to iegūtu, jums ir nepieciešama programma, piemēram, Apache vai nginx. LAMP izmanto Apache, jo tā ir viena no stabilākajām iespējām.
(4) MEAN izmanto Node.js serveri, kas ir daļa no mezgla paketes. Tas joprojām ir diezgan jauns, un, lai gan tur ir daudz atbalsta, mezglā nekad nav tikpat lielas kopienas kā Apache.
(5) Nepieciešams arī mezglu serveris JavaScript pamatā (bez paplašinājumiem). Apache pieļauj lielāko daļu valodu, un ir daudz bezmaksas paplašinājumu, lai nodrošinātu lielāku atbalstu. Bet tagad, Apache, nav nekas Node atbalstam.
(6) Datu bāzes pārvaldība kur jūs atradīsiet lielākā atšķirība. LAMP izmanto MySQL relāciju datu glabāšanai, savukārt MEAN izmanto MongoDB, kas nav relāciju datu bāze. Nav relāciju DB daudz ātrāk, un nodrošināt vieglāku mērogošanas metodi ar lielāku satiksmi.
(7) Paturiet to prātā PHP neaprobežojas tikai ar MySQL. Tā var izmantot MongoDB un citas alternatīvas, piemēram, PostgreSQL vai SQLite. Tas ir tikai tas, ka lielākā daļa PHP izstrādātāju zina MySQL, tāpēc tas ir galvenais pretendents par tipisku LAMP kaudzi.
(8) Parasti parasti tiek izmantoti darboties ātrāk un lielāks, bet, lai apgūtu sistēmu, ir vajadzīgas daudz vairāk laika un servera zināšanu. LAMP skursteņi ir izmēģināts un patiess, un viņi nāk Ārā no kastes ar visdrošāko infrastruktūru un visplašāko iespējamo atbalstu.
(9) Programmēšanas valodas ir būtiska atšķirība starp abām skurstēm. LAMP galvenokārt strādā ar PHP, kas ietver WordPress un Laravel sistēmu. MEAN strādā ar ExpressJS / NodeJS par backend ar AngularJS uz priekšu.
(10) MEAN ir pilna kaudze JavaScript, un tur ir daudz, kas jums būs jāiemācās, lai iegūtu šo darbību. Tas ir bieža jaunu startu izvēle vēlas virzīt robežas tīmekļa lietotņu izstrādē. LAMP ir tradicionālāka ar JS frontendā, PHP uz backend. Tas ir paredzēts cilvēkiem, kuri tikai vēlas iegūt tīmekļa vietnes tiešsaistē bez pārāk lielām bažām.
Lūdzu, iepazīstieties ar šo salīdzināšanas rokasgrāmatu, lai uzzinātu nedaudz vairāk. Neviena izvēle nav pareiza vai nepareiza, tikai atšķirīga un paredzēta dažādiem projektiem.
Iesaiņošana
Es teiktu, ka lielākā daļa tīmekļa vietņu virzās uz LAMP steku, jo tā ir pārbaudīta, un tajā ir daudz noderīgu Q & A pavedienu, kas indeksēti Google lapās. MEAN joprojām aug, un tam ir arī daudz atbalsta, taču tas var būt tehniskāks nekā vairums cilvēku vēlas.
Jūtieties brīvi izmēģināt abus un redzēt tos pats. Tas ir iespējams instalējiet abus iestatījumus lokāli datorā, un veidojiet tos bez tālvadības servera.
Un, ja jūs meklējat vairāk informācijas par jebkuru kaudzīti, es esmu apkopojis vairākas noderīgas saites.
- Uzziniet, kā veidot mūsdienīgas Web Apps ar MEAN (thinkster.io)
- Docker LAMP Stack Admin (jessesnet.com)
- Kā instalēt Linux, Apache, MySQL, PHP (LAMP) Stack uz Debian 8 (digitalocean.com)