Próbował ktoś może się przebranżowić na pełnoprawnego #golang Developera? Przeglądałem ostatnio oferty na popularniejszych serwisach i w sumie każda wymagała lat doświadczenia w #golang podejrzewam, że komercyjnego, a nie takiego z pet projectów, więc czy istnieje w ogóle jakaś możliwość wejścia w tę technologię? Oczywiście pomijając sytuacje, gdy aktualny pracodawca zmienia/wprowadza nową technologię.

#programowanie
@right_hook: ja się wkręciłem w pracę, gdzie nie trzeba było mieć doświaczenia. Zgaduję, że teraz jest gorzej, bo ssanie na programistów mniejsze jak i programistów go jest po prostu więcej

Pewnie na twoim miejscu szukałbym takich ofert albo firmy, która niekoniecznie wymaga znajomości danej technologii tylko znajomości innych technologii backendowych.
Jak Ci się podoba pisanie w GO?

@NikolajTesla1991: bardzo mi sie podoba, to moj glowny jezyk i nie zamierzam sie przesiadac poki co. Bardzo fajna biblioteka standardowa, mega szybki kompilator i prosta cross-kompilacja, masz jedna binarke ktora deployujesz gdzie trzeba i spokoj. Lubie syntax, latwo sie pisze i czyta, i jest duzo utartych standardow/patternow co tez ulatwia prace w zespole. Bardzo szybko sie pisze tez np. narzedzia CLI, albo jakies jednorazowe
@Nofenak: Z tych dwóch wybrałbym Rust. Programistów jest relatywnie mało. Praca często w specyficznych branżach i technologiach. To razem sprawia, że stawki są lepsze. Poza tym to jest naprawdę narzędzie ogólnego przeznaczenia. Możesz w tym pisać naprawdę low-levelowy kod pod specyficzne wymagania. Kod jest natywny, nie masz garbage collectora, więc wydajność i latency są bardzo dobre, a nie musisz się męczyć jak w C.
Mam aplikację opartą na zasadzie mikroserwisów: Go-lang (gin) i aplikację Vue, oraz serwer WebDAV w Rust (hyper + jakaś biblioteka do WebDAV). Obie aplikacje to zupełnie osobne projekty. Chciałbym, aby można było wrzucić coś na serwer za pomocą formularza, a potem, aby użytkownik po zalogowaniu na GNOME Account miał dostęp tylko do swoich plików.
Jak się integruje takie mikroaplikacje? Napisać jakiś konfig i jego obsługę w obu aplikacjach, czy może zakodować coś
więc chyba to zły pomysł, aby taki tandem dla każdego użytkownika osobno zestawiać, prawda?


@pyroxar: to zły pomysł jak i te pliki najlepiej abyś trzymał poza podami które niech będą bezstanowe. Prawidłowo masz dwa podejścia:
1. Aplikacja jej silnik jak już musisz ją trzymać na tych dockerach niech będzie to bezstanowe a pliki danego użytkownika aplikacja niech przechowuje tak jak to powinno być i tak robią aplikacje pod Linux - w
@pyroxar: nie musisz. Jak chcesz to możesz założyć że będzie sama bezpośrednio gadała do swoich zasobów i nimi zarządzała (konfigurowała sobie obiekty w k8s) ale to jest Twój wybór. Gratis dostaniesz np. service discovery - wbudowane nazwy w wewnętrznym DNS które pod nazwą serwisu mają konkretny komponent.
@pyroxar: jak robisz zwykłą bezstanową appke to generalnie deploy i tyle - jedyne co możesz zrobić (co wpływa na Twój serwis w sensie dodania kodu) to dodać readiness i liveness endpointa - https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ - dzięki temu k8s moze np wykryć że Twoja appka się wykraszyła i ją zrestartuję automatycznie (w tagach masz golang i rust, ale np w javie jak poleci OOM error to proces wisi ale nie przyjmuję więcej requestów,
#programowanie chcę się pobawić jakimś nowym językiem i frameworkiem. Co polecacie do postawienia sobie proxy z zapisywaniem danych z serwisu zewnętrznego i serwującego te dane lokalnie aż do inwalidacji.
Zapisywałbym dokumenty do jakiegoś #elasticsearch i serwował. High usage (100M requestów miesięcznie),

Standardowo bym użył jakiegoś #symfony #php, ale chcę się pobawić i poczuć jak student ponownie.
#nodejs? #expressjs?
A może #golang? Bo chyba #rustlang #rust się do tego
A może #golang? Bo chyba #rustlang #rust się do tego nie nadaje?


@kamillus: Nadaje się i to bardzo, ale tak jak napisał @Saly jest trochę więcej nauki, bo Rust jest bardziej rozbudowany i bardziej pryncypialny niż Go. Za to potem idzie szybciej bo kompilator więcej kontroluje za programistę i mniej bugów do naprawiania jest ;) W przypadku bardzo krótkiego projektu, jak nie znacie Rusta, to jednak bym go nie wybrał.
  • 2
Dla odmiany Rust zachowuje się przyzwoicie:

let a = [1, 2, 3, 4, 5];
let (lo, hi) = a.split_at(2);
let lo = lo.iter().chain(&[6, 7, 8]).collect::<Vec<_>>();
println!("{:?} {:?}", lo, hi);

Wynik:

[1, 2, 6, 7, 8] [3, 4, 5]