Lumaktaw sa nilalaman
Galugarin ang website
Talakayin ang iyong proyekto

contact@almousa.dev

GABAY SA PAGPAPASYA / KAALAMAN

Paano pumili ng angkop na programming language at teknolohiya para sa iyong proyekto

Magsimula sa kung ano ang dapat gumana, hindi isang pangalan ng wika. Binabalanse ng angkop na stack ang karanasan ng user, data, ang maintenance team, ang gastos sa pagpapatakbo at ang mga hadlang ng proyekto.

AM
ALMOUSAMga website at software system

Na-update ang nilalaman:

ANG PANGUNAHING IDEYA

Magsimula sa kung ano ang dapat gumana, hindi isang pangalan ng wika. Binabalanse ng angkop na stack ang karanasan ng user, data, ang maintenance team, ang gastos sa pagpapatakbo at ang mga hadlang ng proyekto.

01

Ilarawan ang desisyon bago isulat ang code

Kilalanin ang gumagamit at ang kinalabasan na kailangan nila. Nagbabasa ba sila ng tungkol sa isang serbisyo, namamahala sa isang kahilingan na nangangailangan ng pag-apruba, o nagtatrabaho sa field nang walang koneksyon? Ilarawan ang tatlong pangunahing daloy ng paggamit, kabilang ang mga kaso ng pagkabigo at tahasang pagbubukod. Lumilikha ito ng batayan para sa paghahambing ng mga opsyon sa halip na pagdedebate sa kasikatan. Ang bilang ng pahina lamang ay hindi naglalarawan sa pagiging kumplikado ng produkto.

02

Ang isang wika ay hindi ang buong stack

Ang C#, JavaScript, Python at PHP ay mga wika. Ang ASP.NET Core, Laravel at Django ay mga frameworks; Ang React ay isang UI library. Ang Node.js ay isang JavaScript runtime, ang PostgreSQL ay isang database, at ang Firebase ay isang koleksyon ng mga serbisyo, hindi isang wika. Maaaring pagsamahin ng isang proyekto ang ilan sa mga layer na ito. Ang pagpili sa PostgreSQL sa halip na Flutter ay hindi isang makabuluhang paghahambing: nalulutas nila ang iba't ibang bahagi ng isang system.

03

Ihambing ang pinakamaliit na solusyon na nakakatugon sa pangangailangan

Ang isang paminsan-minsang na-update na site ng mga serbisyo ay maaaring gumana nang maayos bilang isang static na site. Maaaring kailanganin ng mga editor ang isang content system, habang ang mga pag-apruba ay nangangailangan ng mga panuntunan sa negosyo, pahintulot at data. Tanungin ang bawat opsyon na ipaliwanag ang pag-unlad, mga pagpapatakbo at isang daan sa paglabas sa wakas. Ang mga microservice, dalawang mobile app at AI ay hindi awtomatikong mga kinakailangan sa pagsisimula. Ang bawat karagdagang bahagi ay lumilikha ng ibang bagay upang mapanatili.

04

Halimbawa: isang portal ng kahilingan para sa isang maliit na koponan

Ipagpalagay na ang isang miyembro ng kawani ay nagsumite ng isang kahilingan, sinusuri ito ng isang superbisor, at sinusubaybayan ng humihiling ang pag-unlad. Ang tumutugon na web application na may database na angkop sa mga relasyon ay isang makatwirang kandidato, na may tahasang mga estado at pahintulot. Ang pagpapabuti ng isang umiiral na sistema ay isang mapagkumpitensyang opsyon kapag ginagawa na nito ang karamihan sa mga ito. Kung magiging mahalaga ang offline na trabaho sa ibang pagkakataon, subukan ang pag-synchronize para sa isang workflow bago gawing mobile application ang buong produkto. Ito ay hypothetical, hindi isang resulta ng kliyente.

05

Ano ang dapat malutas bago magpasya na ituloy ito?

Suriin ang pagmamay-ari ng account at pinagmulan, mga lisensya ng bahagi, mga lifecycle ng suporta, responsibilidad sa pag-update, pag-backup at pag-restore, at lokasyon ng data kung saan nalalapat ang mga partikular na kinakailangan. Subukan ang integrasyon o feature na may pinakamalaking kawalan ng katiyakan nang maaga. Itala ang dahilan ng pagpili, ang mga pagpapalagay at kung ano ang magti-trigger ng pagsusuri. Tumutulong ang tagapili na ayusin ang mga tanong na iyon; hindi nito pinapalitan ang isang espesyalistang arkitektura o legal na pagtatasa.

