The Codest
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Nozares
    • Fintech un banku darbība
    • E-commerce
    • Adtech
    • Healthtech
    • Ražošana
    • Loģistika
    • Automobiļu nozare
    • IOT
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
Atpakaļ bultiņa ATGRIEZTIES ATPAKAĻ
2021-08-24
Programmatūras izstrāde

Kā paātrināt programmatūras izstrādi ar JavaScript?

The Codest

Bartošs Slišs (Bartosz Slysz)

Software Engineer

Uzziniet, kā JavaScript un TypeScript nodrošina ātru tīmekļa, mobilo un backend lietojumprogrammu izstrādi, izmantojot React, Node.js un modernās mākoņtehnoloģiju arhitektūras.

Aplikāciju ātras izstrādes definīcija

Frāzi "ātra attīstība" var interpretēt daudzos nepareizos veidos. Lai no tā izvairītos, paskaidrosim, kādas ir mūsu gaidas. Galvenais un svarīgākais ir budžets. Lai izveidotu daudzas vienas un tās pašas lietojumprogrammas versijas, mums ir vajadzīgi daudzi izstrādātāji no vairākiem tehnoloģiju pakāpieniem un jāmaksā katram no viņiem. Lai izveidotu vietējās mobilās lietotnes, mums ir nepieciešams dublēt mūsu kods labi darboties abās platformās - Android un iOS. Kopējā pieeja ir saglabāt abas lietojumprogrammas līdzīgas, izmantot vienu un to pašu API, saglabāt vienādu uzvedību utt. Rezultātā mums ir jādublē kods, lai izveidotu divas vienas un tās pašas lietojumprogrammas versijas. JS ir valoda, kas ļauj mums lai izveidotu mobilās lietojumprogrammas un tīmekļa vietne lietojumprogrammas vienlaicīgi. Šķiet neiespējami? Ļaujiet man paskaidrot, par ko es runāju.

Mobilais? Tīmeklī? Man vienalga.

Pieņemsim, ka vēlamies izveidot lietojumprogrammu, kas izmanto React bibliotēka. Šo bibliotēku var izmantot tīmekļa lietojumprogrammu un mobilo lietojumprogrammu veidošanai, izmantojot React. Lietojumprogrammas loģiskie mehānismi, piemēram, autorizācija, skaitļošana, filtrēšana. dati un tā tālāk, var veikt ar React āķiem. Svarīgākais ir tas, ka šos āķus var koplietot abas lietojumprogrammas versijas - tīmekļa un mobilā lietojumprogramma. Pateicoties šai iespējai, mums ir šādi ietaupījumi:

  • Nav nepieciešams dublēt kodu, kas atbild par vienu un to pašu,
  • Nav nepieciešams algot vietējos mobilo ierīču izstrādātājus, lai īstenotu vienu un to pašu lietojumprogrammu daļu,
  • Lai īstenotu vienu un to pašu lietojumprogrammu dažādās mobilajās platformās (Android/iOS), nav nepieciešams jaukt dažādas valodas,
  • Viens izstrādātājs var būt atbildīgs par konkrētu lietojumprogrammas funkciju ieviešanu visās platformās.

Apkopojot šo punktu - runa nav par to, ka viena kodu bāze darbosies ar visām lietojumprogrammas versijām, lai gan mēs varam sadalīt koplietošanas kodu un izmantot to katrā versijā, lai izstrādes process patiešām ātrāk.

Secinājums - ja vēlaties vienlaikus izveidot tīmekļa lietojumprogrammu un mobilo lietojumprogrammu, apsveriet React bibliotēku, kas var koplietot kodu bāzi lietojumprogrammas mobilajā un tīmekļa versijā.

Bet kā ir ar aizmugurējo daļu?

Pirms dažiem gadiem, runājot par backend, droši vien tikai retais būtu iedomājies, ka tā uzturēšana būtu iespējama ar tādas valodas palīdzību kā. JS. Šīs valodas attīstība ir pārsteidzoša, un tās augļus var novākt līdz pat šai dienai.

