Kehittäjien koodausympäristöt
Alustan suunnittelussa yksi yleisistä haasteista on sen varmistaminen, että kehittäjät voivat nopeasti ja johdonmukaisesti määrittää koodausympäristönsä, erityisesti kun uudet kehittäjät liittyvät tiimeihin, kehittäjät vaihtavat projekteista toiseen tai kun täytyy skaalata. Kehittäjäympäristöjen asennuksen automatisointi voi tehostaa perehdytystä ja poistaa väärinmääritysten tai rikkinäisten riippuvuuksien vuoksi menetetyn ajan. Tarjoamalla ennalta määritettyjä ympäristöjä tai määrittämällä komentosarjoja tiimit voivat keskittyä kehitykseen sen sijaan, että he taikaisivat aikaa ympäristön epäjohdonmukaisuuksien vianmääritykseen.
Kehittäjäympäristöjen hallintatapa voi vaihdella, mutta se sisältää usein virtualisointia, säilöjä ja standardoituja malleja, jotka vastaavat organisaation tarpeita. Tämä voi vaihdella täysin virtualisoiduista Windows-ympäristöistä pilvessä isännöityihin säilöihin Linux-kehitystä varten. Lisäksi johdonmukaisuutta, parhaita käytäntöjä ja koodia edistävien aloita oikealla -mallien luominen on tärkeää, jotta ylläpidetään hyvin määriteltyä ja toistettavissa olevaa prosessia, joka skaalautuu eri tiimeissä. Näin varmistetaan, että kehitystyönkulku alkaa sujuvasti ja noudattaa myös parhaita käytäntöjä pitäen projektit oikeilla jäljillä sekä suojaus- ja toimintastandardien mukaisina.
Kehittäjien koodausympäristön määritysten automatisointi
Kehittäjien koodausympäristöjen käynnistys ja normalisointi voivat olla suuri haaste suunnittelujärjestelmissä. Tärkeimpiä ongelmia ovat seuraavat:
- Pitkä perehdytysajat: Uuden kehittäjän osallistuminen voi kestää viikkoja, erityisesti siirrettäessä kehittäjiä projektien välillä tai tuomalla alihankkijia.
- Epäjohdonmukaisuudet: Kehittäjäympäristöjen ja CI-järjestelmien erot johtavat usein "se toimii tietokoneessani" -ongelmiin.
- Ympäristön epävakautta: Kehysten ja ohjelmistojen kokeilu tai päivittäminen voi rikkoa olemassa olevat kokoonpanot, mikä voi aiheuttaa mahdollisesti pitkiä ja monimutkaisia vianmäärityksiä.
- Koodin tarkistusviiveet: Kooditarkastuksiin tarvittavat määritysmuutokset voivat hidastaa kehitystä, koska ne täytyy kumota myöhemmin.
- käyttöönotto kaikille sidosryhmille: Muita kuin kehitysrooleja (kuten operaattorit, laadunvalvonta ja yrityssponsorit) on myös koulutettava ja sitouduttava, mikä aiheuttaa enemmän viiveitä.
Näiden ongelmien ratkaisemiseksi kehittäjäympäristöjen määritysten standardoinnista ja automatisoinnista työkalujen, komentosarjojen tai säilöllisten/virtualisoitujen ympäristöjen avulla voi olla apua. Esimääritetyt ympäristöt, jotka on räätälöity tiettyjä projekteja tai organisaation tarpeita varten, voivat varmistaa yhdenmukaisuuden, lyhentää määritysaikaa ja parantaa yleistä tuottavuutta.
KoodausYmpäristöt Windowsille ja Linuxille
Kun näennäiskoneet on kohdistettu Työaseman korvaamiseen tai täyteen virtualisointiin, näennäiskoneet tarjoavat yleensä parhaat toiminnot. Tämä lähestymistapa on hyödyllinen Windows-asiakaskehityksen, .NET Full Framework -verkkosovellusten hallinnan tai Windows-palveluiden ylläpidon kannalta. Voit käyttää pilvessä isännöityjä näennäiskoneita, kuten Microsoft Dev Box, joka tarjoaa Windowsin työaseman täydellisen virtualisoinnin ja integroinnin työpöytähallintaohjelmistoon. Vaihtoehtoisesti paikallisia näennäiskoneita voidaan käyttää ympäristöjen hallintaan HashiCorp Vagrantin kaltaisten työkalujen kanssa, ja HashiCorp Packer voidaan käyttää VM-kuvien rakentamiseen sekä Vagrantille että Dev Boxille.
Linux-käyttöön kohdentamisessa työtilan virtualisointi sopii paremmin, ja siinä keskitytään projektikohtaisiin tai sovelluskohtaisiin ympäristöihin koko työpöydän korvaamisen sijaan. Pilvipalvelussa isännöidyt säilöt ovat yleinen valinta. Vaihtoehdot ovat esimerkiksi GitHub Codespaces. Se tarjoaa pilvipohjaisen kehityssäilön ympäristön, joka on yhteensopiva VS Coden, JetBrains IntelliJ:n ja päätepohjaisten työkalujen kanssa. Jos pilvipalveluvaihtoehdot eivät vastaa tarpeitasi, VS Coden SSH- tai etätunneli tukee yhdistämistä itse isännöityihin Linux-näennäiskoneisiin. Lisäksi paikalliset säilöt ovat vaihtoehtona, jos haluat suorittaa kehityssäilöt paikallisesti. VS Code- ja IntelliJ tarjoavat vankan tuen näille ympäristöille. Joustavuuden lisäämiseksi pilvipalveluissa isännöityjä näennäiskoneita, joissa voit SSH:n suoraan itse hallittuihin Linux-näennäiskoneisiin, voidaan myös käyttää. Tilanteissa, joissa kehittäjät käyttävät yksinomaan Windowsia, Windows-alijärjestelmä Linuxille (WSL) tarjoaa kätevän paikallisen Linux-kehitysratkaisun. WSL-jakaumia voidaan viedä ja jakaa tiimien kesken. Myös pilvipohjaiset palvelut, kuten Microsoft Dev Box, tukevat WSL:n kehittämistä Linux-kehityksessä.
Sovellusmallien käyttäminen johdonmukaisuuden ja yhdenmukaistamisen vuoksi
Organisaatiot voivat edistää johdonmukaisuutta, standardointia ja parhaita käytäntöjä kehitysryhmissä käyttämällä sovellusmalleja osana "kaikki koodina" -lähestymistapaa. Nämä mallit voivat sujuvoittaa kehitystä ja varmistaa, että tiimit pysyvät vakiintuneissa sivutetuissa poluissa. Monorepo-mallin avulla voidaan luoda erilaisia työkaluja, kuten Azure Developer CLI (azd) avulla malleja, jotka sisältävät sovelluslähteiden määritysten lisäksi myös ympäristömääritykset ja CI/CD-työnkulut.
Kun luot malleja kehitystä varten, kannattaa huomioida useita keskeisiä osa-alueita. Näin varmistat, että mallit ovat kattavia ja yhtenäisiä parhaiden käytäntöjen mukaisesti:
- Esimerkkilähdekoodin: Sisällytä mallilähdekoodi, joka opastaa kehittäjiä käyttämään suositeltuja kieliä, sovellusmalleja, palveluita, ohjelmointirajapintoja, SDK:ita ja arkkitehtonisia malleja.
- Koonti- ja käyttöönottokomentosarjat: Sisällytä komentosarjoja, jotka tarjoavat yhtenäisen tavan käynnistää koontiversioita ja ottaa käyttöön paikallisesti tai eristysympäristössä. Varmista, että integroidun kehitysympäristön tai editorin virheenkorjausmääritykset sisällytetään CI/CD-putkien synkronointia varten.
- CI/CD -määritys: Tarjoaa työnkulkuja tai putkia sovellusten luomiseen ja käyttöönottoon ja hyödynnä uudelleenkäytettäviä, keskitettyjä työnkulkuja. Käsittele näitä "aloita oikein" -malleina ja varmista, että ne mahdollistavat manuaalisen käynnistämisen tarvittaessa.
- Infrastructure as Code (IaC) -resurssit: Sisällytä suositellut määritykset ja viittaukset keskitetysti hallittuihin moduuleihin sen varmistamiseksi, että infrastruktuurin määritykset noudattavat parhaita käytäntöjä.
- suojaus ja käytäntö koodiresursseina: Lisää suojaukseen liittyviä määritystiedostoja, kuten CODEOWNERS ja dependabot.yaml, sisällyttääksesi suojauksen suoraan kehitysprosessiin. Turvallisuustarkistusten ajoitetut työnkulut, mukaan lukien Microsoft Defender for Cloudin kaltaiset työkalut, on annettava CI/CD-putken suojauksen upottamiseksi ja toimitusketjun suojauksen parantamiseksi.
- havainnoitavuus, valvonta ja kirjaaminen: Anna määritysmääritykset valvontatyökaluille, kuten IaC agentin käyttöönottoa varten tai määritys koodina koontinäyttöjen seurantaa varten. Sisällytä mallikoodi kirjaamista ja hajautettua jäljitystä varten, jotta sovelluksia voidaan valvoa tehokkaasti käyttöönoton jälkeen.
- Koodausympäristön määritys -: Lisää linters-, formatters- ja IDE-määritystiedostot ja määritä komentosarjoja virtualisoituihin kehitysympäristöihin, kuten devcontainer.json, devbox.yaml- tai Docker-liittyviin tiedostoihin.
- Testin määritys -: Toimita tiedostoja yksikkötestaukseen ja laajempia testausskenaarioita käyttämällä työkaluja, kuten Microsoft Playwright -testausta tai Azure-kuormitustestausta.
Collaboration -työkalun määritys: Jos tuettu, sisällytä tehtävä-/ongelmamalleja tai PR-malleja koodina. Voit halutessasi tarjota työnkulkuja, jotka käyttävät käytettävissä olevia CLIs-suodattimia tai ohjelmointirajapintoja järjestelmien päivittämiseen tai yhteistyötyökalujen, kuten Microsoft Teamsin tai Slackin, määrittämiseen.