EDUKASYONAL NA HALIMBAWA / MASUSURI NA MGA HAKBANG

Desisyon card: isang arkitektura ng portal ng kahilingan

Isang hypothetical na portal na pang-edukasyon kung saan ang isang miyembro ng kawani ay nagsumite ng isang kahilingan at sinusuri ito ng isang superbisor. Paghambingin ang dalawang opsyon gamit ang mga tseke sa ibaba at itala ang ebidensya para sa bawat desisyon; hindi ito isang proyekto ng kliyente o resulta ng pagganap.

  1. Mga daloy ng paggamit: gumawa ng kahilingan, ibalik ito para sa nawawalang impormasyon, pagkatapos ay aprubahan ito bilang isang superbisor. Tanggapin ang isang opsyon kapag pinapanatili nito ang estado, desisyon at dahilan at hinaharangan ang mga di-wastong transition.
  2. Interface: ihambing ang isang site ng nilalaman para sa pagpapaliwanag ng serbisyo sa isang browser application para sa paghawak ng mga kahilingan. Magdagdag ng mobile channel kapag ang pagsubok ng device ay nagtatag ng kinakailangang kakayahan.
  3. Data: tukuyin ang mga kahilingan, may-ari, attachment at pag-apruba. Magpasya kung ano ang kabilang sa database kumpara sa imbakan ng file at kung sino ang nagpapahintulot sa bawat pag-download ng attachment.
  4. Backend: subukan ang pinakamahirap na magagamit na pagsasama sa parehong mga opsyon. Itala ang pagiging tugma ng provider-library, pagpapatupad ng pahintulot at pag-uugali ng pagkabigo sa halip na paghahambing ng mga walang laman na screen.
  5. Mga Operasyon: magsagawa ng trial release at rollback. Magtalaga ng mga taong responsable sa account, mga secret, pag-update at pag-restore at tantiyahin ang paggamit para sa bawat opsyon.
  6. Desisyon: pumili ng opsyon na pumasa sa mga kinakailangang function at maaaring mapanatili. Itala ang mga kakulangan at mga kondisyon para sa muling pagsusuri, gaya ng offline na kinakailangan o hindi suportadong pagsasama.

Ihambing kung gaano ito angkop, hindi kung gaano kasikat.

Site na nakatuon sa nilalaman

Angkop: Pampublikong nilalaman at malinaw na paraan ng pakikipag-ugnayan, nang walang kumplikadong panloob na operasyon.

Isaalang-alang: Ang daloy ng trabaho sa editoryal ay isang hiwalay na pagpipilian; ang static na paghahatid ay hindi nagpapasya nito.

Web application

Angkop: Mga gawain, pahintulot at daloy ng trabaho sa mga device.

Isaalang-alang: Nangangailangan ng pamamahala ng data, pagpapatakbo at pagsubok ng mga estado at mga pagbubukod.

Mobile application

Angkop: Isang itinatag na pangangailangan para sa pamamahagi, mga feature ng device o paggamit ng field.

Isaalang-alang: Kasama ang maintenance ng platform, pagsubok sa device at pamamahagi sa app store kapag kailangan.

Ito ay suporta sa desisyon, hindi isang alok ng serbisyo o isang garantiya sa pagganap. Ang iyong huling pagpipilian ay depende sa iyong mga kinakailangan at ang mga bersyon na pinili sa pagpapatupad.

Mga opisyal na mapagkukunan para sa karagdagang pagbabasa

Astro — server-first content sitesbubukas sa isang bagong windowNode.js — pagpapakilala ng runtimebubukas sa isang bagong windowPostgreSQL — ano itobubukas sa isang bagong windowFirebase — dokumentasyon ng produktobubukas sa isang bagong window

Inilalarawan ng mga mapagkukunan ang mga katangian ng teknolohiya. Ang mga sitwasyon at trade-off ay patnubay sa konteksto, hindi mga resulta ng benchmark.