Kashiash's Blog

o programowaniu inaczej : jak zrobić i się nie narobić

Archive for the ‘Programowanie po pogańsku’ Category

Programowanie w Go

Posted by kashiash w dniu 9 grudnia, 2017

Jakiś czas temu uświadomiłem sobie ze na Clarionie świat programistyczny się nie kończy i jednak pozostawanie przy samym Clarionie ogranicza mnie i to mocno. Oczywiście nadal pozostaje leniwym programista i nie chce i się należeć do grupy, która zajmuje się klepaniem nudnych CRUD’ów.

Rozwinę moje przemyślenia najprawdopodobniej w innym wpisie, teraz skupie się nad językiem Go (Golang).

Gdzieś w internetach znalazłem takie porównanie gdzie była porównywana wydajność aplikacji napisanych w różnych językach w porównaniu do C++ i w czołowce pojawił sie język go odstając nieco od .Net core a bijąc na głowe Javy, Pythony itp. Język kompilowany jest do żywego exe bez żadnych jitów i zgrzytów w dodatku do pojedynczego pliku gdzie jest wszystko.

W 2 wieczory na sucho wchłonołem 2 książeczki/broszurki na temat tego języka. Przy okazji polecam ebooki z Syncfusion, są za free i w miarę skompresowany sposób próbują nam przedstawić różne tematy ze świata programowania https://www.syncfusion.com/resources/techportal/ebooks.

Więc poczytałem sobie o tym Golang (skrót od Go language – gdybyśmy wyszukiwali po samym go to w wynikach dostalibyśmy jakieś bzdetne artykuły np z pudelka czy innego pająka). Oczywiście rozleniwiony różnymi IDE programowanie w vi i kompilowanie w sesji terminalowej podobała mi się podczas kilku pierwszych przykładów i potem mocno zniechęciła.

Poświęciłem troche czasu na poczytanie czego można użyć. Wybór był zdecydowanie większy niż w przypadku Clariona ;). Pod testach kilku wariantów padło na Visual Studio Code (Atom za wolny, Sublime i Notepad++ nie obsługują debuggera, Vime jest dla masochistów z większym odchyłem niż ja, a GoIde kosztuje więcej niż skrzynka Wilgoci Wąwozu prosto z Majdanu Starego k/Wojsławic i w dodatku chciała ode mnie jakiejś konfiguracji innymi słowy nie działała).

Z tym Visual Studio Code tez prosto nie było, opisów w sieci jest od groma, ale albo nie napisali albo ja zbyt nieuważnie czytałem. Za cholrę nie chaiło mi to działać. Dopiero jak zajrzałem w logi to okazało się, że brakuje mi git’a. Trzeba go zainstalować i dodatkowo wskazać ścieżkę do katalogu z gitem w zmiennych środowiskowych.

 

Kroki jakie należy wykonać:

  1. Wejść na stronę https://golang.org i tam w okienku nazwany go Playground, pobawić się językiem. Jeśli cie nie zniechęci przejdź dalej…
  2. Po prawej stronie jest rysunek (podobno) susła, trzeba tam kliknąć, zainstalować to co się ściągnie. W starszych windowsach zrestartowac komputer.
  3. Instalujemy VS Code, po uruchomieniu wciskamy Shift+Ctrl+X wyszukujemy go lang i instalujemy pakiet autorstwa lukehoban. Patrzymy w logi jeśli jest jakiś problem z git’em, tzn ze go zle zainstalowaliśmy i trzeba to poprawić.
  4. na wszelki wypadek ręcznie dociągamy dodatkowe biblioteki i narzędzia:
    go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
    go get -u -v github.com/nsf/gocode
    go get -u -v github.com/rogpeppe/godef
    go get -u -v github.com/golang/lint/golint
    go get -u -v github.com/lukehoban/go-find-references
    go get -u -v github.com/lukehoban/go-outline
    go get -u -v sourcegraph.com/sqs/goreturns
    go get -u -v golang.org/x/tools/cmd/gorename
    go get -u -v github.com/tpng/gopkgs
    go get -u -v github.com/newhook/go-symbols

i włala … można zacząć zabawę!

świetne źródło przykładów:

https://gobyexample.com

Oficjalna dokumentacja

https://golang.org/doc/

Gdyby były problemy z debugowaniem to odsyłam tutaj:

https://github.com/derekparker/delve/tree/master/Documentation/installation

 

 

na syncfusion sa 2 książeczki:

https://www.syncfusion.com/resources/techportal/details/ebooks/Go_Succinctly

https://www.syncfusion.com/resources/techportal/details/ebooks/Go_Web_Development

 

jak narazie 2 rzeczy mnie zainteresowły w tym języku :

  1. funkcje mogą zwraca wiele parametrów
  2. plik wykonywalny jest samodzielny, nie potrzebuje żadnych dodatkowych bibliotek itp
  3. Język został tak napisany aby poradzić sobie w mocno obciążonym środowisku i dobrze obsługuje współbieżność.
  4. Formatowanie kodu ma znaczenie, nie można go pisać byle jak bo się nie skompiluje. Np nawias klamrowy musi się zaczynać w tym samym wierszu co wyrażenie if
  5. Jak zadeklarowaliśmy jakaś zmienna lub dodaliśmy bibliotekę, której potem nie wykorzystujemy, to jest to marnotrastwo pamięci, czasu i td i tez jest to błąd.

 

 

 

 

 

 

 

 

Posted in Go, Programowanie po pogańsku | Leave a Comment »