Aplikacje webowe w programowaniu Go - Witam na moim kolejnym blogu, innym programistom go. Na tym blogu będziemy rozmawiać o niesamowitym języku Google Golang. Na moim poprzednim blogu mogłeś zobaczyć, jak Golang ewoluował przez lata, i dał ostrą konkurencję Java i C ++. Ale na tym blogu rozmawialiśmy o jego zastosowaniach w świecie rzeczywistym. Golang jest oficjalnym językiem programowania Google.

Google zachował licencję Open source. Oznacza to, że każdy może go modyfikować, kopiować, wklejać lub zmieniać zgodnie ze swoimi potrzebami. Golang to język programowania wysokiego poziomu. Chociaż Go ma wiele cech podobnych do C lub Java, prawie nie ma nic takiego jak C lub Java.

Oficjalne logo Go Lang

W rzeczywistości Go Programming miał być językiem, który może być kombinacją języka Python, C i Java. Mimo że nigdy nie może zastąpić tych języków, ale inne języki nie mogą zrobić tego, co potrafi Go, i prawdę mówiąc, jest tak naprawdę znacznie szybsze niż C lub Python. Dość o tym, jak teraz działa programowanie GO, zobaczmy, jakie są jego zastosowania w świecie rzeczywistym, poza tym, że jest to bardzo pomocne dla Google, i jak faktycznie zdominował świat tworzenia stron internetowych.

W całym tym blogu założę, że masz podstawową wiedzę na temat programowania C, Java lub przynajmniej Django. Jeśli nie, możesz przeczytać moje inne blogi, aby lepiej je zrozumieć, a następnie wrócić tutaj i kontynuować ten.

Przykłady języków programowania Go

Pochodzenie GO

Pamiętaj, że powiedziałem ci, że Go otrzymał swoje cechy z języków programowania WWW, takich jak C i python, ale prawda jest taka, że ​​faktycznie pożyczył coś więcej niż tylko cechy. Ma zwinność szybkości kompilacji Pythona bez utraty bezpiecznej polaryzacji C. Miniaturowe wersje GO są na miejscu, na przykład możesz skompilować duże programy w kilka sekund. Prędkości tych bajtów są prawie podobne do prędkości liter C.

Głównym powodem, dla którego opracowano programowanie GO, było to, że Google miał bardzo duże serwery o krytycznym znaczeniu dla danych, a programiści zainwestowali, w przeciwnym razie zmarnowano by długi czas na kompilację programów. Mimo że kod został skompilowany i zrównoleglony, zbudowanie jednego programu zajęło bardzo dużo czasu.

Nawet kompilacje przyrostowe były powolne (kompilacje przyrostowe oznaczają po prostu aktualizowanie starych kompilacji o nowe funkcje lub usuwanie błędów). Wtedy zdali sobie sprawę, że potrzebują czegoś innego, czegoś z mocą C i prędkością pytona. Zdecydowali także, że narzędzia używane w tych podstawowych językach systemu są powolne.

Więc chcieli zacząć coś od zera, coś do pisania tego rodzaju programów, które musieli napisać w Google w taki sposób, aby kompilacje były naprawdę inteligentne i krótkie, bez utraty wydajności.

Tworzenie stron internetowych, współbieżności i GO

Teraz chodzi o to, jak działa tworzenie stron internetowych z GO? Jak zyskuje na swojej współbieżności. Chodzi o to, że przy przetwarzaniu równoległym zasoby serwera można lepiej wykorzystać. Na przykład, jeśli uruchomisz równolegle 2 niezależne zapytania SQL, da to szybką odpowiedź. Czy to nie jest niesamowite?

Teraz spójrzmy na to na odwrót

Zwykle, gdy słyszysz słowo współbieżność, zaczynasz myśleć, że możesz pracować na wielu wątkach jednocześnie. Ale nie jesteśmy ekstremalnymi profesjonalistami, aby nasz kawałek kodu był doskonały. Bardziej precyzyjnym sposobem na wyrażenie tego byłoby to, że zamiast wykonywać wiele zadań, możesz skończyć po prostu majstrowaniem wokół siebie.

