Web Development Apps in Go Programming - Welkom bij mijn volgende blog, mede-go programmeurs. In deze blog zullen we het hebben over de geweldige Golang-taal van Google. In mijn vorige blog heb je misschien gezien hoe Golang zich in de loop van de jaren heeft ontwikkeld en Java en C ++ een zware concurrentie heeft geboden. Maar in deze blog zouden we het hebben over zijn echte toepassingen. Golang is de officiële programmeertaal van Google.

Google heeft zijn licentie Open source behouden. Het betekent dat iedereen het kan wijzigen, kopiëren, plakken of wijzigen volgens hun behoeften. Golang is een programmeertaal op hoog niveau. Hoewel Go veel kenmerken heeft die vergelijkbaar zijn met C of Java, lijkt het nauwelijks op C of Java.

Officieel Go Lang-logo

Go Programming was eigenlijk bedoeld als een taal, die een combinatie van Python, C en Java zou kunnen zijn. Hoewel het deze talen nooit kan vervangen, maar toch kunnen andere talen niet doen wat Go wel kan, en om de waarheid te zeggen, het is eigenlijk veel sneller dan C of Python. Genoeg over hoe GO-programmering nu werkt, laten we de echte toepassingen ervan zien, naast het feit dat het een grote hulp is voor Google, en hoe het feitelijk de wereld van webontwikkeling heeft gedomineerd.

Via deze blog ga ik ervan uit dat je enige basiskennis hebt in het programmeren van C, Java of minstens Django. Als dit niet het geval is, kunt u mijn andere blogs lezen om er een beter begrip van te krijgen en dan hier terug te komen en door te gaan met deze.

The Go Programming Language Voorbeelden-

Oorsprong van GO

Vergeet niet dat ik je heb verteld dat Go zijn kenmerken heeft ontvangen van webontwikkeltalen zoals C en python, maar de waarheid is dat het veel meer heeft geleend dan alleen kenmerken. Het heeft de behendigheid van de compilatiesnelheid van python zonder de veilige polariteit van C te verliezen. De miniatuur builds van GO zijn perfect, u kunt bijvoorbeeld grote programma's in slechts enkele seconden compileren. De snelheden van deze bytecodes zijn bijna vergelijkbaar met die van de C's.

De belangrijkste reden waarom GO-programmering is ontwikkeld, omdat Google zeer grote gegevenskritieke servers had en de programmeurs investeerden, anders zou de betere termijn verspild worden, lang wachten op de compilatie van de programma's. Hoewel de code werd gecompileerd en geparallelliseerd, duurde het nog steeds erg lang om een ​​enkel programma te bouwen.

Zelfs incrementele builds waren traag (incrementele builds betekent alleen het bijwerken van oude builds met nieuwe functies of het opschonen van de bugs). Toen beseften ze dat ze iets anders nodig hadden, iets met de kracht van C en de snelheid van python. Ze besloten ook dat de tools die in deze basistaaltaal werden gebruikt, traag waren.

Dus wilden ze iets helemaal opnieuw beginnen, iets om dat soort programma's te schrijven dat ze bij Google moesten schrijven op een manier dat de builds heel slim en kort konden zijn zonder de efficiëntie te verliezen.

Webontwikkeling, concurrencies en GO

Nu gaat het erom, hoe werkt webontwikkeling met GO? Hoe wint het van zijn gelijktijdigheid. Het ding is theoretisch, met parallelle verwerking, kunnen de bronnen van de server beter worden gebruikt. Als u bijvoorbeeld 2 onafhankelijke sql-query's parallel uitvoert, krijgt u snel een antwoord. Is dit niet geweldig?

Laten we dit nu andersom bekijken

Normaal gesproken, wanneer je het woord concurrency hoort, begin je te denken dat je aan meerdere threads tegelijk kunt werken. Maar we zijn geen extreme professionals, want ons stukje code is perfect. Dus, een meer precieze manier om dit te zeggen zou zijn, dat je in plaats van meerdere taken te doen, eigenlijk gewoon dingen om je heen zou kunnen verminkelen.

