Internett har gitt oss mulighet til å jobbe hvor som helst vi ønsker, og gir oss enorm fleksibilitet ved å velge hvor vi vil plante oss selv for å bygge den neste store appen. Ikke å være bundet til et kontorbord har vært en velsignelse for mange som nyter evnen til å jobbe i varierende miljøer og trekke inspirasjon fra omgivelsene. Men for det meste har vi trengte å ha en fullblåst utviklingsmaskin for å få dette til å skje. Hva om vi kunne utnytte skyen som et utviklingsmiljø selv, og frigjøre oss for å velge mellom en rekke enheter for å oppnå det samme. Det er det vi skal utforske i denne artikkelen.
Som jeg nevnte, til nå, om du var på et kontor eller satt på en kaffebar, trengte du vanligvis en utviklingsmaskin (en MacBook, Windows eller Linux laptop i de fleste tilfeller) som kan ha følgende ting:
Og utallige andre verktøy du stoler på for å få jobben gjort. Dette krever vanligvis at du har en tøff maskin til å jobbe med, slik at du kan drive alle disse verktøyene og være produktive.
Men med bredbånd blir mer utbredt, blir kravene til å ha en så kraftig enhet mindre streng på grunn av antallet skytetilbud tilgjengelig for utviklere. Tjenester som Cloud9 IDE og Nitrous.io bringer utviklingsmiljøer i virkeligheten til skyen og tillater utviklere å jobbe eksternt og tilby større fleksibilitet når det gjelder enhetene de velger å jobbe med.
Disse tjenestene gir ikke bare IDE til Internett, de gir også infrastruktur som gir utviklere:
I utgangspunktet legger disse tjenestene seg i kjøkkenvasken, noe som gjør flyttingen til skyen mye lettere og fristende. La oss utforske disse litt mer.
Min første eksponering for a ekte skybasert IDE var Cloud9. De hadde en veldig grunnleggende online-editor med Github-integrasjon som var veldig kul og åpenbart veldig alfa på den tiden. Likevel var det utrolig lovende og sammen med det arbeidet som Mozilla gjorde på Bespin, viste det enormt potensial. Interessant nok ble Mozilla Bespin-prosjektet fusjonert til Ace, Cloud9s redaktør, som synes å ha bidratt sterkt til den solide redigeringsopplevelsen i den skybaserte IDE.
C9 tar en svært lik prisøkning til Github, og tilbyr et godt utgangspunkt ved hjelp av en freemiummodell med mer ubegrenset funksjonalitet for $ 12 per måned. Forskjellene kjører ned til typen arbeidsområder du har, nummeret du kan ha og funksjonene som er tilgjengelige i disse arbeidsområdene. Et arbeidsområde er der prosjektet lever, inkludert prosjektfiler og verktøy og tjenester du kan bruke (som Ruby eller Python). Så avhengig av hvor sofistikert dine behov er, må du kanskje seriøst vurdere premium-alternativet som gir deg:
Terminalalternativene er spesielt viktige, siden C9 lar deg SSH og FTP til din egen server, som i utgangspunktet tillater deg å bruke sin tjeneste som bare en skybasert IDE.
Det faktum at de tilbyr et freemium-alternativ, er bra for å sparke dekkene for å se om det er en tjeneste du kan komme inn på.
Du har et par alternativer for pålogging, inkludert et tradisjonelt e-post / passord scenario eller du kan bruke OAuth via GitHub eller BitBucket. Å gjøre det med de to sistnevnte gir deg tilgang til de lagringsplassene du allerede har lagret på disse tjenestene, som vist her:
Arbeidsområdet lar meg enten klone en eksisterende repo fra den importerte listen, klone fra en webadresse etter eget valg eller opprette et nytt arbeidsområde basert på en ekstern server (via SSH eller FTP)
Jeg bestemte meg for å klone min "authy" Git repo som var prøven kildekoden jeg skrev for en artikkel her på Nettuts + på to-faktor autentisering. App serveren jeg brukte for det var ColdFusion, og jeg var ganske spent på å se C9 gjenkjente ColdFusion-filene riktig. Jeg trodde ærlig ikke det siden CFML ikke er så populært som det pleide å være:
Legg merke til at hele min prosjektstruktur er brakt over intakt, og jeg har full redigeringskapasitet på filene mine. I tillegg har jeg også tilgang til full terminalkommandoer:
For å kjøre dette hjemmet litt mer, legg merke til i følgende skjermbilde, laget jeg en endring til gettoken.cfm ved å legge til en kommentar. Skriver inn git status
I terminalpanelet vises den endrede statusen til filen akkurat som du forventer:
Deretter følger opp med git commit -a -m "Lagt kommentar"
og git push
oppdaterer min repo tilsvarende:
En nøkkelfunksjon som C9 liker å hype er JavaScript-autofullføringsfunksjonene, og det er fornuftig siden det er en så uvurderlig ressurs i hvilken som helst redaktør.
Jeg vet at det har vært mye debatt nylig om hvorvidt autofullføring hindrer din evne til å huske språkfunksjoner, men med det voksende nivået av kompleksitet i biblioteker, rammer og verktøy, finner jeg personlig stor verdi i å ha litt hjelp med å huske ting. Jeg ønsker at de tilbys mer språkstøtte skjønt.
En av de største salgsargumentene er dokumentasjonens modenhet. Den dekker alt om tjenesten fra å tilpasse IDE til å integrere med databasesystemer og distribuere koden. Det finnes en rekke videoopplæringsprogrammer du kan utnytte for å bli kjent med tjenesten, som utfyller den solide dokumentasjonen.
Til slutt, hvis du er eventyrlystne, kan du bestemme deg for å rulle din egen versjon av Cloud9 IDE siden det er et open source-prosjekt lisensiert under GPL. GitHub-siden gir gode instruksjoner om hvordan du installerer det, både som * nix- og Windows-miljøer, så hvis du vil forutse kostnaden, har du det.
Nitrous.IO (som jeg bare skal referere til som Nitrous fra nå av) er et nytt alternativ som har fått mye ros fra utviklere som Yehuda Kathz fra Ember.js-prosjektet og Tobias Lutke, Rails Core alumni. Det er fortsatt i Beta, men fungerer imponerende godt på dette punktet. De har tatt tilnærming til å tilby opp en full virtualisert stabel som ikke bare omfatter en IDE, men spinner også opp hva de kaller "bokser" som i utgangspunktet huser hele utviklingsbunken. Dette inkluderer ditt valg av Ruby on Rails, Node.js, Python / Django eller Go.
I likhet med C9, tilbyr de grunnleggende tjenester som gjør at du kan sparke dekkene rundt. Dette gjøres ved å gi deg nok "nitrous" poeng (155) for å lage en grunnleggende boks som de sier skal være nok for de fleste daglige oppgaver. Legg merke til i bildet ovenfor at mengden minne og lagring som er valgt, påvirker mengden av nitrospunkter du har igjen. Standard grunnboksen gir deg fem poeng, og som mange VPS-hosting-leverandører, kan du dynamisk velge flere ressurser, avhengig av hva du trenger. Jeg er sikker på at dette kommer til en pris når det er ute av beta, men de gjør det utrolig enkelt å tjene flere poeng uten å åpne lommeboken. Via et par forskjellige sosiale oppsøkelsesforbindelser og oppgaver kan du tjene flere poeng mot boksfunksjonene dine:
Legg merke til at ved å velge et par alternativer, var jeg i stand til å øke N20-poengene mine fra 155 til 180, og jo flere venner du inviterer til flere poeng du tjener. Bare vær ikke en irriterende spammer skjønt!
Å sette opp en boks er imidlertid mer enn bare å velge ressurser. En viktig del av dette, når det gjelder ytelse, er å velge nærmest geografiske område for deg å redusere latens. De innser faktisk på dette under deres introvideo.
Når du har valgt innstillingene dine, er boksen utrolig enkel og har til og med et kult animert fremdriftsnummer:
IDE viser deg og du er klar til å begynne arbeidet ditt:
Til forskjell fra C9 skjønt fant jeg ikke en måte å visuelt se Github repos på. Jeg antok at tilkobling til Github også ville tillate meg å enkelt klone en av mine reposer inn i boksen min. Jeg endte opp med å følge disse instruksjonene for å legge til SSH-nøklene generert av Nitrous til min Github-konto og deretter git kloning av en av mine reposer i IDE:
Jeg kunne også ha brukt opplastingsfunksjonaliteten til å laste opp prosjektfilene mine:
Det virker bare for meg at å få direkte visuell tilgang til GitHub-repo er en prioriteringsfunksjon. Nitro-teamet bør se på og noe jeg synes er et pluss for C9.
Med filene på plass, var det på tide å se hvordan IDE fungerte og for alle hensikt syntes å fungere veldig bra, lett gjenkjenne forskjellige filtyper og tilby syntaksutheving i henhold til filtypen:
I motsetning til C9 var det imidlertid ingen autofullføring, så du må bestemme hvor verdifull en funksjon som er for deg. Men som C9, er hurtigtastene for vanlige oppgaver som å lagre en fil eller lukke faner alle der.
For de som pleide å jobbe i terminalen, finner du Nitrous lett å tilpasse seg. Faktisk trenger du virkelig å være komfortabel med å få full utnyttelse av tjenesten. Installere og starte pakker som MongoDB eller Memcached er gjort via Nitrous pakkebehandling kalt Deler
som du gjettet det, er kommandolinjebasert. For eksempel vil installering av MongoDB gå slik:
deler installere mongodb
Hvis du er vant til apt-get
på Linux eller brygge installasjon
På OS X bør denne syntaksen være veldig kjent.
Det viktigste å huske er at redaktøren bare er en del av ligningen. Du kjører i utgangspunktet en komplett maskin her i en nettleser, slik at du er komfortabel i et * nix-miljø, vil definitivt gi deg en bein opp.
Selv om du bruker nettstedet ditt, må du bruke kommandolinjen. Det er ikke noe "bare trykk på en knapp" her. Nitrous integrerer enkelt med følgende tjenester:
Det gir ganske god dekning til flere store skybaserte tjenester. Jeg var nysgjerrig på deres distribusjonsstøtte for Amazon, men kunne ikke finne mye informasjon om det, i det minste ikke nok til å kunne forstå hvordan du satte det opp.
Med det sagt er dokumentasjonen deres veldig godt organisert og vil enkelt lede deg gjennom de fleste oppgavene du trenger for å komme opp med tjenesten deres.
Begge tjenestene ser ut til å tilby overbevisende funksjoner som kan gjøre det enkelt å flytte over til heltidsskybasert utvikling. Med så mange billige enheter som kommer ut som er tydelig målrettet mot forbrukere som bare vil være koblet hele tiden, er det fornuftig at denne tjenesten begynner å utvikle seg og kanskje få trekkraft.
Det er vanskelig å forestille seg å gi opp min trofaste bærbar PC med sin i7-prosessor og rask SSD for en all-cloud-dev-miljø, men jeg kan heller ikke avvise det heller. Hvert stort programvarefirma er touting sky-tjenester, og jeg er sikker på at hver eneste av dere leser dette bruker flere skygtjenester daglig. Det virker som et logisk skritt for å begynne å vurdere koding i skyen.