Sovelluskehitys ja DevOps
DevOps yhdistää sovelluskehityksen (Development) ja järjestelmien ylläpidon (Operations). Tässä osiossa selitämme modernin ohjelmistokehityksen työkaluja ja menetelmiä, joilla sovellukset kehitetään nopeasti ja luotettavasti.
AIOps — Artificial Intelligence for IT Operations
Lyhyesti: Tekoälyn käyttö IT-järjestelmien monitorointiin, analysointiin ja automaattiseen ongelmanratkaisuun.
Tarkemmin: AIOps on kuin IT-järjestelmille oma lääkäri joka seuraa terveyttä 24/7 ja osaa diagnosoida ongelmia. Se analysoi valtavia määriä lokitietoja, suorituskykydataa ja verkkotietoja, löytää kuvioita ja varoittaa ongelmista ennen kuin käyttäjät huomaavat niitä. Parhaimmillaan se jopa korjaa ongelmat automaattisesti.
Ansible — Configuration management tool
Lyhyesti: Työkalu palvelimien automaattiseen konfigurointiin ja hallintaan ilman agentteja.
Tarkemmin: Ansible on kuin reseptikirja palvelimien valmistamiseen. Kirjoitat "playbook":iin mitä haluat tehdä (asenna ohjelma X, konfiguroi palvelu Y), ja Ansible tekee sen sadoille palvelimille samanaikaisesti. Toisin kuin monet muut työkalut, Ansible ei vaadi erillisiä agentteja - se toimii SSH:n kautta.
API — Application Programming Interface
Lyhyesti: Tapa jolla ohjelmat keskustelevat keskenään - määrittää mitä voit pyytää ja miten.
Tarkemmin: API toimii kuin ravintolan menu - se kertoo mitä voit tilata, missä muodossa tieto tulee, ja miten tilaus tehdään. Kun mobiilisovellus hakee säätiedot, se käyttää sääpalvelun API:a. API:t mahdollistavat eri ohjelmien yhteistyön ilman että niiden tarvitsee tietää toistensa sisäisestä toiminnasta.
APM — Application Performance Monitoring
Lyhyesti: Järjestelmä joka seuraa sovelluksen suorituskykyä ja käyttäjäkokemusta reaaliajassa.
Tarkemmin: APM on kuin fitness-tracker sovelluksille. Se mittaa kuinka nopeasti sivut latautuvat, missä pullonkauloja on, mitä virheitä sattuu ja miten käyttäjät liikkuvat sovelluksessa. Jos verkkokauppasi on hidas, APM näyttää onko ongelma tietokannassa, verkossa vai jossain muualla. New Relic ja Datadog ovat APM-palveluja.
CD — Continuous Delivery / Continuous Deployment
Lyhyesti: Automaattinen tapa viedä sovelluspäivityksia tuotantoon nopeasti ja turvallisesti.
Tarkemmin: Continuous Delivery varmistaa että koodisi on aina valmis julkaistavaksi, Continuous Deployment julkaisee sen automaattisesti. Se on kuin liukuhihna autotehtaassa - jokainen muutos kulkee automaattisten testien kautta tuotantoon. Netflix ja Facebook päivittävät sovelluksiaan useita kertoja päivässä CD:n ansiosta.
CI — Continuous Integration
Lyhyesti: Käytäntö jossa koodimuutokset yhdistetään ja testataan automaattisesti jatkuvasti.
Tarkemmin: CI on kuin laadunvalvonta tuotantolinjalla. Aina kun kehittäjä tallentaa koodia, CI-järjestelmä hakee sen, kääntää, testaa ja tarkistaa että mikään ei hajoa. Jos testit epäonnistuvat, kaikki saavat heti tiedon. Näin ongelmat löydetään heti eikä vasta viikkoja myöhemmin kun koodi menee tuotantoon.
Git — Version Control System
Lyhyesti: Versionhallintajärjestelmä joka tallentaa kaikki muutokset koodissa ja mahdollistaa yhteistyön.
Tarkemmin: Git on kuin aikakone koodille. Se tallentaa jokaisen muutoksen historiaan, jolloin voit palata vanhaan versioon, nähdä kuka muutti mitä ja milloin, ja yhdistää useamman kehittäjän työn. Se on kuin Google Docsin "version history" mutta paljon kehittyneempi. Linus Torvalds loi Git:in Linux-ytimen kehitykseen.
GitHub Actions — GitHub automation platform
Lyhyesti: GitHubin sisäänrakennettu automaatiojärjestelmä CI/CD:lle ja muille tehtäville.
Tarkemmin: GitHub Actions on kuin robottiavustaja koodiprojektille. Se voi automaattisesti testata koodin kun lähetät sen GitHubiin, julkaista uusia versioita, lähettää ilmoituksia, päivittää dokumentaatiota tai tehdä mitä vain määrität. Se toimii suoraan GitHub-repositoryssä ilman erillistä palvelua.
GitLab CI — GitLab Continuous Integration
Lyhyesti: GitLabin sisäänrakennettu CI/CD-järjestelmä automaattiseen testaukseen ja julkaisuun.
Tarkemmin: GitLab CI on GitLabin oma versio GitHub Actionsista. Se lukee ".gitlab-ci.yml"-tiedoston projektista ja suorittaa siinä määritellyt tehtävät: testaa koodin, rakentaa sovelluksen, julkaisee sen eri ympäristöihin. Se on tiukasti integroitu GitLabin koodinhallintaan ja issue-trackingiin.
GitOps — Git-pohjainen infrastruktuurin hallinta
Lyhyesti: Tapa hallita infrastruktuuria ja sovelluksia Git-repositoryn kautta deklaratiivisesti.
Tarkemmin: GitOps tekee Git:istä "single source of truth" kaikelle IT-infrastruktuurille. Kun muutat konfiguraatiotiedostoja Git:issä, GitOps-järjestelmä (kuten ArgoCD) huomaa muutokset ja päivittää automaattisesti tuotantoympäristön vastaamaan sitä. Se on kuin "Infrastructure as Code", mutta Git-työkaluin hallittuna.
IaC — Infrastructure as Code
Lyhyesti: Lähestymistapa jossa IT-infrastruktuuri määritellään ja hallitaan koodina, ei manuaalisesti.
Tarkemmin: IaC tarkoittaa että kirjoitat palvelimet, verkot ja tietokannat koodina sen sijaan että klikkailisit niitä käsin. Se on kuin rakennuspiirustukset - kerran kirjoitetut, ne voidaan toistaa tarkasti milloin vain. Terraform ja AWS CloudFormation ovat IaC-työkaluja. Muutos konfiguraatiossa = muutos koodissa = versionhallinta ja peer review.
IDE — Integrated Development Environment
Lyhyesti: Kaikki-yhdessä-sovellus ohjelmointiin: editori, debuggeri, kääntäjä samassa paketissa.
Tarkemmin: IDE on kuin koko työpaja yhdessä paketissa. Sen sijaan että käyttäisit erillistä tekstieditoria, kääntäjää ja debuggeria, IDE yhdistää kaikki samaan ohjelmaan. Se osaa automaattisesti täydentää koodia, löytää virheet ja auttaa navigoimaan suuressa projektissa. Visual Studio Code, IntelliJ ja Eclipse ovat suosittuja IDE:jä.
Jenkins — CI/CD automation server
Lyhyesti: Avoimen lähdekoodin automaatiopalvelin CI/CD-prosessien hallintaan.
Tarkemmin: Jenkins on kuin henkilökohtainen avustaja joka tekee kaiken tylsän työn puolestasi. Se voi automaattisesti hakea koodin Git:istä, testata sen, rakentaa sovelluksen, julkaista sen palvelimelle ja lähettää ilmoituksen jos jotain menee pieleen. Se on ollut CI/CD:n klassikko vuodesta 2011, ja siihen on saatavilla tuhansia lisäosia.
JSON‑RPC / gRPC — Palveluiden väliset protokollat
Lyhyesti: Protokollia joilla sovellukset voivat kutsua toistensa funktioita verkon kautta tehokkaasti.
Tarkemmin: JSON-RPC on kuin puhelinkeskustelu JSON-muodossa - voit kutsua toisen ohjelman funktiota kuin se olisi omassa koodissasi. gRPC on Googlen kehittämä moderni versio joka on nopeampi ja tukee monia ohjelmointikieliä. Se on kuin REST API:n tehokkaampi serkku mikropalveluiden väliseen viestintään.
Maven — Build automation tool
Lyhyesti: Java-projektien automaattiseen rakentamiseen ja riippuvuuksien hallintaan tarkoitettu työkalu.
Tarkemmin: Maven on kuin resepti Java-sovellusten valmistamiseen. Se tietää missä järjestyksessä koodit käännetään, mitä kirjastoja tarvitaan ja miten lopputulos paketoidaan. Sen sijaan että kehittäjä muistaisi käyttää oikeita komentoja oikeassa järjestyksessä, Maven tekee sen automaattisesti "pom.xml"-tiedoston ohjeiden mukaan.
npm — Node Package Manager
Lyhyesti: JavaScript-projektien pakettien (kirjastojen) hallintajärjestelmä.
Tarkemmin: npm on kuin sovelluksista for JavaScript-maailmalle. Se sisältää miljoonia valmiita koodipaketteja joita voit asentaa projektiin yhdellä komennolla. Tarvitsetko kalenterikomponentin? "npm install react-calendar" ja se on käytössäsi. npm huolehtii myös riippuvuuksista - jos paketti tarvitsee muita paketteja, ne asennetaan automaattisesti.
REST — Representational State Transfer
Lyhyesti: Arkkitehtuurityyli web-API:ille joka käyttää HTTP-verbejä (GET, POST, PUT, DELETE) resurssien hallintaan.
Tarkemmin: REST on kuin kielioppi verkon API:lle. Se sanoo että käytä GET hakemiseen, POST luomiseen, PUT päivittämiseen ja DELETE poistamiseen. URL kertoo mitä resurssia käsitellään: "GET /users/123" hakee käyttäjän 123. REST on yksinkertainen ja intuitiivinen, siksi se on niin suosittu.
SCM — Source Code Management
Lyhyesti: Järjestelmä lähdekoodin versionhallinnan ja yhteistyön hallintaan.
Tarkemmin: SCM on kuin kirjaston luettelointijärjestelmä koodille. Se pitää kirjaa kuka muutti mitä ja milloin, mahdollistaa useamman kehittäjän työskentelyn samassa projektissa, ja antaa palata vanhempiin versioihin jos jotain menee rikki. Git, Subversion ja Mercurial ovat SCM-järjestelmiä. Ilman SCM:ää ohjelmistokehitys olisi kaaosta.
SDK — Software Development Kit
Lyhyesti: Kehittäjien työkalupaketti tietyn alustan, palvelun tai järjestelmän sovelluskehitykseen.
Tarkemmin: SDK on kuin Lego-sarja jolla rakennetaan sovelluksia tietylle alustalle. Se sisältää koodikirjastoja, työkaluja, dokumentaatiota ja esimerkkejä. Esimerkiksi Android SDK sisältää kaiken mitä tarvitset Android-sovellusten tekemiseen. Se on kuin keittokirja ja kaikki tarvittavat ainekset yhdessä paketissa.
SOAP — Simple Object Access Protocol
Lyhyesti: Vanha mutta edelleen käytössä oleva protokolla web-palveluille, käyttää XML:ää.
Tarkemmin: SOAP on kuin virallinen diplomaattiprotokolla ohjelmille. Se on hyvin tarkka ja monimutkainen, mutta myös luotettava ja turvallinen. SOAP käyttää XML:ää viestintään ja määrittelee tarkkaan miten pyyntöjä ja vastauksia muotoillaan. Vaikka REST on nykyään suositumpi, SOAP elää edelleen vanhoissa yrityssovelluksissa.
SRE — Site Reliability Engineering
Lyhyesti: Googlen kehittämä lähestymistapa, jossa luotettavuus käsitellään ohjelmistokehitysongelmana.
Tarkemmin: SRE yhdistää ohjelmistokehityksen ja järjestelmien ylläpidon. SRE-insinöörit kirjoittavat koodia, joka automatisoi järjestelmien hallinnan, monitorointia ja ongelmien ratkaisua. Se määrittelee "error budgets" - jos palvelu toimii liian hyvin, voidaan ottaa enemmän riskejä uusien ominaisuuksien kanssa.
Terraform — Infrastructure as Code tool
Lyhyesti: Työkalu IT-infrastruktuurin määrittelyyn, rakentamiseen ja hallintaan koodin kautta.
Tarkemmin: Terraform on kuin rakennusmestari pilvelle. Kirjoitat konfiguraatiotiedostoon mitä infrastruktuuria tarvitset (palvelimia, tietokantoja, verkkoja), ja Terraform rakentaa ne automaattisesti AWS:iin, Azureen tai mihin tahansa pilveen. Se osaa myös päivittää ja tuhota infrastruktuurin kontrolloidusti.
YAML — YAML Ain't Markup Language
Lyhyesti: Ihmisystävällinen dataformaatti konfiguraatiotiedostoille ja datan vaihtoon.
Tarkemmin: YAML on kuin JSON, mutta helpommin luettavissa. Se käyttää sisennyksiä hierarkian määrittelyyn sulkujen sijaan. Docker Compose, Kubernetes, GitHub Actions ja monet muut työkalut käyttävät YAML-tiedostoja konfiguraatioon. Se on suunniteltu olemaan sekä ihmisen että koneen luettavissa.
OOP — Object-Oriented Programming
Lyhyesti: Ohjelmointiparadigma, jossa koodi organisoidaan olioiksi, jotka sisältävät dataa ja toimintoja.
Tarkemmin: Olio-ohjelmointi on kuin Lego-rakentamista koodissa. Luot uudelleenkäytettäviä "olioluokkia" (kuten Lego-palikkamalleja) ja sitten voit luoda niistä monia olioita (kuten rakentaa monta autoa samasta mallista). Oliot voivat periä ominaisuuksia toisiltaan ja piilottaa sisäistä toimintaansa. Tämä tekee koodista modulaarista ja helpommin hallittavaa.
SOLID — Design Principles
Lyhyesti: Viisi olio-ohjelmoinnin suunnitteluperiaatetta puhtaan ja ylläpidettävän koodin kirjoittamiseen.
Tarkemmin: SOLID on kuin hyvän talon rakentamisen ohjeet: S = Single Responsibility (yksi vastuu per luokka), O = Open/Closed (avoin laajennuksille, suljettu muutoksille), L = Liskov Substitution (perityt luokat toimivat isänsä paikalla), I = Interface Segregation (pienet, tarkoituksenmukaiset rajapinnat), D = Dependency Inversion (riippuvuudet abstraktion kautta).
DRY — Don't Repeat Yourself
Lyhyesti: Ohjelmointiperiaate, jonka mukaan koodia ei pidä toistaa vaan käyttää uudelleen.
Tarkemmin: DRY on kuin reseptien kirjoittamista: sen sijaan että kirjoittaisit "kuori peruna, pilko kuutioiksi, keitä 10 minuuttia" joka reseptiin, kirjoitat sen kerran ja viittaat siihen. Koodissa tämä tarkoittaa funktioiden, luokkien ja moduleiden luomista toistuvalle logiikalle. Jos muutat myöhemmin "perunan valmistustapaa", tarvitsee muuttaa vain yhdestä paikasta.
KISS — Keep It Simple, Stupid
Lyhyesti: Suunnitteluperiaate, joka korostaa yksinkertaisuuden tärkeyttä.
Tarkemmin: KISS muistuttaa, että paras ratkaisu on usein yksinkertaisin. Sen sijaan että luoisit monimutkaisen järjestelmän "kaiken varalle", aloita yksinkertaisesta ratkaisusta ja lisää monimutkaisuutta vain tarpeen mukaan. Kuin Ikean huonekalu: yksinkertainen, toimiva ja helppo koota.
YAGNI — You Aren't Gonna Need It
Lyhyesti: Älä rakenna ominaisuuksia "varmuuden vuoksi" - rakenna vain se mitä todella tarvitset.
Tarkemmin: YAGNI estää "ehkä tarvitsemme tätä tulevaisuudessa" -ajattelun. Se on kuin muuttaminen: älä pakkaa tavaroita "ehkä tarvitsen", vaan ota vain se mitä tiedät tarvitsevasi. Ylimääräinen koodi on ylläpitotaakkaa ja hidastaa kehitystä. Parempaa on lisätä ominaisuuksia kun niitä todella tarvitaan.
TDD — Test-Driven Development
Lyhyesti: Kehitysmenetelmä, jossa testit kirjoitetaan ennen varsinaista koodia.
Tarkemmin: TDD on kuin opettelisit ajamaan ensin teoriakokeella, sitten vasta käytännössä. Kirjoitat ensin testin siitä mitä koodisi pitäisi tehdä (testi epäonnistuu), sitten kirjoitat minimaalisen koodin testin läpäisemiseksi, ja lopuksi refaktoroit koodin siistiksi. Tämä "Red-Green-Refactor" -sykli tuottaa luotettavaa, testattua koodia.
BDD — Behavior-Driven Development
Lyhyesti: Kehitysmenetelmä, joka keskittyy ohjelmiston käyttäytymisen määrittelyyn liiketoiminnan näkökulmasta.
Tarkemmin: BDD on kuin käsikirjoituksen kirjoittamista sovellukselle. Sen sijaan että testaisit teknisiä yksityiskohtia, kirjoitat skenaarioita: "Kun käyttäjä tekee X, niin sovelluksen pitäisi tehdä Y". Nämä kirjoitetaan tavallisella kielellä (Given-When-Then), jotta sekä ohjelmoijat että liiketoiminta ymmärtävät mitä rakennetaan.
DDD — Domain-Driven Design
Lyhyesti: Ohjelmistosuunnittelumenetelmä, joka keskittyy liiketoiminta-alueen (domain) ymmärtämiseen ja mallintamiseen.
Tarkemmin: DDD on kuin arkkitehti, joka suunnittelee talon asukkaidensa elämäntavan mukaan. Se korostaa, että ohjelmoijien ja liiketoiminta-asiantuntijoiden pitää puhua samaa kieltä ja rakentaa ohjelmisto todellisen liiketoiminnan mallien mukaan. Koodi heijastaa sitä miten bisnes todella toimii, ei teknisiä ratkaisuja.
MVC — Model-View-Controller
Lyhyesti: Ohjelmistoarkkitehtuurimalli, joka jakaa sovelluksen kolmeen osaan: tietomalli, näkymä ja ohjain.
Tarkemmin: MVC on kuin ravintolan organisointi: Model (keittiö) hoitaa datan ja liiketoimintalogiikan, View (sali) näyttää tiedot asiakkaalle, ja Controller (tarjoilija) välittää pyyntöjä ja vastauksia. Tämä ero tekee koodista modulaarista - voit vaihtaa käyttöliittymää vaikuttamatta liiketoimintalogiikkaan.
MVP — Model-View-Presenter
Lyhyesti: MVC:n muunnelma, jossa Presenter hoitaa kaikki View:n päätökset ja View on passiivinen.
Tarkemmin: MVP on kuin teatteriesitys, jossa Presenter (ohjaaja) tekee kaikki päätökset ja View (näyttelijät) vain noudattaa käskyjä. Toisin kuin MVC:ssä, View ei tiedä mitään Modelista - kaikki kommunikointi kulkee Presenterin kautta. Tämä tekee View:stä helpommin testattavan.
MVVM — Model-View-ViewModel
Lyhyesti: Arkkitehtuurimalli, jossa ViewModel toimii välittäjänä Model:n ja View:n välillä tiedon sitomisen kautta.
Tarkemmin: MVVM on kuin automaattinen käännös: ViewModel osaa muuttaa Modelin tiedot sellaiseen muotoon, että View ymmärtää ne automaattisesti (data binding). Kun Model muuttuu, View päivittyy automaattisesti ja päinvastoin. Suosittu erityisesti WPF-, Angular- ja Vue.js-sovelluksissa.
CQRS — Command Query Responsibility Segregation
Lyhyesti: Arkkitehtuurimalli, joka erottaa tiedon lukemisen ja kirjoittamisen eri malleiksi.
Tarkemmin: CQRS on kuin kirjastossa olisi eri tiskit lainaamista ja palauttamista varten. Commands (komennot) muuttavat järjestelmän tilaa, Queries (kyselyt) lukevat tietoa. Näillä voi olla täysin erilaiset tietomallit ja tietokannat, optimoitu kulloiseenkin käyttöön. Hyödyllinen monimutkaisissa järjestelmissä.
ES — Event Sourcing
Lyhyesti: Tiedon tallennusstrategia, jossa tallennetaan kaikki muutokset tapahtumina perinteisen tilan sijaan.
Tarkemmin: Event Sourcing on kuin pankkitilin tiliote - sen sijaan että tallentaisit vain nykyisen saldon, tallennat jokaisen tapahtuman (talletus, nosto, korko). Nykyinen tila lasketaan toistamalla kaikki tapahtumat. Tämä antaa täydellisen historian, mahdollistaa ajan halki matkustamisen ja helpottaa debuggausta.
PWA — Progressive Web App
Lyhyesti: Web-sovellus, joka toimii kuin natiivi mobiilisovellus offline-tuen ja asennettavuuden kanssa.
Tarkemmin: PWA on kuin web-sivusto, joka oppii mobiilisovelluksen temput. Se toimii ilman internetyhteyttä, voidaan asentaa kotinäytölle, lähettää push-notifikaatioita ja käynnistyy nopeasti. Käyttää Service Worker -teknologiaa välimuistin hallintaan ja Web App Manifest -tiedostoa sovelluksen tietoihin.
SPA — Single Page Application
Lyhyesti: Web-sovellus, joka lataa yhden HTML-sivun ja päivittää sisällön dynaamisesti JavaScriptillä.
Tarkemmin: SPA on kuin sähköinen kirja - lataat sen kerran, ja sitten voit selata sivuja ilman että kirja latautuu uudelleen. Perinteisissä web-sivuissa jokainen linkki lataa uuden sivun palvelimelta, mutta SPA päivittää vain muuttuneen sisällön. Tämä tekee käyttökokemuksesta sujuvamman mutta vaatii JavaScript-osaamista.
SSR — Server-Side Rendering
Lyhyesti: Web-sivun HTML generoidaan palvelimella ennen lähettämistä selaimelle.
Tarkemmin: SSR on kuin valmiiksi koottu Ikean huonekalu - palvelin kokoaa HTML-sivun valmiiksi ja lähettää sen selaimelle. Toisin kuin SPA:ssa, käyttäjä näkee sisällön heti ilman JavaScriptin latautumista. Tämä parantaa SEO:a ja latausnopeutta, mutta vaatii enemmän palvelinresursseja.
CSR — Client-Side Rendering
Lyhyesti: Web-sivun sisältö generoidaan käyttäjän selaimessa JavaScriptillä palvelimen sijaan.
Tarkemmin: CSR on kuin Ikean huonekalun kokoaminen kotona - saat osat (data) palvelimelta ja JavaScript kokoaa niistä sivun selaimessä. Ensimmäinen lataus on hitaampi ja hakukoneet eivät näe sisältöä yhtä hyvin, mutta sen jälkeen navigointi on sujuvaa ja palvelinrasite pienempi.
JAMstack — JavaScript, APIs and Markup
Lyhyesti: Modernin web-kehityksen arkkitehtuuri, joka perustuu staatisiin sivuihin, API:hin ja JavaScriptiin.
Tarkemmin: JAMstack on kuin modulaarinen stereojärjestelmä: JavaScript hoitaa interaktiivisuuden, API:t tarjoavat datan, ja Markup (HTML/CSS) muodostaa rakenteen. Sivut generoidaan etukäteen (static site generation), mikä tekee niistä nopeita ja turvallisia. Käytetään CDN:ssä jakeluun ja palvelattomia funktioita backend-logiikkaan.
BFF — Backend for Frontend
Lyhyesti: API-kerros, joka on räätälöity tietyn käyttöliittymän (frontend) tarpeisiin.
Tarkemmin: BFF on kuin henkilökohtainen avustaja jokaiselle käyttöliittymälle. Sen sijaan että mobiilisovellus ja websivusto käyttäisivät samaa API:a, kullakin on oma BFF, joka muokkaa datan sopivaksi kyseiselle alustalle. Mobiili saa tiiviimmän datan, desktop laajemman - kaikki optimoituna käyttötapauksen mukaan.
gRPC — Google Remote Procedure Call
Lyhyesti: Googlen kehittämä RPC-protokolla tehokkaaseen kommunikointiin palveluiden välillä.
Tarkemmin: gRPC on kuin tehokas kuriiri palveluiden välillä. Se käyttää HTTP/2:ta ja Protocol Buffers -formaattia, mikä tekee siitä nopeamman kuin REST API. Funktiokutsut näyttävät paikalliselta koodilta, vaikka ne tapahtuvatkin verkon yli. Tukee streamingaa, automaattista koodigeneroinnin ja tiukkaa tyypitystä.
F2F — Face-to-Face
Lyhyesti: Kasvotusten tapahtuva vuorovaikutus, erityisesti tiimityössä ja kokouksissa.
Tarkemmin: F2F viittaa kasvokkaiseen kommunikointiin, mikä on erityisen tärkeää ketterässä ohjelmistokehityksessä ja DevOps-tiimeissä. Agile-menetelmissä arvostetaan henkilökohtaista vuorovaikutusta prosessien ja työkalujen sijaan. Daily standuppit, retrospektiivit ja suunnittelukokoukset toimivat usein paremmin kasvotusten, vaikka etätyökalut ovatkin kehittyneet.
MUI — Material-UI tai Mobile User Interface
Lyhyesti: React-komponenttikirjasto tai mobiililaitteiden käyttöliittymän suunnittelu.
Tarkemmin: MUI voi tarkoittaa Material-UI:ta, joka on Googlen Material Design -käyttöliittymäkirjasto React-sovelluksille. Se tarjoaa valmiita komponentteja kuten napit, lomakkeet ja navigoinnin. Toisaalta MUI voi viitata Mobile User Interface -suunnitteluun, missä keskitytään kosketusnäyttöjen ja pienten ruutujen vaatimuksiin.
MVP‑roadmap — Minimum Viable Product roadmap
Lyhyesti: Suunnitelma siitä, miten MVP kehittyy täysimittaiseksi tuotteeksi ajan kuluessa.
Tarkemmin: MVP-roadmap on kuin rakennuspiirustus, joka näyttää miten yksinkertainen prototyyppi kasvaa lopulliseksi tuotteeksi. Se sisältää vaiheet: mitä ominaisuuksia lisätään missäkin vaiheessa, milloin ja miksi. Tärkeää lean startup -menetelmässä, missä aloitetaan pienestä ja kasvatetaan käyttäjäpalautteen perusteella.
ARM Cortex — Prosessoriarkkitehtuuri
Lyhyesti: ARM:n suunnittelema prosessoriarkkitehtuuri, joka on yleinen mobiililaitteissa ja sulautetuissa järjestelmissä.
Tarkemmin: ARM Cortex on kuin moottorimalli, jota mikro-ohjainvalmistajat käyttävät sirujen valmistukseen. Se on energiatehokas arkkitehtuuri, jota löytyy puhelimista, tableteista, IoT-laitteista ja sulautetuista järjestelmistä. Cortex-M sarjalaiset on tarkoitettu mikro-ohjaimille, Cortex-A sarjalaiset sovellusprosessoreille.
Firmware Engineer — Sulautettujen järjestelmien kehittäjä
Lyhyesti: Ohjelmoija joka kehittää alhaisen tason ohjelmistoa laitteistolle, kuten mikro-ohjaimille.
Tarkemmin: Firmware-insinööri on kuin kuiskaaja joka osaa puhua suoraan raudan kanssa. He ohjelmoivat mikro-ohjaimia C/C++:lla, käsittelevät keskeytyksiä, hallitsevat antureiden dataa ja optimoivat virrankulutusta. Työskentelevät laitevalmistajilla, IoT-yryksissä ja teollisuudessa kehittämässä älylaitteita ja automaatiojärjestelmiä.
FreeRTOS — Reaaliaikainen käyttöjärjestelmä
Lyhyesti: Vapaa reaaliaikainen käyttöjärjestelmä mikro-ohjaimille ja sulautetuille laitteille.
Tarkemmin: FreeRTOS on kuin kevyt käyttöjärjestelmä pienille laitteille. Se mahdollistaa useiden tehtävien samanaikaisen suorittamisen mikro-ohjaimessa, vaikka sillä olisi vain yksi prosessoriydin. Tärkeää IoT-laitteissa, joiden täytyy esimerkiksi lukea antureita, lähettää dataa verkkoon ja reagoida käyttäjän syötteisiin samanaikaisesti.
Microchip — Mikro-ohjainvalmistaja
Lyhyesti: Amerikkalainen yritys joka valmistaa mikro-ohjaimia ja puolijohteita.
Tarkemmin: Microchip on yksi suurimmista mikro-ohjainvalmistajista. Heidän PIC- ja AVR-mikro-ohjaimensa ovat suosittuja opiskelijoiden ja harrastelijoiden keskuudessa, koska ne ovat suhteellisen helppo ohjelmoida. Yrityksissä Microchipin tuotteita käytetään autoteollisuudessa, teollisuusautomaatiossa ja kuluttajaelektroniikassa.
Nordic nRF — Bluetooth ja IoT mikro-ohjaimet
Lyhyesti: Nordic Semiconductorin valmistama mikro-ohjainperhe, joka on erikoistunut langattomaan kommunikointiin.
Tarkemmin: Nordic nRF-siruissa on valmiina Bluetooth, Thread, Zigbee tai muita langattomia protokollia. Ne ovat suosittuja IoT-kehityksen, älykellon, kuulokkeiden ja muiden langattomien laitteiden valmistuksessa. nRF52840 on yksi suosituimmista versioista, joka tukee Bluetooth 5.0:aa.
NXP iMX — ARM-prosessoriperhe
Lyhyesti: NXP:n valmistama ARM Cortex -pohjainen prosessoriperhe teollisuus- ja autosovelluksiin.
Tarkemmin: NXP i.MX -prosessorit ovat tehokkaita ARM-siruja, joita käytetään Linux-käyttöjärjestelmää pyörittävissä sulautetuissa laitteissa. Ne ovat suosittuja teollisuudessa, autoteollisuudessa ja korkean suorituskyvyn IoT-laitteissa. Tukevat grafiikka-acceleration, verkkoyhteyksiä ja reaaliaikaisia ominaisuuksia.
STM32 — STMicroelectronics mikro-ohjaimet
Lyhyesti: STMicroelectronicsin valmistama ARM Cortex -pohjainen mikro-ohjainperhe.
Tarkemmin: STM32 on yksi maailman suosituimmista mikro-ohjainperheistä. Ne perustuvat ARM Cortex-M ytimiin ja niitä on saatavilla laidasta laitaan - halvimmista 8-bittisistä korvaajista tehokkaimpiin Cortex-M7 -pohjaisiin. Suosittu opiskelijoiden, harrastelijoiden ja ammattilaisten keskuudessa laajan työkalutuen ansiosta.
Yocto Linux — Embedded Linux-käyttöjärjestelmä
Lyhyesti: Työkalu Linux-käyttöjärjestelmien räätälöimiseen sulautetuille laitteille.
Tarkemmin: Yocto Project mahdollistaa oman Linux-jakelun luomisen sulautetuille laitteille. Se on kuin Linux:in constructor - voit valita tarkalleen mitä komponentteja sisällytät (kirjastot, ajurit, ohjelmat) optimoidaksesi koon, suorituskyvyn ja turvallisuuden. Käytetään teollisuudessa, autoteollisuudessa ja IoT-laitteissa jotka tarvitsevat mukautetun käyttöjärjestelmän.
DOM — Document Object Model
Lyhyesti: HTML-dokumentin sisäinen esitys, jota JavaScript voi muokata reaaliajassa.
Tarkemmin: DOM on kuin HTML-sivun sisäinen kartta, jossa jokainen elementti (div, p, h1 jne.) on solmu puussa. JavaScript voi lukea ja muokata tätä puuta - lisätä, poistaa tai muuttaa elementtejä. Kun DOM muuttuu, selain päivittää sivun näkymän automaattisesti. Modernien frontend-frameworkien perusta.