Dus dit levert helaas veel hik op onze weg op, wat eigenlijk niet goed is, omdat gelijktijdigheid kan leiden tot een betere visuele indeling en meer duidelijke code. Kortom, er kan om één reden op worden vertrouwd, die u niet zou willen: slechte prestaties. Maar ondanks dit alles negeren we eigenlijk het grootste deel. Als we daadwerkelijk een goede set hardware hebben, of snellere computertechnieken om precies te zijn, zou GO eigenlijk sneller werken in een multi-core processoromgeving.

Laten we nu eens kijken hoe GO verschilt van andere talen. Wat we dus moeten doen, is stap één: kies een willekeurige algemene status die u wilt wijzigen en stap twee: implementeer vergrendeling. Nu is dit een combinatie van twee juiste stappen en twee verkeerde dingen. Ontwikkelaars met een behoorlijke ervaring zouden het met me eens zijn dat wereldwijde veranderlijke toestand een slechte zaak is.

In feite proberen veel codeerders dit op de best mogelijke manier te verwijderen. Dus het allerbeste feit dat je stap één hebt, lijkt om te beginnen met wat refactoring. Stap twee daarentegen, namelijk vergrendelen, is in staat om zijn doel te bereiken, maar introduceert tegelijkertijd gigantische hoeveelheden boilerplate die uiterst moeilijk zijn om het op een juiste manier op te schrijven en vervolgens correct te debuggen.

Dit soort talen kan dus een http-verzoek hebben om een ​​specifieke variabele te lezen en een ander om het te schrijven. Wat is er toen gebeurd? Is het belangrijk genoeg? Heeft het een bevel nodig om te lezen en te schrijven? Heeft uw code deze nogal logica? Zo ja, waarom?

Aanbevolen cursussen

  • Professionele Linux met Python-training
  • Service Level Management-programma
  • Online certificeringcursus in jQuery Mobile
  • Volledige Business Intelligence-training

De weg naar GO

De threads van GO zijn niet wat je misschien gewend bent bij het schrijven van deze kernels. Deze zijn eigenlijk enigszins vergelijkbaar met de processen van Erlang. Ze zijn extreem licht van gewicht en hebben beide vergelijkbare doelen. Dit wil niet zeggen dat GO en Erlang hetzelfde zijn, omdat ze zelf veel verschillen hebben.

Gelijktijdigheid en de kanalen; beide gaan hand in hand samen in GO-programmering. Er kan echter worden gezegd dat deze kanalen de echte paardenkracht hebben om onze automatisering te laten werken. En vanwege deze aard voorkomen ze dat de routines in GO worden gedupliceerd. Nuf zei, nu kun je je codes uitvoeren zonder de hulp van sloten en dempen. Als je tijd hebt om te googlen, zul je merken dat veel mensen dezelfde methoden proberen in de vorm van UNIX-buizen.

Inheemse GO-apps bouwen

Nu we weten hoe GO werkt, laten we eens kijken naar het bouwen van enkele basistoepassingen in GO. Laten we eerst de vereisten doorlopen:

  1. Download het go-installatieprogramma van de officiële go-website (je kunt het downloaden door te zoeken naar download golang)
  1. Stel de GOPATH in (dit is het moeilijkste gedeelte als je nog nooit omgevingsvariabelen in je leven hebt ingesteld)

een. Voor Windows-gebruikers:

stel GOROOT = C: \ go in

stel GOPATH = C: \ Users \ testdir in

stel GOBIN = % GOPATH% \ bin in

set PATH = % PATH%; c: \ go \ bin;% GOBIN%

cd % GOPATH% \ src

Stel in de testdir- optie hierboven de map in die u wilt gebruiken (noem deze wat u maar wilt) als de werkmap. Hiermee worden alle mappen ingesteld en wanneer u de laatste cd (opdracht wijzigen) typt, moet u naar de standaardwerkmap gaan, dat wil zeggen in ons geval de testdir. Als dit het geval is, betekent dit dat het werkt.

b. Voor Linux-gebruikers:

export GOROOT = / usr / local / go

exporteer GOPATH = $ HOME / go