To niestety powoduje na naszej drodze wiele czkawek, co w rzeczywistości nie jest dobre, ponieważ współbieżność może prowadzić do lepszej aranżacji wizualnej i bardziej przejrzystego kodu. Krótko mówiąc, można na nim polegać z jednego powodu, którego nie chcesz: niskiej wydajności. Ale pomimo tego wszystkiego, tak naprawdę ignorujemy główną część. Jeśli rzeczywiście dysponujemy dobrym zestawem sprzętu lub, mówiąc dokładniej, szybszymi technikami obliczeniowymi, GO faktycznie działałoby szybciej w środowisku procesorów wielordzeniowych.

Zobaczmy teraz, czym GO różni się od innych języków. Musimy więc wykonać krok pierwszy: wybierz dowolny globalny stan, który chcesz zmienić, a następnie krok drugi: zaimplementuj blokowanie. Jest to połączenie dwóch właściwych kroków i dwóch złych rzeczy. Programiści, którzy mają przyzwoite doświadczenie, zgodziliby się ze mną, że globalny stan zmienności jest złą rzeczą.

W rzeczywistości wielu programistów próbuje to usunąć w najlepszy możliwy sposób. Zatem najważniejszy fakt, że masz krok pierwszy, wygląda na to, że trochę refaktoryzacji jest na początek. Z drugiej strony, drugi krok, tj. Blokowanie, jest w stanie osiągnąć swój cel, ale jednocześnie wprowadza gigantyczne ilości płyty kotłowej, która jest niezwykle trudna do prawidłowego zapisania, a następnie poprawnego debugowania.

Zatem tego rodzaju języki mogą mieć jedno żądanie HTTP odczytywające określoną zmienną, a inne piszące ją. Co się stało kiedy? Czy to jest wystarczająco ważne? Czy potrzebuje zamówienia na odczyty i zapisy? Czy twój kod ma taką logikę? Jeśli tak, dlaczego?

Polecane kursy

  • Profesjonalny system Linux ze szkoleniem w języku Python
  • Program zarządzania poziomem usług
  • Kurs certyfikacji online w jQuery Mobile
  • Ukończ szkolenie Business Intelligence

Droga do przebycia

Wątki GO nie są tym, do czego możesz być przyzwyczajony pisząc te jądra. W rzeczywistości są one nieco podobne do procesów Erlanga. Są niezwykle lekkie i oba mają podobne cele. Nie oznacza to, że GO i Erlang są takie same, ponieważ mają wiele własnych różnic.

Współbieżność i kanały; oba razem idą w parze w programowaniu GO. Można jednak powiedzieć, że te kanały mają prawdziwą moc, aby nasze automatyzacje działały. Z tego powodu zapobiegają powielaniu procedur w GO. Nuf powiedział, że teraz możesz uruchamiać swoje kody bez pomocy blokad i muteksów. Jeśli masz czas na google, znajdziesz wiele osób próbujących tych samych metod w postaci potoków UNIX.

Budowanie natywnych aplikacji GO

Teraz, gdy wiemy, jak działa GO, rzućmy okiem na tworzenie podstawowych aplikacji w GO. Najpierw przejrzyjmy wymagania wstępne:

  1. Pobierz instalator go z oficjalnej strony go (możesz go pobrać, wyszukując download golang)
  1. Ustaw GOPATH (jest to najtrudniejsza część, jeśli nigdy nie ustawiałeś zmiennych środowiskowych w swoim życiu)

za. Dla użytkowników systemu Windows:

ustaw GOROOT = C: \ go

ustaw GOPATH = C: \ Users \ testdir

ustaw GOBIN = % GOPATH% \ bin

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

cd % GOPATH% \ src

W powyższej opcji testdir ustaw katalog, którego chcesz używać (nazwij go, jak chcesz) jako katalog roboczy. Spowoduje to ustawienie wszystkich katalogów, a kiedy wpiszesz ostatnie polecenie cd (zmień katalog), powinno to zabrać cię do domyślnego katalogu roboczego, czyli w naszym przypadku jego katalogu testowego. Jeśli tak, oznacza to, że działa.

b. Użytkownicy systemu Linux:

eksportuj GOROOT = / usr / local / go

eksportuj GOPATH = $ HOME / go

eksport ŚCIEŻKA = $ ŚCIEŻKA: $ GOROOT / bin: $ GOPATH / bin