Par ko es runāju? Ja jūs nolīgstat pareizo JS izstrādātāji, izrādās, ka viņi var rakstīt ne tikai lietojumprogrammas frontend, bet arī backend - tas ir, būt atbildīgi par datu apstrādi serverī, saziņu ar datubāzi, dažāda veida integrāciju utt. Joprojām šaubāties vai neesat pārliecināts par šo valodu? Šādai attieksmei nav iemesla! Backend izmantošana JS var īstenot divos populāros veidos - paplašināmā un konfigurējamā režīmā, ko mums var nodrošināt express.js, un strukturētā režīmā, izmantojot DI modeli - nest.js.

Abi risinājumi ir ļoti populāri un nodrošina daudzas ražošanas lietojumprogrammas, kuru īpašnieki ir savas nozares "tehnoloģiju giganti". Es domāju, ka tie ir pietiekami nobrieduši, lai pārliecinātu jūs izvēlēties kādu no tiem.

Ar to joprojām nepietiek? Līdzīgi kā kodu koplietošana starp tīmekļa un mobilajām lietojumprogrammām, backend var koplietot resursus gan ar pirmo, gan ar otro lietojumprogrammu. Atslēgas vārds, kas šeit jāizmanto, ir TypeScript - cita starpā tas ļauj mums koplietot kodu bāzi, t.i., kopīgu datu tipa definīciju visām platformām.

Ar lietojumprogrammām, kas veidotas tikai uz JavaScript / TypeScript kaudze, izmantojot monolītu, mēs ietaupām daudz kodu rindu, kas mums būtu jāduplicē dzimtajā programmēšanas valodā. No otras puses, izmantojot vienu un to pašu valodu visās frontēs, mēs varam dalīties ar milzīgu loģikas apjomu starp visām lietojumprogrammām, kas noteikti paātrinātu laiku, kurā var izveidot konkrētu lietojumprogrammu. Vai tas neizklausās lieliski?

Vai JS var darbināt datora lietojumprogrammas?

Izrādās, ka pārlūkprogrammu lietojumprogrammu veidošanas tehnoloģijas ir lieliski piemērotas to lietojumprogrammu uzturēšanai, kuras izmantojam darbvirsmas formā - labs piemērs šeit var būt Slack. Slack ir lietojumprogramma, ko izmanto komanda saziņa - papildus standarta ziņojumapmaiņai tā piedāvā daudz dažādu funkcionalitāšu un dažāda veida ārējo integrāciju. Tas viss padara to par vienu no populārākajām lietojumprogrammām, ko galvenokārt izmanto IT nozarē.

Izrādās, ka arī Slack izmanto tīmekļa tehnoloģijas (un līdz ar to arī JavaScript), lai izveidotu lietojumprogrammas saskarni. Pamats, kas ļauj darbvirsmā palaist šādas lietojumprogrammas, ir elektrons. Grafisko saskarņu izveide, izmantojot tīmekļa tehnoloģijas, ļauj daudz vieglāk, ātrāk un vispārīgi vienlaicīgi izstrādāt lietojumprogrammas dažādām platformām.

Vai JS ir pietiekami nobriedis?

Runājot par lietojumprogrammas frontend daļu, nav ilūziju, ka JS ir vienīgā un ekskluzīvā valoda, kas nodrošina šīs ekosistēmas darbību. Pagaidām nav dzīvotspējīgu alternatīvu, kas varētu aizstāt šo lietojumprogrammas daļu (lai gan es domāju, ka WebAssembly nākotnē var mūs pārsteigt). Tātad, runājot par JS briedumu frontendā - nav šaubu, ka tā ir vienīgā karaliskā.

Runājot par backend, daudzi izstrādātāji var šķist šokēti vai uzreiz noliegt, ka JS ir piemērota backend programmēšanas valoda. Tomēr šis jautājums ir jāanalizē objektīvi.

Daudzi mākoņa pakalpojumu sniedzēji nodrošina SDK, kas ļauj tieši izmantot mākonis metodes. Dīvaini, bet viena no populārākajām cilnēm, tieši blakus C#, Go un Java, ir Node.js. Izrādās, ka šī platforma ir ideāli piemērota, lai mērogotu un veidotu lietojumprogrammas, pamatojoties uz mikroservisi vai bezserveru arhitektūra. Secinājums - JS ir viena no populārākajām valodām, lai izstrādātu lietojumprogrammas, kas balstītas uz mikroservisu/bezserveru arhitektūru. Tālāk redzamajos ekrānos redzams, ka svētā trīsvienība (Google skaitļošanas pakalpojumi, AWS, Azure) no mākoņtelevīzijas pakalpojumu sniedzējiem ļauj mums veidot lietojumprogrammas, izmantojot mezgls.js.