export PATH = $ PATH: $ GOROOT / bin: $ GOPATH / bin

Hieronder volgen de vereiste pakketten die u zou moeten downloaden (deze zijn optioneel, hangt af van wat u moet bouwen):

U kunt deze pakketten installeren (of bijwerken) door de volgende opdracht in uw console uit te voeren:

haal -u

Als u bijvoorbeeld Negroni wilt installeren, kunt u de volgende opdracht gebruiken:

ga naar -u github.com/codehub/negroni

Voor mij betekent het bouwen van webapplicaties het bouwen van HTTP-servers. HTTP of Hypertext Transfer-protocol is een protocol dat oorspronkelijk werd gebouwd om alleen gebruikersspecifieke HTML-documenten van een specifieke server naar een webbrowser aan de client te transporteren. Vanaf vandaag wordt HTTP gebruikt om meer te transporteren dan alleen gewone teksten.

Ik zal eigenlijk niet diep ingaan, je kunt verwijzen naar github waar je meer details over dit project kunt vinden.

Laten we om te beginnen beginnen met het maken van een nieuw project in onze GOPATH

cd GOPATH / src

mkdir testserver

cd testserver

Nu kunnen we een main.go maken door te typen:

pakket hoofd

"net / http" importeren

func main () (

)

Omdat alles is ingesteld, hoeven we alleen het http-pakket te importeren en dan werkt het. En nu is het tijd om onze testservercode te schrijven:

http.ListenAndServe (": 2964", http.FileServer (http.Dir (".")))

De http.ListenAndServer is een functie die wordt gebruikt om de server uit te voeren. Het draait op het adres dat eraan wordt gegeven, dwz poort 2964 in dit geval, en wanneer het een antwoord ontvangt, zal het de http.handler die we hebben opgegeven als het tweede argument overdragen, wat ook hier de ingebouwde http is -Bestanden server.

We hebben de http.Handler gemaakt met de http.FileServer die als een server voor een hele map met bestanden fungeert en automatisch reageert met het bestand dat op het aanvraagpad moet worden weergegeven. Wat betreft dit stukje code dat we hierboven hebben uitgevoerd, hebben we de server gevraagd te reageren met de huidige werkmap, bijvoorbeeld http.Dir (“.”)

Het hele programma ziet er dan als volgt uit:

pakket hoofd

"net / http" importeren

func main () (

http.ListenAndServe (": 2964", http.FileServer (http.Dir (".")))

)

Om onze fileserver nu uit te voeren en live te maken, kunnen we deze uitvoeren wanneer we maar willen door te typen:

ga bouwen

./testserver

En als we dit nu openen in onze browser- localhost: 2964 / main.go of http: // 127.0.0.1:2964/main.go, zouden we de pakketten binnen ons main.go-bestand op ons web moeten kunnen zien browser. Het beste is dat we dit programma overal vanaf onze computer kunnen uitvoeren en die map kunnen dienen als de basishomepage voor de localhost. Dit alles is mogelijk in slechts één regel Go-programmering.

Daarover gesproken, je zou eigenlijk de webtoepassingen moeten bekijken die in github zijn ontwikkeld, en je zult echt verbaasd zijn om te zien wat alle apps mensen hebben ontwikkeld met GO-programmering. GO-taal is meer dan alleen je normale programmering. Als je deze taal eenmaal onder de knie hebt, is het zeer onwaarschijnlijk dat je daadwerkelijk teruggaat naar je normale C, C ++ of Java. Dus dat zal het zijn voor nu. Blijf op de hoogte voor meer over GO-programmering.

Eerste afbeeldingsbron: pixabay.com

Gerelateerde artikelen:-

  1. U moet meer weten over interviewvragen en antwoorden over webservices
  2. Beste en nuttige punten van sollicitatievragen voor Java Web Services
  3. Nieuwe 10 voordelen Web Development Tools voor beginners (gratis)
  4. Belangrijk bij voorbeelden van scratchprogrammering
  5. Hoe een uitstekende carrière op te bouwen als professional voor software voor webontwikkeling?
  6. Software Development vs Web Development