Poniżej znajdują się wymagane pakiety, które należy pobrać (są one opcjonalne, zależą od tego, co musisz zbudować):

Możesz zainstalować (lub zaktualizować) te pakiety, uruchamiając w konsoli następujące polecenie:

idź dostać -u

Na przykład, jeśli chcesz zainstalować Negroni, możesz użyć następującego polecenia:

idź get -u github.com/codehub/negroni

Dla mnie tworzenie aplikacji internetowych oznacza budowanie serwerów HTTP. Protokół HTTP lub Hypertext Transfer to protokół, który został pierwotnie zbudowany w celu przesyłania tylko dokumentów HTML określonych przez użytkownika z określonego serwera do przeglądarki internetowej po stronie klienta. Na dzień dzisiejszy Http służy do przesyłania nie tylko zwykłych tekstów.

Właściwie nie będę się wgłębiał, możesz odnieść się do github, gdzie możesz znaleźć więcej szczegółów na temat tego projektu.

Na początek zacznijmy od stworzenia nowego projektu w naszym GOPATH

cd GOPATH / src

mkdir testserver

cd testserver

Teraz możemy utworzyć main.go, wpisując:

pakiet główny

importuj „net / http”

func main () (

)

Ponieważ wszystko jest już skonfigurowane, wystarczy zaimportować pakiet HTTP, a wtedy zadziała. A teraz nadszedł czas, aby napisać nasz kod testserver:

http.ListenAndServe („: 2964”, http.FileServer (http.Dir („.”)))

Http.ListenAndServer to funkcja używana do uruchamiania serwera. Będzie działał na podanym mu adresie, tj. W tym przypadku na porcie 2964, a kiedy otrzyma odpowiedź, prześle go do http.handler, który podaliśmy jako drugi argument, który ponownie w tym przypadku jest wbudowanym http -Serwer plików.

Stworzyliśmy http.Handler z http.FileServer, który będzie działał jako serwer dla całego katalogu plików i automatycznie odpowie na plik, który musi być obsługiwany w ścieżce żądania. Jeśli chodzi o ten fragment kodu, który uruchomiliśmy powyżej, powiedzieliśmy serwerowi, aby odpowiedział bieżącym katalogiem roboczym, tj. Http.Dir („.”)

Cały program będzie wtedy wyglądał następująco:

pakiet główny

importuj „net / http”

func main () (

http.ListenAndServe („: 2964”, http.FileServer (http.Dir („.”)))

)

Teraz, aby uruchomić i uruchomić nasz serwer plików, możemy go uruchomić w dowolnym momencie, pisząc:

idź budować

./testserver

A teraz, jeśli otworzymy to w naszej przeglądarce - localhost: 2964 / main.go lub http: // 127.0.0.1:2964/main.go, powinniśmy być w stanie zobaczyć pakiety wewnątrz naszego pliku main.go w naszej sieci przeglądarka. Najlepsze jest to, że możemy uruchomić ten program z dowolnego miejsca z naszego komputera i służyć temu katalogowi jako podstawowa strona główna dla hosta lokalnego. Wszystko to jest możliwe tylko w jednym wierszu programowania Go.

Mówiąc o tym, powinieneś faktycznie sprawdzić aplikacje internetowe opracowane w github, i naprawdę będziesz zaskoczony, co wszystkie aplikacje opracowały z programowaniem GO. Język GO to coś więcej niż zwykłe programowanie. Po opanowaniu tego języka jest bardzo mało prawdopodobne, że wrócisz do zwykłego C, C ++ lub Java. Tak to będzie na razie. Bądź na bieżąco, aby uzyskać więcej informacji na temat programowania GO.

Pierwsze źródło obrazu: pixabay.com

Powiązane artykuły:-

  1. Powinieneś dowiedzieć się o pytaniach i odpowiedziach na temat usług sieciowych
  2. Najlepsze i pomocne punkty pytań do wywiadu Java Web Services
  3. Nowe 10 korzyści Narzędzia programistyczne dla początkujących (bezpłatny)
  4. Ważne na przykładach programowania Scratch
  5. Jak zbudować doskonałą karierę jako specjalista ds. Tworzenia aplikacji internetowych?
  6. Rozwój oprogramowania a rozwój sieci