Node.js ātrā sākšana

Node.js salīdzinājums

Runājot par mezgla.js ekosistēmu, droši vien ikviens ir iepazinies ar bibliotēku express.js - tas ir vienkāršs un vienkāršs rīks, kas ļauj definēt ceļus un pēc tam tiem ievadīt atbilstošus datus, kas ir pareizi apstrādāti JS pusē. Vēl jo vairāk, modelis, kas tiek izmantots starp express.js apstrādātajiem HTTP pieprasījumiem, ir kļuvis par vienu no populārākajiem visā ekosistēmā un ir sava veida paraugs dažādām citām bibliotēkām, kas izmanto, piemēram, serverless arhitektūru.

Secinājums - JS ir pietiekami nobriedusi valoda, lai tajā varētu ievietot visas kartes un veidot gan frontendus, gan backendus. Turklāt tā ir diezgan svaiga valoda, kas viegli atrod savu vietu mūsdienu lietojumprogrammu arhitektūrā. Tas ir lieliski, ka programmētājs, kurš pārzina vienu valodu, var apgūt abas lietojumprogrammas puses (full stack).

Vai JS ir pietiekami ātrs?

JS koda izpildei visbiežāk tiek izmantots v8 dzinējs, ko darbina C++ valoda. Šis dzinējs, ko izstrādājusi Google, ir paredzēts tīmekļa platformām paredzēto lietojumprogrammu darbināšanai. Interesanti ir tas, ka šis dzinējs neinterpretē JS kodu. Tā vietā tas veic tā saukto "JIT" - "just in time compilation". Pateicoties tam, mums nav jāinterpretē JS kods rindu pa rindai, mēs to vienkārši kompilējam un izpildām. Tas ir vēl ātrāk un dod mums patiešām labus veiktspējas rezultātus.

Vai JS ir pietiekami godīgs attiecībā uz veiktspēju? Jā, ir. Ja vien algoritmi ir pietiekami godīgi, servera pusē nav problēmu izmantot JS. Otra lieta ir saglabāt savu kodu pēc iespējas asinhronāku. Izmantojot šos paņēmienus, jūsu kods var bez problēmām apstrādāt paralēlus pieprasījumus. Jums nav jārūpējas par tehnoloģiju maiņu veiktspējas dēļ - īpaši, ja lietojumprogrammas arhitektūra ir mērogojama.

Šajā rakstā jau esmu detalizēti aprakstījis veiktspēju un etalonus.

Vai JS nav tāda dīvainība citu valodu vidū?

Šie ir desmitiem viedokļu par to, ka JS valoda dažos gadījumos uzvedas dīvaini, un tās lietošana ir kaut kas tāds, kas liks jums eksplodēt galvu izstrādes procesā. Es nevaru piekrist 🙂 Tāpat kā jebkurai citai valodai, arī tai ir vairāki modeļi/uzvedība, kas nav eleganti, bet, saprotot, kā tie darbojas un kādi ir to mērķi, izstrādāt lietojumprogrammas ar JS nav nepatīkami.

Īpaši piezīme par "asinhrono" tieši pirms JS dažiem izstrādātājiem liek satraukties. To ir grūti saprast, ja nav bijusi nekāda pieredze ar to. Tomēr tā ir JS daļa, kas ļauj mums viegli veidot mūsdienīgus risinājumus. Aplūkosim websockets: tā kā tās ir uz notikumiem balstītas - katra no savienotajām vienībām - lietotājs un serveris - var paralēli raidīt un saņemt notikumus. Ja kods, kas nodrošina šīs lietotnes darbību, ir pietiekami asinhronizēts un nebloķē galveno pavedienu, mēs varam viegli apstrādāt tūkstošiem pieprasījumu īsā laikā.

Salīdzināsim JS un PHP ar tīmekļa ligzdu kontekstu. PHP ir sinhronā programmēšanas valoda, tāpēc websocket tēmu risināšana sagādā lielas galvassāpes. Mēs redzam, ka PHP iegūst modeļus no JS, lai veidotu interaktīvas backend lietojumprogrammas, kurās var izmantot modernās tehnoloģijas, piemēram, webrtc vai websockets.

