Wpis z mikrobloga

Hej Mireczki, nie chwaliłem się moim kolejnym filmem z kursu #programowanie w #golang

Tym razem #devopsiarz tłumaczy interfejsy, a według autorów Go, to jedna z większych zalet tego języka.
Czy tak jest rzeczywiście? Sprawdźmy. Na filmie drobna uwaga dla programistów #java i #csharp, bo ich języki też posiadają ten mechanizm.

https://www.youtube.com/watch?v=hWL_2HIaH-Y

Jak zwykle staram się przystępnie wytłumaczyć tematykę na jakimś w miarę życiowym przykładzie, także dajcie znać co myślicie. :-)

#naukaprogramowania #programista15k #devops
  • 12
@ppawel: najczęściej jakieś serwer/client api, jakiś web backend, który coś tam robi. Z innych ciekawszych rzeczy: docker, kubernetes, niektóre bazy danych (np. cockroach). To tak na szybko, co mi przychodzi na myśl.

Pełniejszą listę znajdziesz tutaj: https://awesome-go.com/

Łatwiej odpowiedzieć, gdzie się nie nadaje lub nie robi się na ten moment (jeszcze, bo np. brak mature libów): interfejsy okienkowe, jakieś low level programowania rodem z C, co trzeba gadać ze sprzętem bezpośrednio
@devopsiarz: czyli jeśli dobrze rozumiem to obszary backend/devops - z grubsza takie, gdzie zwykle siedziała Java serwerowa, Python, Bash, może trochę NodeJS i PHP, ale bez zabawy w server-side-rendered w webówce... czyli w sumie chyba coś co warto poznać :) Z ciekawości wymaga to jakiś cięższych maszyn jak JVM, kupy zależności jak NodeJS, czy w końcu wymyślono coś lekkiego? ( ͡° ͜ʖ ͡°)
via Wykop Mobilny (Android)
  • 1
Z ciekawości wymaga to jakiś cięższych maszyn jak JVM, kupy zależności jak NodeJS, czy w końcu wymyślono coś lekkiego?
@ppawel: wymyślono coś lekkiego ;) Kompilujesz aplikację pod konkretny system operacyjny gdzie to chcesz uruchamiać i dostajesz jeden plik binarny gotowy do odpalenia.

AWS Lambda też obsługuje binarki Go.
interfejsy okienkowe, jakieś low level programowania


@devopsiarz: myślisz, że w przyszłości ma to szansę się rozwinąć, czy raczej nikt nie będzie zawracał sobie tym głowy?
@VeXes: myślę, że w kierunku okienkowych coś może powstać, pytanie czy jest w ogóle sens, bo jest już dużo dobrych i sprawdzonych rozwiązań i nie jest to domena Go z zasady, by tam okienkowe aplikacje powstawały. Generalnie częściej jest tak, że za "okienka" odpowiada Ci flutter/electron lub Qt/GTK, a silnik "pod maską" działa w właśnie w Go czy w innym języku rozumianym jako backendowy.

Co do low level - są różne
@devopsiarz: cóż, mam nadzieję, że jednak się to rozwinie. Twój kurs zachęcił mnie do przypomnienia sobie o go i w sumie nawet się trochę z powrotem zjawiłem na niego, no ale jednak brakuje kilku rzeczy. Go podobno zdobywa na popularności, więc raczej może być tylko lepiej. A powiedz, za pomocą unsafe można odczytywać/nadpisywać pamięć procesu danego programu? Szukałem biblioteki w stylu memorysharp, ale nic nie znalazłem, pure go się w ogóle
@VeXes: musisz nieco uściślić Twoje pytanie, bo nie mogę skminić czym ta libka, o której wspomniałeś się dokładnie zajmuje, podczepia się pod procesy w systemie i ściąga jakieś ogólnodostępne informacje o nich? W sensie to, co w linuksie masz pod /proc/?
@devopsiarz:

based memory editing library targeting applications, offering various functions to extract and inject data and codes into remote processes to allow interoperability.

W skrócie chodzi po prostu o modyfikowanie/odczytywanie pamięci programu, może wstrzykiwanie własnego kodu. Coś na zasadzie cheatengine, trainera do gier. Wiadomo, memorysharp jest dedykowana do tego typu zadań i nie oczekuje od unsafe takiej funkcjonalności, ale czy w go można się bawić w takie rzeczy? (A raczej, czy