Sajauciet to visu kopā

Apkopojot visus punktus kopā, varam konstatēt dažus faktus:

JavaScript ir valoda, ko var izmantot visdažādāko lietojumprogrammu veidošanai - gan tīmekļa, gan mobilo, gan darbvirsmas lietojumprogrammu;
JS rakstītās lietojumprogrammas var savstarpēji kopīgot dažādus koda fragmentus, piemēram, tos, kas ir atbildīgi par datu formatēšanu vai tipiem Typescript;
Pateicoties tīmekļa izaugsmei, JS piedāvātais veiktspējas līmenis ir pietiekami labs, lai izvēlētos gan frontend, gan backend lietojumprogrammu izstrādi;
Pateicoties neparastajam dizainam, JavaScript spēj atbalstīt modernas lietojumprogrammu infrastruktūras, piemēram, websockets un WebRTC;
Izstrādātājs ar atbilstošu kvalifikāciju var izmantot tās potenciālu katrā pieejamajā frontendā, kas nodrošina šo valodu;
JS ir valoda, kas jau vairākus gadus ieņem arvien augstāku vietu popularitātes tabulās, un nekas neliecina, ka tas varētu mainīties.

Lai sniegtu savu, protams, neobjektīvo viedokli - JavaScript iespējas atkārtoti izmantot vienu un to pašu kodu visās pieejamajās frontēs izmantošana noteikti paātrinās lietojumprogrammu izstrādi un samazinās to izstrādātāju skaitu, kas iesaistīti citās tehnoloģijās rakstītu lietojumprogrammu backend uzturēšanā. Kā apstiprinājumu atcerēsimies faktu, ka milzīgs skaits tā saukto IT milžu ievēro šo modeli un koplieto diezgan lielu daļu kodbāzes dažādās platformās. Neraugoties uz atšķirīgajiem viedokļiem par šo valodu, jāņem vērā, ka lietošanas statistika un apmierinātība ar tās lietošanu JS gadu no gada augt, un tās izstrādātāji var viegli iesaistīties pilna žetona tendencē.

Konsultācijas par digitālo produktu izstrādi

Lasīt vairāk:

Kāpēc jums (iespējams) vajadzētu izmantot Typescript

Kā nenogalināt projektu ar sliktu kodēšanas praksi?

Datu iegūšanas stratēģijas NextJS

Saistītie raksti

Programmatūras izstrāde

7 padomi un triki programmā React

Vai meklējat veidus, kā uzlabot savu React kodu? Šajā rakstā sniegti padomi un triki, kas jāzina katram React izstrādātājam. Iegremdēsimies!

The Codest
Mohamed El Amine DADDOU React Izstrādātājs

Abonējiet mūsu zināšanu bāzi un saņemiet jaunāko informāciju par IT nozares pieredzi.

    Par mums

    The Codest - starptautisks programmatūras izstrādes uzņēmums ar tehnoloģiju centriem Polijā.

    Apvienotā Karaliste - Galvenā mītne

    • 303B birojs, 182-184 High Street North E6 2JA
      Londona, Anglija

    Polija - Vietējie tehnoloģiju centri

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polija

      The Codest

    • Sākums
    • Par mums
    • Pakalpojumi
    • Case Studies
    • Zināt, kā
    • Karjera
    • Vārdnīca

      Pakalpojumi

    • Tā Konsultatīvais dienests
    • Programmatūras izstrāde
    • Backend izstrāde
    • Frontend izveide
    • Staff Augmentation
    • Backend izstrādātāji
    • Mākoņa inženieri
    • Datu inženieri
    • Citi
    • QA inženieri

      Resursi

    • Fakti un mīti par sadarbību ar ārējo programmatūras izstrādes partneri
    • No ASV uz Eiropu: Kāpēc Amerikas jaunuzņēmumi nolemj pārcelties uz Eiropu?
    • Tehnoloģiju ārzonas attīstības centru salīdzinājums: Tech Offshore Eiropa (Polija), ASEAN (Filipīnas), Eirāzija (Turcija)
    • Kādi ir galvenie CTO un CIO izaicinājumi?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autortiesības © 2026 The Codest. Visas tiesības aizsargātas.

    lvLatvian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lt_LTLithuanian lvLatvian