Этого треда уже нет.
Это копия, сохраненная 8 ноября 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №20 /go/ 2409760 В конец треда | Веб
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №20 /go/

ВЕЛИЧЕСТВЕННОЕ БЕЗХОМЯЧЬЕ ЛОГО ЭДИШН

Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, богатую и универсальную стандартную библиотеку функций и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

Обсуждаем язык, смеемся с залетных крестоносцев, обсуждаем почему нам не нужны дженерики, наследование и эксепшены, по каждому багу находим трехстраничный пост в официальном блоге Go, объясняющий почему это на самом деле фича, ждем, когда нам завезут дженерики, наследование и эксепшены.

Растобляди завидуют, сектантская запарта не переваривает.

С чего начать:
- В обязательном порядке проходим Go Tour: https://tour.golang.org/welcome/1 (есть на Русском)
- Читаем документацию прямо по порядку (пункт "Learning Go"): https://golang.org/doc/
- Ёмкий пошаговый гайд с азов до джуна (go tour на максималках): https://www.practical-go-lessons.com/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)

Литература:
- Донован, Керниган "Язык программирования Go"
- Также хорошие книги для начала: https://www.golang-book.com/
- Книги из списка https://github.com/dariubs/GoBooks

Полезные ресурсы:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/
- Смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw

Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшой канал треда: t.me/golang2ch и даже живой

Предыдущий тред умирает здесь: >>2286748 (OP)
Шаблон шапки: https://pastebin.com/vmWawK2t
2 2409768
>>409760 (OP)
Первый нах! Респект го за убийство жабы на бэкенде
3 2409772
Шарп лучше чем Go.
4 2409779
>>409772
Чем?
5 2409780
>>409779
Чем Go.
изображение.png168 Кб, 306x347
6 2409788
7 2409797
Гоу это нью эра джава скрипт
8 2409799
Что можно почитать о работе с сетью?
Задача простая, хочу написать имплементацию Л2ТП впн сервера не спрашивайте нахуя
Кое как слепил базовый UDP сокет, но пока что у меня проблема даже с тем, чтобы собрать пакет и кинуть его от сервера к клиенту, лол.
9 2409812
>>409799

>Что можно почитать о работе с сетью?


https://ru.wikipedia.org/wiki/L2TP
image.png73 Кб, 256x256
10 2409832
Если гохеру предложить вагон говна или цистерну мочи, что он выберет?
11 2409834
>>409832
Так Goвно же, выбор очевиден.
12 2409868
>>409812
Да я это прочитал, и RFC прочитал, но нихуя не понял как мне от сервера передать пакет с нужными полями.
Ну делаю я структуру допустим, и что потом...
13 2409922
>>409868
Дрочи бьерна и хуярь на сишке
14 2409934
>>409797
ню эра жаваскрипт это раст

> давайте перепишем это на расте (электроне)


> куча ненужных фич


> борешся с борроу чекером (языком 1+'1')


а гошка это ню эра луа

> фич почти нихуя


> фичи какие-то ебанутые (че тут есть только мапа+слайс??/че тут есть только таблица??)


> используется дохуя где но вакух нет

15 2409963
Ананасы гоферы мне нужна ваша помощь, умоляю помогите.

Я написал типичную rest хуйню, у него есть сваггер, ничего удивительного. НО, когда ты приложуху разворачиваешь в разных места, от virtualbox, docker до хостера, то у тебя ip-шник всегда меняется и как сделать так чтобы сваггер знал по какому адресу стучаться(пикрил 2)?
То есть в коде прописан пикрил1 и если я решу развернуть это говно в докере или на ВМ, то мне что, в код нужно лезть и урлы менять?

И вопрос сформулировать сложно, и самому нихрена не понятно.

Умоляю анончики помогите с меня как всегда нихуя
16 2409975
>>409934

>фич почти нихуя


Какие тебе фичи нужны?

>фичи какие-то ебанутые (че тут есть только мапа+слайс??/че тут есть только таблица??)


Это не фичи.

>используется дохуя где


Например? Почему это дохуя где?
17 2409985
Ебать, буквально по байтам собрал сетевой пакет и вайршарк даже увидел протокол.
Теперь еще вопрос, как работать с битами в го?
Например в хедере у меня 6 бит под разные аттрибуты, но как их туда расскидывать я хуй знает
18 2409991
>>409985
Через битовые операции.
19 2410002
>>409963
Используй энвы
20 2410015
>>410002
А как ими пользоваться анон подскажи пожалуйста.
Пробовал следующий способ
1. У меня есть конфиг файл yml формате где записываются значения, аля порты, подключение к БД и т.д.
2. Туда я добавил урл
3. Импортнул в сваггер как в пикриле1

Получаю ошибку в сваггере, говорит ошибка в парсинге
21 2410021
>>409975

>Какие тебе фичи нужны?


мне почти нихуя, тех что в гошке достаточно

>Это не фичи.


наличие сетов и всяких структур данных в стандартной библиотеке это как раз фичи, помимо всякого сахара.

>Например? Почему это дохуя где?


бекненд конежно же
22 2410051
>>410021
главная фича го это то, что можно просто садиться и хуячить без задней мысли.

>>409772
>>409797
>>409832
Теперь понятно, почему старый тред не перекатывали. Засагать что ли что-бы таких залетных дурачков поменьше стало
23 2410117
>>410015
Ты можешь сам отдебажить и увидишь что тебе строка отдает. Я бы вообще логирование несенситивных энвов добавил на старт сервиса.
24 2410131
>>410117

Анончик уважаемый, можешь более человеческим языком разъяснится, студенту пиздет сложно дается твой сленг((

В каналах телеги с тем же вопросом подошел там люди говорят что это не баг а фича
25 2410336
>>409991
Я туповат и не понял как использвать битовые операции. Помогите пожалуйста, с меня как всегда
Вот к примеру есть у меня байт, состоящий из битов 1 0 1 1 0 0 1 0, эти биты лежат в структуре с типом uint.
Как мне из этого сделать байт, чтобы отправить клиенту сетевым пакетом? В голову приходят всякая поебеть типа сделать строку, ее конвертировать в 16-ричную, а из 16-ричной получить двоичную
26 2410479
>>410336

>биты лежат в структуре с типом uint


На жабе не пробовал писать?
27 2410483
>>410479
При чём тут блять жаба?
1605865435180923638.png5 Кб, 219x230
28 2410493
Че там, генерики завезли уже? Когда обработка исключений будет?
29 2410495
>>410493
Завезли.
Эксепшены года через 4, сейчас вместо них приходится юзать panic().
30 2410501
>>410495
Вывод типов имеется?
31 2410517
32 2410699
>>410336
В том, что использование огромного количества памяти это путь жаб. У тебя для 8 битов используется 256/512 бит.
33 2410799
>>410336
чета вроде

var out uint64
for _, bit := range bits {
out << 1
out |= bit
}

?
34 2411048
>>410495

>panic


Зачем, если есть errors.WithStack и errors.Is?
.png9,7 Мб, 4032x3024
35 2411057
>>411048
Чтобы не писать 100500 раз if err != nil { return nil, err }
36 2411127
>>409760 (OP)
Как выучить го? Он мне не нужен, но хочется знать, так, для прикола.
Когда-то возникнет задача под него, а тут я такой хоба - достаю из широких штанин.
37 2411130
>>411127
Прочитать туториал: https://go.dev/tour/basics/ (НЕТ НА РУССКОМ!)
Это всё.
image.png27 Кб, 627x403
38 2411133
>>411127
Есть такие хуйни, что годное?
40 2411143
>>411135
Прям по официальному гайду? Но там только кор, а всякие штуки-дрюки, за что он ценится?
41 2411147
>>411143
Собственно, го и ценится за примитивность и возможность постоянного написания велосипедов. В языке тупо нет нихуя.
42 2411330
>>411057
не пиши. паники сами появятся
43 2411417
>>411330
Panic-driven development?
44 2411579
>>411133
Большинство курсов/книг по Го - тупо пересказ го-тура. Можно его пройти и отдельно что-то почитать про вёбню
45 2412317
>>410493
Генерики завезли, но с подводными камнями:
https://planetscale.com/blog/generics-can-make-your-go-code-slower
46 2412886
Как в Го конфигурировать возвращаемый JSON.
Есть структура, часть полей которой возвращается всегда, а часть по запросу через параметр fields. То есть поля, указанные в fields должны быть добавлены к полям, которые возвращаются по дефолту.
Как это реализовать? Если это как-то нетривиально, возможно у Gin есть какая-то тулза специальная для этого.

Если сформулировать вопрос более обще - как динамически выбирать возвращаемые в виде JSON поля у одной структуры.

(типы примитивные, делать через поинтер + json omitempty как то слишком костыльно кажется)
image.png55 Кб, 1101x228
47 2412897
ГОвну в Рашке пизда, сколько еще можно это отрицать?
48 2412914
>>412897
Может пизда, а может не пизда. В конце концов есть не только Авито с Озоном. А вот твоих проблем это не решит. Попробуй проанализировать, что заставляет тебя тут просираться, хотя вроде бы никто и не просил. Ни отрицаний ни утверждений в этом треде не видел
49 2413312
>>412897
Раз пизда, то и смысла заходить в этот тред нет. Вот и съеби обратно с свой МВП-загон.
image.png172 Кб, 371x389
50 2414002
>>412897
хаха
51 2414839
>>412897
Ну как минимум еще есть вайлдбериз, а еще есть яндекс со своим клаудом.
Плюс всякие отделы сбера, тот же мегамаркет к примеру.
В телеком, в тот же мтс, набирали гошников ранее.
52 2414937
Аноны, просветите по поводу best practice по созданию экземпляров структур и панике. Насколько я понимаю, использовать такую сигнатуру полный треш:
NewSomething(...parameters...) (something, error)

И тут возникает вопрос, как тогда валидировать параметры. С одной стороны кажется логичным вызвать panic, если на вход послали какой-то кал - пусть пользователь функции ебется и читает доку.

С другой стороны из всех щелей лезет, что паника это антипаттерн и ее нужно максимально избегать.

Итого вопрос, норм или не норм паниковать на мусор на входе?
Если не норм, то какие бест-практисы по созданию конструкторов на вход которым нельзя подсунуть мусор. либы по валидации не предлагать
53 2414942
>>414937
продолжение
Для примера, есть у структуры поле, которое строго не меньше нуля.

Какие есть варианты:
1) поставить uint - и потом везде ебаться с приведениями к человеческому инту и подобным манипуляциям.
2) написать в доке - меньше нуля поставил - сам дурак, держи панику. и поставить обычный инт, потому что работать с ним удобнее.

На какой стул сесть или как вообще принято в Го
54 2415071
Аноны, кто знает пример годного микросервиса, скиньте ссылку на гитхаб.

Почему сам не могу? Я не ебу, где он сделан хорошо
55 2415079
>>415071

>Я не ебу, где он сделан хорошо


Не сделан.
image.png48 Кб, 564x145
56 2415081
>>415079
Что?

трипл в капче кстати
57 2415186
>>414937
конструкторы через NewX() классика, если тебе нужно валидировать параметры при создании.
image.png51 Кб, 1600x135
58 2415334
Аноны скажите я ебан?

Написал круд говно на ГОвне, есть БД в виде постгреса. Запускаю в docker compose, получаю такую залупу при отправлении запроса.
Пробовал запускать без контейнера, работает. Везде сука работает а в контейнере это говно не работает

Я уже отчаялся не знаю что делать. Мб кто сталкивался с такой паникой((

Прошу вашей помощи
59 2415361
>>415334
ну выглядит как будто ты сервер без хендлера запускаешь или что-то вроде этого. по панике не видно ни-ху-я. добавь recover в хендлер на случай если оно в хендлере происходит. если не там, то показывай код до listenandserve или аналога.
image.png24 Кб, 505x361
60 2415383
>>415361
Тогда давай посмотрим докерфайл, думаю тут ошибка
61 2415394
>>415361

Анончик смотри, когда запускаешь мое говно, у тебя появляется сообщение о том что ты приконектился к БД. Ещё раз запустил это говно прям на хосте и это сообщение увидел (пикрил 1), притом БД работает в докере.

Потом запустил сервис в докере, сообщение о том что подключился к БД не увидел (пикрил2)
62 2415416
>>415394
ошибку от коннекта к БД игноришь и у тебя nil БД получается? ну видимо с сетями докеркомпоза ебаться надо. можешь добавить какой-нибудь
networks:
- postgres
и подключаться по имени контейнера вроде postgres://postgres1:5432. или по-тупому network_mode: "host", если у тебя линекс.
image.png53 Кб, 633x923
63 2415431
>>415416
Вот так выглядит compose, я создал отдельную есть типа bridge и жестко прописал айпишники, потому что при каждом запуске у тебя айпишники меняются
64 2415446
>>415334
Недавно слышал, что постгрес в докере тупит и запускается с задержкой. Попробуй организовать реконнекты к базе, либо просто слипнись в мейне на секунд на 10-15
65 2415450
>>415446
Сейчас так сделаю и отпишусь
66 2415452
>>415446
Но у тебя теория ломается об то, что сейчас я из compose выкинул сервис.
1. Запустил compose только с БД
2. Чутка подождал и запустил отдельным контейнером с docker run
И не сработало, думаю. Подожди, я сейчас другие варианты попробую и отпишусь
67 2415455
>>415452
Ну я хз тогда. Попробуй в дебаггере отследить, в какой момент у тебя появляется внезапный nil pointer.
image.png271 Кб, 1974x986
68 2415461
>>415431

>потому что при каждом запуске у тебя айпишники меняются


ага ну для этого есть роутинг по имени контейнера, как я и сказал
69 2415469
>>415461
ДААААА БЛЯТЬ САСАМБА ЛАЛКИ
Пошел по твоему совету анончик.

1. Добавил тайм слип
2. Нахуй удалил кастомную сеть из композ файла
3. Добавил depends on, чтобы контейнера последовательно запускались

ДААА БЛЯТЬ наконец починил

P.S. если у тебя есть советы по докеру можешь ими поделится? Ну типа как писать докерфайлы, как композ файлы писать. А то в сети хуета одна попадается
70 2415475
>>415469
ну тебе лучше подключение к БД в лупе с ретраями сделать, чем завязываться на какое-то количество секунд. обычно вообще драйвер во время sql.Open должен делать какой-нибудь select 1 и возвращать ошибку.
и тут два анончика было. я научил тебя всему по докеркомпозу что я знаю. в продакшене я его нахуй никогда не видел, где я работал везде кубер был.
докерфайлы от места к месту специфичные, где-то мультистейдж билды используются, где-то они чисто для билда используются, а запуски/экспозы за тебя уже придумала команда которая отвечает за автоматизацию деплоев и твой файлик кончается на go build.
для обычного разраба достаточно должно быть знать как написать мультистейдж билд, как установить какой-то пакет в альпайн/дебиан в докере, как запустить курл и скачать файлик во время билда, и как настроить московскую таймзону.
71 2415962
Простите за глупый вопрос. Перекатываюсь с виндосовского админа в линуховые для последующего эволюционирования в девопс. Думаю между питоном и голангом. Англюсик могу читать, но желательно таки русские доки чтоб голова совсем не закипела. Но можно и англюсик.
72 2416043
>>415962
Баш для начала дрочи.
73 2416105
>>415962
Linux + bash
только потом выбирай между python Goвно
74 2416137
>>416043
>>416105
Спасибо парни, чет я действительно не туда побрел.
75 2416711
Дорогие аноны гоферы, прошу помочь советом.

Вопрос стоит в пет проекте (я знаю как эта хуета всех достала),
хочу написать что-то что не будет очередной круд говной, такое я уже написал.

Есть такая идея, написать консольный чатик.
В чем суть:
1. Есть сервер с пользователями
2. Клиент может через терминал подключатся к серверу и переписываться с остальным пользователям.
3. Есть идея очищать чатик беседующих раз в 3-5 мин аля анонимность (прикрепите маску вендетты)

Хочу написать такое говно с целью прокачки скилла
А именно:
1. Вебсокеты. Думаю тут стоит применить вебсокеты
2. CLI. Читал что для этого часто используют го. Да и клиента то нужно как-то реализовать
3. MongoDB. Где то нужно хранить чатик, nosql то что нужно, кажется хотя хз
4. Postgresql. Для хранение юзверей
5. Microservices. Ниибаца какой будет, скорее всего размер будет таким что можно как-то и MQ добавить,
6. RabbitMQ. Смотреть на 5 пункт
7. GrafQL. Можно упороться и взять Grafql

Как вам идея? Что подкорректировать, что выбросить? Пришел к вам за критикой и советами. Был бы признателен если поможете
76 2416785
>>416711

>Postgresql. Для хранение юзверей (можно и в Монге, не лопнет)


>Microservices.


>RabbitMQ


>GrafQL.



Вообще не понятно зачем. Даже если основная задача, затащить как можно больше технологий, я вот вообще не понимаю какой юз-кейс использования, например графкюэль.

Плюс, думаю, ты делаешь это в том числе для поиска работы. Так у нанимающего возникнет закономерный вопрос, какого хера это все притащил. А если ты на проде такое же разводить начнешь? В общем все решения и зависимости должны быть обоснованными.
77 2416826
>>416785

>Postgresql. Для хранение юзверей (можно и в Монге, не лопнет)


>Microservices.


>RabbitMQ


>GrafQL.



Ладно, их выкину.

Тогда стек будет следующим:
1. Общаться будут через вебсокет
2. База в качестве Монго
3. Клиент буду писать на на стандартной библиотеке, cobra и тому подобные будут оверхедом

Я ещё исходил из той мысли что реализуя такой проект как чатик, у меня будет возможность обмазаться горутинами и каналами.
78 2417162
>>416826

>Клиент буду писать на на стандартной библиотеке, cobra и тому подобные будут оверхедом


ты там планируешь через командные аргументы в чатик писать/читать без терминальной графики штоли? это ж неюзабельно и наркомания
79 2417167
80 2417317
>>417162
Не так выразился.
Просто я скомпилю клиентский бинарник и добавлю пару флажков для настройки клиента. А так это будет реально CLI утилитой которую запускаешь. Вводишь команду по отображению всех пользователей и по нику можешь им написать.
Я просто потыкал кобру и понял что она нужна ну реально на серьезных проектах по типу k6.
81 2417545
Аноны, если нужны микросервисы с авторизацией, будет ли лучшим решением, чтобы API Gateway проверял токен и потом транзакции начинал или просто в каждом сервисе сделать проверку токена jwt
82 2417568
>>412897
На го даже в госконторах и военке пишут.
image.png440 Кб, 640x393
83 2417578
>>417568

>госконторах


>военке

84 2418223
>>417568

>и военке пишут


Например?
85 2418932
>>417568
У них связь на каких-то анальных рациях из 70-х, звонят по мобилкам или на волонтерских рациях из али, на го они пишут.
86 2418942
>>412886
Именно с помощью омитэмпти
87 2418945
>>414942
Нахуй тебе паниковать? А если у пользователя паника будет недопустимым поведением? Как ты вообще пишешь к выводу что New() smth, error это "треш полный"? Это самый правильный способ, и если валидация не прошла возвращается nil, err
Пиздец ты проблему придумал на ровном месте
88 2419042
>>418945

>Пиздец ты проблему придумал на ровном месте


Весь смысл варнингов в логах.
мимо
89 2419292
>>418942
И получается, что вместо нормального int в структуре будет *int. Отторжение максимальное.
>>418945
Ну, в общем почитал статьи, улеглось, да, думаю все таки норм. Просто логика была такова, что если New паникует, ты используешь структуру не правильно и не плодишь кучу обработок. То есть явное указание на ошибку программиста. В том числе в стд либа часто любит паниковать, когда используешь ее неправильно. Но в общем ладно, твое мнение тоже принимаю и скорее всего буду делать так
90 2419308
>>412886
если как аутист, то кладешь в мапу, мапу маршалишь.
для нормальных людей через омитемти.
91 2419496
>>419308
Как я сделаю с примитивными типами omitempty? *int?
92 2419515
>>419496
struct {
Int int
Valid bool
}
Звёзд в посте нет
93 2419525
Крудошлеплю на жабе около года. Хочу попробовать покрудошлепить на других языках, петик написать. Хочу начать с го.
Перед тем, как начать учить язык, хочу спросить советы.
Можете в двух чертах объяснить как, тут принято? Фреймворки есть популярные?
Может кто-то подсказать гит-репозиториев с проектиками?
Может есть тестовые приличные с крудами?
94 2419539
>>419496
ну обыкновенно. либо поинтеры, либо нулевые значения.
тебе так чешется ноль от нулла отличать?
95 2419615
>>419525

>фреймворки есть популярные


Ты зашёл не в тот тред
96 2419711
>>419615
Если фреймворков нет, то это хорошо даже. Значит экспириенс будет сильно другой.
Ну а как? Наборы маленьких либ? И устоявшихся тоже наверно нет. Можешь написать какие вот ты используешь?
97 2419716
>>418932
Потому что мин обороны никогда не вводит в эксплуатацию то что им сделали, там на местах слишком тупые кадры + попил лютый, история как с арматой, делают MVP и показывают только на выставке.
98 2420062
>>419711
мимо
Да не то что бы маленькие, просто не навязывают свою архитектуру. Вообще заметил, что частенько есть general либа, например Gin для вебни и параллельно разрабатываются совместимые либы-модули.
99 2420130
>>420062
Погуглил gin. Ну это такая средняя по размеру http-библиотека. А для sql есть что-то? Орм вроде не ценится в go? А ActiveRecord? Еще я слышал, что в стандартной библиотеке мало структур данных. Есть что-то по этой теме?
100 2420134
>>420130
Для sql есть драйверы. Про структуры данных точно не знаю, по-любому есть библиотеки с ними, я если что-то нужно сам пишу
101 2420147
>>420134

>Про структуры данных точно не знаю, по-любому есть библиотеки с ними, я если что-то нужно сам пишу


Популярный подход для гошки вообще?
102 2420164
>>420147
Вряд ли, я просто недавно вкатился в го и фриланшу, в компаниях за такое ебут скорее всего
103 2420220
Сап, есть какие-нибудь материалы по веб 3.0 (голанг)?
104 2420221
Сап, есть какие-нибудь материалы по веб 3.0 (голанг)?
105 2420222
Сап, есть какие-нибудь материалы по веб 3.0 (голанг)?
106 2420590
>>420134
Какие структуры напилил?
107 2420593
>>420590
Немного, базовые вообще: множество, дерево поиска, куча. Пока не встречалось задач, где бы использовалось что-то сложнее
108 2420851
Аноны, не очень понимаю, что такое миграции. Концепцию, применение.
Вот есть прод база, которой допустим занимается ДБА или кто-то еще. Сетапит, обновляет, меняет структуру, хз.

Но зачем нужны файлы миграций во многих проектах на Го? Чтобы сетапить тестовую базу? Можно же просто в коде выполнить запрос на создание, затем дропнуть. Или зачем? Вообще не догоняю

И вообще, почему миграции? Что значит это слово в контексте
109 2420878
>>420851

>Вот есть прод база, которой допустим занимается ДБА или кто-то еще. Сетапит, обновляет, меняет структуру, хз.


это так работает далеко не во всех компаниях. у нас ДБА только обеспечивают разработчиков базой для их сервиса, которая работает, бекапится, у которой стоят нужные лимиты, и консультируют по связанным вопросам, когда нужно.
а завести колонку/индекс/табличку - этим занимаются разработчики.

>Но зачем нужны файлы миграций во многих проектах на Го? Чтобы сетапить тестовую базу? Можно же просто в коде выполнить запрос на создание, затем дропнуть


зачем хранить схему БД в двух местах? есть папка в репе с самим сервисом, которая является единственным источником схемы, всё. не нужно ждать апрувов в две репы, не нужно дергать и ждать ДБА по добавлению одного столбца, которые могут еще ошибиться.
110 2421222
>>420851

> Вот есть прод база, которой допустим занимается ДБА или кто-то еще. Сетапит, обновляет, меняет структуру, хз.


Это устаревшая тема, сейчас почти везде, где я знаю, этим занимаются сами программисты, а ДБА максимум готовят саму базу (крутят настройки постгресса), оптимизируют сложные случаи и тп. Программисту так-то виднее, что там за бизнес-логика и как под неё положить данные.

Сама миграция - это сложный процесс, который может включать в себя импорт или какую-то обработку данных, оно может происходить в фоне, в несколько шагов и тд и тп.
Это намного сложнее, чем зайти через phpmyadmin на прод и там херануть alter table. Соответственно, миграции тоже сначала программируются и затем тестируются. При этом другие программисты ещё и должны знать, кто и зачем что-то поменял. Да и доступа на прод ни у кого кроме админов как правило нет.
И это как раз то, почему они пишутся в отдельные файлики.
1) таким образом в истории гита видно, кто и зачем что-то сделал;
2) таким образом оно автоматически либо полу-автоматически накатывается на local/dev/stable/preprod/prod при релизах и твоя миграция протестируется с прочим кодом до того, как заломает что-то на проде;
3) таким образом мы получаем набор состояний базы (собственно, файликов с миграциями), между которыми мы базу мигрируем. И мы можем посмотреть, что применилось, а что нет, при применении какого шага что-то пошло не так, откатиться до какой-то конкретной версии;
4) миграции могут зависеть друг от друга, условно, ты создал таблицу, а потом Васян добавил на неё fk, и в тч эту проблему решает версионирование миграций, твоя миграция №5 означает, что перед тем, как накатить её, база обязательно должна накатить 4 предыдущих.

>>419525
Добра тебе за правильный вопрос. В двух словах, в го не приняты фреймворки, как жанр, так как они как правило несут с собой много дополнительного обвеса и зависимостей, а гошники лишние зависимости как правило (и иногда ошибочно) не любят.
Вместо этого принят подход, похожий на unix-way, когда у тебя есть миллион разных библиотек, каждая из которых делает что-то одно. Соответственно, начиная проект, ты берешь любимый роутер, логгер, сервер, клиент для базы, мигратор и тд и тп и собираешь, как из лего, себе систему. Плюсов у такого подхода много, например, ты не платишь за то, что не используешь, но тебе впихнули во фреймворк, легко заменить одну либу на другую и тп. Минусы тоже есть, например, ты не найдешь два проекта, похожих друг на друга, спринга с гибернейтом тут нет. С другой стороны после нескольких лет работы понимаешь, что все библиотеки одинаковые, потому что решают одни и те же задачи и тебе становится просто пофиг. Разве что у некоторых либ апи симпатичнее
Я здесь могу разве что посоветовать ни в коем случае не использовать gorm, и даже не приближаться к нему.

Со структурой проекта та же история, стандартов особо нет кроме https://github.com/golang-standards/project-layout да и тот условный, больше просто про структуру папочек на верхнем уровне, нежели про бизнес структуру кода. У гошников здесь тоже действует такое правило, что типа структурируй так, как будет нужнее для данного конкретного проекта.
Здесь я с ними не согласен, в итоге это приводит к тому, что большинство проектов написанных все же как правило какими-то мудаками, потому что только я знаю, как правильно структурированы как попало и зачастую мешают слои с логикой, херачат все в один файл и всё такое. Короче, всё очень сильно завязано на архитектурные навыки того, кто изначально проект создавал.
Хороших примеров гошных крудов я не видел, может, когда-нибудь, сподоблюсь и свой сделать.
110 2421222
>>420851

> Вот есть прод база, которой допустим занимается ДБА или кто-то еще. Сетапит, обновляет, меняет структуру, хз.


Это устаревшая тема, сейчас почти везде, где я знаю, этим занимаются сами программисты, а ДБА максимум готовят саму базу (крутят настройки постгресса), оптимизируют сложные случаи и тп. Программисту так-то виднее, что там за бизнес-логика и как под неё положить данные.

Сама миграция - это сложный процесс, который может включать в себя импорт или какую-то обработку данных, оно может происходить в фоне, в несколько шагов и тд и тп.
Это намного сложнее, чем зайти через phpmyadmin на прод и там херануть alter table. Соответственно, миграции тоже сначала программируются и затем тестируются. При этом другие программисты ещё и должны знать, кто и зачем что-то поменял. Да и доступа на прод ни у кого кроме админов как правило нет.
И это как раз то, почему они пишутся в отдельные файлики.
1) таким образом в истории гита видно, кто и зачем что-то сделал;
2) таким образом оно автоматически либо полу-автоматически накатывается на local/dev/stable/preprod/prod при релизах и твоя миграция протестируется с прочим кодом до того, как заломает что-то на проде;
3) таким образом мы получаем набор состояний базы (собственно, файликов с миграциями), между которыми мы базу мигрируем. И мы можем посмотреть, что применилось, а что нет, при применении какого шага что-то пошло не так, откатиться до какой-то конкретной версии;
4) миграции могут зависеть друг от друга, условно, ты создал таблицу, а потом Васян добавил на неё fk, и в тч эту проблему решает версионирование миграций, твоя миграция №5 означает, что перед тем, как накатить её, база обязательно должна накатить 4 предыдущих.

>>419525
Добра тебе за правильный вопрос. В двух словах, в го не приняты фреймворки, как жанр, так как они как правило несут с собой много дополнительного обвеса и зависимостей, а гошники лишние зависимости как правило (и иногда ошибочно) не любят.
Вместо этого принят подход, похожий на unix-way, когда у тебя есть миллион разных библиотек, каждая из которых делает что-то одно. Соответственно, начиная проект, ты берешь любимый роутер, логгер, сервер, клиент для базы, мигратор и тд и тп и собираешь, как из лего, себе систему. Плюсов у такого подхода много, например, ты не платишь за то, что не используешь, но тебе впихнули во фреймворк, легко заменить одну либу на другую и тп. Минусы тоже есть, например, ты не найдешь два проекта, похожих друг на друга, спринга с гибернейтом тут нет. С другой стороны после нескольких лет работы понимаешь, что все библиотеки одинаковые, потому что решают одни и те же задачи и тебе становится просто пофиг. Разве что у некоторых либ апи симпатичнее
Я здесь могу разве что посоветовать ни в коем случае не использовать gorm, и даже не приближаться к нему.

Со структурой проекта та же история, стандартов особо нет кроме https://github.com/golang-standards/project-layout да и тот условный, больше просто про структуру папочек на верхнем уровне, нежели про бизнес структуру кода. У гошников здесь тоже действует такое правило, что типа структурируй так, как будет нужнее для данного конкретного проекта.
Здесь я с ними не согласен, в итоге это приводит к тому, что большинство проектов написанных все же как правило какими-то мудаками, потому что только я знаю, как правильно структурированы как попало и зачастую мешают слои с логикой, херачат все в один файл и всё такое. Короче, всё очень сильно завязано на архитектурные навыки того, кто изначально проект создавал.
Хороших примеров гошных крудов я не видел, может, когда-нибудь, сподоблюсь и свой сделать.
111 2421271
>>421222

>ты берешь любимый роутер, логгер, сервер, клиент для базы, мигратор и тд и тп и собираешь, как из лего, себе систему


Спасибо за ответ. В авесом-го репе уж слишком много всего. Можно конечно тупо под каждый тип либ по наибольшим звездочкам выбрать, но это такое. Можешь перечислить какие-то либы, с которыми лично ты работал и с ними не было диких проблем?
112 2421300
>>421222
ИМХО Standart Project Layout говно какое-то. Медитирую на эти, что скажешь?
https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example
https://github.com/evrone/go-clean-template
113 2421307
>>421271
мимо другой анон

Gin/Gorilla - http server/router
Logrus/Zap - logging
Pgx - коннектор к постгесу
migrate/goose - миграции
squirrel - query builder
114 2421333
>>421271
Мимо другой анон >>421307 всё в целом правильно сказал, разве что в качестве сервера мне почему-то echo чуть больше нравится.
Ещё я вместо squirrel как-то юзал https://github.com/volatiletech/sqlboiler, было тоже норм.

>>421300
Он просто совсем про другое.
https://github.com/ThreeDotsLabs/wild-workouts-go-ddd-example что-то пиздец переусложнен
https://github.com/evrone/go-clean-template только хотел сказать, что норм, а потом увидел, что в usecase у него постгерсовый репозиторий встроен. Нельзя так делать, фу.
115 2421394
>>421307
>>421333
Спасибо, анончики.
116 2421440
каждый раз когда кто-то пишет DDD я вижу "долбоеб"
117 2421485
>>421440
Поясни
118 2421674
Аноны, снова прошу помощи. Как за-IoC'ить контекст. То есть, что бы не хардкодить в запросах создание новых контекстов (с таймаутом конкретно), а задавать при компоновке сервера, например.
Такой вариант, наверное, не подойдет:
type Server struct {
...
__DefaultCtx context.Context
...
}

Поскольку при инициализации структуры, если это таймаут сразу отработает и сдохнет.

На ум приходит только такой вариант с функцией-генератором контекста, которую передает в структуру пользователь:
type Server struct {
...
__DefaultContext() func()(context.Context)
...
}

и уже в хендлерах он генерится, например при запросе к базе
res, err := db.Exec(server.DefaultContext(), "some shit")

Подскажите, насколько норм это решение. Применяется ли где-то (я не видел)? Какие бест практисы для этого кейса? Хардкодить же не норм?
119 2421860
>>421674
с какой целью интересуешься?
для таймаутов у сервера уже есть свои настройки таймаутов.
если нужны withvalue или все таки хочешь выебнуться с таймаутами, то делай мидлвару и подменяй реквестовский контекст.
r = r.WithContext(wrapcontext(r.Context()))
next.ServeHTTP(w, r)

с твоим server.DefaultContext() ты теряешь контекст от реквеста и, соответственно, не отреагируешь, если реквест отменится раньше, чем твой таймаут кончится или всё кончится.
ну и написать ctx, cancel := context.WithTimeout(ctx, s.Timeout) это не хардкод.
120 2422112
>>421674
Ну такое, в целом пойдет, но лучше вынести это в миддлварь.

Соответственно при конфигурировании роутера у тебя будет
s := NewRouter()
s = s.WithMiddleware(
WithTimeout(time.Minute) // Твой кастомный миддлварь
)
s.Route("/hello", func() {})
api := s.Group("/api")
api = api.WithMiddleware(
WithTimeout(time.Second) // Сможешь конфигать конкретные роуты или подгруппы роутов
)

Посмотри документацию на свой роутер, полюбому такой миддлварь должен входить в стандартный набор. Вот к примеру для эхо: https://echo.labstack.com/middleware/timeout/
Ну и конечно учитывай, что теоретически на уровне пакета net можно настраивать таймаут самого соединения твоего сервера, что как бы то же самое, но по-другому.
121 2422118
Нахуй нужен го, если есть прекрасный Rust. Все хвастуются что го быстрей пухтона, так вот Rust быстрей вашего го и не такое дерьмо как кресты
122 2422120
>>422118
ну начнем с того что мне не нужно ревьюить написанный на расте код коллег
123 2422122
>>422120
намёк на то, что гофмт решает большинство доёбов на код? То есть, если на го написано, то автоматически богокод и смотреть не стоит, чтобы не ослепнуть от сияния?
124 2422178
>>421860
>>422112
Спасибо, действительно годные варианты.
125 2422237
>>422118
Раст тоже хороший язык. Они с го просто решают разные задачи. А ещё на расте хрен найдешь работу, а на го вполне можно.
126 2422239
>>422122
да не, не особо. у нас например явно заявлено, что код ревью с замечаниями, которые может отловить линтер - это хуевое код ревью. да и в реальности ни в какую серьезную контору с любым языком не наймут парнишек, которые не знают что такое автоформаттер
127 2422273
>>422239
Тем не менее, гошный gofmt это топ хотя бы потому, что снижает когнитивную сложность. В отличие от всяких там js где каждый пишет как хочет и где есть много конкурирующих стандартов, в го такой один.
Если после gofmt -w ./... что-то изменилось, значит код надо править и такой код даже до ревью доходить не должен.
В итоге, весь код на го, на всех проектах, во всем мире, написан одинаково. Принцип наименьшего удивления срабатывает и действительно становится комфортнее.
Жаль, что деды, стоящие у руля го, остановились на этом, могли бы стандартизировать интерфейсы роутеров, затащить в стдлиб аналог лодаша, чтобы на каждом проекте свои велосипеды не писали, и тд и тпю
128 2422287
>>422273
Деды не осилили бы сделать всё общо и при этом понятно. Создание фреймворка-стандарта индустрии отдано сообществу. И в нём они прорастают
129 2422339
>>422287
Никаких фреймворков-стандартов в го нет и не будет. Единственный способ, как бы это могло прорасти - быть спущенным сверху, как это произошло с кодстайлом, го модулями и тд и тп.
И скудный стдлиб обещает нам очень, очень много велосипедов, да.
130 2422359
>>422339
Растоблядь, съеби уже. Твоё говно не взлетит.
131 2422362
>>422237

> на расте хрен найдешь работу, а на го вполне можно


С такой-то логикой тебе на пхп или 1с надо перекатываться. Вообще чем дерьмовее язык, тем проще на нём найти работу, так что аргумент не в пользу goвна
132 2422470
Сап, Аноны. Захотелось одно гуи приложение сделать для личных нужд. Которое бы там с апи двача взаимодействовала, через него можно было постить решая попутно в этом же гуи капчу, работа с картинками, их редактирование определенным образом прямо в гуишке. Но нужно чтобы было кроссплатформенное, поэтому C# отлетел, а Java фреймворки я пролистал, там как-то уныло выглядят приложения. Плюсы тоже отлетают, на них долго и муторно что-то писать. Функциональные языки какая-то муть, а остальное для гуи наверное так себе подойдет.

Но вот увидел Fyne у Go, выглядит прикольно, думаю почему бы не попробовать. Но есть важный момент, в Fyne интерфейс пишется вслепую, кодом? Или можно как в том же шарпе или QT в идешке задавать общий вид гуишки через редактор?

И да, в Go можно нормально с изображениями работать?
image.png77 Кб, 250x309
133 2422474
Есть в треде перекатчики или параллельно пишущие на шарпе/жабе? Как вам Го?
Думаю выучить ваш язык заодно, выглядит интересно. Какой книжкой обмазаться для людей, имеющих опыт программирования?
134 2422480
>>422474
Да нет годных продвинутых книг по Го, по крайней мере я не видел. Пикрил можно полистать, но это на уровне чтения доки - все примеры в мейне, что расстроило.
Гугли отдельные статьи по интересующим темам, по основам языка можно Го-тур пройти.
135 2422484
>>422480
сейм анон
Для меня проблема с Го в том, что нет single source of truth. Мне приходится читать кучу статей, смотреть множество примеров, чтобы начались зачатки понимания и интуицияотносительно того, как следует на нем писать. При этом у всех свои подходы и приходится самому анализировать и отделять зерна от плевел. Но я не опытный, возможно у тебя пойдет проще.
136 2422803
>>422362
А с твоей черно-белой максималистской логикой тебе в школу, к подросткам.
Да, wordpress, реакт и говно на java 8 - наверное самые популярные вакансии, и да, есть такая закономерность, что чем что-то популярнее, тем больше оно рассчитано "на тупых". Но это не означает, что критерием востребованности вообще не стоит оперировать. Только недавно в твиттере видел треды чувака, как он пытался найти работу на расте, спойлер - нихера почти нет, это язык больше для пет проектов пока что. За рубежом ещё можно найти крупные конторы типа mozilla или dropbox, которые что-то на нём делают, а в снг точно с этим сложно.

Соответственно, если язык тебе нужен не программировать в своё удовольствие, то ты должен комфортностью языка лично для тебя, да, но при этом ещё и помнить про свою востребованность на рынке. Если твой язык используют 3.5 конторы на всю страну к примеру, то не так-то легко будет найти работу если вдруг уволят с первого места работы. Да и с зп будут проблемы.

У меня 7/10 собесов заказчиваются ничем, но не потому что я такой плохой, а потому что целенаправленно ищу хорошие офферы за 500 к рублей/мес перешагнул довольно давно. На маленьком рынке труда такое невозможно в принципе, выше среднего платит в лучшем случае одна контора из десяти, а их всего десять, лол.
137 2422812
>>422470
Я бы го для такого не рекомендовал. Не знаю, насколько хорош Fyne, но юзабельность пакета зависит от числа разработчиков, числа пользователей и времени его существования.
Очень сомневаюсь, что база хотя бы пользователей сопоставима с любым gui-фреймворком той же джавы. А это означает баги, отсутствие или неполную документацию, отстуствие или малое число гайдов и тд и тп.
Короче, может быть норм, а может, напляшешься и наприседаешься. Но если готов к этому, то бери конечно, может быть интересный опыт.

А если ты хочешь прям сделать приложуху, то есть минимум боли и максимум результата, то лучше взял бы что-то из C#/Java/QT, смотря что знаешь. На кроссплатформенность можешь кстати наплевать, у линуксоидов вайн есть и вообще им так даже больше нравится сделают уебищный но зато опенсорсный порт на GTK как обычно.
Или, неиронично, возьми электрон. Да говно, да много весит, да во рту вкус говна - но зато хуяк хуяк и готово. JS ты полюбому знаешь.

>>422484
Я считаю себя опытным, но вообще same shit, большая часть контента на го - helloworld'ы сомнительного качество, придется разбираться во всем самому
138 2422989
>>415962
Сбер?

Паша, это ты?
139 2422997
>>422989
Мимо джавист из сбера, знаю много таких историй про самых разных коллег.
140 2423021
>>422989
Зависит от конторы. Вообще для девопса мб питон лучше бы подошел.

>>422997
А я и не удивлен
141 2423319
>>412897
Пока на Го больше вакух чем на сисярпе (в ДС2 150 по первому и 50 по второму). Вот второму, кстати, реально пиздища - Майкрософт полностью сматывает удочки и никому там неинтересно что начиная с дотнет кора шарп заводится где угодно и совсем не обязательно использовать MSSQL и WinServer.
Судьба оставшихся шарпомистов незавидна - они будут педалить унылое устаревшее легаси до пенсии которой не будет.
142 2423331
>>423319
Пиздеж фанбоя goвна
143 2423339
>>412897
а что с Авито? вроде бы набирают людей на говно и дальше/
144 2423625
>>423319
Странно, в дс "golang":600 "C# OR .NET": 2000
Жалко, что Core заопенсорсили, а то могли бы удаленно избавить РФ от своей параши.
145 2423738
>>423319
А потом goвноед проснулся и заплакал
146 2423781

>а вот у этого языка вакух больше


>нет вот у этого больше


вы безработные штоли? зачем вам эти галеры?
147 2423833
>>423781
Может он хочет на все 2к вакансий вкатиться, overemployed сейчас в тренде
148 2424133
>>423833
Это ты тот шиз, который здесь срёт "достаточно одной вакансии"?
149 2424654
>>422474
Пишу на жабе большую часть времени.

>Как вам Го


Смешанные впечатления. Радует то, что код в большинстве проектов достаточно прозрачен, без всякой магии под капотом.
С другой стороны в языке какой-то убогий синтаксис, и много чего полезного нет в стандартной библиотеке. Тех же коллекций, например.
Видимо это из-за отсутсвия дженериков проявляется.
Ну и еще очень сильно не хватает функциональных фишек уровня стримов в жабе. Очень сильно не хватает.
150 2425466
>>421485
есть такой вид людей - любители архитектурить. часто такие приходят в гошку из шарпов и жавы и пытаются писать на гошке, как на своем говне. если в тексте есть слово ДДД, то с вероятностью 99% где-то рядом при написании присутствовал этот человек.
их ещё в начале 00х раскусили https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/
151 2425540
>>425466
Бля, охуенная статья. Непстер, соап, хмл, смуззихлебский дотнет.
152 2425556
>>424133
Я тот шиз, который срёт "надо все ЯП ранжировать по количеству вакансий, в тот, где больше всех вакансий вкатиться реально, во все остальные - нереально".
153 2425601
>>421440

>DDD


Dolbaed Driven Developement
154 2425825
Ваш говноязык даже гугл бросил и пилит теперь новую игрушку.
155 2425832
>>424654

> Ну и еще очень сильно не хватает функциональных фишек уровня стримов в жабе. Очень сильно не хватает.


Мне тоже, но тут можно только смириться. Аудитория гошников на большой процент состоит то ли из сишников, то ли из каких-то очень странных людей, которые вот прям любят процедурный стиль и вот это всё. А ещё дико дрочат на перфоманс и скорость компиляции в ущерб всему остальному, поэтому и функциональщина им не нравится (потому что оверхед), и умный компилятор, который бы сам раскрывал всю эту функциональную дичь не хотят. Такой, не знаю, то ли нигилизм, то ли луддизм.

При этом сама философия го мне нравится, и действительно работая с функциональным кодом на джаве/котлине, написанном теми же мобильщиками, я иногда просто охуеваю от того, сколько ненужных телодвижений и приседаний они делают, чтобы написать функционально или "красиво" в их понимании. Ну знаете этот прикол, когда ты вместо мутации одного объекта, который точно за пределы функции не выйдет и не изменится, вы создадите 10 его иммутабельных копий, позасираете оперативку и всё такое, надеясь на то, что "гц быстрый, справится", хотя можно было бы его просто не нагружать. В общем есть некое здравое зерно в гошной философии, просто на языке пишет куча долбоебов ситхов, которые всё возводят в абсолют и отрицают вообще любой синтаксический сахар и хотят только одного, старый-добрый си, но с гц, видимо, го 1.13 их идеал и лучше для них уже не будет :)

>>425466
Вот только как правило когда заходишь в код тех, кто громче всего кричит про то, что "архитектура не нужна", в итоге кровь из глаз течет, все перемешано, нихуя не понятно и не разобрать, сайд эффекты во все поля и нигде нет блять элементарной логики.
Архитектура не просто так придумана, все броские термины типа DDD это конечно смузи, но смысл-то у них правильный: структурируй, сука, логику, которую ты пишешь, чтобы потом не охуеть. Всё, вся архитектура ровно об этом.
Каждая вещь в коде должна делать одно своё дело, понятное, и
четко очерченное и по минимуму затрагивать остальные вещи. Тогда при большом количестве кода ты не загнешься от каловых наслоений и лапши, и чей-нибудь говнокод будет проще локализовать и выбросить.
Иногда для этого приходится делать лишние телодвижения, какие-то интерфейсы подсовывать, да. Это называется "работа на вырост", при постройке здания тоже знаешь-ли котлован приходится рыть, фундамент заливать и всё такое.

Тут не надо давать себя обмануть, есть целая куча говнокодеров, которые хуячат паттерны не понимая, что это и зачем надо, джава например этим проклята, в итоге у них получаются фабрики фабрик фабрик и это тоже пиздец. Но это не имеет отношения к архитектуре и не делает сами по себе паттерны они же тупо приемы структурирования кода хуже, просто люди делают хуйню. Бывает.
155 2425832
>>424654

> Ну и еще очень сильно не хватает функциональных фишек уровня стримов в жабе. Очень сильно не хватает.


Мне тоже, но тут можно только смириться. Аудитория гошников на большой процент состоит то ли из сишников, то ли из каких-то очень странных людей, которые вот прям любят процедурный стиль и вот это всё. А ещё дико дрочат на перфоманс и скорость компиляции в ущерб всему остальному, поэтому и функциональщина им не нравится (потому что оверхед), и умный компилятор, который бы сам раскрывал всю эту функциональную дичь не хотят. Такой, не знаю, то ли нигилизм, то ли луддизм.

При этом сама философия го мне нравится, и действительно работая с функциональным кодом на джаве/котлине, написанном теми же мобильщиками, я иногда просто охуеваю от того, сколько ненужных телодвижений и приседаний они делают, чтобы написать функционально или "красиво" в их понимании. Ну знаете этот прикол, когда ты вместо мутации одного объекта, который точно за пределы функции не выйдет и не изменится, вы создадите 10 его иммутабельных копий, позасираете оперативку и всё такое, надеясь на то, что "гц быстрый, справится", хотя можно было бы его просто не нагружать. В общем есть некое здравое зерно в гошной философии, просто на языке пишет куча долбоебов ситхов, которые всё возводят в абсолют и отрицают вообще любой синтаксический сахар и хотят только одного, старый-добрый си, но с гц, видимо, го 1.13 их идеал и лучше для них уже не будет :)

>>425466
Вот только как правило когда заходишь в код тех, кто громче всего кричит про то, что "архитектура не нужна", в итоге кровь из глаз течет, все перемешано, нихуя не понятно и не разобрать, сайд эффекты во все поля и нигде нет блять элементарной логики.
Архитектура не просто так придумана, все броские термины типа DDD это конечно смузи, но смысл-то у них правильный: структурируй, сука, логику, которую ты пишешь, чтобы потом не охуеть. Всё, вся архитектура ровно об этом.
Каждая вещь в коде должна делать одно своё дело, понятное, и
четко очерченное и по минимуму затрагивать остальные вещи. Тогда при большом количестве кода ты не загнешься от каловых наслоений и лапши, и чей-нибудь говнокод будет проще локализовать и выбросить.
Иногда для этого приходится делать лишние телодвижения, какие-то интерфейсы подсовывать, да. Это называется "работа на вырост", при постройке здания тоже знаешь-ли котлован приходится рыть, фундамент заливать и всё такое.

Тут не надо давать себя обмануть, есть целая куча говнокодеров, которые хуячат паттерны не понимая, что это и зачем надо, джава например этим проклята, в итоге у них получаются фабрики фабрик фабрик и это тоже пиздец. Но это не имеет отношения к архитектуре и не делает сами по себе паттерны они же тупо приемы структурирования кода хуже, просто люди делают хуйню. Бывает.
156 2426288
Какие мысли по продвижению гошки?
Компания, где всего несколько го-команд и много жавистов. Как бы про жава командам попродавать гошку, чтобы она зашла
157 2426311
>>426288
Вот вообще не факт, это очень разные языки. Попробуй продать тем же гошникам джаву и увидишь ответ.
Каждый пишет на том, что хочет, тем более, что если у вас там прям хорошо приготовленная джава, в том числе архитектурно что конечно редкость, скорее всего говнокод, то именно процесс кодирования на ней будет сильно комфортнее. Банально IDE развитее, код почти не пишешь, всё автодополняется, подсвечивается, выводится на лету и тд и тп. Куча хелперов, стдлиб богаче, стримы есть. Дебаггер опять же лучше и комфортнее. Короче, нереально.

Джависты приходят в го обычно, когда их задалбливает магия, десять слоев на пустом месте и вот это всё, но такое с опытом приходит и "продать" такое нельзя конечно.

Тому же бизнесу го и то продавать выгоднее, банально дешевле косты. Один сервис на джава у вас скорее всего жрет столько же денег на инфру, сколько все сервисы на го, вместе взятые. А оперативка конечно дешевая, но если поставить вопрос так, что хотим ли мы платить за десять серверов или только за один, то ответ может быть интересным.
158 2426417
>>426288
зачем?
159 2426496
>>426417

так го же лучший язык на рынке для веба

как можно смотреть как люди страдают от жырных полных xmlя и дичайшей магии спрингов?

их надо спасти
160 2426572
че они харкач так долго обновляли? вот на микросервисах бы сделали с айджайл разработкой такого бы не было
161 2426580
>>426572
Не пытайся наебать, здесь все знают, как это работает.
Знакомый заказывал у одной веб-студии сайт-визитку с каталогом продуктов, так те настаивали на том, чтобы сделать проект с современными подходами, модными технологиями, микросервисами и предложили ценник в полмиллиона и полгода работы.
162 2426598
>>426580
ну так там развод на баблосекс очевидный, для сайта визитки 3-4 микросервиса максимум, хотя мб там чел ёбу хотел какую-то с парсингом и нейронками
163 2426618
>>426598

> для сайта визитки 1 сервис максимум


Пофиксил.
164 2426648
>>426311

>Один сервис на джава у вас скорее всего жрет столько же денег на инфру, сколько все сервисы на го, вместе взятые



Го настолько легковесный?
165 2426649
Хотя спринг как не в себя жрет, это факт
166 2426659
>>426648

> Го настолько легковесный?



минимум накладных расходов, вся используемая память перед глазами

> Знакомый заказывал у одной веб-студии сайт-визитку с каталогом продуктов, так те настаивали на том, чтобы сделать проект с современными подходами



Это на самом деле имеет смысл. Сейчас переписываю старую систему на гошку, а почему? Потому что тогда сделали все по бырику, а сейчас на это говно не смогли найти спецов, нет их. Перепиливаем на модном, потому что оно будет модным еще долго.
167 2426692
>>426618

> для сайта визитки вообще сервисы не нужны, это блять визитка. Раздавайте тупо статику, можно даже серверлесс.


Я лучше пофиксил
168 2426709
>>426692

ты забыл отметить, насколько го хорош для серверлесс, учитывая aot компиляцию, мгновенный старт, экономное потребление памяти, высокую производительностьН легкость написания кода и тп
169 2426711
>>426692
Один сайт - это и есть один сервис.
Нахуй серверлесс в визитке, там достаточно ебучего скрипта на пхп на 200 строчек, либо взять CMS, тогда строчек будет 0.
170 2426717
>>426711

пахнет нулевыми, деда.

визитка это
- либо nocode-решение
- либо jam-stack, если контент побольшей части статический
- либо серверлесс, если есть много динамический элементов, вроде многоруких бандитов или какой-то функциональности
171 2426721
>>426717
Нулевыми это пахнет только для тех, кто хочет наебать и вытрясти побольше деняк с клиента. А CMS - это и есть nocode-решение, и потребность в этом говне не пропадёт никогда, потому что быстро и дёшево. Даже если переписать CMS с пхп на го.
172 2426728
Golang лучший и единственный! Устроим языковый нацизм, нужно отказаться от всего мусора и юзать один великий и всемогущий!
изображение.png122 Кб, 1000x567
173 2426729
>>426728
Никогда такого не было - и вот опять.
174 2426731
>>426721

нет cms - это жопа, которая будет доить клиента разными проблемами
под nocode я имел ввиду saas решение, если это одноразовая штука с понятными требованиями, под которые есть готовые фичи у saas решения

иначе лучше пилить свое, выйдет не сильно дороже, зато кастомизируемо
175 2426732
>>426731
Не будет. CMS - решение, проверенное временем, в отличие от твоего saas, который создаёт больше проблем, чем решает.
176 2426734
>>426732

кто тебя выпустил из пыха-треда? сидите в своем загончике, утопая в дерьме

не надо мне рассказывать, какие ваши вп и битриксы беспроблемные, вас уже все раскусили и готовы платить или за саас или за заказную разработку
177 2426735
>>426734
Не готовы, это слишком дорого и долго. Не пытайся наебать.
178 2426742
>>426728
Golang это что? Гугл пишет на Carbon.
179 2426743
>>426742

даж в ридми карбона написано, что если можете использовать современный язык, вроде го, то используйте его

карбон для легаси, где нужна тесная интеграция с плюсами, но нервов на плюсы уже не осталось
180 2426744
>>426742
А ещё гугл пишет на дарте. Классный язык, говорят, с большим будущим.
181 2426745
>>426735
Всем похуй на бизнес и что ему дорого/дешево, это его проблемы. Уважающий себя человек не станет работать с твоим CMS, лучше уж пойти вагоны разгрузить. Ребята тут за идею ебашут.

Когда ты решаешь свою задачу с помощью CMS - ты просто меняешь время своей жизни на деньги. Причем не очень большие. Если ты за чужой счет затягиваешь оверхэд технологии, просто потому что так интереснее/можно обкатать на котятах новую технологию, чтобы перейти к более стоящим вещам - маладца.
182 2426746
>>426744
Бекенд на дарте пишет наверное?
183 2426751
>>426745

> Всем похуй на бизнес и что ему дорого/дешево, это его проблемы.


И, как следствие, проблемы клиента. Клиент пойдёт за визиткой туда, где дешевле, а не где ему будут ебать мозг, чтобы анальникам было интереснее юзать новые технологии.

> Уважающий себя человек не станет работать с твоим CMS, лучше уж пойти вагоны разгрузить.


Тяжёлый физический труд зимой в хуёвую погоду за копейки vs аутировать в офисе и заниматься лёгкой работой клепания сайтиков на CMS. Тяжёлый выбор, конечно.
184 2426753
>>426746
Не пишет, в том-то и дело. Создал язык и сразу же его похоронил.
185 2426754
>>426751

ты, senior bitrix developer, ну тебе же уже объяснили, что когда клиенты наелись говна с тобой, кстати, платя тебе копейки, они приходят к нам за нормальным решением
и опять же, спасибо тебе, готовы платить нормальные бабки
186 2426755
>>426753
да лан вам, флаттер более чем вытсрелил
187 2426756
>>426754

> они приходят к нам за нормальным решением


И получают ещё больше говна дороже. Затем возвращаются обратно.
188 2426757
>>426756

мечтай)) может тебе когда-нибудь такое приснится.
189 2426758
>>426751

>Тяжёлый выбор, конечно.


На самом деле не так очевидно.

>Тяжёлый физический труд зимой в хуёвую погоду за копейки


Пробудит у тебя глубинные экзистенциальные вопросы, найдя ответы на которые, ты сможешь осмысленно и фундаментально изменить свою жизнь

>аутировать в офисе и заниматься лёгкой работой клепания сайтиков на CMS


Эта же ветка приведет лишь к разочарованию, осознанию своего ничтожества, в перерывах, когда непрерывный бренфог рассеивается, например во время отпуска. Только импульса менять статус кво не будет, потому что ты уже потерян
190 2426759
>>426757

> ))


Ясно всё с тобой.
191 2426760
>>426758
База.
192 2426770
Этот чухан битриксоид не наш, у нас выебоны протухшими 15 лет назад CMS тоже зашкваром считаются.
мимо из пхп треда
193 2426773
>>426732
Долбоеб детектед. Ну какая блять CMS для визитки? O_O
Там контента-то нет, тебе нужно просто раздать статику и всё.

Я когда говорил про серверлесс как раз и имел ввиду, что тебе даже свой сервер не нужен, залей верстку визитки на любой хостинг, который умеет этот html показывать и всё. Можно даже на cloudflare кстати.

>>426742
Кстати гугл на го не пишет. У гугла половина на джаве, половина на плюсах. Ну то есть как у любой суперкрупной конторы у них есть всё на всех языках но написания на го, как корпоративной политики у них нет, в отличие от жавы и плюсов.
А и ещё на го у них там знатный говнокод, по рассказам людей оттуда.
Это я не к тому, что го плохой, а к тому, что "язык от гугла(тм)" это какой-то всратый маркетинг и баззворд, не ведитесь на него. Гугл его в лучшем случае спонирует, как и много других языков и технологий, но не больше.
194 2426778
>>426773
Визитка - это общее название. Как правило, нужны ещё каталог товаров, пара форм и почта. Ради лендинга из одной страницы никто даже обращаться в веб-студии не станет и возьмёт какой-нибудь говноконструктор.
195 2426796
>>426778
Почта заводится на любом гугле, там даже домен свой прикрутить можно. Пара форм тоже при сабмите отправляют инфу в ту же почту. Каталог товаров это та же статика и отлично умещается на ту же страницу.
Всё ещё ни cms ни свой хостинг не нужны.
196 2426970
Бывало у кого-нибудь, что http.NewRequest() возвращает как Response nil всегда, притом, что с http.Client.Do() все работает нормально? Мб я что-то не то сделал
197 2426979
>>426970
Так на пике 1 ты только создал запрос, но не отправил его, откуда респонсу взяться?
198 2426981
>>426979
ебать я тупой, реально
199 2427090
>>426796
Если всё делать так примитивно, как ты описываешь, то вообще никому сайты не нужны, достаточно во вконтактике создать паблик и постить там эксельки с базами, хотя любая CMS с этим справится намного лучше. Это всё твои попытки наебать, типа либо клиенту вообще ничего не нужно, либо саас серверлесс микросервисы за стотыщмильёнов, которые обычному клиенту нахуй не сдались, они для энтерпрайза.
200 2427256
Фуллстек на CMS за 70к, ты?
201 2427626
Аноны, я ебнулся или система или корс
Короче у меня апишка такая:
1. Посылается POST на 1 эндпоинт
2. Сервис посылает запрос на другой эндпоинт методом POST
И тут я ловлю 307 статус код. Чё с этим делать вообще?
202 2427650
>>427626
Редиректиться, хуле. Но 307 редирект дефакто мёртв, так что ковыряй логи.
203 2427680
>>427090
Это называется не "примитивно", а "не усложнять, пока не надо будет". Твои CMSки это и есть попытки наебать, их нужно поддерживать, обновлять, и тд и тп. Как из пушки по воробьям.
Вот когда у клиента появится личный кабинет, корзина, доставка, список продуктов, региональные цены, ревизии и всё такое, тогда я и предложу ему shopify as a service, потому что клиенту надо, чтобы работало за минимальные ресурсы, а не чтобы ему универсально всратые комбайны на сервер ставили, лол.
Большинству сайтов на том же вордпрессе вордпресс и не нужен, хватило бы любого онлайн хостинга страничек и темы, которую туда можно натянуть, можно своей. Мало у кого реально есть столько контента, чтобы возникала нужда в системе, чтобы им управлять.

Ты этого пока не понимаешь, и тебе нравится делать сложно и совать везде комбайны, потому что нравится ощущение мощи под капотом. Это нормально, но если будешь развиваться, то с годами пройдет и ты научишься ценить простоту решений. Если можно захостить какую-то херню из эксельки, то проще сделать из эксельки, чем городить огород ради огорода. Усложнять можно всегда и до бесконечности, но делать это нужно только тогда, когда без этого не обойтись, а тут нужен опыт.

Thrust me, я на заре своей карьеры несколько лет потратил на разработку "на cms" (тогда это было ещё модно), знаю о чём говорю.
image.png17 Кб, 516x570
204 2428413
>>427650
А там хуйня в location, в итоге редирект по тому же пути и также 307, проблема была в пути роутера, он редиректит, если путь не заканчивается слешем.

Аноны, прошу совета у знающих людей
Как лучше всего делать запрос через время определенное? То есть например, нужно чтобы через 2 часа произошел какой-то прикол, когда тебе на эндпоинт приходит запрос. Просто слипнуть или горутину сделать никак, потому что ты не сможешь отправить ответ (нужно ждать 2 часа). В итоге я почитал про очередь запросов и выкакал что-то типа такого: https://gist.github.com/elegantcookie/9aeb3de3e390d8e702ba56938a0f6624

То есть у нас есть очередь запросов и когда туда приходит запрос, он добавляется в очередь и там происходит бизнес логика. Но мне чето не сильно нравится этот варик, мб можете подсказать что-то дельное или пример такой штуки привести?
205 2428591
хадокенпхп.jpeg52 Кб, 720x511
206 2428593
207 2428624
>>428593
Двачую, тоже люто проиграл с этого
208 2428638
>>428413
пишешь в какой-нибудь пульсар отложенное сообщение.
либо в БД сохраняешь джобу и своим обработчиком достаеш.
в памяти сервиса хранить это такое себе
image.png536 Кб, 620x504
209 2428695
>>428638
Окей, скорее всего так и сделаю

Вот кстати схему приложил, как оно должно работать примерно. Как можно функцию обработчика исправить, чтобы она не выглядела как пик >>428593?
211 2429088
Аноны, продолжаю писать тестовые, что бы подкачаться к устройству.
На этот раз достаточно тривиальное от Авито, сабж:
https://github.com/avito-tech/tm-backend-trainee
Если в кратце, в БД кладем структуру с опциональными полями, возвращаем ту же структуру с доп вычислениями на основе опциональных полей.
Собственно для реализации опциональных полей определил такую структуру на вход:

type AdStats struct {
// input
Date time.Time `json:"date,omitempty"`
Views &int `json:"views,omitempty"`
Clicks &int `json:"clicks,omitempty"`
Cost &float64 `json:"cost,omitempty"`
}

И такую на вывод:

type AdStatsCalculated struct {
Date time.Time `json:"date,omitempty"`
Views &int `json:"views,omitempty"`
Clicks &int `json:"clicks,omitempty"`
Cost &float64 `json:"cost,omitempty"`

Cpc &float64 `json:"cpc,omitempty"`
Cpm &float64 `json:"cpm,omitempty"`
}
(вместо звездочки написал амперсанд, что бы двач не форматировал).
Вроде решение простое и в лоб, но все таки меня смущает такое обилие поинтеров. Естественно все проверки
Поскольку логика тривиальная по сути везде юзаю эти ДТОшки.

Насколько вообще норм такой подход. Нужно ли уходить от пойнтеров или такое решение оправдано? Если нужно, как можно альтернативно реализовать такую функциональность?
211 2429088
Аноны, продолжаю писать тестовые, что бы подкачаться к устройству.
На этот раз достаточно тривиальное от Авито, сабж:
https://github.com/avito-tech/tm-backend-trainee
Если в кратце, в БД кладем структуру с опциональными полями, возвращаем ту же структуру с доп вычислениями на основе опциональных полей.
Собственно для реализации опциональных полей определил такую структуру на вход:

type AdStats struct {
// input
Date time.Time `json:"date,omitempty"`
Views &int `json:"views,omitempty"`
Clicks &int `json:"clicks,omitempty"`
Cost &float64 `json:"cost,omitempty"`
}

И такую на вывод:

type AdStatsCalculated struct {
Date time.Time `json:"date,omitempty"`
Views &int `json:"views,omitempty"`
Clicks &int `json:"clicks,omitempty"`
Cost &float64 `json:"cost,omitempty"`

Cpc &float64 `json:"cpc,omitempty"`
Cpm &float64 `json:"cpm,omitempty"`
}
(вместо звездочки написал амперсанд, что бы двач не форматировал).
Вроде решение простое и в лоб, но все таки меня смущает такое обилие поинтеров. Естественно все проверки
Поскольку логика тривиальная по сути везде юзаю эти ДТОшки.

Насколько вообще норм такой подход. Нужно ли уходить от пойнтеров или такое решение оправдано? Если нужно, как можно альтернативно реализовать такую функциональность?
image.png56 Кб, 625x647
212 2429194
>>428790
Ну кароче я переделал, вот так должно быть норм, вроде и проц не грузит сильно
213 2429381
>>429088
Во первых твои две структуры отличаются только наличием и отсутствием значений, как я понял, так что возможно проще их слепить в одну, пусть будет AdStats, а calculated оно или нет будет понятно из контекста (в смысле заполнены у него поля или нет). Твой вариант в целом тоже норм, но возможно немного overcomplicated.

Теперь к сути вопроса. В го есть несколько вариантов работы с отсутствующими значениями (они же null в других языках):
1) Это zero-значения, то есть 0 для инта и так далее. Это прикольно с точки зрения производительности, но иногда абсолютно непонятно в моменте, там 0 потому что нет значения или потому что дефолт? Короче иногда норм, а иногда прям больно;
2) Это поинтеры, то есть по сути nullable значение. Плюс в том, что nil c &0 ты никак не перепутаешь, минус - это нагрузка на гц, да. Но можешь мне поверить, от одного (или даже 10, или 100) поинтера пер запрос го ничего не будет, гц вполне неплохо справляется с большими (но не сверх-большими) объемами указателей, это не должно тебя прям пугать. Так что за этим нужно следить и в узких местах оптимизировать, но в общем случае это вполне себе решение, я почти везде именно его использовал до недавнего времени;
3) Это такой недо-optional, например NullString из стандартной библиотеки. Грубо говоря это значение с флагом, NullableInt { Val iint, Exists nool}, помогает разлепить 0 и null и эффективно с точки зрения памяти;
4) Полноценный optional на дженериках, их с прошлой версии го стало можно делать. Единственный минус, в стдлиб универсального Optional[T] пока нет, но по идее структура тривиальная, мб и завезут когда-то.

В конкретно твоём случае я думаю, тебе везде нужно оставить просто int, потому что 0 статистики и отсутствие статистики в целом примерно одно и тоже. Или сделать все int (вместо твоего *int) и рядом поставить флаг is_calculated, ну короче думаю ты меня понял.
214 2429384
>>429381
Пардон, NullableInt { Val int, Exists bool} конечно же, чет я опечатался
215 2429386
>>429194
1) Я думаю у тебя в каждом цикле должен создаваться свой context.Background с каким-то таймаутом, чтобы у тебя конкретный прогон цикла отваливался если зависнет;
2) Ошибки всё же обрабатывай, в логи хотя бы пиши, а не просто скипай, потом пригодится; Паника тут конечно вообще пиздец как не к месту;
3) Expired не скипай просто так в коде, нарвешься на случай, когда их будет ровно столько же, какой ты лимит укажешь в GetAll и у тебя всё застакается нахрен. Лучше прям в GetAll сделай условие в самом запросе. Вида `select * from tasks where call_until < NOW()`;
4) Лимиты кстати могут быть нужны, если у тебя их там нет, потому что задач теоретически может быть очень много. Норм схема делать это в два цикла примерно так: https://go.dev/play/p/9WXkfY92olm
5) Возможно стоит таски селектить через select for update skipped locked, чтобы дважды запущенный сервис не начал одно и то же выполнять; Но для этого придется всё в транзакцию обернуть;
6) Так часто долбить запросами базу (если это база) не стоит. Советую прикрутить туда ExponentialBackoff, чтобы проверял базу на таски каждые 1,2,4,8 и тд миллисекунд вплоть до 10 секунд максимум к примеру. Так оно будет быстро разгребать очередь в случае большого потока задач и не будет создавать большую ненужную нагрузку если задач особо нет;
7) Кстати непонятно, нахрена ты удаляешь таск если пришла ошибка. Ошибки это часть жизни, это сеть, она может мигнуть, пакет может пропасть и тд. Обычно таск просто скипается в таком случае.
87gbak.mp4390 Кб, mp4,
278x330, 0:09
216 2429389
>>429386

>context.Background с каким-то таймаутом

217 2429390
>>429389
for {
ctx := context.WithTimeout(context.Background(), time.Second*10)
// и вперед юзать ctx.
// тогда одна итерация цикла у тебя займет не более 10 секунд, если соединение провиснет, база затупит и тд
}
218 2429394
>>429088
поинтеры норм, если тебе нужно отличать nil. тут можно пожаловаться на постановку задачи, т.к. не понятно как при вычислении среднего учитывать даты у которых NULL значения - считаем ли их за ноль (и тогда без боли можем убрать поинтеры и заюзать зеро велью) или просто пропускаем.

алсо делать из реквеста и респонса одну суперструктуру не стоит
219 2429403
>>429394

> алсо делать из реквеста и респонса одну суперструктуру не стоит


Из реквеста и респонса не стоит, а моделировать то, что лежит в бд в виде одной структуры ок. Как я понял он на уровне домена зачем-то две структуры хочет использовать=
Условно
stats := Stats{}
statsRepo.Save(ctx, &stats)
calculator.Calculate(&stats)
return stats // а дальше уже ручками маппишь в респонс
220 2429426
>>429390
я к тому, что контекст с таймаутом это не бекграунд контекст.
к тому же там в функции уже есть родительский контекст
221 2429534
>>429381
Спасибо за такой развернутый коммент. Понимания стало больше. Думаю в этом случае оправдано оставить указатели, поскольку в варианте с булеанами нужно будет на каждое calculated поле заводить, поскольку зависят от разных.

>>429394
Согласен, ИРЛ надо было бы спросить об этом, но работаем с тем что есть.

>>429403
Да, в принципе знаю, что иногда оправдано завести несколько структур на domain, DTO для базы, DTO для HTTP, но тут все достаточно просто и плодить сущности без необходимости не стал.
В базе лежит AdStat, у которого есть метод Calculate, который возвращает вторую структуру, которая уже пишется в JSON
222 2429753
":=" - самый конченый оператор присваивания который можно было высрать
223 2429765
>>429753
Именно так, поэтому в Go это не оператор присваивания.
224 2429775
>>429753
Двачую этого анона >>429765
В конче-языкал либо var/let-ами обмазываться, либо постоянно втыкать, это объявление или присваивание.
225 2429794
>>429753
Всё так, поэтому в Go это оператор объявления + присвоения с выводом типа.
Как в джаве var x = "shit";
А присвоение это "="
226 2429834
>>409760 (OP)
Год стажа похапэ, возникло некоторое желание уйти от динамикодрисни. Финтех.
Рассматривал что-то из жаба / шарп / голанг, по-моему больше ничего строгого на проде в беке не юзается.
Учил жабу месяца 4 в свободное время, коммичу в попенсурс, продвинулся до уровня "знаю жаба кор кроме многопотока, коллекций и стрим апи", начал спринг и как-то сдулся спринг мне нравится, сдулся по причине далее. Получается, надо прям дохуя наебенить знаний в голову, чтобы пойти на обслуживание легаси за тот же прайс, который сейчас имею, с достаточно мутными дальнейшими перспективами.
Как по вашему, го имеет шанс стать серебряной пулей для меня?
Если надо что-то ещё пояснить из бекграунда, спрашивайте.
227 2429843
>>429834
Ну в Го тебе придется выдрочить этот сраный многопоток в джаве кстати тоже до уровня "могу с закрытыми глазами написать неблокирующую lock-free хешмапу, а еще могу пояснить за горутины/корутины/файберы/async-await'ы и их различия, могу рассказать про кишочки шедулера и netpoll", на что потребуется довольно-таки дохуя времени, потому что материалов, где это нормально объяснено хуй да нихуя, и большая часть разрабов очень часто путается в этих тонкостях, но эти тонкости всегда спрашивают на собесах, и отвечать нужно очень уверенно.
228 2429847
>>429834

>с достаточно мутными дальнейшими перспективами


В го кстати не очень уж много и платят, ну примерно как тем джавистам во всяких банках и энтерпрайзе, только на го в ритейле и екоммерс обычно пишут. Вообще вилка разраба всегда довольно стандартная вещь и каких-то чудес уровня 250 на руки просто так ждать не стоит
229 2429854
>>429843

> Ну в Го тебе придется выдрочить этот сраный многопоток


Ну я на это подписываюсь, и идеи для петов есть по многопоточке.
Это так или иначе однажды придётся познать.
>>429847
Ну я больше про то, что быть может в гошке не такой гигантский объём знаний.
230 2429859
>>429847
>>429854
И проекты в среднем по больнице поновее, что тоже немаловажно.
231 2429868
>>429854
>>429859
До февраля с пхп на го было довольно просто перейти. Как сейчас - не знаю, количество вакансий более чем в 2 раза сократилось, а до того оно и так не сказать, что большим было.
232 2429879
>>429843
Нихуя, не пугай чувака.
В го придется разбираться с многопотоком, но он довольно тривиальный и в реальной работе нужен редко, если ты свои бд или там аналитическую обработку не пишешь.
Бизнес-логика как правило синхронна или около того.
Так что ему придется выучить несколько базовых паттернов и инструментов типа мьютексов и каналов и чуть теории для собесов.

>>429847
Хз, знаю конторы, где гошникам платят больше. Надо короче рассматривать конкретные конторы, я знаю го ~500к и джаву ~100к. Судя по средней на рынке у них всё +- одинаково.

>>429868
Думаю сокращения происходят +- везде. Но c# должно конечно задеть сильнее всего, раз мелкомягкие ушли из рф.

>>429834
Значится, положняк такой.
Учить теорию и приколы конкретного языка тебе придется в любом случае и в любом случае переход на другой стек без опыта это будет некоторый провал для тебя по рейту. Могу порекомендовать найти контору, у которой есть и php и что-то второе и наняться туда с договоренностью, что у них ты перейдешь фулл тайм на го (к примеру) со временм. Так и ты придешь не с нулём опыта, и контора получит кого-то +- что-то знающего.
По поводу выбора.
c# в целом найс, но я хз какие у него перспективы в РФ.
Java точно очень популярна, хороший вариант был бы, если бы не спринг, который тебе придется учить и вот это отдельная область знаний. То есть придется прям изучать приколы отдельных либ, которые часто очень переусложнены, какой-нибудь гибернейт это вообще пиздец.
Го в целом прикольный и, главное, кейс "монолит на php + микросервисы на го" очень популярен, что плюс для тебя. И ещё по сравнению с джавой в го тебе надо будет меньше всего учить. Но при этом рынок труда у гошников меньше джавогого, это 100%.

Хз, решай сам. Я бы выбрал или жаву, или го. А может пробовался бы и туда, и туда, куда возьмут с большими деньгами, туда и пошел бы. Не так уж и сложно на миддл уровне выучиться проходить собесы.
233 2429901
>>429879
Максимальное спасибо
234 2429923
>>429847

>Вообще вилка разраба всегда довольно стандартная вещь


Как же хуёво.
В 1с получаю по стандартной вилке разраба (мидл - 140к, насколько стандартно?), хочу выкатиться, но всё выглядит так, что выкачусь я только нахуй на плюс-минус то же самое, только въебав времени по дороге и просев по зп.

мимо зачем же я выбрал 1с
на самом деле знаю зачем - в мухосрани кроме 1с были только кресты
235 2429999
>>429847
Всегда рофлю с фраз типа "250к на руки это какое-то чудо", зачем вы в это верите вообще.

>>429923
Не верь этому всему. Никакой средней или стандартной вилки есть и все ограничения только у тебя в голове. Я серьезно.
Всегда, абсолютно всегда можно найти контору, которая платит больше. Да, чем дальше, тем таких контор меньше, но суть в том, что если упорно работать именно на поиск контор с большим рейтом и попытки туда попасть, то всё в итоге получится.
Зачастую даже не нужно быть супер-пупер сеньором для этого.
Но в какой-то момент придется переходить на удаленку, учить язык и тд и тп.

Ещё один момент, в индустрии очень много джунов и неудачников, которые реально меряют всё по себе, если такой чел сидит в мухосрани и зарабатывает 40, то он всем будет утверждать, что это честная зп и вообще потолок. Надо уметь не слушать большинство.

Я кстати помню, как мне, когда я только начинал, начальник заливал про то, что 100к это вообще потолок для разраба вообще везде, а суммы больше это уже для директоров и больших начальников и я в эти сказки радостно верил.

мимо-500к/мес гошник, начинал с 20к в месяц из мухосрани лет 10 назад
236 2430001
>>429999

> Никакой средней или стандартной вилки есть


самофикс, никакой вилки нет*
237 2430682
>>429999

> Но в какой-то момент придется учить язык


Программач, 2022, итоги
238 2430816
>>429999

>пук мням потолка нет



Ясно, продолжай держать в курсе
239 2431344
Аноны, вопрос скорее общий, но также интересно узнать как это принято в Го.
В общем, как грамотно менеджить пользовательские сообщения: об ошибках, сообщения cli-интерфейса и прочее.
Заводить "конфиг" мессаджей и парсить в память? Хардкодить? Хранить в key-value ДБ?
А если требуется несколько локализаций?
Реквестирую Ваш опыт, бест практисы, ресурсы, где почитать подробнее
240 2431357
>>431344
принято конечно же хардкодить, писать часть сообщений на русском, а часть на английском, и не ебаться с локализациями.

>Заводить "конфиг" мессаджей и парсить в память? Хардкодить?


ты вполне можешь хранить тексты в каких-нибудь .po и кодгенерацией их """"""хардкодить"""""". если твои пользователи не будут файлы править подсибя, эти варианты чуть менее чем нихуя различаются, кроме ебли с подгрузкой файла в рантайме. наверняка у гошки даже есть пакет для gettext.

>Хранить в key-value ДБ?


нахуя
241 2431361
>>431357

>не ебаться с локализациями


а если "бизнес хочет"?

>Хранить в key-value ДБ? - нахуя


Ну допустим у тебя жеский тыпрайс, миллионы возможных сообщений, зачем их держать в памяти? А если несколько инстансов, еще и по много раз. Где-то слышал, что вполне себе используется
242 2431364
>>431361
И на лету кстати можно контент заменять, без перезапуска кластера
243 2431984
>>431344
Го как правило это сервера и апи, а ошибки показываются клиентом. Соответственно, апи возвращает коды ошибок, а клиенты их сами показывают.
Сама задача такого показа текста в случае ошибок не отличается от всех других случаев: у тебя в приложении захардкожены некие ключи, которые ты пропускаешь через локализацию и на выходе получаешь текст, который и показываешь.
Так оно и работает примерно везде.
Вопрос только в том, как это хранить этот маппинг.
В простом случае его подкладывают рядом с приложением и/или вкомпиливают сразу внутрь. Если тебе не нужно на лету менеджить тексты, вполне нормальный подход. Формат файлов тут может быть любым, хоть json.
Как вариант, можешь хранить их в неком хранилище, чтобы потом ими оперативно управлять, исправляя переводы на лету в случае косяков.
Тут такой момент, что это уже в принципе сводит задачу к менеджменту контента в приложении, тексты ошибок здесь ничем не отличаются от заголовков, кнопочек и тп.
В качестве хранилища можешь использовать свою базу, если у тебя свой сервер или какой-нибудь внешний сервис типа localize. Мы как-то раз использовали гуглотаблицу, в которую просто ходили из приложения по апи, полет был нормальный.
244 2432192
>>431344

>>431984
двачую вот этого. на бэке только инглиш и слаги-коды, с псевдоязыками пусть фронты долбаются.
245 2432211
>>432192

> пусть фронты долбаются.


А они и не против
246 2432379
>>432192
То есть у нас есть что то типа
type MyError struct {
__Code string
__Message string
__Context any
}
На клиент мы отправляем code, в лог пишем message. Правильно уловил?
247 2433140
goндоны, посоветуйте фреймворк для веба, если я уже знаю джанго, пожалуйста.
248 2433170
>>433140

>фреймворки


это тебе в другой тред, петушара
249 2433343
>>433140
пшел нахуй с таким отношением

>пожалуйста


тебе не поможет
250 2433741
>>433343
>>433170
дети goвна обиделись
251 2435483
Презентацией карбона и заинтерисованности в его развитии гугл отправил го на помойку. Разве нет?
252 2435522
>>435483
где го где карбон, ты ебан или да?
253 2435572
>>435483
Хз вообще почему кто-то на карбон внимание обращает. Очередной экспериментальный недоязык от большой конторы, они их раз в год выпускают.
На нём никто всерьез не пишет, никакой софт не написан, пакетов и библиотек нет, сообщества нет, населен роботами.
Такую хуйню надо просто игнорировать, потому что даже, если гугл реально хочет его развивать (а это не так) и даже если у него это получится (шанс 5%), то конкурентоспособным он станет только лет через 5-10 минимум.
254 2435575
Вот скажи, нахуя джаба-дебилы и сисярп-макаки, пытаются свои паттерны, бестпрактисы, ооп, фп и прочую залупень пихать в Го?

Нахуя? Го даже не ооп блятъ, нахуя они своими полупидорскими паттернами лезут в наш манямирок? Они сидели в легаси болоте пусть и сидели бы, что они столько шума поднимают. Скоро го тоже испоганят адепты легаси параши

В чем я не прав?
255 2435579
>>435575
Подожди, а у тебя код уровня
СделатьТоТо(арг1, арг2) {
сделатьОднуХуйню(...);
сделатьДругуюХуйню(...);
}
Ну вполне логично что люди хотят от этого уходить, т.к. это дорого поддерживать.
256 2435582
>>435579

Угу, легче же писать абстракцию на абстракции, паттерны на паттерне, дрочить миллион классов чтобы сделать один объект
257 2435596
>>435582
Зависит от масштабов.
258 2435793
>>435575
Подожди, вот слепим мы из го кроссплатформенный компилируемый шарпик и тогда сможем перекатываться.
259 2435892
Аноны а как вообще вкатиться в rabbitmq и его использование? Просто я щас на пет проекте осознал, что делать каждый раз свой менеджер неудобно.

Короче реквестирую годные проекты с clean architecture + rabbitmq. Можете послать в гугл, все равно скоро туда собирался пойти, но возможно тут что-то годное подкинут
260 2435912
>>435892
Бля анончик, сам планировал написать пет проект с очередями. Бампну твой вопрос
261 2435956
>>435892
Ну и я бампну, чего бы и нет.
262 2436638
>>435892
Просто берёшь и встраиваешь как и любой другой брокер. Консьюмер берёт запрос из очереди, триггерит юзкейс, который в свою очередь кидает ответ в паблишера обратно или сторонний сервисНэйм.
263 2437200
https://habr.com/ru/company/geekfactor/blog/682084/

Как же гоблядей обоссывают
264 2437476
>>437200

>нода лучши


>нет статической типизации


Закрываем
image.png51 Кб, 1200x1200
265 2437986
>>437476
Ебало неуча на гохе представили?
266 2438007
>>437986
Мертвый язык, типы завезут в стандарт экмаскрипт
267 2438047
>>437986
Я знаю что есть тс, но не знаю как с ним обстоит вопрос на ноде.

>на гохе


Я мимо прохоdeal
268 2438050
>>438047
TS - де-факто стандарт что для фронта что для бека. Нормальные проекты без него не делаются.
269 2438055
>>438050
Рад это слышать, возможно в будущем поближе познакомлюсь с нодой и её экосистемой.
Разрабатывать большой проект без типов (и без абстрактных фабрик) - дно, тут полностью согласен.
270 2438058
>>438007
Когда завезут - тогда и приходи. И чтобы они реально работали, а не были ебучими тайпхинтами, как в питоне.
271 2438163
>>435483
Карбон нужен исключительно для системного программирования
А как мы уже знаем, плюсовики даже на новый стандарт переезжают со скрежетом, что тут говорить про новый язык?
2022-08-1821-55-34.png14 Кб, 803x239
272 2438765
Кажется кто-то обчитался SICP
273 2438774
>>438765
Кто-то не проёбывал курс вычислительной математики в вузе, это не заслуга вашего борщехлёбского говносикпа.
274 2438820
>>438774
Ты или штаны надень или крестик сними
275 2439407
Аноны что за дерьмо? Какого хуя ввод вывод в онлайн компиляторе не работает? Что за дерьмо? Разве такое может быть? Привел самый простой пример. Пиздец блять, реально говно нахуй
276 2439408
>>439407
Как нахуй "Program exited." он совсем ебобо?
277 2439423
>>439407
Ты уверен, что эта онлайн хуйня может принимать ввод?
278 2439435
>>439423

Зря быканул, прошу прощения, посмотрел в другом онлайн редакторе там все работает
279 2439449
>>439407
А причём тут нахуй язык, ты ебани себе на комп компилятор и им компилируй уже.
280 2440495
>>435575

> Го даже не ооп блятъ


ебать ты дебил братишка
281 2440499
>>440495
В Go нет ООП. Проблемы?
282 2440568
>>440499
Он есть, просто не в том виде, в каком он представлен в других языках. Удобнее он или нет -- вопрос другой.
283 2440617
>>440568
Тогда и в ассемблере ООП есть.
284 2440658
>>440617
Два чаю
285 2440686
>>440499
Вот кстати кроме шуток. Если и есть та вещь, по которой я не скучаю в го кроме xml, спринга и гибернейта, лол, так это ооп. Практика показывает, что это какое-то тупиковое направление, и на реальную жизнь правила ООП натягивается очень плохо.
То же наследование во первых приносит больше проблем, чем пользы, а во вторых, как правило просто не нужно.
Всё, что требуется, это интерфейсы, чтобы описывать поведение и классы (в го - структуры), чтобы его реализовывать. Всё.
Остальная магическая хуйня от лукавого.

мимо
286 2440705
>>440686
Плохо то, что нет явного указания, что структура имплементит такой-то интерфейс. Ну и было бы неплохо, если методы можно было бы прямо в теле структуры хуярить, как это в джава классах придумано. Когда все в месте собрано, то как-то лучше читается что-ли.
287 2440741
>>440686

>То же наследование во первых приносит больше проблем, чем пользы, а во вторых, как правило просто не нужно.


А его разве обязательно использовать?
288 2440743
>>440705
Ну качині інтерфейси ж, ти чого?
289 2440823
>>440741
Нет, но это один из столпов. ООП в его классическом панимании без наследования будет уже не ООП.

>>440705

> Плохо то, что нет явного указания, что структура имплементит такой-то интерфейс.


Ващет есть.

```
var _ fmt.Stringer = &Foo{}

type Foo struct {}
```

либо (то же самое но с большим количеством понтов)

```
var _ fmt.Stringer = (*Foo)(nil)

type Foo struct {}
```

Тебе IDE в таком случае будет даже предлагать сгенерить недостающие методы и тп.

> у и было бы неплохо, если методы можно было бы прямо в теле структуры хуярить, как это в джава классах придумано.



Вкусовщина, лично мне наоборот по отдельности больше нравится, иначе появляется слишком много вложенных скобочек.
image.png27 Кб, 248x203
290 2441263
291 2441264
>>440499
долбаебы-оопщики даже новое слово object-based придумали чтобы отличать языки где УУУУУУУУУ НАСЛЕДОВАТЬСЯ НЕЛЬЗЯ ЭТО НЕ ООП
292 2441274
>>441264
Ты либо даёшь наследоваться, либо не называешь это ООП и используешь корректный термин.
Видел таких же долбоёбов, которые пытаются прилепить к Go ярлык ФП, мол, есть анонимные функции и их можно передавать в другие функции, значит ФП.
293 2441279
>>441274

>наследоваться


Хуйня без задач.

Какое "классическое определение"? Небось еще и на паттерны передергиваешь?
Есть что-то типа объектов + полиморфизм - ООП.
/тред
294 2441281
>>440823

>ООП в его классическом панимании без наследования будет уже не ООП


В крестах нет инкапсуляции, но крестовики говорят, что там есть ООП.
>>441264
Всё правильно, объектно-базированное программирование, гоферам очень понравится что в отношении их языка будет употребляться слово "based"
295 2441285
>>409760 (OP)
https://habr.com/ru/post/682618/
Папка рекомендует
296 2441345
>>441274
ага, миллионы детей в африке запутались и потратили свою последнюю калорию, когда кто-то назвал ОБ язык ОО. нам же нужен отдельный термин для всего, а то недостаточно душно. бля давайте придумаем новый термин для ОО языков, где есть анонимные функции. бусть это будет ФООП.
297 2441347
>>441345
Тебе с таким мышлением надо в пхп или 1С.
298 2441349
>>441347
там тоже не любят бесполезные термины?
299 2441350
>>441349
Там любят тащить в айти гуманитарную дичь.
300 2441352
>>441350
а, ну ладно, понял (не понял)
301 2441354
>>441352
200[/spoiler ]Ок.
sage 302 2441374
>>441274
Наследование - не ООП. Наследование противоречит ООП.
303 2441479
>>441352
Я тоже нихуя не понял

1сник бывший
304 2441510
>>441345
На самом деле в функциональном стиле можно писать практически на любом современном языке, так же как и на любом функциональном можно писать в империативном стиле.
Но, между тем, разделение у языков есть.
И разница здесь в том, что есть языки специально заточенные под определенные парадигмы. К примеру, со встроенной в язык обязательной иммутабельностью, с умным выводом типов и разверткой лямбд при компиляции и тд и тп. Условные хаскель и скала к примеру.
И вот с этой точки зрения го определенно классический империативный, потому что лямбды то в нём писать можно, но вот инфраструктуры вокруг них на уровне языка очень мало, это будет как забивать гвозди микроскопом, можно, но неэффективно.

Теперь касательно ооп. ООП это тоже своего рода парадигма, которая предлагает нам композировать логику в классы, с возможностью абстрагировать их, подменять и оперировать этими абстракциями без привязки к конкретике. Грубо говоря, оперировать интерфейсами, а не конкретными классами.
С этой точки зрения го - вполне себе ООПшный язык, он это позволяет.
Другое дело, что классическая трактовка ооп говорит нам, что должно быть ещё наследование, а в го такое отношение между классами отсутствует, его можно только сымитировать через композицию. Что не так уж плохо, просто это не строго равно наследованию.
Так что я бы сказал, что го - условно ооп'шный.

Кстати, прогуглил тут, на википедии говорят, что

> Лука Карделли[ и Мартин Абади построили теоретическое обоснование ООП и классификацию на основе этого обоснования. Они отмечают, что выделенные ими понятия и категории вместе встречаются далеко не во всех ОО-языках, большинство языков поддерживают лишь подмножества теории, а порой и своеобразные отклонения от неё.



Так что норм, го реализует некоторое подмножество концепций ООП. На этом срачи надо заканчивать.

а те, кто считают, что ооп это если нужно class и implements в коде писать - неучи
305 2441533
>>441285
Согласен, годнота
306 2441559
>>441533
Херня для нубов, пишется с закрытыми глазами за 2 минуты не отвлекаясь от чашки с кофе. Я не шучу, действительно тривиальные вещи.
307 2441821
>>409760 (OP)
Как работают каналы под капотом в Гохе? Для меня (бывшего жопаскриптера) какая-то магия: создаем канал который ждет входящие данные и как только они появляют на другом конце, вытягивает их и начинает над ними работу. Даже если ебнуть тысячи каналов, каких-то просадоу по cpu или памяти не будет

Шо это?
308 2441833
Всем доброго времени суток уважаемые GOбояре. Пришел к вам с советами по архитектуре пет проекта. Оцените, накидайте советов, как нужно и как ненужно делать.

Если вкратце, есть сервис по аренде автомобилей, клиент авторизуется/регистрируется и выбирает из списка нужный автомобиль, посылает запрос на аренду, сервис проверяет статус клиента, конкретно смотрит на количество штрафов, стаж вождения (в зависимости от стажа вождения можно выбирать машину классом выше), если все ок то отвечает что аренда прошла успешно.

Сервис состоит из следующих компонентов
1. Nginx - который перенаправляет и проксирует запросы

2. REST сервис авторизации\регистрации - название говорит само за себя

3. REST сервис аренды - предоставляет список доступных автомобилей, статус арендованных машин пользователем

4. REST сервис проверки - проверяет пользователя, а именно такие вещи как наличие прав, кол-во штрафов, стаж вождения. Он получает запрос на проверку через очередь от сервиса аренды и пересылает внешнему источнику (у меня он просто будет заглушкой), получаемый ответ он формирует (если нужно то из БД сервиса берет данные) и пересылает обратно сервису аренды.

5. REST сервис добавления машин - сервис для админов которые добавляют новые тачки

6. СУБД будет постгрес

7. Работать будет на Docker Swarm

8. Мониторинг Prometheus + Grafana

Есть следующие вопросы:

1. Как авторизовать пользователя? Достаточно ли будет брать JWT?

2. Какой фреймворк взять? Gin-а будет достаточно?

3. Не работал с ОРМ на го. Что можно взять? Или GOбояре им не пользуются и хуярят чистый sql запросы?

Пока только такие вопросы, был бы рад с вами обсудить его с умнейшими из мира сего
308 2441833
Всем доброго времени суток уважаемые GOбояре. Пришел к вам с советами по архитектуре пет проекта. Оцените, накидайте советов, как нужно и как ненужно делать.

Если вкратце, есть сервис по аренде автомобилей, клиент авторизуется/регистрируется и выбирает из списка нужный автомобиль, посылает запрос на аренду, сервис проверяет статус клиента, конкретно смотрит на количество штрафов, стаж вождения (в зависимости от стажа вождения можно выбирать машину классом выше), если все ок то отвечает что аренда прошла успешно.

Сервис состоит из следующих компонентов
1. Nginx - который перенаправляет и проксирует запросы

2. REST сервис авторизации\регистрации - название говорит само за себя

3. REST сервис аренды - предоставляет список доступных автомобилей, статус арендованных машин пользователем

4. REST сервис проверки - проверяет пользователя, а именно такие вещи как наличие прав, кол-во штрафов, стаж вождения. Он получает запрос на проверку через очередь от сервиса аренды и пересылает внешнему источнику (у меня он просто будет заглушкой), получаемый ответ он формирует (если нужно то из БД сервиса берет данные) и пересылает обратно сервису аренды.

5. REST сервис добавления машин - сервис для админов которые добавляют новые тачки

6. СУБД будет постгрес

7. Работать будет на Docker Swarm

8. Мониторинг Prometheus + Grafana

Есть следующие вопросы:

1. Как авторизовать пользователя? Достаточно ли будет брать JWT?

2. Какой фреймворк взять? Gin-а будет достаточно?

3. Не работал с ОРМ на го. Что можно взять? Или GOбояре им не пользуются и хуярят чистый sql запросы?

Пока только такие вопросы, был бы рад с вами обсудить его с умнейшими из мира сего
309 2441840
>>441833
По архитектуре ХЗ, по вопросам
1) refresh + access token поверх JWT
2) Да, норм
3) Никаких ORM. Бери squirrel, очень удобно.
310 2441847
>>441840
Спасибо анончик!
Взял на заметочку
311 2441848
>>441821
Я так понимаю ты про Горутины. Ну это типа виртуальные треды и управляются планировщиком Го. Поскольку они управляются рантаймом, не приходится тратить время на syscall's.

Ну и горутина весит мало, поэтому можно создавать их в очень больших количествах, поскольку пока они спят, то занимают только RAM.
312 2441907
>>409760 (OP)
Как понять тему указателей и остаться без ментальных расстройств?

Пытаюсь вкатится в Go, изучаю тему. Вроде все ок, все понятно, так как до этого кодил на других скрипопарашах (Bash, Powershell). Но вот тема указателей выводит меня из себя.

Можете посоветовать хорошую статью, где это хорошо разжевывается?
313 2441910
>>417578

>>госконторах


>


В сбербанке есть проекты на Go
314 2441916
>>441907
хуле тут понимать анончик, включи моск. Слово указатель говорит само за себя, значит оно на что-то указывает, на что может указывать? На маму абу? На хохлов? Вроде нет, скорее всего на адрес ячейки в оперативной памяти где хранятся данные, вот и все епта бля. Самый просто пример это когда ты в функцию передаешь переменную ты не передаешь переменную ты передаешь копию, то есть за пределами функции содержимое переменной не меняется. Но если ты передашь указатель той переменной то ты уже сможешь поменять содержимое переменной, понял йопта бля?
315 2441944
>>441916
Лол самое охуенное объяснение указателей что я видел))
316 2441970
>>441910
Госконтора - это некоммерческая организация, живущая на бюджетные средства. То, что часть большая часть акций сбербанка куплена государством, не делает его госконторой.
317 2441978
>>441970

>не делает его госконторой.


Это государственный банк, маня.

Или под гос конторой подразумеваешь паспортный стол, ЖЭК или Службу судебных приставов?
318 2441981
>>441916
Типа ярлыка на рабочем столое штоле?
319 2441982
>>441978
В рашке нет государственных банков, проснись дед, совок давно развалился.

> Или под гос конторой подразумеваешь паспортный стол, ЖЭК или Службу судебных приставов?


Все подразумевают, кроме шизоидов вроде тебя. И там тоже пишут на Go.
320 2441984
>>441981
Да, типа того
321 2441987
>>441907
бля да тоже самое што nameref в баше, только там не имя передается, а адрес переменной
322 2441989
>>441987
Как понять тему nameref и остаться без ментальных расстройств?
image.png35 Кб, 1178x320
323 2441992
>>441982
Пидораха так и не ответила на мой вопрос, продолжая маняврировать.

Что под твои критерии попадает под госконтору?
324 2441996
>>441992
Федеральные законы, в которых учреждаются госконторы. Предъяви такой закон о сбербанке, и я сольюсь.
325 2442009
>>441996

>сбербанке


Я тебе выше уже скриншот кинул. Куда уж не госконтора.
326 2442024
>>442009
Да, ФГУП ГлавНИВЦ УДП РФ - госконтора, кто ж спорит.
327 2442031
>>442024
Ну вот тебе и ответ. В госконторах используется Go
328 2442039
>>442031
Да, видит бог, что используется.
329 2442112
Аноны, хочу попасть в озон/дикие ягоды на стижировку и чичас начал ботать литкод. Вопрос таков: насколько сильно вообще нужно шарить за алгоритмические задачки? Типа щас я решаю легкие и средние, в сложных йоба какая-то попадается. Могут ли потенциально дать сложную задачку с литкода на интервью?
330 2442134
>>442112
Сложная сложной рознь. Некоторые вполне примитивны.
331 2442144
>>442112
Зайди на курс, там сейчас как раз набор, открой да посмотри чё за задачи. Я оцениваю самую сложную как 5kyu с кодварса, т.е. нихуя.
332 2442165
>>442144

>Зайди на курс


Какой этот?
https://route256.ozon.ru/go-developer
333 2442187
А как в гохе производится смена контекста между горутинами? Я с пистона пришел, там понятно, ебнул await и все.
334 2442197
>>442165
Именно.
на всякий случай надо было убедиться, что ты умеешь гуглить
335 2442199
>>442187
Автоматически без твоего участия.
16605661775030.png279 Кб, 500x500
336 2442201
>>442165

>Высоконагруженный Machine learning


Как же это заебало
2022-08-2120-42-52.png17 Кб, 464x381
337 2442205
>>442201
Либо наебали, либо это старый курс на торрентах, либо имелось в виду "ну эта, после нашего курса в высоконагруженный машоб оторвут с руками, базарю"
338 2442222
>>442199
Это я понял, но в пистоне например явно говорят не ебош в луп задачи которые не позволят ему переключаться. Там механизм переключения очевиден и поэтому если что, то явно его заюзать можно. Поэтому интересно как это тут происходит.
339 2442225
>>442222
есть runtime.Gosched, но после 1.14 тебе ебаться с

>не ебош в луп задачи которые не позволят ему переключаться


не нужно, шедулинг уже не кооперативный.
340 2442235
>>442225
То есть теперь запускать горутину в шедулер это как запускать задачу в треды? ОС Гошный рантайм все разрулит?
341 2442242
>>442205
анончик, скинь курс плез
342 2442248
>>442197
Это не я вопрос задавал.

Там написано, что этот курс подойдет для людей, которые разрабатывают на Go от двух лет, либо переходят с другого языка. То есть не для новичков.
343 2442257
>>442235
ага
2022-08-2121-30-05.png37 Кб, 985x742
344 2442279
>>442242
magnet:?xt=urn:btih:4f91b469f0abdad611c8775505b5693dc8d1f5d2&dn=ozon&tr=http%3a%2f%2fbt2.t-ru.org%2fann%3fmagnet

>>442248
Базара нет, я не знал, что ты новичок. Но задачи там простые.

>>442201
Кому верить?
image.png128 Кб, 264x335
345 2442285
>>442279

>новичок

346 2442550
>>442248

> Там написано, что этот курс подойдет для людей, которые разрабатывают на Go от двух лет, либо переходят с другого языка.


И кстати нет, там такого не написано.
Там написано "опыт коммерческой разработки" - похуй на чём.
Сомневаюсь, что тому, кто уже два года на гохе пишет - этот курс чем-то способен помочь.
347 2442560
>>442550
Тем, кто всерьёз пишет на goвне - вообще мало что может помочь, увы...
348 2442563
>>442560
Просрался? А теперь давай обратно легаси разгребать, кабан ждет
349 2442570
>>442563
Дегенеративное мышление goвночиста во всей красе:

>у всех легаси а у меня нет (потому что в goвне за все годы не сделали ни одного экосистемного фреймворка и есть только ворох полузаброшенных библиотека, написанных васянами, большая часть толковых из которых поняли в какое говно вляпались и пошли в Rust/Cpp)


>к кабану (ведь на стеке goвна такие охуенные и щедрые РАБОТОДАТЕЛИ как ЯГОДКИ и предефолтовый ОЗОН, вот это Эдем на Земле для разработчика)



Чем быстрее вы поймёте и признаете, что вас поимели маркетологи, тем быстрее перейдёте на нормальные технологии, а не будете страдать.
350 2442575
>>442570

>нормальные технологии


Какие?

>экосистемного фреймворка


Это что такое? Какое преимущество фреймворка над библиотекой?
351 2442581
>>442570
Я тебя задетектил, ты тот порванный джавист из мвп треда который оценивает стек по компаниям в пидорашке, которые эту технологию используют
352 2442606
>>442570

>на нормальные технологии


Лол бля а что по твоему нормальные технологии?
Джаба? Иди пиздуй дрочить jvm а то она уже загибается от 10 RPS
Сисярп? Как на вкус хуй майкрософта? Вас гоев разводят на бабки а вы и рады этому
Nodejs? Ты го с нодой решил сравнить? Совсем ебобо?
Что ещё там было у тебя? Пыха? Он норм, к нему претензий нет
353 2442617
>>442606

>Ты го с нодой решил сравнить?


Так-то они прямые конкуренты
354 2442640
>>442617
У ноды тащемта единственная киллер фича это то, что один язык на бэке и на фронте, что на бумаге выглядит красиво. Одно время люди ещё с этим не наигрались и поэтому многие соблазнялись.
Но сейчас время уже другое.
Практически во всём остальном нода хуже го.
Всё-таки реальная многопоточность сильно лучше просто неблокирующего io, го намного эффективнее утилизирует ресурсы CPU. В случае с нодой ты конечно можешь позапускать процессов по числу процессоров, но всё равно выйдет говно, потому что какие-то из них будут простаивать, а какие-то наоборот перегружены. Тогда как го под капотом сам балансирует нагрузку между ядрами.
Всё-таки npm говно.
Всё-таки экосистема js ну вообще на любителя.
Всё-таки фронтенд бекенду рознь и любители красить кнопки никогда не смогут дизайнить и программировать сложные системы.
И так далее.
изображение.png346 Кб, 604x467
355 2442682
>>442570

> как ЯГОДКИ


Ты это, не гони на них
356 2442691
>>442640

>У ноды тащемта единственная киллер фича это то, что один язык на бэке и на фронте


Нет, у ноды киллер фича хуяк-хуяк и в продакшн. Если тебе надо что-то написать быстро или создать какой-то прототип, либо поддерживать то что очень часто меняется, то нода это топ решение. Чтобы уменьшить боль придумали тайпскрипт. Собственно на этом все преимущества.

>Всё-таки npm говно.


>Всё-таки экосистема js ну вообще на любителя.


Говно, особенно любители использовать isOdd и isArray в зависимостях должны гореть в аду, в чане с говном

>Всё-таки фронтенд бекенду рознь


Да, никогда один и тот же код и там и там не использовался

Но если надо наклепать бота чтобы он пользователю что-то высрал в телеграмме, то вполне рабочее решение
357 2442698
>>442606

>Иди пиздуй дрочить jvm а то она уже загибается от 10 RPS


Каво? Реактивщина есть, виртуальные треды есть. Никто не заставляет тредпул использовать стандартный.
358 2442700
>>442691
Анончик я совсем зеленый в этом, так что вопрос без подъеба. А почему не пщ?
Ну вот ты наклепал бота, и с командой
go build -o hueta main.go && ./hueta.out
Вот теперь я запустил свою какаху, чем это медленне чем на ноде?
359 2442711
>>442700
Медленнее в скорости разработки, пока ты пишешь структуры и занимаешься подобной хуйней на js ты уже наговнякаешь половину кода.
А по производительности go разумеется быстрее
360 2442712
Производительность в небольших проектах нужна чуть менее, чем никогда. Можно смело писать на пыхе, питоне или js.
Производительность нужна таким гигантам вроде озона или авиты, которые уже проделали долгий путь от куска говна на пхп до тысяч серверов.
361 2442714
>>442581
Нет, тот порванный джавист это я, но я этого не писал.
У меня горит от того, что в яндексе на джаве мало пишут, в то время как я вложил дохуя времени в изучение жабы и инфраструктуры вокруг нее. Кроме как в яндексе я работать нигде не собираюсь, так как не считаю остальные места для работы достойными меня.

мимо вкатун в го и жабу
362 2442788
>>442711
Не верь этому долбоебу. И вообще никогда не покупайся на "скорость разработки", этот миф эксплуатируют все, кому не лень.
Такой фактор есть, но он роляет только в случае, если мы сравниваем концептуально разные языки, например, плюсы с их ручным управлением памятью и джаву/го/c#/ноду с автоматическим сборщиком мусора, который реально снимает с программиста часть работы. И то современный c++ с его умными указателями и прочими ништяками вполне себе может быть сравним с той же джавой.
Так вот, скорость разработки методом "хуяк-хуяк" на сходных языках практически одинакова, разница будет в мелочах, вида "func или function", "class или struct" и тд и тп. И то, современные IDE отлично автокомплитят код, а многие решения берутся просто копипастой и не так важно, сколько там кода. Опять же, в любом языке есть фреймворки с той или иной автоматизацией каких-то общих задач, го, нода, джава, один хрен.
Я писал на множестве языков и честно скажу, разница тут субъективная (кто на чём больше писал, тот на том и быстрее пишет) и исключительно в оттенках.
А, ну и в количестве библиотек ещё, иногда хорошие либы бывают только под определенный язык, соответственно, этот язык оказывается быстрее, но в данном конкретном случае.

>>442712
И да, и нет. Если ты придешь к владельцу любой конторы и спросишь его, хочет ли он платить за сервера меньше в два раза, то думаю, ты услышишь только один ответ. Естественно, сервера это зачастую копейки, но сам факт.
А ещё код очень редко переписывается, и если ты сразу начал проект на тормозном говне, то в какой-то момент ты в него упрешься, а менять коней на переправе будет уже больно.

>>442714
Ты странный.
Во-первых, странно, что ты считаешь достойным только Яндекс, они всегда выезжали исключительно на бренде, а платили разработчикми раза в два меньше, чем прочие крупные конторы. По-моему меньше яндекса только касперский платил. Опционы и rsu кстати не роляют, если ты сядешь и внимательно посчитаешь всё с калькулятором, то увидишь, что даже при сохранении тренда на рост стоимости акций просто x1.5 к твоей текущей зп будет выгоднее, а если ты эти лишние 0.5 будешь вкладывать в ценные бумаги самостоятельно, то сильно выгоднее.
Техническая культура там тоже была очень специфичная, большое дрочево на ьайтики и самописные велосипеды даже там, где это совсем не требуется. Тем более, сейчас из яндекса ушло очень много людей и техническая культура ещё сильнее просядет.
Тут ещё есть такой момент, что сильным разработчиком тебя делает твой опыт и насмотренность, в одной конторе ты очень быстро усохнешь, привыкнешь и выпадешь из трендов. Превратишься в старпера из института, которые до сих пор уверены, что серьезный софт на дельфи это стильно модно молодежно.
И это не говоря про рейты, смена работы это лучший способ поднять рейт и ранг.
Короче, смотри на конкретного работодателя попроще и помни, что он тебе не друг, в его интересах платить тебе как можно меньше и удерживать тебя у себя как можно больше, в идеале ещё и убеждая тебя в том, что ты уже в выигрыше (а без насмотренности и возможности сравнивать ты никогда не поймешь, где тебя обманывают).

Во-вторых, ты сказал ключевую вещь:

> горит от того, что на языке Х мало пишут, в то время как я вложил дохуя времени в изучение языка и инфраструктуры вокруг него


это очень популярный развод, ты долго пишешь на одном языке и тебе жалко выбрасывать весь этот труд на помойку. Так вот, когда ты сменишь 2-3 языка ты поймешь, что они все одинаковые на концептуальном уровне, а всё остальное - это детали и что ты ничего не выбрасываешь. Джава или не джава это уже не важно.
Конечно если языки меняются не кардинально, как если бы ты джаву на плюсы менял как в яндексе делают, лол.
И это же значит, что нет смысла изучать какую-то специфичную ерунду, потому что спустя несколько версий стека оно изменится, а ты может к тому времени и вообще что-то другое делать будешь. Изучать технологии нужно эффективно
362 2442788
>>442711
Не верь этому долбоебу. И вообще никогда не покупайся на "скорость разработки", этот миф эксплуатируют все, кому не лень.
Такой фактор есть, но он роляет только в случае, если мы сравниваем концептуально разные языки, например, плюсы с их ручным управлением памятью и джаву/го/c#/ноду с автоматическим сборщиком мусора, который реально снимает с программиста часть работы. И то современный c++ с его умными указателями и прочими ништяками вполне себе может быть сравним с той же джавой.
Так вот, скорость разработки методом "хуяк-хуяк" на сходных языках практически одинакова, разница будет в мелочах, вида "func или function", "class или struct" и тд и тп. И то, современные IDE отлично автокомплитят код, а многие решения берутся просто копипастой и не так важно, сколько там кода. Опять же, в любом языке есть фреймворки с той или иной автоматизацией каких-то общих задач, го, нода, джава, один хрен.
Я писал на множестве языков и честно скажу, разница тут субъективная (кто на чём больше писал, тот на том и быстрее пишет) и исключительно в оттенках.
А, ну и в количестве библиотек ещё, иногда хорошие либы бывают только под определенный язык, соответственно, этот язык оказывается быстрее, но в данном конкретном случае.

>>442712
И да, и нет. Если ты придешь к владельцу любой конторы и спросишь его, хочет ли он платить за сервера меньше в два раза, то думаю, ты услышишь только один ответ. Естественно, сервера это зачастую копейки, но сам факт.
А ещё код очень редко переписывается, и если ты сразу начал проект на тормозном говне, то в какой-то момент ты в него упрешься, а менять коней на переправе будет уже больно.

>>442714
Ты странный.
Во-первых, странно, что ты считаешь достойным только Яндекс, они всегда выезжали исключительно на бренде, а платили разработчикми раза в два меньше, чем прочие крупные конторы. По-моему меньше яндекса только касперский платил. Опционы и rsu кстати не роляют, если ты сядешь и внимательно посчитаешь всё с калькулятором, то увидишь, что даже при сохранении тренда на рост стоимости акций просто x1.5 к твоей текущей зп будет выгоднее, а если ты эти лишние 0.5 будешь вкладывать в ценные бумаги самостоятельно, то сильно выгоднее.
Техническая культура там тоже была очень специфичная, большое дрочево на ьайтики и самописные велосипеды даже там, где это совсем не требуется. Тем более, сейчас из яндекса ушло очень много людей и техническая культура ещё сильнее просядет.
Тут ещё есть такой момент, что сильным разработчиком тебя делает твой опыт и насмотренность, в одной конторе ты очень быстро усохнешь, привыкнешь и выпадешь из трендов. Превратишься в старпера из института, которые до сих пор уверены, что серьезный софт на дельфи это стильно модно молодежно.
И это не говоря про рейты, смена работы это лучший способ поднять рейт и ранг.
Короче, смотри на конкретного работодателя попроще и помни, что он тебе не друг, в его интересах платить тебе как можно меньше и удерживать тебя у себя как можно больше, в идеале ещё и убеждая тебя в том, что ты уже в выигрыше (а без насмотренности и возможности сравнивать ты никогда не поймешь, где тебя обманывают).

Во-вторых, ты сказал ключевую вещь:

> горит от того, что на языке Х мало пишут, в то время как я вложил дохуя времени в изучение языка и инфраструктуры вокруг него


это очень популярный развод, ты долго пишешь на одном языке и тебе жалко выбрасывать весь этот труд на помойку. Так вот, когда ты сменишь 2-3 языка ты поймешь, что они все одинаковые на концептуальном уровне, а всё остальное - это детали и что ты ничего не выбрасываешь. Джава или не джава это уже не важно.
Конечно если языки меняются не кардинально, как если бы ты джаву на плюсы менял как в яндексе делают, лол.
И это же значит, что нет смысла изучать какую-то специфичную ерунду, потому что спустя несколько версий стека оно изменится, а ты может к тому времени и вообще что-то другое делать будешь. Изучать технологии нужно эффективно
363 2442807
>>442788

>Не верь этому долбоебу. И вообще никогда не покупайся на "скорость разработки", этот миф эксплуатируют все, кому не лень.


Это не миф, был бот которого я захуярил на ноде в одного за пару дней и то я больше узнавал чего надо сделать. Он срал в телегу, ходил в пару апишек и делал пару запросов и вообще не ясно было будут ли его использовать и нужно было накидать временное решение без особых трудозатрат. Потом когда все заебись и надо его переписать на раст поскольку у нас основной стек и нужно было для поддержки, вот тут я прикурил полдня только структуры сидел описывал и еще всякие грабли были типа json возвращает объект "{id_хуйни": хуяня}, но если пусто то возвращался пустой массив [] ебучие пхпшники, апишка не наша никто не поправит и я потратил какое-то время чтобы понять что за говно и написать метод прокладку для сериализации этого кусочка ведь для структуры нужно четко описать это вектор или хешмап. И ты постоянно натыкаешься на подобные мелочи, которые спокойно проглотит тот же js, вроде хуйня а по чуть-чуть время утекает на все эти мелочи.
И таких примеров у меня дохуя на динамически типизированных языках можно хуярить только в путь и в разы быстрее. Ну раз ты не долбоеб, рэмбо писавший на всех языках то тебе виднее. Лично я выбираю инструменты по задаче и не приколачиваю стенку шкафа на маленькие гвоздики кувалдой
364 2442817
>>442807
Это означает только то, что ты хуёво знаешь свои инструменты, в данном случае раст. Без обид.
Вещи типа "смапить json в структуру" решаются тривиально вообще на любом языке, даже с обкладыванием их костылями.
И уж тем более на любом строго типизированном языке есть библиотеки-обертки вокруг json, которые умеют динамически его парсить, обращаться к полям, кастить их к нужным типам и тд. Уверен, в расте такие тоже есть.
365 2442833
>>442817
serde_json если все написано красиво и без подъебов, просто пишешь структуру и сверху #[derive(Serialize, Deserialize)] и радуешься жизни, все как ты пишешь тривиально.
А если там как я выше описал есть подъебки и в одном и том же поле могут быть разные типы, ты начинаешь писать различные дополнительные методы чтобы подогнать под нужный тип. Хотя в go проще, пишешь interface{} и радуешься жизни, потом пиздишь на двачах что все делается легко лол))) В js это все не нужно, как и вообще писать структуры, на это все уходит время
366 2442843
>>442833
Такое случается, бывает, что где-то нужны дополнительные приседания. Но так как твоя работа не состоит в том, чтобы маппить новые типы json 24/7 я надеюсь, то в итоге в масштабах затраченного времени скажем за месяц это вообще незначимая штука.
Тем более, что пишется такое с закрытыми глазами не отвлекаясь от ютьюбчика или мыслей о более важной задаче.
Тем более, что я уверен, что в расте есть возможность делать это ещё быстрее, чем ты описываешь, какой-нибудь тайп юнион с биндингом для сериализации и тд и тп. Ещё раз, задача супер распространенная и все заинтересованы в том, чтобы были инструменты, позволяющие решать такое с минимальными затратами и соответственно, все языки это умеют +- одинаково, с погрешностью в полчаса.
гоблин как обычно база.mp4526 Кб, mp4,
1280x720, 0:02
367 2442866
368 2442914
>>442833

>есть подъебки и в одном и том же поле могут быть разные типы


А почему такое происходит. Мне кажется потому что на том конце сидя такие же умники "на динамике писать быстрее, взял ноду за день нахуячил". А если хочешь сделать неговно, то большую часть времени будешь думать над нормальными апи и архитектурой, а закодить их что на го, что на питухоне - дело за малым. Только динамикопарашу еще дебажить придется и юниттестами обкладывать.
369 2442939
>>442914
Это кстати любопытный момент. "Рынок" библиотек и особенно публичных апи этот тот ещё "рынок лимонов".
Они могут сделать насколько угодно плохое апи и страдать будут не они, а ты. Им же выгоднее, потому что можно сэкономить на разработчиках.
А ты не всегда властен в том, какой сервис использовать, часто решение принимает бизнес, менеджеры и тп, ориентируясь на цены и прочую бизнесовую херь.
А твоё мнение по поводу качества апи никого не волнует, потому что ты сделаешь, выругаешься в интернете?
370 2442948
>>442939
Ну вообще имел ввиду не только rest-api. Если брать по технологиям в целом, то откровенно ублюдский, но широкораспространенный api могу вспомнить только у JS, Windows. Остальное как-то эволюционирует, а говно отмирает потихоньку.
371 2443138
>>442682
Есть продолжение этой стори?
372 2443155
>>442914

>А почему такое происходит.


Чаще всего накидали какую-то хуйню, она взлетела, заказчики попросили фич, их реализовали поверх говнокода сделатьнормально не хватает сил и бюджетов и так далее, далее и через какое-то время получается кусок говна, который все боятся тронуть чтобы ни у кого ничего не поломать. Не в языке проблема, а в подходе. Ну и с другой стороны если есть заказчики и им предоставляется какая-то хуйня, то ебутся с интеграцией апи уже люди заказчика
373 2443163
>>443138
Они уволились всем отделом и нашли рабу в течении пары недель, у вайлдбериз висят вакансии где они готовы брать вкатунов и предлагать золотые горы мидлам, Паша Чабинский выиграл какую-то медаль на велогонках, так и работает на топовой должности. А с грузчиками там вообще как со скотом в сарае общаются, обычно как с быдлом, но там вообще как с коровами на ферме и шмонают на складе заставляя раздеваться до трусов, с пунктами выдачи тоже какая-то такая же хуйня. Короче перспективная развивающаяся контора
374 2443164
Анон. Я новичок в Go. Хочу наговнокодить один скрипт. Суть такова: у меня есть один сервер, туда периодически скидывают архивы. Мне нужно создать копию такого файда с окончаниям .done. С этим допустим я справлюсь.

Данный скрипт я хочу поместить в линуксовый планировщик, который будет периодически чекать папку. Если там есть архив, то он будет создавать тот самый файл .done .

Но! Бывают и большие архивы. И мне нужно сделать так, чтобы при копировании файла в папку случайно не создался файл .done.

Как с помощью этого чудо языка можно проверить целостность файла? То есть, если файл полностью скопировался, только в том случае создается файл, если нет, то не соответственно не создается.
375 2443190
>>443164
название во время загрузки одно, после другое, и желательно мутекс на это поставить чтоб чекер не чекал во время содания и переименования
376 2443219
>>443164

>Как с помощью этого чудо языка можно проверить целостность файла


щитаешь чексуму читаеш чексуму сравниваеш чексумы

>И мне нужно сделать так, чтобы при копировании файла в папку случайно не создался файл .done.


как 99% программ делают всё скачивается во временный файл, потом атомарно переименовывается

>в линуксовый планировщик


прям в едро?
photo1656227646.jpeg17 Кб, 469x469
377 2443440
>>441907
любая переменная в гохе может иметь адрес
number := 228
pNumber := &number
print(pnumber) //0x123

func increment(numberOther int) int {
return numberOther + 1
}

func increment2(pNumber int) {
pNumber = *pNumber + 1
}

при таком вызове number не станет 229
increment(number)

надо либо возвращать значение
number = increment(number)

либо посылать указатель
increment2(&number)
или
increment2(pNumber)
378 2443456
>>443440
блядская разметка харкача, вот гоуграунд
https://go.dev/play/p/mVdepnYjSHi
379 2443572
>>441907
Прочитать два абзаца на офф сайте или go tour может? Если не даун, то сразу поймешь. Они даже называются "указатель", это не "монады" или "аппликативные функторы", по которым хер догадаешься, что это такое.
Тупо указатель, одна переменная указывает на другую.
380 2443745
Бля анчоусы подскажите плз. Насколько рационально учить два языка? Сам из техподдержки, занимаюсь, разного рода хуйней в основном тянучкам и милфам технику настраиваю в офисе, заебало, собираюсь из этой деятельности съебаться.
Нахуя два языка?
Чтобы расширить очко кругозор и быстрее опыта набраться. Да и к тому же я выбираю одно направление enterprise, а языки по сути инструменты.
Какие языки то?
Java и Golang
Долго объяснять, главное что используются в одной области. А так, первый пушто дефакто стандард, второй как приятное дополнение, если не найду работу на первом языке то точно найду на втором.
У тебя дохуя времени?
Да, дохуя, пофакту в день работаю 3-4 часа в день

Сам в универе писал на C/C++ и Pascal, вроде не даун, 22лвл, в линухе шарю. Сам время от времени ебусь с арчом чтобы жизнь малиной не казалась
381 2443792
>>443745
Это зависит от твоих целей. Конечно, любые знания по-своему полезны, это всегда вопрос эффективности, то есть соотношения выгоды и затраченных усилий.
Если ты собираешься работать разработчиком, то смысл точно будет, потому что это даст тебе достаточно широкий кругозор. Чем больше кода и разных подходов увидишь, тем больше будешь шарить, больше опыта будет в решении похожих задач и более "архитектурным" станет мышление.
Но!
Это всё скорее для мидл+ уровня.
Потому что зная наши универы, там тебя не научили примерно ничему (реально меньше 1% от знаний, которыми ты должен будешь обладать) и соответственно тебе придется в любом случае много всего узнавать и сильно перестраивать своё мышление, усложнять этот процесс ещё и несколькими языками не стоит.
Вот когда изучишь ту же джаву до уверенного уровня, тогда и будет иметь смысл изучать новое, будет хотя бы с чем сравнивать.
Поэтому я рекомендую тебе сначала пару лет вбросить в один стек если честно, то джаву, банально больше вакансий, легче будет найти нормальную работу, а уже потом что-то решать.
382 2443801
>>443792
Только это, осторожнее будь с выбором первых мест работы. На джаве значительно больше тупого легаси и тупого энтерпрайза чем на го, хотя бы за счет специфики и возраста самого языка.
Можешь попасть в контору, где 10 индусов не думая хуярят абстрактные фабрики фабрик на спринг буте, в результате быстро ебнешься, а это навсегда.
Первая работа или несколько нужны такие, чтобы было достаточное разнообразие проектов, чтобы попробовать разные технологии, в идеале чтобы некоторые из них были с нуля, чтобы застать и может поучаствовать в архитектурном этапе, но при этом проекты должны быть достаточно большими, чтобы давать опыт поучаствовать в разработке сложных систем и достаточно длительными, чтобы научиться не только разрабатывать, но и поддерживать существующие решения.
Ну и контора должна быть достаточно большая, чтобы давать вот это всё и вообще предоставлять пространство для роста, но при этом достаточно маленькая, чтобы отношение к деньгам, проектам, клиентам и сотрудникам не стало абсолютно похуистичным.
Лично мне очень повезло первые несколько лет отработать в среднего размера аутсорсе (100 человек) для клиентов из US и EU, рекомендую тоже поискать себе что-то подобное.
Добра.
sage 383 2443843
Просьба не гнать ссаными тряпками.Очередной вкатун в ит
Хочу вкатиться в этот ваш Go. Посоветуйте какие курсы на русском можно пройти? Может есть бесплатные/платные? Спасибо, анончик!
sage 384 2443849
>>443843
Нашел в интернете платные курсы от яндекса и скиллбокса. Что лучше? И вообще стоит ли? Как мне кажется платные курсы больше мотивируют заниматься да и лучше по качеству, на то они и платные
385 2443940
>>443849
Есть же на торрентах отус.
sage 386 2443954
>>443849
Чаю. Но на отус'е смотрю курсы для тех кто уже хоть что то понимает в программировании. А я прям полный нуль.
387 2443968
>>443954
Ну на торрентах я видел только отус и озон (который бесплатный, но с необходимостью пройти контест), они оба для уже что-то понимающих чуваков.
388 2444045
>>443843
Не уверен, что тебе в целом для вката в айти нужны курсы именно про го, тут не так много специфики, язык сравнительно простой.
Я бы рекомендовал для начала пройти базовые курсы по программированию для вкатунов, это:
1 алгоритмы и структуры данных
2 объектно ориентированное программирование
3 основы веба и бекенд разработки
4 базы данных
и может ещё что-то, это я из головы накидал.

Когда пройдешь вот это всё ну или если уже знаешь, вот тогда и переходи уже к специфике го, потому что тебе не поможет знание языка без умения собственно программировать.
Лично я в своё время просто прошёл го тур и всё, как я уже сказал, язык сам по себе довольно простой и имхо все "курсы по го" просто продают людям воздух.

>>443954
Не знаю насчет курсов, а статьи на хабре у отуса полное дерьмо, даже среди прочих корпоративных блогов, поэтому моё мнение о них крайне невысокое.
sage 389 2444054
>>444045
This, анон, спасибо. Озвучил мои мысли. Видимо мне действительно нужно начать хотя бы с основ, понять для чего вообще нужно программирование, язык это же просто инструмент. Я так и думаю. Но вот те самые основы где найти? Понимаю что сейчас есть куча всего в интернете, было бы желание. Но может есть какой то курс (даже платный)?
390 2444104
>>444054
Уф, сложно сказать, я большую часть изучал самостоятельно и советовал бы тебе заранее подготовить себя, что IT в наше время это такая область, где тебя никто ничего не научит, кроме самых азов и что для того, чтобы поднимать свой уровень, тебе придется заниматься самообразованием, в том числе и на работе, и вместо работы, и в свободное время. Ты или фанатеешь от этого или охуееешь от объемов и разрозненности информации. Я вот в IT уже лет 10 и всё ещё не ощущаю, что знаю достаточно.

А вся эта обучающая шняга это ну такое, азы. Что курсы, что конференции (все эти Highload и тп), люди туда ходят больше попонтоваться и заработать денег, через пару лет работы ты внезапно поймешь, что реально 99% контента - оно только для джунов самого низкого уровня.
Примерно как в вове, мы сейчас с тобой обсуждаем гайды на кач 1-5 уровень.

Сейчас решил ради интереса погуглить курсы.
Скиллбокс полное говно, кажется, что они просто спеку по языку просто озвучили и продают, как курс.
Яндекс практикум (который "веб разработчик) не сильно лучше, что "базы данных" это один маленький блок "основ бекенд разработки", когда это прям основа основ. Тем более, там не постгря, а монга. Ага, новичкам. Непонятно, что за хипстеры это создавали.

Более-менее по описанию понравился только Хекслет, у них хотя бы много отдельных курсов и в своих "базовых" курсах вида https://ru.hexlet.io/programs/java они хотя бы отдельно пишут про архитектуру и бд, но конечно непонятно, что там вообще есть внутри.
Попробуй мб пройти у них
https://ru.hexlet.io/courses/introduction_to_programming (хз надо или нет лично тебе)
потом
https://pre.hexlet.io/java/либо https://ru.hexlet.io/programs/java (хз в чем разница, вероятно одно это типа совсем для нубов, а второе нет)
Потом обязательно
https://ru.hexlet.io/programs/algorithms
и https://ru.hexlet.io/courses/rdb-basics либо (а лучше вместе с) https://ru.hexlet.io/programs/sql-for-programmers
И мб нормально будет.

А там уже джуном устроишься куда сможешь и сам поймешь и за время собеседований и уже на месте, где у тебя пробелы, чего не хватает и тп.
390 2444104
>>444054
Уф, сложно сказать, я большую часть изучал самостоятельно и советовал бы тебе заранее подготовить себя, что IT в наше время это такая область, где тебя никто ничего не научит, кроме самых азов и что для того, чтобы поднимать свой уровень, тебе придется заниматься самообразованием, в том числе и на работе, и вместо работы, и в свободное время. Ты или фанатеешь от этого или охуееешь от объемов и разрозненности информации. Я вот в IT уже лет 10 и всё ещё не ощущаю, что знаю достаточно.

А вся эта обучающая шняга это ну такое, азы. Что курсы, что конференции (все эти Highload и тп), люди туда ходят больше попонтоваться и заработать денег, через пару лет работы ты внезапно поймешь, что реально 99% контента - оно только для джунов самого низкого уровня.
Примерно как в вове, мы сейчас с тобой обсуждаем гайды на кач 1-5 уровень.

Сейчас решил ради интереса погуглить курсы.
Скиллбокс полное говно, кажется, что они просто спеку по языку просто озвучили и продают, как курс.
Яндекс практикум (который "веб разработчик) не сильно лучше, что "базы данных" это один маленький блок "основ бекенд разработки", когда это прям основа основ. Тем более, там не постгря, а монга. Ага, новичкам. Непонятно, что за хипстеры это создавали.

Более-менее по описанию понравился только Хекслет, у них хотя бы много отдельных курсов и в своих "базовых" курсах вида https://ru.hexlet.io/programs/java они хотя бы отдельно пишут про архитектуру и бд, но конечно непонятно, что там вообще есть внутри.
Попробуй мб пройти у них
https://ru.hexlet.io/courses/introduction_to_programming (хз надо или нет лично тебе)
потом
https://pre.hexlet.io/java/либо https://ru.hexlet.io/programs/java (хз в чем разница, вероятно одно это типа совсем для нубов, а второе нет)
Потом обязательно
https://ru.hexlet.io/programs/algorithms
и https://ru.hexlet.io/courses/rdb-basics либо (а лучше вместе с) https://ru.hexlet.io/programs/sql-for-programmers
И мб нормально будет.

А там уже джуном устроишься куда сможешь и сам поймешь и за время собеседований и уже на месте, где у тебя пробелы, чего не хватает и тп.
391 2444114
>>444104
Хотя я ещё раз посмотрел, у скиллбокса есть какой-то про курс https://skillbox.ru/course/java-dev/ и в целом тоже и алгоритмы мелькают и что-то про базы они там рассказывают. Чёрт, не знаю даже.
Тут у тебя выбор между несколькими стульями и понять заранее и снаружи где говно, а где не говно очень сложно. Разве что если где-то можно посмотреть прям детально всю структуру их курса, с теорией и заданиями и планами обучения и сравнить с конкурентами.
Можешь кстати поискать сливы на торрентах и просто посравнивать контент, что понравится, то и возьмешь.

>>443849

> Как мне кажется платные курсы больше мотивируют заниматься


Хз, для меня это никогда не работало, или меня прет и тогда я делаю, или не прет и тогда не делаю.

> лучше по качеству, на то они и платные


Я бы на это сильно не надеялся, платные лучше по рекламе и зарабатыванию денег для владельцев в первую очередь. А условный оперсорс может быть вполне качественнее и проработаннее, потому что сделан людьми, которым нравится своё дело. Если бесплатные опенсорсные курсы вообще есть :)
У платных основное преимущество это возможность писать свои вопросы ментору, который тебе будет что-то отвечать и это может быть чуть легче, чем шариться по форумам и разбираться самостоятельно.
sage 392 2444133
>>444104
Гига-спасибо, анон!
Все равно я пока мало что понимаю и в потоке информации вокруг тяжело за что то конкретное зацепиться. Поэтому начну по твоей схеме:
1. Введение в программирование (https://ru.hexlet.io/courses/introduction_to_programming)
2. Подготовительный курс профессии Java-разработчик (https://pre.hexlet.io/java)
3. Алгоритмы и структуры данных (https://ru.hexlet.io/programs/algorithms)
4. Основы реляционных баз данных (https://ru.hexlet.io/courses/rdb-basics)
5. SQL для разработчиков (https://ru.hexlet.io/programs/sql-for-programmers).
Думаю после такого марафона что то да понимать начну. Попробуем, что уж. Замотивировался капец
393 2444154
>>444133
Салам анончик, ща от себя тоже скину ещё полезных ссылок
image.png159 Кб, 449x435
394 2444168
>>444133
>>444154

1. Лучший интерактивный курс по SQL, просто альфа и гигакурс
https://stepik.org/course/63054/promo

2. Лучший платный курс по алгоритмам и структурам данных, за 10 баксов ты получишь лучшее что есть в инторнете
https://www.udemy.com/share/104UFs3@t5q_In8OM168-skUj4LgX-LqzBjY78URALoKMXZkNxizEKx-cyuqQRBgluA_Ktnkww==/

3. Качай скиллы тут
https://leetcode.com/
https://www.codewars.com/

4. Лучший платный курс по сетям, так же за 10 баксов урвешь бриллиант и будешь флексить знаниями сетей
https://www.udemy.com/share/102fI43@Kki2S58Qt2QoBsuWPOFTWsxlimHrp7ajsFi0eOQJdK3v2hA3gda5wXbbTxh-4iZs0Q==/

5. Это твоя шпаргалка, мантра и библия по вопросам на собесе по джабе. Распечатай и каждое утро от корки до корки читай, потом
Le maman проси чтобы тебя гоняла по вопросам от туда
https://github.com/enhorse/java-interview#java-core

6. Следующие книги из пикрил купи/спизди_из_торрента и тоже от корки до корки читай

Совет, начни с джабы, пиши код пока эксепшоны из попы не полезут, задачки дрочи, пиши круд хуйню, потом выдашь за год опыта. Попыхтишь год а потом с легко и просто перекинешься на GOvno.

ВНИМАНИЕ НАХОЙ! МОЙ СОВЕТ ИМХО БЛЯТБ, НЕ ПРЕТЕНДУЕТ НА ИСТОЧНИК ПОСЛЕДНЕЙ ИНСТАНЦИИ
sage 395 2444171
>>444168
>>444104
Благодарю каждого! Получил тонну нужной инфы и направление движения. С утра начинаю вкат, пора
396 2444187
>>444168

>Попыхтишь год а потом с легко и просто перекинешься на GOvno


А в чем смысл писать год на жабе, когда можно писать год на го? Правда на жабе мне писать всегда было почему-то легче, видимо из-за того, что большую часть своей жизни программировал на C/С++, шарпе и жабе. Ну и питоне немного.
397 2444199
>>441916
>>441987
>>443440
>>443572
Всем спасибо, стало понятней.
398 2444214
говнуны, есть вопрос --
здоровый кеш(мапка, ключ стринг, значения массивы интов , наполнение в несколько параллельных потоков, памяти жрет гиг, по рсс 15. И так ебался, чтобы понизить (было ~5\30 до), как рсс чистить ( ну или не зохавывать)?
аллокейт? но там не очень понятны размеры элементов(он 1 до 60к вполне себе). Есть еще идеи?
399 2444406
>>444187
Я не он, но выскажусь.
Год на жабе, а потом год на го наверное особо смысла нет.
Но джава для новичков мне кажется поперспективнее будет, просто больше вакансий, больше инфы в интернете, всё такое.
Опять же в го нет больших фреймворков и соответственно нужно выстраивать всю архитектуру самому и с нуля, а какая может быть архитектура у новичка? Он охуеет и всё, и ничему не научится.
Так что имхо начинать с джавы будет покомфортнее, года так 2, может 4 на ней посидеть, прокачаться до хорошего уровня, а уже потом решать, какой язык тебе больше нравится и туда перекатываться. Нравится го - в го, нравится функциональщина - в скалу или хаскель, нравятся мужчины - в js и тп.

> что большую часть своей жизни программировал на шарпе и жабе


> а жабе мне писать всегда было почему-то легче


Почему бы это :) Конечно, со временем идиоматика языка настолько сильно заползает в подкорку, что вообще перестаешь думать о языке, просто на рефлексах хуячишь код и всё.

>>444214
Ты особо ничего не пояснил, кроме того, что у тебя мапа и что оно много памяти жрет. Хоть бы код показал, что ли, что за элементы, сколько их в мапе, с какой скоростью наполняются, экспайрятся они у тебя из мапы или нет.
Из банальных советов, возможно ты постоянно при наполнении мапы превышаешь её капасити и в итоге она постоянно у тебя переаллоцируется, ну там 10=>20=>40=>80=>160 элементов.
Попробуй хотя бы сразу же аллоцировать мапу на 100500 элементов.
Далее, померяй runtime.Memstats, лучше всего несколько раз, чтобы было видно, что там растет. Может получится так, что го видит, что ты чёт в этом коде имеешь привычку дохуя памяти выделять и поэтому на всякий случай не освобождает старую память, предполагая, что она тебе ещё понадобится.
400 2444567
Аноны я на сервер с 16 мб ОЗУ го через snap и начал запускать сервисы. Какова хуя команда go run запускает их по 1-2 минуты?
image.png12 Кб, 379x267
401 2444568
>>444567
А вот так вообще их все минут по 15-20 запускает. Нужно больше ОЗУ или поставить го не через снап?
402 2444627
>>444567
>>444568
Похуй уже...
Пофиксил разделением запуска на 3 скрипта и переустановкой го без снапа
403 2444657
>>444406

> Может получится так, что го видит, что ты чёт в этом коде имеешь привычку дохуя памяти выделять и поэтому на всякий случай не освобождает старую память, предполагая, что она тебе ещё понадобится.



а может ты и прав вот тут, кстати
404 2444719
>>444567
сконпелируй один раз и запускай сколько хочеш. почему go run?
405 2445687
package main

import "fmt"

func main() {
fmt.Println("hello world")
}

Я уже могу претендовать на 300к? Что дальше?
406 2445750
>>445687

> Я уже могу претендовать на 300к?


В год разве что.
Напиши какой-нибудь n-body simulator например, что-то низкоуровневое и параллельное типа компрессора какого (архиватора), или всё-таки соберись и наваяй бэк для некоего веб приложения с бд, что-нибудь базовое уровня магазина, доски объявлений или даже ссаного туду-листа. Ваять полное приложение вместе с фронтом не предлагаю, т.к. ты же не на фуллстека претендуешь, а в го наверное не получится быстро-быстро наговнякать с какими-нибудь шаблонизаторами веб-морду, как это можно например в джаве с thymeleaf, поэтому весь фронт можно опустить, если только ты не собираешься прям что-то реальное делать для людей.
407 2445752
>>445687
И кстати ты мог это без fmt сделать, просто информирую что в гохе ещё и встроенный в язык println есть (но юзать его конечно не надо)
408 2445826
>>445687
>>445750
Не слушай этого мудака, какой ещё нахуй n-body simulator, на тебя там все как на идиота посмотрят и спросят, ебанутый ты или да а ты и да, не рассказывать же на собесе, что послушался совета на двачах.
Го это на 99% язык для системных и околосетевых приблуд, докеров, сервисов, веб-сервисов, банкинга, недо-бд и так далее и тому подобное.
Поэтому для начала сделай простенький веб-бэкенд, чтобы получать запросики и сохранять их в бд и обратно. Хотя бы.
Потом попробуй поверх какую-нибудь бизнес-логику накрутить, например написать сервис-сокращатель ссылок, а лучше что-нибудь с фоновой работой, скажем сервис-скриншотер, чтобы ты ему скармливал url, он в фоне делал скриншот через https://github.com/valeriangalliat/webshot-cli к примеру и потом мог тебе его отдавать по апи.
Обязательно предусмотри там развертку базы, накат миграций туда и всё такое, желательно через докер, так и так потом столкнешься с такими задачами.
Добра.
409 2445846
>>445826
Мудак это твой батя-хуесос, ты до конца хотя бы предложение дочитал прежде чем мне что-то отвечать?
410 2445851
>>444168
Заебатые курсы, то что надо, тонны нефти тебе
411 2445862
>>445846
Если твоё предложение на 80% состоит из говна, то я могу спокойно назвать его говном, не вдаваясь в детали.
412 2445864
>>445752
Не понимаю, почему обычно не пользуются встроенным println. Ради сохранения стиля? Или тут есть подводные?
413 2445875
>>445862
Ну если моё предложение состоит из говна, то придётся признать, что из него же состоит твоё, потому что 80% моего предложения ты просто продублировал.
Ну а предметно - в чём твоя проблема с даже этой частью предложения, что тебя прям разорвало и все кругом мудаки и смотреть будут как на мудака ага и прочее? Что конкретно не понравилось?
>>445864
По-моему поддержка встроенного принта не гарантируется, его могут выпилить в будущих версиях, и оставили для возможности что-то ыбстро написать, не затягивая зависимости.
414 2446034
>>445875

> Напиши какой-нибудь n-body simulator например, что-то низкоуровневое и параллельное типа компрессора какого (архиватора)


Нот это.
Ты первыми же словами советуешь новичку написать что-то за пределами предметной области языка (кто вообще симуляции на го пишет? кому это надо?), а также что-то низкоуровневое (новичку? низкоуровневое? ему бы с концепциями языка попрактиковаться, а не байтики дрочить). Не говоря уже про архиваторы, в которых специфики языка ровно ноль, код +- одинаково везде будет выглядеть.
415 2446197
>>446034
Специфика языка го новичка сразу отвратит от языка го.
Ща бы на новичковый порносайт нарожать 100500 микросервисов и оркестрировать их в кубере, мммм
416 2446200
Или ты предлагаешь дефолтный монолит за 300 строк написать который будет запрос принимать и в базу складывать? А кто только что говорил

>специфики языка ровно ноль, код +- одинаково везде будет выглядеть


Тут-то специфики ровно столько же, но тебя не смущает.
417 2446514
насколько правдивы слова что без опыта работы на го работу не найти?

если да, то что в разработке на го такого, что требует опыт на других стеках?
418 2446530
>>446514

>насколько правдивы слова что без опыта работы на го работу не найти?


Абсолютно правдивы

>если да, то что в разработке на го такого, что требует опыт на других стеках?


А хуй его знает, рыночег так решил, легче просто мозг не ебать и с джабы начать, как я это сделал. Но бля, после 3 месяцев писанины на ГО, писанина на джабе это одна большая боль, мне пиздец таки как плохо, ментально и физически, просто выть хочется...
419 2446537
>>446530
Опыт работы на фрилансе учитыватеся кстати?
420 2446538
>>446530

>писанина на джабе это одна большая боль


А в чем боль? То, что много магии?
421 2446552
>>446538
Классы и их виды, чем абстрактный класс отличается от обычного а чем от интерфейса, как они работают, где они доступны, как их наследовать, что в них должно быть, какая область действия полей класса, назови класс от которого все наследуются, нахуя они от него наследуются, какие методы есть у этого класса.
Что такое конструктор, какие виды конструктора бывают, какие модификаторы доступа к ним можно применить, где их использовать, можно ли использовать больше чем один конструктор.
Что такое методы, чем методы отличаются от функций, может ли быть методы у интерфейса, а у абстрактного класса, какие модификаторы доступа к ним можно применить, а можно ли класс внутри метода создать, а что будет если объявить метод static, а что будет если метод объявить final.
Что такое объект, как создавать объект, где хранится объект, как сравнивать объекты, жизненный цикл объекта, можно ли создать объект от интерфейса, а от абстрактного класса, а что будет если поля класса объявить static, а если final.
Расскажи про классы в пакете util, math, lang, object, net, nio, time, security.

И все что я тебе расписал это даже не начало, это даже не джава мать его CORE. Это 1/3 СУКА!

Я за столько слов мог бы по кишкам гохи пройтись, прям до того момента как там GC работает БЛЯТЬ!
422 2446557
>>446552

> Классы и их виды, чем абстрактный класс отличается от обычного а чем от интерфейса, как они работают, где они доступны, как их наследовать, что в них должно быть, какая область действия полей класса, назови класс от которого все наследуются, нахуя они от него наследуются, какие методы есть у этого класса.


> Что такое конструктор, какие виды конструктора бывают, какие модификаторы доступа к ним можно применить, где их использовать, можно ли использовать больше чем один конструктор.


> Что такое методы, чем методы отличаются от функций, может ли быть методы у интерфейса, а у абстрактного класса, какие модификаторы доступа к ним можно применить, а можно ли класс внутри метода создать, а что будет если объявить метод static, а что будет если метод объявить final.


> Что такое объект, как создавать объект, где хранится объект, как сравнивать объекты, жизненный цикл объекта, можно ли создать объект от интерфейса, а от абстрактного класса, а что будет если поля класса объявить static, а если final.


> Расскажи про классы в пакете util, math, lang, object, net, nio, time, security.


Ну ты сейчас мегапиздатые вещи перечислил.

>И все что я тебе расписал это даже не начало, это даже не джава мать его CORE. Это 1/3 СУКА!


А вот это да, уже не так здорово

мимо вкатывался в жабу, но сдался после кора. Но жаву всё равно люблю
423 2446561
>>446552
Вот вы понимаете что это уже не язык а ОТДЕЛЬНО НАПРАВЛЕНИЕ, ЭТО НАУКА, КАК СУКА ДЖУН СТОЛЬКО ХУЙНИ ДОЛЖЕН ЗНАТЬ БЛЯЯЯЯТЬ

Вот неужели джависты так любят это болото, чем им гошка не угодила, дженериками? Они ебнулись? Дженерики на эту залупу променяли, пизда у меня очко горит...
424 2446563
>>446561
Я в рот ебал тот рынок который диктует вместо няшной гохи жирную скуфидонскую джабу...
425 2446572
>>446563
Жава топ когда тебе нужна жирная библиотека чтобы решать задачи бизнеса не отвлекаясь на велосипеды. Я тут вполне могу понять, когда в го мне предлагают самому манипуляции слайсами повелосипедить (но тем не менее у го есть свои плюсы не c++)
>>446561
Дык дженерики же теперь есть? Ну а кроме дженериков, всё что анон выше перечислил, типа это хуёво - на самом деле охуенно. Ты так или иначе на большом проекте будешь всё это переизобретать, но в чём удобен го - на нём можно делать маленькие и независимые куски говна, поэтому ему не так сильно нужно всё то, что нужно большому жирному монолиту.
426 2446577
>>446572

>Жава топ когда тебе нужна жирная библиотека чтобы решать задачи бизнеса не отвлекаясь на велосипеды.



А что умеет джаба чего не умеет гошка? Мне это интересно
427 2446580
>>446577
Бля, брейнфак - тьюринг-полный язык, и на этом остановимся.
428 2446684
>>446577
Хот релоад.
мимо
429 2446776
>>446552
Так это вроде не сильно сложные концепции, любой учебник по джаве в первых главах подробно все рассказывает, и при этом по сравнению с С++ здесь все в разы проще.
Основные минусы жабы имхо это большое потребление памяти, ну и спринг фреймворк довольно жирный, тяжелый и с тонной магии под капотом.

>>446561

>КАК СУКА ДЖУН СТОЛЬКО ХУЙНИ ДОЛЖЕН ЗНАТЬ БЛЯЯЯЯТЬ


То, что он перечислил, это немного совсем. Туда еще нужно накинуть коллекции, стримы и многопоточку. Многопоточка будет сложнее и объемнее всего остального. И это уже можно будет назвать Java Core.

>>446563
Java и Go для разных задач были придуманы, так что рынок будет тебе диктовать именно то, что нужно в данной отрасли.

>>446577

>А что умеет джаба чего не умеет гошка


Ну как минимум в Го все еще нет полноценных дженериков с эксепшонами, но на это в целом похуй.
Также нет стримов и какого-то намека на нормальный синтаксис функциональщины, те же лямбды например, это самое печальное. имхо. Конечно все это циклами заменяется, но появляется больше бойлерплейта имхо.
430 2446966
>>446684
Рекомпайл при изменениях довольно легко кстати настраивается.
Но особо он в го и не нужен, го и так компилируется примерно мгновенно, обычно цикл всё же такой, что ты несколько минут программируешь, потом нажимаешь Run и сразу же проверяешь результат. Оптимизация тут только в том, что Run нажимать не придется.

>>446552
При том, что джава действительно концептуально жирнее и волшебнее го, ты своим постом только продемонстрировал свой невысокий уровень, лол. На это всё может любой чел после полугода разработки на возможно любом ООП языке программирования.

> Что такое конструктор и какие виды бывают?


Это вызывает у тебя сложности, серьезно? А покакать у тебя сложностей не вызывает?

>>446561
Это не сложности, а так, цветочки. Подобного рода вещи можно вообще в любом языке наскрести, включая го. Те же слайсы - то ещё минное поле, особенно если начать корнер кейсы спрашивать.

Вообще очень забавно, как джуны хуеют с просто элементарной хуйни, которую даже учить не надо, она блин интуитивная.
Такое ощущение, что они ожидали, что придут в офис, им сразу по приходу 500наносеков отсыпят и всё, никаких требований не будет. Ну нет ребята, много платят за то, что имеет ценность, например высокую квалификацию.
Единственное, что оправдывает джунов-долбоебов, это то, что в универах их на айти специальностях учат в пейнте рисовать и код на паскале в тетрадке писать. А потом оказывается, что в реальном мире надо что-то знать и уметь, удивительно.

И да, все эти приколы с которых вы хуеете, придуманы не просто так, а для того, чтобы решать специфические задачи. И если вам кажется, что в го такого нет, то это просто означает, что у вас нет инструментов для решения этих задач и когда вы с такой задачей столкнетесь, вам будет больно.
В том числе поэтому я очень иронично отношусь к высказываниям типа "го - хороший язык для новичков". Может быть, первоначальной инфы за счет простоты языка и меньше, только вот в таком случае сложность переносится с языка и тулчейна на плечи программиста, о чём все почему-то недоговаривают.

>>446776

> Ну как минимум в Го все еще нет полноценных дженериков


Да уже почти есть, даже текущая реализация закрывает большинство юзкейзов.

> с эксепшонами


Спорная штука. Раньше я тоже топил за эксепшоны, но теперь, став старше и умнее, я пришел к выводу, что всё же приятнее всего видеть это дело в сигнатуре функции в виде значений.
Или как зиг делает: https://ziglang.org/documentation/master/#Error-Set-Type
(там вообще крутота, функция возвращает юнион возможных ошибок)
Или вообще в монадическом стиле.
Единственное что в го без нормального вывода типов на уровне языка полностью раскрыть потенциал таких подходов не получится.

> Также нет стримов и какого-то намека на нормальный синтаксис функциональщины, те же лямбды например, это самое печальное. имхо. Конечно все это циклами заменяется, но появляется больше бойлерплейта имхо.


Плюсану. Но вообще сейчас хотя бы дженерик библиотеки можно будет писать для этого дела. В /exp/ вообще добавили slices и maps, до стримов всего ничего осталось.
Тут основная проблема - это сами гошники, многие из них знатные консерваторы и просто лютой ненавистью ненавидят функциональщину. Причем это сродни религии у них =/
430 2446966
>>446684
Рекомпайл при изменениях довольно легко кстати настраивается.
Но особо он в го и не нужен, го и так компилируется примерно мгновенно, обычно цикл всё же такой, что ты несколько минут программируешь, потом нажимаешь Run и сразу же проверяешь результат. Оптимизация тут только в том, что Run нажимать не придется.

>>446552
При том, что джава действительно концептуально жирнее и волшебнее го, ты своим постом только продемонстрировал свой невысокий уровень, лол. На это всё может любой чел после полугода разработки на возможно любом ООП языке программирования.

> Что такое конструктор и какие виды бывают?


Это вызывает у тебя сложности, серьезно? А покакать у тебя сложностей не вызывает?

>>446561
Это не сложности, а так, цветочки. Подобного рода вещи можно вообще в любом языке наскрести, включая го. Те же слайсы - то ещё минное поле, особенно если начать корнер кейсы спрашивать.

Вообще очень забавно, как джуны хуеют с просто элементарной хуйни, которую даже учить не надо, она блин интуитивная.
Такое ощущение, что они ожидали, что придут в офис, им сразу по приходу 500наносеков отсыпят и всё, никаких требований не будет. Ну нет ребята, много платят за то, что имеет ценность, например высокую квалификацию.
Единственное, что оправдывает джунов-долбоебов, это то, что в универах их на айти специальностях учат в пейнте рисовать и код на паскале в тетрадке писать. А потом оказывается, что в реальном мире надо что-то знать и уметь, удивительно.

И да, все эти приколы с которых вы хуеете, придуманы не просто так, а для того, чтобы решать специфические задачи. И если вам кажется, что в го такого нет, то это просто означает, что у вас нет инструментов для решения этих задач и когда вы с такой задачей столкнетесь, вам будет больно.
В том числе поэтому я очень иронично отношусь к высказываниям типа "го - хороший язык для новичков". Может быть, первоначальной инфы за счет простоты языка и меньше, только вот в таком случае сложность переносится с языка и тулчейна на плечи программиста, о чём все почему-то недоговаривают.

>>446776

> Ну как минимум в Го все еще нет полноценных дженериков


Да уже почти есть, даже текущая реализация закрывает большинство юзкейзов.

> с эксепшонами


Спорная штука. Раньше я тоже топил за эксепшоны, но теперь, став старше и умнее, я пришел к выводу, что всё же приятнее всего видеть это дело в сигнатуре функции в виде значений.
Или как зиг делает: https://ziglang.org/documentation/master/#Error-Set-Type
(там вообще крутота, функция возвращает юнион возможных ошибок)
Или вообще в монадическом стиле.
Единственное что в го без нормального вывода типов на уровне языка полностью раскрыть потенциал таких подходов не получится.

> Также нет стримов и какого-то намека на нормальный синтаксис функциональщины, те же лямбды например, это самое печальное. имхо. Конечно все это циклами заменяется, но появляется больше бойлерплейта имхо.


Плюсану. Но вообще сейчас хотя бы дженерик библиотеки можно будет писать для этого дела. В /exp/ вообще добавили slices и maps, до стримов всего ничего осталось.
Тут основная проблема - это сами гошники, многие из них знатные консерваторы и просто лютой ненавистью ненавидят функциональщину. Причем это сродни религии у них =/
431 2446997
>>446966

> Вообще очень забавно, как джуны хуеют с просто элементарной хуйни, которую даже учить не надо, она блин интуитивная.


> Такое ощущение, что они ожидали, что придут в офис, им сразу по приходу 500наносеков отсыпят и всё, никаких требований не будет. Ну нет ребята, много платят за то, что имеет ценность, например высокую квалификацию.



Ещё мне ну очень любопытно было бы послушать >>446561 когда он поймет, что ему ещё нужно знать SQL со всеми его приколами от джоинов до оконных функций, индексы, b-tree и вот это всё, ещё архитектура приложений, а ещё и бд опять же, а потом ещё выяснится, что код так просто не попишешь, есть разные стили, а ещё и алгоритмы надо знать, и не стеки-очереди, а даже и посложнее иногда встречается. А потом ещё и окажется, что ОС надо знать, чтобы понимать, что на графиках memstat видишь. А потом ещё и сети, протоколы, http1/2, protobuf, grpc.. Балансировки всяческие ещё. И это только вообще самое начало, на +-джуна.

Это блять оказывается наука, это наше IT, это не тупо на кнопки давить, тут думать надо.
432 2447200
Что в среднем спрашивают на go разраба? вот на питониста начнут по синтаксису гонять, а потом попросят пару алгоритмов накидать или рефакторить какой-то код, в го иначе или то же самое?
изображение.png1,7 Мб, 1200x1698
433 2447233
>>446552

>Классы и их виды, чем абстрактный класс отличается от обычного а чем от интерфейса, как они работают, где они доступны, как их наследовать, что в них должно быть, какая область действия полей класса, назови класс от которого все наследуются, нахуя они от него наследуются, какие методы есть у этого класса.


Каждый раз охуеваю с жабьего кода, сука эти наследования напоминают библейские родословные. Ладно хуй с ним эти классы что-то бы делали полезное, большинство тупо нахуй не нужны и еще не просто так создаешь в конструкторе класс, нет нихуя это слишком просто, а ты берешь и вызываешь фабрику фабрик, которая дает фабрику и та фабрика создает экземпляр класса. Сука пиздец какой-то, вот оттуда и появляются долбоебы типа Бугаенко
434 2447249
>>447233
Хорошо когда проект маленький и это не нужно, плохо когда большой и это нужно.
image.png27 Кб, 377x219
435 2447253
Аноны а норм ли в дто добавлять JWT? Выглядит примерно так, можно офк для каждого метода добавить отдельно, но мне лень пиздец чота, это вообще плохо или норм так делать?
436 2447397
Я альтернативно одаренный, если мне проще на хаскеле писать чем на го?
437 2447431
>>447200

> вот на питониста начнут по синтаксису гонять, а потом попросят пару алгоритмов накидать или рефакторить какой-то код


Значит, херовый собес на питониста будет, ну или на новичка совсем.
Синтаксис это совсем база, нет смысла спрашивать, подразумевается, что её все знают.
На любом собесе на любом языке спрашивают в первую очередь специфику языка, то есть особенности работы языка, его сборки мусора, компиляции (если есть), системы типов и тд и тп.
Отдельно обычно идет разговор об архитектуре приложений и особенностях её реализации на конкретном языке, если такие есть.
Если в языке есть какие-то суперпопулярные пакеты типа спринга в джаве, то можно поговорить про них.
И отдельно тулчейн, то есть, значет ли чел сети, знает ли чел базы данных и тд и тп.

Я когда спрашиваю, обычно экзамен не устраиваю, но на каждую тему хотя бы вскользь пару вопросов вбрасываю, чтобы понять, разбирается кандидат в этой теме или нет.

Соответственно, на го жди вопросов про горутины, планировщик, гц, реализации слайсов, мап и строк под капотом, а также систему типов и то, что из неё выходит.
Глубина вопросов очевидно зависит от позиции, на которую подаешься.

А вообще вопрос конечно платиновый, каждую неделю тут его задают по-моему.

>>447253
Нахуя, JWT это свойство авторизации, а не объекта и идет обычно заголовком. А если потом захочешь авторизацию изменить или что-то в этом духе? Короче, читай из заголовка, проверяй в middleware (или вообще на уровне api gateway в кубере и не тащи в код), а основной код об этой хуйне знать не должен. Если основной код должен полагаться на какие-то данные из JWT, то в том же middleware их из этого jwt доставай и клади в context.WithValue, потом в бизнес-коде достанешь и проверишь.

>>447397
Значит, привык мыслить в функциональной парадигме, ничего страшного. В любом случае дело привычки и решается просто практикой.

>>447249
Так-то я с тобой согласен, только хочу заметить, что абстрактные фабрики фабрик - это чисто джавовое явление, в других языках так не принято. Поэтому джавовый дизайн кода действительно на любителя.
437 2447431
>>447200

> вот на питониста начнут по синтаксису гонять, а потом попросят пару алгоритмов накидать или рефакторить какой-то код


Значит, херовый собес на питониста будет, ну или на новичка совсем.
Синтаксис это совсем база, нет смысла спрашивать, подразумевается, что её все знают.
На любом собесе на любом языке спрашивают в первую очередь специфику языка, то есть особенности работы языка, его сборки мусора, компиляции (если есть), системы типов и тд и тп.
Отдельно обычно идет разговор об архитектуре приложений и особенностях её реализации на конкретном языке, если такие есть.
Если в языке есть какие-то суперпопулярные пакеты типа спринга в джаве, то можно поговорить про них.
И отдельно тулчейн, то есть, значет ли чел сети, знает ли чел базы данных и тд и тп.

Я когда спрашиваю, обычно экзамен не устраиваю, но на каждую тему хотя бы вскользь пару вопросов вбрасываю, чтобы понять, разбирается кандидат в этой теме или нет.

Соответственно, на го жди вопросов про горутины, планировщик, гц, реализации слайсов, мап и строк под капотом, а также систему типов и то, что из неё выходит.
Глубина вопросов очевидно зависит от позиции, на которую подаешься.

А вообще вопрос конечно платиновый, каждую неделю тут его задают по-моему.

>>447253
Нахуя, JWT это свойство авторизации, а не объекта и идет обычно заголовком. А если потом захочешь авторизацию изменить или что-то в этом духе? Короче, читай из заголовка, проверяй в middleware (или вообще на уровне api gateway в кубере и не тащи в код), а основной код об этой хуйне знать не должен. Если основной код должен полагаться на какие-то данные из JWT, то в том же middleware их из этого jwt доставай и клади в context.WithValue, потом в бизнес-коде достанешь и проверишь.

>>447397
Значит, привык мыслить в функциональной парадигме, ничего страшного. В любом случае дело привычки и решается просто практикой.

>>447249
Так-то я с тобой согласен, только хочу заметить, что абстрактные фабрики фабрик - это чисто джавовое явление, в других языках так не принято. Поэтому джавовый дизайн кода действительно на любителя.
438 2447521
Мимо ПХП макака. Хочу перекатиться:

1) Как ощущения? Можно? Стоит? Привыкание есть
2) Че по фреймворкам? Че у вас Ларавель?
439 2447527
>>446538

Чел, в Джаве магии как раз мало. Дохуя бойлерплейта, все очень вербоузно. Без ИДЕ на джаве работать вообще невозможно.

Как думаешь почему интележ беслпатный а голанд платный? Потому что на Джаве ИДЕ это базовые права человека
440 2447590
>>447521

> 1) Как ощущения? Можно? Стоит? Привыкание есть


Норм, но это совсем не пхп, так что придется привыкать. Лично мне нравится больше мощи (тм) под капотом, и меньше приседаний с процесс менеджерами и прочим. И магии ещё меньше в го.

> 2) Че по фреймворкам? Че у вас Ларавель?


А это самое вкусное, в го нет фрейморков. Ты берешь отдельно маленькие либы типа роутеров, клиентов для базы, логгеров и прочих и сам собираешь из них себе сервис. Получается очень козырно, но для привыкших хуячить одинаковые проекты php'ников "на фреймворках" ужасно непривычно первое время. Ну и джависты со спринга понятно тоже страдают.

>>447527
Джава супер волшебная, как раз потому, что у вас там постоянно классы подменяются, декораторы декорируются, аннотации добавляют дополнительную гигабайтную функциональность и что ни пакет - то операционная система в миниатюре с 10 разными логгерами одновременно. В го всего этого нет.
441 2447606
>>447527

> Как думаешь почему интележ беслпатный


Ну давай не забывать, что поддержки спренга в бесплатной версии нет.
Хотя конечно в го ещё хуже - там вообще нет нормальной бесплатной иде. Отчасти компенсируется тем, что в го не нужно столько автокомплита, сколько в жабе, в итоге выходят примерно равные условия.
442 2447610
>>447590

>В го всего этого нет.


А чё бы на си не писать? Чисто из-за гарбаге коллектора?
443 2447614
>>447606

>Ну давай не забывать, что поддержки спренга в бесплатной версии нет.


Хочу подметить анончик, что бесплатную версию в основном куашники которые на джабе пишут. Сам сотрудник одной из самых больших галер в РФ, все банки по умолчанию юзают бесплатную идею для автотестов на джабе
444 2447627
>>447610
Вопрос без троллинга если чё, я так понимаю что основные фичи в сравнении с сями это гц и многопоточность из коробки, куда ж без неё.
В остальном больше сходств, чем различий (да синтаксис - смесь сей и питона, но синтаксис не важен).
image.png451 Кб, 2250x1030
445 2447628
>>447610

Ты на си хоть раз что-нибудь писал больше калькулятора?

Ебля с хедер файлами.
Хуевая типизация(смотри пикчу, обрати внимания на параметры компилятора).
Полиморфизм через указатели на войд.
Многопоточность делается через pthread'ы и ебучие mutex'ы
Конст работает пиздец неочивидно.
Нет никаких средств удобных типа деструкторов или defer, дебаг освобождения ресурсов.

Столько способов себе ногу прострелить что я ебал.
446 2447630
>>447627
upd: Про работу со строками в сях чет слышал?)))
447 2447631
>>447590

Спасибо за совет. Хочу переходить на го так как сейчас чувствую ЕБЛЮ с пыхой. Типа я работаю в финтехе и там сложная платяорма с обработкой платежей, хайлоад-хуеад. Почему изначально на пыхе решили делать - хуй знает.
448 2447636
>>447628
Не выёбывайся плиз, я всё что ты перечислил знаю, и сверх того, но нахуя мне каждый пук уровня "ебля с хедер файлами" выносить как отдельный тезис, если можно обозначить действительно важное и всеобъемлющее?
В го тоже хватает странного (именно нового странного), я об iota помню сходу голову сломал.
449 2447637
>>447631
Пчел ты ещё не видел хуйлоад микрофинансы на 1с.
а я не могу развидеть
450 2447640
>>447636

Ну важное и всеобъемлющее это то что Си это старый язык где очень трудойомкая конфигурация, мейкфайлы это лютая залупа, работа с зависимостями совсем не pip install

Работа с юникодом в го из коробки. Работа с датами из коробки.
451 2447646
>>447640

>трудойомкая конфигурация, мейкфайлы


>Работа с юникодом. Работа с датами


Ну я просто вот это не считаю настолько важным, чтоб под это новый язык пилить.
А вот удобная многопоточка и гц - это да.
452 2447649
>>447610
В го баланс смещен в сторону простоты и системы типов, и экосистемы. Иногда с моей точки зрения с этим перебарщивают, но в целом направление вполне понятное.

Вот тебе схема, точку, которая тебе нравится, можешь выбрать сам:
"Просто, но всё нужно делать руками" <--> Go <--> Java <--> "Всё автоматизировано, но нихуя непонятно, потому что пиздец как сложно из-за кучи абстракций"

В го есть здравые моменты, например имхо утиная типизация через интерфейсы + структуры это более удачный вариант, чем джавовые цепочки наследований от абстрактных классов.
Или к примеру гошные подходы к построению библиотек, мне они нравятся гораздо больше. Чем сразу ставить себе комбайн, я лучше соберу более адаптированное решение под мой кейс по частям.

Но конечно и всякой хуйни в го тоже навалом, как обычно, что-то хорошо, что-то плохо.

>>447631
Ебля есть везде, серебряной пули не бывает. Но после php го кажется глотком свежего воздуха прям, это подкупает.
Конечно, вашего хуектора-архитектора за саму идею писать процессинг платежей на php стоило бы прилюдно высмеять и провести голышом по столице. Явно знатный долбоеб.
Пыха как язык-то норм, но для веб-сайтов в первую очередь. Кто ж на нём будет платежи писать, язык на это и не заточен совсем =/
453 2447658
>>447649

>джавовые цепочки наследований от абстрактных классов


Это антипаттерн в джаве если что
454 2447730
>>447649

На самом деле вполне неплохо выходит. Во-первых там есть интеграции, во-вторых в принципе пыха подходит для всего что работает на сервере без проблем. Просто экосистему надо знать. У нас легази-хуйня тянулась с 2009ого, тогда была пыха выбрана по причине наличия людей.

Дальше в 2020ом была поставленна цель ВСЕ ПЕРЕПИСАТЬ и решили мову оставить, так как команда есть)
455 2447731
>>447649

На самом деле вполне неплохо выходит. Во-первых там есть интеграции, во-вторых в принципе пыха подходит для всего что работает на сервере без проблем. Просто экосистему надо знать. У нас легази-хуйня тянулась с 2009ого, тогда была пыха выбрана по причине наличия людей.

Дальше в 2020ом была поставленна цель ВСЕ ПЕРЕПИСАТЬ и решили мову оставить, так как команда есть)
456 2448075
>>447730
Да конечно на чем угодно можно написать что угодно и если нормально программировать, то оно даже будет нормально работать.
Но у меня, так получилось, есть обширный опыт программирования и на php и на go. На втором если честно мне приятнее делать почти всё. Особенно обработка данных, работа с очередями, потоки.
Всё-таки очень чувствуется, что пыха как была, так и есть заточена на то, чтобы принять запрос, отдать веб страницу, а всё остальное для неё не очень родное.
457 2448152
>>446034

>за пределами предметной области языка


Какова предметная область языка го?
И на каком языке следует писать симуляцию?
458 2449053
>>409760 (OP)
Перекатываюсь из 1с бекенда, мои шансы и на что больше всего обратить внимание? Опыт где-то год, зп 100к инбифо нахуя сидел бы дальше.
459 2449078
>>448152

> Какова предметная область языка го?


Веб, сетевые сервисы, инфраструктура, утилиты. Всё остальное писать можно, но будет в разы больнее.

> И на каком языке следует писать симуляцию?


А на каких языках пишут физические движки? C++ наверное. Может ещё Js, если ты извращенец и хочешь запускать всё в браузере.

>>449053
Шансов около нуля, скорее всего ты не знаешь вообще нихуя. Претензия если что не к тебе лично, а к 1с.
А вообще, то как обычно для новчика. Из инфраструктуры, знать сети хотя бы на уровне что такое http, заголовоки и разница между get/post/put, уметь в postgres/mysql хотя бы на уровне создать таблицу и сделать CRUDы в неё.
Для го знать на каком-то уровне ответы на платиновые вопросы >>447431 и уметь писать хотя бы простенькие API. Пройди go tour хотя бы.
Дальше начнешь ходить по собесам и делать тестовые, знатно поешь говна, но с каждым разом будешь ликвидировать пробелы в знаниях и рано или поздно всё получится.
Хотя я бы на твоём месте привирал и говорил, что работал не на 1C, а на php wordpress каком-нибудь.

это всё не только к го относится, если что, универсальный ответ про любой язык, на который захочешь перекатиться
460 2449085
>>449078

>скорее всего ты не знаешь вообще нихуя. Претензия если что не к тебе лично, а к 1с


Это ожидаемо, я близко к сердцу не приму, в курсе этих предрассудков.

>Из инфраструктуры, знать сети хотя бы на уровне что такое http, заголовоки и разница между get/post/put, уметь в postgres/mysql хотя бы на уровне создать таблицу и сделать CRUDы в неё.


Чёто довольно просто, понял-принял, спасибо за воодушевление, щас наваяю некий простой сервер с рест апи. В ормы лезть стоит или их в го никто не юзает? В голом sql нормально себя чувствую, если что ("скорее всего ты не знаешь вообще нихуя" - было бы неясно как бы мы без этого апи писали для вебсайта и моб приложений, я ж говорю бекенд)

>Хотя я бы на твоём месте привирал и говорил


Эйчарке соврать и написать должность просто "программист" (как собсна у меня и написано) это святое дело, техническому интервьюеру врать смысла не вижу, во первых про пыху могут и спросить, а во-вторых если там какой-то фанатик с предрассудками против 1с (что маловероятно), то нам один хуй комфортно вместе работать не будет (мало ли какие ещё помимо этого загоны у чела могут быть).
461 2449107
>>449085

> В ормы лезть стоит или их в го никто не юзает?


Просто описывай интерфейс type Users interface {}, а в реализации пихай или голые запросы, или собирай их через squirrel какой-нибудь.
Орм"ки в целом есть, но их почти не используют, потому что до недавнего времени без дженериков и аннотации они были очень уж волшебными либо кодогенеративными. Самая популярная это Gorm, она эже и самая херовая.

> было бы неясно как бы мы без этого апи писали для вебсайта и моб приложений, я ж говорю бекенд


Хз, если у тебя там битрикс, то есть CRM, скорее всего это комбайн, который много что пусть и плохо, но делает за тебя. К примеру, если тебя на собесе спросят про накат миграций ты скорее всего даже не поймешь о чём речь.

> техническому интервьюеру врать смысла не вижу


Готовь в любом случае легитимный ответ на вопрос, почему захотел перекатиться.
462 2449149
>>449107

>Хз, если у тебя там битрикс, то есть CRM, скорее всего это комбайн


Не, мы как раз ебёмся по хардкору, всё делаем руками - ловим запросы, анмаршаллим, смотрим что там за операция и переключаем на нужную ветку логики, комбайн у нас на совсем другой стороне - на стороне работы внутренних сотрудников, вот у них есть коробочный интерфейс для взаимодействия с системой, а у нас голый хттп и апи в свагере.
В целом я нахожу это похожим на гоху, но хуже - динамикодрисня, нет интерфейсов, не особо гибкая инкапсуляция (хотя стоп - в го примерно то же самое). В целом бэк на таком довольно неприятно писать - везде бесконечно проверяешь типы. И кстати с другой стороны сидят пыхеры, которые тоже в похожей ситуации, и когда мы после одного фейла на проде, связанного с типами, мы предложили им валидировать типы руками, они сильно заскрипели зубами, осознавая с одной стороны, сколько бойлерплейта сейчас придётся ливануть в кодобазу, а с другой - что без этого всё же никак.

>К примеру, если тебя на собесе спросят про накат миграций ты скорее всего даже не поймешь о чём речь.


Это когда меняется структура таблиц, и данные надо перезалить в новый формат. Обычно долго. В 1с другой термин, но суть одна.

>Готовь в любом случае легитимный ответ на вопрос, почему захотел перекатиться.


Выше ответил. Могу добавить - так уж получилось, что даже в рамках 1с я менял места в сторону работы с большими и большими объёмами данных. Наконец упёрся в потолок - более нагруженной системы, чем у нас - больше нигде нет в 1с. Вывод напрашивается сам собой. Я слышал - го это про хайлоад? Значит нам туда.
463 2449627
Аноны, тут есть физтехи компьютер-сатанисты. Такой вопрос.
Как написать максимально оптимизированную по времени очередь фиксированного размера. Что требуется - добавлять в очередь новое значения одновременно выкидывая старое. Random Access не нужен, буду итерироваться по всем элементам при добавлении нового.
Какие СД приходят на ум.
1) Связный список. Тут все плюс минус понятно. Но! Нагружаем GC. И наверное

2) Эррэй по размеру данных. С точки зрения теории алгоритмов - полное говно. Получается нужно при каждом добавлении копировать значения в новый эррей со здвигом и дописывать. НО! Процессоро-делы то тоже не палкой сделанные и охуенно оптимизировали операции копирования массивов (ну, насколько я слышал). Возможно такой вариант будет быстрее. Да и итерироваться по массиву думаю быстрее в машинных кодах, чем по указателям связного списка бегать туда сюда по памяти.

На память мне относительно пох. Данных не так много и спокойно можно позволить себе их хоть задвоить, хоть затроить. Главное - скорость выполнения операций.
464 2449634
>>449627
Двойной связный список. Хранишь указатели на начало и конец.
При добавлении...
хотя стоп, я не пойму чего ты, блядь, хочешь:
Аt first I was like

>максимально оптимизированную по времени


But then

>Random Access не нужен, буду итерироваться по всем элементам при добавлении нового.


Ты уточни как часто будешь добавлять, как часто читать всю очередь, и какие элементы хочешь получать чаще других.
Untitled.jpg12 Кб, 565x309
465 2449649
>>449627

>Получается нужно при каждом добавлении копировать значения в новый эррей со здвигом и дописывать


А зачем? Сделал массив по числу элементов, сохранил указатель на начало очереди, при добавлении нового элемента заменяешь элемент под указателем и сдвигаешь указатель на следующий (на самом деле указатели не нужны, нужен индекс в массиве)
466 2449651
>>449634
Читать всю очередь подряд при добавлении нового элемента.
нужно пересчитать мат формулу
Довольно таки часто, предположим что интервал добавления -> 0.

Что значит двойной? Двусвязный? Зачем, если можно просто хранить поинтеры на начало и конец.
При добавлении Last = Last.Next, First.Next = NewOne.

Но меня смущает факт, что указатели могу быть хуй пойми где в памяти разбросаны, в отличие от массива.

В прочем уже пишу бенч.
467 2449654
>>449649
Гениально. Тебя то я и ждал. Спасибо, анончик. Желаю иксовый рейз.
468 2449656
>>449654
Ты не поверишь, но я и тот анон - >>449634
это один и тот же человек.
Да в общем-то особо не за что, свежий взгляд он часто так работает.
469 2449673
Аноны, у кого на 1.19 версии го просил cgo, если есть зависимость net/http?

https://github.com/golang/go/issues/50183

Я вот про это.
image.png52 Кб, 1067x783
470 2449676
Чому так?
471 2449677
GCC/G++ не установлены на системе.
472 2449684
>>449677
А своей головой говно работать не может? Обязательно на сишке паразитировать?
473 2449693
>>449684
В том-то и дело, что должно все без зависимостей cgo/gcc/g++ работать. Но видимо где-то кто-то обосрался...
474 2449719
>>449676
или поставь то, что каждый разработчик должен иметь, либо CGO_ENABLED=0 сделай
475 2449726
>>449627
назови одну причину почему тебе не подходит циклический буфер на слайсе
476 2449764
>>449726
Насколько я понял анон>>449649 это и посоветовал. Или это что-то другое принципиально?

типо arr = append(arr[:1], arr[1:])? Если так, мне кажется просто хранить индекс первого элемента будет эффективней. Хотя и немного сложнее в использовании.
477 2449946
>>449764

>Насколько я понял анон>>449649 это и посоветовал


ага
478 2449963
Кстати, что тут происходит под капотом?

>arr = append(arr[:1], arr[1:])


Кажется, что должен выделяться (cap х2) подкапотный массив, в который дописывается первый элемент. Все правильно?
Безотносительно задачи, просто разобраться
479 2449989
>>449963
Двачую вопрос
480 2449994
И еще вопрос знатокам. Залез в сорцы, в функции io.ReadAll есть такая операция:
b = append(b, 0)[:len(b)]
Это что за синтаксис такой? Что происходит. Вроде с Го ковыряюсь уже года полтора, нигде не видел.
481 2449997
>>449994
Точнее ладно, синтаксис понятен +-, но бля, какой смысл
482 2450000
>>449997
Лол, я дурачек, прям перед этой строчкой комментарий:

>// Add more capacity (let append pick how much).



Но блин, какой-то реально dirty hack, как будто Сишник писал
483 2450006
>>449963
ну это просто не сконпелируется, т.к. второй аргумент это не элемент слайса, а слайс. и вообще хз что под этим имеется в виду.
arr = append(arr[:1], arr[1]) обрезает слайс до первых двух элементов
arr = append(arr[:1], arr[1:]...) ничего не делает. ну мб одну и ту же область памяти в ту же область копирует.
arr = append(arr[1:], arr[0]) допишет первый элемент в конец и сдвинет указатель на первый элемент. если капасити не хватит, то аллоцируется новый массив. капасити нового массива это деталь имплементации и спеком не регламентируется. это не всегда х2, там помимо длины изначального массива еще паддинг с учетом размера элемента может учитываться, лучше сорц прочитать
484 2450060
>>450006
Это я тупан, точки подразумевались, но я аргументы перепутал, конечно, должно быть так:
arr = append(arr[1:], arr[:1]...)

Ну в общем то понятно, если делать очередь таким образом, то бекинг эррей будет постоянно расти что не круто.
485 2450275
>>449994
А я не понял. Или тут используется старый len(b), до аппенда?
486 2450329
>>450275
Может и после апенда, но точно до присвоения
487 2451150
>>450000
Так скорее всего сишник и писал. Пол-стдлиб написано людьми с си головного мозга, там в коде черт ногу сломит. Я как-то exp/language дебажил, чуть не умер.
Хотя в этом случае их можно немного оправдать, в го нет методов для увеличения размера уже созданного слайса, то есть либо так, либо
c := make([]int, len(b)*2)
copy(c, b)
но второй вариант был бы неоптимален из-за расходов на лишнее перевыделение + копирование.

Так и остается тема с тем, чтобы добавить элемент, а потом взять всё до него. Разве что стоило бы это в 2 строки написать, чтобы люди с ума не сходили.

Вообще тут гошники конечно сами себе в ногу выстрелили. Что им мешало добавить слайсу метод extend к примеру - непонятно хотя понятно, конечно, это ж гошники, они простых путей не ищут
488 2451161
>>451150

>но второй вариант был бы неоптимален из-за расходов на лишнее перевыделение + копирование


Так в том то и прикол, что когда мы делаем append к заполненному capacity, все равно создается новый массив и в него копируются данные.
То есть по сути, разраб не хотел хардкодить len(b)*2, а в место этого решил воспользоваться внутренней логикой расчета дополнительного капасити при экстенде слайса.

Короче блять да, легких путей не ищут и над читабельностью не парятся
489 2451205
>>451161
Я кстати не уверен, отличается ли copy(c, b) от копирования при увеличении длины массива под капотом у слайса. Думаю, там под капотом могут быть оптимизации. А могут и не быть.
490 2451279
Аноны, как сейчас обстоят дела с рынком джунов гошников? Хочу вкатиться в бэкенд на го. Тяжело ли будет найти первую работу, если на других языках/технологиях не было коммерческого опыта работы?
491 2451281
>>451279
В Go нет джунов.
492 2451446
>>451279
Этот вопрос повторяется каждые 10 сообщений. Как же вы заебали, ну научитесь хоть немного мотать тред перед тем, как писать свой сраный комменатрий.

Надеюсь, ОП напишет ответ на него капсом в своём следующем посте.
493 2451968
>>451281
и хуле делать? Через ПХП вкатываться?
494 2452364
>>451968
Через шарп, но потом в Go не захочется.
495 2452373
>>452364
Бля, насколько же тебе нравится шарп, что ты наверное во всех тредах сидишь, кроме шарпотреда.
496 2452400
>>452373
А зачем там сидеть? Одни шизики, сектанты и любители мёртвого десктопа.
sage 497 2452720
>>452400

> и любители мёртвого десктопа.



Зомби из параллельного мира вещает? Десктоп живее всех живых. А миллиарды леммингов ошибаться таки МОГУТ. Что и делают, пожирая WEB-кал в промышленных масштабах.
498 2452738
>>452720

> живее всех живых


Примеры?
image.png771 Кб, 875x808
499 2452774

> на го нету джунов


почему мир так жесток
500 2452847
>>452774
Бля как же я тебя понимаю анончик, сам думал что этот мир наебу. Начал с го, это бля лучший язык на котором мне пришлось писать, очень приятный и логичный, но работу так и не нашел. Сейчас сижу учу джабу и как же меня она достала, это реально трижды переваренный кал говна, у меня все.
501 2452998
>>452847
С таким гонором точно не наебёшь.
502 2453057
>>452774
Тащемта, всё правильно. Хороших мест с хорошей зп всегда будет меньше, чем плохих и туда всегда будет трудно попасть. Хочешь преуспеть - страдай и въёбывай. Или иди к остальным неудачникам типа >>452847 работать курьером.
Так и должно быть, если вы ищете халявы, то тут её нет.
мимо-сеньор, который долгие годы въебывал ради своей 6значной долларовой зп.
503 2453099
>>453057
Ты зарабатываешь меньше 100к $ в месяц
504 2453236
>>453057
Работа на го это халява, или в чем твой тейк?
505 2453959
>>451279
Пытайся попасть на стажировку в озон ну или вайлдбериз. Если никуда не возьмут, значит ты проиграл и нужно начинать учить пыху.
506 2454231
какой проект можно создать, успешное выполнение которого сигнализирует о готовности человека к настоящей работе на удаленке в офисе?
507 2454233
>>453057

>Хороших мест с хорошей зп всегда будет меньше, чем плохих и туда всегда будет трудно попасть.


А можно попасть не на хорошее место, а хоть КУДА ТО??
508 2454235
>>454233

> хоть КУДА ТО??


Согласен в ДС получать 35к рублей до вычета налогов?
509 2454592
>>454233
С такой позицией никогда выше дворника не заберешься, а так - пожалуйста, миллион стремных рабочих мест, куда зайти с улицы скорее всего не очень сложно. Только язык ты тогда неправильно выбрал, на го как правило пишут в средне-крупных компаниях и стартапах. И те, и другие обычно имеют деньги и/или мотивацию что-то делать и нанимать профицитных сотрудников.
Хотя конечно озон здесь скорее исключение, из того, что я про него знаю, технологически это редкостная помойка с огромной текучкой.
Если хочешь тупую работу за копейки с низком порогом входа, посмотри лучше в сторону php, какие-нибудь местячковые аутсорсы или веб-студии на cms, вордпресс, битрикс, вот это всё. Больше средней зарплаты по региону ты на такой работен не получишь, но вкатишься довольно быстро.
510 2454609
>>454592
>>453057
Сам шизу в голове своей придумал, сам на нее же отвечает
511 2454931
>>454235
>>454233
вб/озон как сказали сам так вкатился. потом через годик уходишь в другое место с плюсом к зп.
512 2454973
Объясните что человек должен уметь чтобы быть работоспособным на позиции go разраба(по части программирования)?
513 2455268
>>2454690 →
>>454931
А ты в Озоне или в ВБ работал?
Какие были требования при приёме и какая зп в итоге?
Какой был опыт до этого?
514 2455358
>>2455261 →
Ну ты шаришь за степень унижения гей-шлюх, наверное тебе можно в этом вопросе довериться.
515 2455408
>>455358
А ты во франчайзи работаешь, или просто в конторе?
516 2455452
>>455408
Чел можешь мне не докладывать подробности своей сексуальной жизни окей?
517 2455475
>>454973
Та по сути тоже что и любой другой джун-бекендер - говнякать CRUDы в том стиле как принято в проекте, не сильно заниматься самодеятельностью, не делать совсем хуйни
Сори что так абстрактно
518 2455679
>>455268
в вб. требования хз. вопросы типичные уровня куда having в запросе писать, чем udp от tcp отличается и из чего состоит хттп запрос. но сейчас могут и побольше дрочить. получил те самые 35к. через 2 года 250. опыта работы не было, только техническая вышка не по программированию.
519 2456183
>>2454142 →
Хуй его знает, как мы вообще начали обсуждать 1с в этом треде, но тем не менее.

> В 1С больше и работы, и зарплаты


Лютый пиздеж, у 1с никогда не было и не будет зарплат, сопостовимых с зарплатами нормальных разрабов на нормальных ЯП, по вполне очевидным причинам.
Достаточно посмотреть на любую статистику, увидеть среднюю зарплату 1с-шлюхи в 100к и понять, что там нет не то, что чести, знаний или самореализации, но даже и банально денег.
меньше 200к не человек
менее 300к не программист
менее 400к не сеньор

нет бога кроме зп джавистов и котлинистов, пророков её
ну или мб го, хз, вроде примерно такие же
520 2456221
>>456183
Сам-то скок зарабатываешь?
521 2456323
>>456221
400+, очевидно пруфов не будет, контора российская, околофинтеховый околостартап
522 2456508
>>456323

>пруфов не будет


Удивительно
523 2456906
>>449078

>утилиты


А что относится к утилитам, если архиватор к ним не относится?
524 2456937
>>456508
Чел, перестань себя успокаивать, это не сговор. Я работаю рекрутером, это не какая-то сверх зарплата. Ребята с парой лет опыта устраиваются на 200-250 т.р. спокойно.

Я понимаю, что ты не можешь спокойно жить с этой информацией, так что тут либо поднимать жопу с дивана и выкидывать свой 1С, либо решить для себя, что деньги это не главное
525 2456947
>>456937

>перестань себя успокаивать


>Я понимаю, что ты не можешь спокойно жить с этой информацией


Перестань себя успокаивать фантазиями о том, будто твои собеседники неспокойны)
Я просто попросил пруфов, ты (он или ты или любой человек, который впрягается за зарплаты в 400к в рф) его не дал. Это меня не бесит, просто немного разочаровывает. Немного, потому что я особо ни на что не надеялся. Пруфы счетов в армении с большими зп - да, были, и не раз. В рашке пока ждём.
528 2457051
>>456988
А ничего, что у тебя там "поиск клиентов", "менеджер по оптовой продаже" и т.п.?
529 2457086
>>456988

Двачую анона >>457051
Ищи по названию резюме
530 2457144
>>457051

>нажми кнопки за меня


Да не вопрос, не вопрос: по названию резюме и фильтру от 400к в 1с четыре вакансии, а в го - пять. Охуенная разница? Охуенно ясности внесло? Давай, твоя очередь.
531 2457145
>>457144

> по названию резюме


По названию вакансии, повторил чужую оговорку.
532 2457149
А не, видать что-то лишнее было выбрано, так-то там 25 вакансий или около того. Тогда вопрос снят.
533 2457152
>>445826
Приходит чел на собес.
На вопросы отвечает нормально.
- Давайте посмотрим на ваши рпоекты
- Вот ссылка - https://github.com/mikee385/GolangRayTracer
- Шо нах какой рэйтрейсер иди отсюда нахуй блядь
- Ишь чё удумал на гохе что-то помимо крудов писать
534 2457315
>>457152
Ты подменяешь понятия. Я написал, что если чел не собирается на работе писать трассировщики лучей, то тогда ему лучше делать тестовое, похожее на работу, заодно и потренируется, да и на собесе будет больше нормальных и предметных тем для обсуждения.
535 2457460
Сап, гоферы. А скажите, правильно ли я понимаю что в го очень много бойлерплейта и решать алгоритмические задачи в одну строку как на ПАЙТОНЕ не выйдет?
536 2457533
>>457315

>Я написал, что если чел не собирается на работе писать трассировщики лучей, то тогда ему лучше делать тестовое, похожее на работу


Немного не так

>на тебя там все как на идиота посмотрят и спросят, ебанутый ты или да


Это означает не "тогда ему лучше", а "ни в коем случае так не делать, в противном случае тебя даже рассматривать не будут". Если бы ты так и сказал, как сейчас, никто бы не стриггерился.
537 2457561
>>457533
Ну я сгустил краски, но смысл тот же. Приди ко мне на собес чел с трассировщиком, я бы заподозрил его в байтодрочерстве и конечно спросил бы, нахуя он сделал именно трассировщик.
Для меня это очевидно странная задача, которую можно сделать по приколу, но абсолютно непонятно, в чём выгода делать это в качестве тестового проекта для показа работодателям.

>>457460
Как в питоне точно нет
538 2457587
>>457561

> которую можно сделать по приколу, но абсолютно непонятно, в чём выгода делать это в качестве тестового проекта для показа работодателям


Ну если у работодателя не используется язык го, то очевидно незачем.
В противном случае это демонстрация твоего умения работать с языком, на который ты пришёл
539 2457600
>>457561
Стоп, а го это разве не про то, чтобы уйти от джавы и иерархий наследования в сторону велосипедов, байтодрочерства и низкоуровневых оптимизаций, столь нужных высоконагруженным проектам?
Запрашиваю пояснительную бригаду
540 2457628
>>457587
Кроме языка есть ещё предметная область. Немного смысла нанимать на серьезную позицию человека, к примеру, который отлично знает го, но вообще не представляет себе, что такое базы данных. Он тебе напишет full outer join где-нибудь сразу же :)
Поэтому в идеале тестовое задание должно демонстрировать твои компетенции в той области, в которой ты будешь работать, а не только в языке.
Об этом и речь.

>>457600
Да, но нет :) То есть да, уйти от джавы, меньше магии, больше байтиков, но это никак не противоречит тому, что встречаются конкретные байтодрочеры, которые делают это слишком неидиоматично даже на уровне го. Всегда важен баланс.
И поэтому естественно я захочу знать, что за человек сидит передо мной и не начнёт ли он у меня вообще все dto'шки заменять на одну общую структуру, потому что типа так быстрее будет. В го тоже существует понятие архитектуры, как бы многие долбоебы и не пропагандировали концепцию "хуячь как угодно, го это ж простой язык, он как раз для этого".
541 2457654
>>457628
Спасибо за ответ.
Имхо трассировщик лучей как таковой не связан с понятием байтодроча, просто такая вот прикладная задача - протрассировать лучи, зачастую людям это интересно (блядь, да даже мне интересно, хотя я и не человек), но базара нет что эта задача не подразумевает взаимодействие с бд и брокерами сообщений.
Немного наверное стоит пояснить за моё отношение к петам вообще и к образованию в айти. Если в двух словах, то я за то, чтоб изучать некую технологию и тут же её закреплять в каком-то проекте, потом изучать слудующую и делать то же самое, при этом не столь важно будут ли они все в одном проекте (не стоит тратить время, чтобы придумать интересную идею проекта, где пригодятся оверходуя технологий разом - это пустая трата времени)
Трассировщик лучей там, или упомянутая выше симуляция - это проекты, призванные закрепить изучение одной технологии - языка, на котором ты их пишешь, и при этом быть достаточно сложными, чтобы пригодилось сразу много фич языка: в случае с трассировщиком там и параллельные вычисления (что очень важно для го, да и везде важно, где оно в принципе есть), и дженерики, и ещё дохуя всего.
А начнёшь ебашить сходу копию фейсбука (когда ты и язык-то толком не знаешь) - угадай что получится? "Это не для меня, я не справляюсь, ну, я пытался". По итогу конечно необходимо бекендеру иметь в загашнике именно бекенд проект, который можно показать, но и все остальные не помешают, при условии что они написаны красиво, грамотно оформлены, документированы и т.д., в противном случае их лучше сделать приватными.
542 2457710
>>456906
cat, grep
)
543 2457717
>>457144
Теперь задачка такая, сравни количество 1Сников и гоферов в России. Если смотреть в данном контексте разница огромна.
544 2457723
>>457717
Как я выше сказал, я наебался с количеством вакансий в го, второй раз смотрел, там было 25 вакух на 400+, поэтому вопрос чисто из-за этого уже отпадает. В го к тому же и индекс вката крайне высок (хотя в 1с тоже немаленький), но одновременно с этим в го не джуновских вакансий, что достаточно забавно.
545 2457789
>>457723

> этим в го нет джуновских вакансий, что достаточно забавно.


Потому что го как правило идёт вторым языком, как у людей, так и у бизнесов, сначала зачастую делается говнолит на php, который если взлетает - переписывается на golang. Ну или на джавовых проектах, им тоже зачастую проще вынести какие-то требовательные к перфомансу места на гошечку, чем тюнить jvm специально под них, тем более, что там в жаве своих приколов хватает.
В том числе поэтому я с некоторой иронией смотрю на тех, кто пытается вкатиться через го, это ну очень нетрадиционный путь. При том что гошка классная и мне самому нравится, я пишу на ней фулл тайм - всё же рандомному новичку я бы предложил начать с фреймворков и какого-нибудь java/php/js/c#/хз, что сейчас удобнее всего. А уже потом, став более или менее опытным, перекатываться на го, ради интересных задач и $$$.
546 2457830
>>457460
Нет, но можно на https://github.com/goplus/gop
547 2457838
>>457830
Мертворожденная хуйня
548 2457904

>А уже потом, став более или менее опытным, перекатываться на го, ради интересных задач и $$$.


лайфак в том, что на стажерские собесы по гошке можно ходить нихуя не зная гошку, кроме го тура и параллельно пытаясь вкатиться в шарт/жаву или другую хуйню.
549 2457928
>>457904

>на стажерские собесы по гошке


Оксюморон
550 2457939
>>457928

Насколько сложно ебут по гохе мидлов на других мовах?
2022-09-0721-23-58.png2 Кб, 61x70
551 2457953
>>457939
Ты всё прекрасно понял
552 2458009
>>457838
Пока оно обратно совместимо с го (пока не поддерживаются дженерики, например) оно будет жить, т.к. людей которых заебывает писать if err != nil много
553 2458826
>>457723

>индекс вката


Это довольно смешная метрика, придуманная исключительно аноном из мвп треда. Она мало о чем говорит.
554 2458827
>>457460
Тру, на питоне и джаве решать в разы удобнее литкод, ну и собственно большая часть разборов и решений алго задач это python/java/c++, где есть нормальные коллекции. В го работа с коллекциями сделана через жопу, увы. Даже после С++ с его уебищным STL или жабы с ее полным костылей Collections Framework хочется рыдать при виде того, что в го сейчас происходит.

>>457600

>байтодрочерства и низкоуровневых оптимизаций


Это не про го, если уж прямо говорить. Го выигрывает у джавы в меньшем оверхеде по расходуемой памяти и быстрому времени старта. Пока JVM просирается и прогревается перед началом работы, скомпиленный бинарник уже начал работать. Низкоуровневые оптимизации и байтодрочерство это точно не про языки с GC в большинстве случаев.
555 2458833
>>454235
30к стандартная зп для стажера в вб. В озоне побольше, но там уже ебут неслабо.
В авито может быть еще больше, но туда уже огромная конкуренция.
556 2458863
>>458826
Это понятно.
>>458827

>Тру, на питоне и джаве решать в разы удобнее литкод


Два чаю
>>458833
Ебать чё за треш, быстро опровергните
557 2458981
>>458827

> Тру, на питоне и джаве решать в разы удобнее литкод, ну и собственно большая часть разборов и решений алго задач это python/java/c++, где есть нормальные коллекции.


Я согласен с тобой только в той части, что большая часть разборов - на других языках.
Что касается написания, имхо, там без разницы особо. В го будет немного больше из-за приседаний вокруг коллекций, отсутствия стримов и всего такого, но в целом, плюс минус одинаково всё выглядит и главное в таких задачах это всё равно сам алгоритм, а не то, как ты массив попаешь.

> Это не про го, если уж прямо говорить.


> Низкоуровневые оптимизации и байтодрочерство это точно не про языки с GC в большинстве случаев.


Да, но нет :) Безусловно, если ты хочешь писать свою бд и обмазаться оптимизациями, то тебе нужен язык с минимальным оверхедом сам по себе и поэтому гц да и вообще рантайм тебе будет только мешать.
Но при этом если сравнивать конкретно го и джаву, то го лучше джавы подходит для низкоуровневых оптимизаций, поскольку он и сам более эффективен, и ближе к железу, как язык.
Грубо говоря, для байтодрочерства C/C++ > Go > Java и имхо чел спрашивал об этом.

>>458863

> Ебать чё за треш, быстро опровергните


Хз, но в Москве на такие деньги не выжить. С другой стороны, я начинал стажёром с зп в 15к как давно это было чёрт возьми
И да, имхо, вкатуны вайтивайти с курсов ради космических зарплат должны страдать. Так что может и норм.
558 2459049
>>458981

>я начинал стажёром с зп в 15к


Я про голанг ща
559 2459132
>>458981

>Что касается написания, имхо, там без разницы особо. В го будет немного больше из-за приседаний вокруг коллекций, отсутствия стримов и всего такого



Ну хз, так то понятно что в целом все одно и то же, но тех же treemap/treeset в гошке нет, да и вообще нормальных интерфейсов у коллекций как-то нет, часть просто есть в языке вроде тех же массивов, слайсов и мап, а часть в contrainer находятся, вроде той же очереди с приоритетами.
Как-то непривычно очень работать с таким.

>>458981

>низкоуровневых оптимизаций


Ты про дергание ансейфа? В целом соглашусь, правда хз что за низкоуровневые оптимизации в гошке в среднестатистическом бекенде делают.
560 2459136
>>458863

>Ебать чё за треш, быстро опровергните



>>458981

>Хз, но в Москве на такие деньги не выжить



Ну стажер в Яндексе на фуллтайме меньше 60 получает. В сбере 57к до налогов. Больше всех Тинькофф платит - там около 70 или даже 80 до налогов получится за фуллтайм.
Здесь же просто стажерский стандарт 35-40к платят. А смысл платить больше? Эти гошные стажировки у них идут круглогодично все время, я ни разу не видел, чтобы на хх.ру не было гошной стажировки в wb. Там похоже пачками берут вкатунов, чему-то учат, потом берут одного-двух, а остальных нахуй)
561 2459139
>>458981
А, ну и того же сета в стандартной либе просто нет. Очевидно, что сет это всего лишь мапа с булами в значениях, но ради этого приходится городить какой-то синтаксический пиздец.
562 2459174
>>459136
Как избежать этого? Не ходить на говностажировки?
563 2459219
>>459174
Без говностажировок ты вряд ли вкатишься в принципе, потому что джуны и стажеры в го мало кому нужны, если уж прямо говорить.
Ну и 30-60к нормальная зп для стажера, который по факту только убытки будет полгода-год приносить компании.
564 2459250
>>459219

>Без говностажировок ты вряд ли вкатишься в принципе


Значит обойдутся без моих услуг, буду искать конторы/стеки, в которых готовы платить.

>Ну и 30-60к нормальная зп для стажера, который по факту только убытки будет полгода-год приносить компании.


Ага, охуенная история, мне-то не рассказывай, 30к для нормальной компании - пыль, у нас стажёры получают от 60к, а в целом отдел разработки - боюсь представить, если три тимлида - уже миллион.
565 2459277
>>459250
WB не самая нормальная компания так-то на самом деле.
Ну значит у вас какой-то крупный финтех, потому то 60к платить стажеру очень мало кто готов платить. Ну или стажеров у вас называют джунами.
Из известных мне контор: дойче банк и jetbrains платили хорошо своим стажерам, но они увы свалили. Сейчас стажеру найти 80к - очень большая удача, больше выторговать вообще нигде нельзя. Зато есть неоплачиваемые стажки, и за 20, 30, 40, 50к. Это вот самое распространенное.
Что самое интересное, зп стажера никак не менялась уже лет

>>459250

>Значит обойдутся без моих услуг, буду искать конторы/стеки, в которых готовы платить


Если ты с опытом, зачем тебе идти на стажировки? Стажировки исключительно созданы для зеленых вкатунов-студентов без опыта.
566 2460173
Задачи на озон контесте
571 2460227
>>460173
Херня, ещё в 9 классе на олипмиадах по программированию такие задачи решал. Тратить на одну такую больше 20 минут это такой непрофессионализм, что можно сразу увольнять.
572 2460256
>>460227
Ну вот не зря решал, теперь можешь вкат в озон устроить
573 2460460
>>460256
Мне не нужно, у них зп слишком низкая.
Озон норм мб для джунов (хотя я пару лет назад слышал, что там технически всё очень не очень) и неуверенных в себе миддлов.
574 2460461
>>460227
Пригождалось на работе?
Мне вот ни разу.
575 2460475
>>460461
Хотел сказать "да ни разу", но потом задумался, потому что если честно то сложно отделить эти навыки от других.

Конкретно такие задачи, как на скринах, почти ни разу не встречались. Но при этом периодически я сталкиваюсь с задачами, когда к примеру нужно написать обработку графа пользователей, или приходится немного колхозить какой-нибудь таск менеджер и соответственно я пишу обработку дерева задач, всё такое.
Или к примеру на работе как-то раз пришлось написать свой простенький язык выражений, чтобы менеджеры могли задавать свои условия для бизнес-логики и не дергать разработчиков, а учить менеджеров всяким регуляркам и прочим премудростям было слишком напряжно готовые либы типа expr не подходили. У меня это заняло мб вечер, простенький парсер ну и дерево выражений.
Cчитается это или нет? Хз. Для меня это тривиальщина, при этом некоторые мои друзья честно говорят, что с наскоку такого сделать не сумеют.

Так что не знаю, думаю, что этот бекграунд меня научил алгоритмическому мышлению и каким-то основам, но в чистом виде конечно опыт переборки массива не особо применим.

Но опять же такие задачи появились, только когда я начал работать в стартапах и продуктовых компаниях. Пока я работал в аутсорсах, то ничего этого мне не требовалось, просто шлёпал круды по шаблону до талого.
576 2460486
>>460475

>Но при этом периодически я сталкиваюсь с задачами, когда к примеру нужно написать обработку графа пользователей, или приходится немного колхозить какой-нибудь таск менеджер и соответственно я пишу обработку дерева задач, всё такое.


Это да, разумеется. Правда в реальности никогда таких жёстких временных рамок нет. Даже вот как шутят в мвп треде про кабана, просящего поднажать, но в реальности никогда не нужно нажимать настолько сильно, чтобы увидеть разницу между алгодрочером и обычным человеком. В реальности время уходит в основном не непосредственно на разработку, а на согласования, созвоны, короче на менеджмент всякий.

>что с наскоку такого сделать не сумеют


Прибедняются. Одно дело когда человек даже не знает, что именно тут надо применить - тогда да, он может проебаться довольно долго. Но если ты человеку скажешь "напиши парсер сука тут нужен парсер" - он его за вечер напишет с помощью гугла. Обычно умение быстро понимать, какое решение нужно в том или ином случае - нарабатывается опытом и оплачивается отдельно.
577 2460490
>>460227
Слабак, я на самую простую убью час, с гуглом вспоминая синтаксис питухона.
Но это если я её буду делать. А я не буду, и другим не советую. А работодателям, кто во время собеседования просит на ходу такое решать - ну смотрите сами, я бы в ебальник харкал за такое, но может где-то на мифические должности нужно это уметь делать на собесе, но судя по тому сколько в яндексах платят (а это как раз места где ебут алгоритмами) - не нужно. На моей помойной говнодолжности дотнетчика за 250к и подавно не нужно.
Когда такое в виде тестового даётся, со стандартным сроком две недели - к этому нормально отношусь, правда надо понимать, что с таким сроком будут и за говнокод спрашивать, если он будет.
578 2460573
>>460486

> Правда в реальности никогда таких жёстких временных рамок нет.


Это другое, как и в любом спорте, в спортивном программировании нужны рамки и ограничения. В жизни конечно такого нет, нормально вылезти за требования или закидать их железом.

> В реальности время уходит в основном не непосредственно на разработку, а на согласования, созвоны, короче на менеджмент всякий.


Это в неудачных конторах. Обычно я стараюсь найти себе место, чтобы хотя бы 90% времени непосредственно писать/отлаживать код. Пока получается.

> Но если ты человеку скажешь "напиши парсер сука тут нужен парсер" - он его за вечер напишет с помощью гугла.


Ты знаешь, нет, не совсем. Если ты никогда парсеры не писал, то будешь тупить на ровном месте. А когда опыт есть, то руки сами пишут, особо не думаешь над этим.

>>460490

>А работодателям, кто во время собеседования просит на ходу такое решать - ну смотрите сами, я бы в ебальник харкал за такое, но может где-то на мифические должности нужно это уметь делать на собесе, но судя по тому сколько в яндексах платят


Яндекс-то хуета, это да. Только ты не путай собесы и яндекс. Я периодически вспоминаю свой опыт найма людей и это пиздец. На словах все просто львы толстые, а потом просишь на собесе написать fizzbuzz (если что, цикл с несколькими ифами внутри, задача без подвоха абсолютно) и "сеньоры с многолетним опытом" не могут написать не строчки.
Поэтому приходится хотя бы что-то спрашивать, чтобы понимать, что человек перед бы не на 100% врёт про свой опыт и навыки. Иначе очень много времени на каждого такого мудака уходит, начинаешь его вводить в курс дела, давать задачи - и внезапно выясняется, что он двух слов связать не может. Так и живём, приходится спрашивать что-то такое не от хорошей жизни, а как минимальное требование. Естественно это не касается долбоебов, которые прям олимпиадные задачи с литкода на собесах спрашивают я сам их без особого труда решаю, но меня они тоже бесят.
579 2460616
>>460573

>а потом просишь на собесе написать fizzbuzz


Не, ну где физзбазз, а где "даны наборы "идентификатор и два соседних члена", соберите из них анальное кольцо и выведите противоположный элемент указанному" (я кстати сделал, но не уложился в тайминги по всем задачам, как нетрудно догадаться, если я литкодовское оббегание матриц змейкой по несколько вечеров делаю).
580 2460938
Нет ли у кого книжки "Black Hat Golang" на русском?
581 2461024
>>460938
английский учи, хакер
582 2462375
>>423625

>Странно


Потому что пидор ГОвнастый тебе лапшу на уши вешал, ибо в ДС-2:
"Go OR Golang": 450
"C# OR .NET": 588
583 2462430
Почему у меня в плейграунде сид один и тот же всё время?

package main

import (
crypto_rand "crypto/rand"
"encoding/binary"
math_rand "math/rand"
"fmt"
)

func init() {
//Randomizing seed from crypto/rand
var b [8]byte
_, err := crypto_rand.Read(b[:])
if err != nil {
panic("cannot seed math/rand package with cryptographically secure random number generator")
}
math_rand.Seed(int64(binary.LittleEndian.Uint64(b[:])))
}

func main() {
//making an array with random numbers
const ARRAY_W int = 10
const ARRAY_H int = 10
var myArray [ARRAY_W][ARRAY_H] int
for x := 0; x < ARRAY_W; x++ {
for y :=0; y < ARRAY_H; y++{
myArray[x][y] = math_rand.Intn(5)+1
}
}
//Printing array
for x := 0; x < ARRAY_W; x++ {
for y :=0; y < ARRAY_H; y++{
fmt.Printf("%v ",myArray[x][y])
}
fmt.Printf("\n")
}
}
583 2462430
Почему у меня в плейграунде сид один и тот же всё время?

package main

import (
crypto_rand "crypto/rand"
"encoding/binary"
math_rand "math/rand"
"fmt"
)

func init() {
//Randomizing seed from crypto/rand
var b [8]byte
_, err := crypto_rand.Read(b[:])
if err != nil {
panic("cannot seed math/rand package with cryptographically secure random number generator")
}
math_rand.Seed(int64(binary.LittleEndian.Uint64(b[:])))
}

func main() {
//making an array with random numbers
const ARRAY_W int = 10
const ARRAY_H int = 10
var myArray [ARRAY_W][ARRAY_H] int
for x := 0; x < ARRAY_W; x++ {
for y :=0; y < ARRAY_H; y++{
myArray[x][y] = math_rand.Intn(5)+1
}
}
//Printing array
for x := 0; x < ARRAY_W; x++ {
for y :=0; y < ARRAY_H; y++{
fmt.Printf("%v ",myArray[x][y])
}
fmt.Printf("\n")
}
}
584 2462787
>>462430
Потому что это плейграунд
585 2462818
>>462787
Хуйня с crypt/rand работала в плейграунде с другим кодом. Мамой клянусь.
586 2462820
>>462818
*crypto/rand
587 2463136
>>460177
>>460176
>>460175
>>460174
>>460173
Хорошие задачки, сразу будет видно людей, кто умеет программировать, ну или хотя бы потратил полгода-год на литкод, что уже говорит о мотивации человека.
Хорошо отсеит вкатунов, которые кое-как пролезли на галеру без литкода в эпоху ковида, научились писать примитивнейшие круды, а теперь возомнили себя разработчиками, лууул.

>>460490
Крудошлеп, ты? Как раз такие задачки проверяют навык умения кандидата рассуждать. И если нужно срочно запилить какую-нибудь фичу/пофиксить баг, то олимпиадник или задрот литкода с таким справится гораздо быстрее вчерашнего таксиста, которого по ошибке взяли в айти в 2021 году.

>>460490

>судя по тому сколько в яндексах платят (а это как раз места где ебут алгоритмами) - не нужно


Ну, мань, рынок после февраля все сужается и сужается, посмотрим как ты будешь новую работу искать без литкода.
588 2463154
>>463136

>Крудошлеп, ты?


Может и я. Проблемы?

>Как раз такие задачки проверяют навык умения кандидата рассуждать.


Ошибочно. Они проверяют умение решать литкод на скорость. Именно на скорость. Я думаю мне не надо тебя убеждать в том, что любую из этих задач решит обезьяна, если дать ей пару дней, а не часов?

>И если нужно срочно запилить какую-нибудь фичу/пофиксить баг


Чёбля, баг пофиксит быстрее тот, кто работает с кодом, в котором баг появился, постоянно. Поэтому задачи на сопровождение уходят тем, кто знаком хорошо с кодобазой, а они уж перекидывают другим, если есть подозрение, что баг в другом месте. Ты вообще работаешь в айти? Какие-то странные вещи говоришь, как будто повторяешь чьи-то слова услышанные в интернете.

>Ну, мань, рынок после февраля все сужается и сужается, посмотрим как ты будешь новую работу искать без литкода.


Я не совсем понял в какой именно момент заслужил от тебя оскорбления, но если будет нужно, я и запуск ракет изучу, ты не переживай.
589 2463411
>>463154

>Они проверяют умение решать литкод на скорость. Именно на скорость


Ну и? Нужно уметь решать алго задачи на скорость. Это стандарт в 21 веке блядь. Не суметь решить медиум с лита за 15 минут == быть опущем.
590 2463461
>>463411

>Ну и?


Ну и к проду это не имеет отношения. Стандарт ли это или не стандарт на собеседованиях - вопрос отдельный, а вот это утверждение

>Как раз такие задачки проверяют навык умения кандидата рассуждать. И если нужно срочно запилить какую-нибудь фичу/пофиксить баг, то олимпиадник или задрот литкода с таким справится гораздо быстрее


является истиной где-то процентов на 10 (поскольку всё же есть определенная корреляция между литкодом и скиллами в работе, с чем я не согласен, так это с раздуванием её до 100%)
591 2463806
>>463411

>> Ну и? Нужно уметь решать алго задачи на скорость. Это стандарт в 21 веке блядь. Не суметь решить медиум с лита за 15 минут == быть опущем.


Плюсану этого. Круды перекладывать можно и обезьяну научить, а литкод хотя бы показывает, что у человека какие-никакие навыки есть, помимо посещения курсов для вкатывальщиков.
Да и как правило такие люди без проблем могут и стандартную библиотеку продебажить, и протолкнуть фикс в опенсорс, и при необходимости решить проблемы с инфрой. В отличие от кодо-макак, которые маршалить json'ы научились, а думать - нет и любой крэш за пределами их уютного http handler'а надолго отправляет их к психотерапевту. Ох, помню, словил я как-то баг в одной либе, которая работала через cgo..
592 2463930
>>463411
Кому нужно? Тебе? Иди решай.
593 2464347
Бля я щас повешусь нахуй, посмотрел 2 часа роликов по traefik так нихуя и не понял, как это говно настроить.

Мне нужно, чтобы реверс прокси делало что-то типа
(http/https)://host:(80/443)/path/to/endpoint -> http://host:port(например 10002)/path/to/endpoint
в докере

Это вообще возможно сделать с traefik или я не так понял его функционал? Или если тут никто не шарит, куда обратиться за советом?
594 2465768
>>463806
нитакусик в треде
595 2465834
На какую тему написать петпроджект, чтобы было не стыдно в гитхаб выложить?
596 2465861
>>465834
Сервер - таск раннер напиши. Чтобы по http api можно было ставить задачи и потом проверять статус их выполнения. Опционально потом можешь сделать, чтобы можно было по вебсокетам получать апдейты по твоим задачам. Ну и там куча разных вариантов, как можно это внутри сделать, фичи можно подсматривать у celery, такая очередь задач на python, очень фичастая.
597 2466395
>>421307

>Pgx


У него есть pool, в котором есть соединения к постгре, я сейчас через него делаю все запросы , аля pool.Query(ctx, "select gowno from zopa") , вопрос балансирует ли этот пул соединения? Есть ли у него какой то лоадбалансер или он просто делает запрос через первый коннекшн, пока запрос делается, образно оставшиеся 99 могут делать запросы, как первый освободится то он сделает другой запрос и так далее?
598 2466511
>>466395
судя по коду puddle работает как стек. в третьей версии была очередь.
599 2466728
>>466395
А нахуя тебе балансер в пуле, ты же всё равно одну бд указываешь и вся нагрузка на неё и ложится.
600 2466752
>>466728
ну там есть параметр MinConn , MaxConn , задав их образно на 100 я могу иметь 100 конекшнов к базе, которые и выдерживает постгря, по дефолту вроде так
я просто из интереса, ведь много конекшнев которые делают запросы как-то там распределяя нагрузку , мб какой-то запрос долгий, то другой конекшн пойдет обрабатывать

>>466511
прикольно, значит освободившийся конекшн возвращается обратно в стек и если нагрузки не большие то часть конекшнов просто будет простаивать?
601 2466794
>>466752

> прикольно, значит освободившийся конекшн возвращается обратно в стек и если нагрузки не большие то часть конекшнов просто будет простаивать?


Ну он их вроде закрывает потихоньку

> я просто из интереса, ведь много конекшнев которые делают запросы как-то там распределяя нагрузку , мб какой-то запрос долгий, то другой конекшн пойдет обрабатывать


Мне кажется, ты путаешь балансировку с чем-то ещё. Балансировка - это когда ты балансируешь запросы между несколькими исполнителями, загружая всех равномерно. Например, когда у тебя у одной базы есть много реплик на чтение и ты отправляешь запросы к ним ко всем, чтобы не задидосить одну случайную.
602 2467014
>>466794
ок, тогда поясни за этот пул, если разбираешься

Есть смысл делать MinConn, MaxConn ?

я вообще провел такой эксперимент, вытянул из pg_stat_activity pid и еще некоторую инфу и заметил, что он реально делает указанное в MinConn число соединении, и, заблокировав поток select {} эти соединения висят в idle
603 2467209
>>467014
Есть, как раз для скалирования числа коннектов, минимум - чтобы при скачке нагрузки оно скалировалось не с нуля, а максимум - ну там понятно, чтобы не превысить ограничения самой базы.
По-хорошему надо это дело выставлять, оглядывась на метрики, архитектуру и профиль нагрузки. На глазок я бы выставил что-нибудь вроде 10/50.
604 2467436
>>462430
var b [8]byte

Ты никак не инициализируешь байт. Всегда нули будут В итоге ты инициализируешь сид одним и тем же байтом.
605 2467439
>>464347
nginx? там это типа того будет:

location /path/to/endpoint {
proxy_pass http://host:10002/path/to/endpoint
}
606 2472358
>>467209
С этим разобрались, окей, теперь вопрос возник другой

Когда стоит использовать Exec , а когда Query Row ?
Зачастую охота вернуть подтверждение из базы, вот мол, вставили в табличку, держи айди, по этому айди потом можешь чето еще делать, джоинить и тд. В Exec же мы просто выполняем операцию и все.

Да, у нас есть commandTag , но зачем это, если можно Query Row все делать ?

commandTag, err := conn.Exec("delete from widgets where id=$1", 42)
if err != nil {
return err
}
if commandTag.RowsAffected() != 1 {
return errors.New("No row found to delete")
}
607 2472433
>>472358
Ты сам на всё ответил.
QueryRow операций, которые возвращают одну строку
Query для операций, которые возвращают много строк
Exec для операций, которые ничего не возвращают

Я Exec использую только для масс апдейта или удаления
image.png45 Кб, 887x528
608 2474608
Аноны объясните дебичу, как это называется.

У меня есть три таблички A, B, C. Когда я добавляю данные в таблицу A или B, у меня автоматом конкретно выбранные столбцы из этих таблиц попадают на новую строку в таблицу С
609 2474614
>>474608
блятб в глаза долблюсь уже, промахнулся тредами, хотел к РБД боярам задать вопрос, а задал гошникам лол...
610 2474619
>>474614
Только хотел спросить причем тут говна тред
611 2474876
А как в Го пишутся большие приложения? Есть какие-то фреймворки с внедрением зависимостей или можно на голом Го всё написать?
612 2475369
Можно ли на Го писать графические приложения? К примеру, нужно окно, где рисуется картинка по пикселям, а рядом набор управляющих кнопок, полей ввода и т.п.?
613 2475385
614 2475456
Если прочитать книжку Керригана по Го, то этого достаточно, чтобы можно было ходить по собесам на джуна и получить оффер?
615 2475630
>>475456
Нет. Точно нет.

>>463806
Какая мотивация решать бесполезные задачи на литкоде в пол, просто тратя время, за которое еще и не платят чтобы потом выяснить, что эти задачи никакого отношения к работе не имеют? а? Какая должна быть мотивация?

У меня на 1 курсе были алгосы с подобными задачами, нарешался, теперь от них просто тошнит нахуй. Собеседуюсь на джуна , если не возьмут из -за алгоритмов, то отчасти буду рад, что не попал в такую компанию.

>>464347
прокинь в iptables или nginx

https://my.esecuredata.com/index.php?/knowledgebase/article/49/how-to-redirect-an-incoming-connection-to-a-different-ip-address-on-a-specific-port-using-iptables/
616 2475665
>>475630
А что ещё надо знать?
617 2475689
>>475665
Да дохуя всего, зависит от твоего опыта
Начни с круда с использованием какой-нибудь постгри( в идеале найти какую-нибудь готовую базу на тысяч 40 записей, чтоб прочувствовать ошибку хуевого джойна), Не забудь ее поменять накатив хотя бы 5 миграции и собственно накатил/откатился, пока не почувствуешь уверенность или боль жопы(потому что эти все гуси и прочая шляпа работают плохо, выкидывая всякие ошибки по любому поводу, реализуй кэширование в какой-нибудь редис, как пример вышел новый сериал и юзеры запрашивают его, че, 100000 селектов ради того чтоб получить 1 и те же данные делать будем? Надо кэшировать , навали мониторинг, можешь поиграться с NoSQL в виде эластика или монги, если хочешь, далее задеплой это в докере

Как это сделаешь, время переходить к асинхронщине , выдумывай синтетические задачки(это самое сложное, поскольку то, что ты можешь выдумать ограничено твоими знаниями, то бишь в идеале найти кого-то кто будет это выдумывать, чтобы был рост, а не перебор своих же навыков)
Собственно, я сейчас тут.

Ну офк базовые навыки про операционные системы, шарить за модель ОСИ, понимать че вообще происходит когда в браузер вписываешь 2ch.hk/pr , хорошо если объяснение этого будет как минимум на 2-3 страницы а4 14 шрифта. Ну такое.

Далее можешь подаваться на джуна и готовить жопу под алгоритмические задачи, мне их решать противно, нет, я нормально отношусь к алгоритмам если они действительно нужны, как писал анон выше, когда стоит реальная задача вроде обхода дерева , и когда ты собсна реализуешь алгоритм под ее решение, а не синтетическое дерьмо из литкода

Хз. мб что-то забыл, но с большего так.
618 2475762
>>475689
Почему сейчас обращают внимание на деплой в докер? Разве от этого надо писать какой-то особый код? Это же просто заливка программы на сервер. С этим любой эникейщик справится.
619 2476127
>>475385
Дак реальные веб-приложения пишутся через net/http или всё же есть фреймворки, на которых это всё по-другому делается?
primer.jpg75 Кб, 727x455
620 2476260
На сколько сотыг можно претендовать?
621 2476880
>>476260
Учитывая, сколько раз ты перевыделаешь память под одну бедную, несчастную строку - 0.5 сотыг максимум.
Стринг билдер или буфер бы прикрутил туда, хотя бы.

Не говоря уже про то, что паттерн повторяется каждые 15 чиселок, поэтому теоретически ты можешь просто итерироваться по i +=15
622 2477064
>>476880

> Не говоря уже про то, что паттерн повторяется каждые 15 чиселок


Не повторяется
623 2477286
Как вообще происходит выделение памяти под мелкие переменные вроде int? Если в классических языках они хранятся на стеке и пропадают, когда выходят из области видимости, то в Го можно получить ссылку и "прокинуть" переменную дальше. На стеке такой фокус не получится провернуть, так как он не может сохранить случайные переменные. Значит такие переменные создаются в куче. Но не сильно ли дорого создавать такие переменные?
624 2477288
>>477286
Может как на стеке так и на куче
В основном всегда пытается выделить на стеке, если так нельзя, то выделяет на куче
example.PNG57 Кб, 761x760
625 2477525
>>477064
Мы вам перезвоним
626 2477563
>>477525
Но никто не обратил внимание, что задача решена не верно
627 2477578
Как ломануть GoLand?
628 2477699
>>477563
Ну ты же не предлагаешь нам всерьез в голове это компилировать и запускать? Все посмотрели глазами и откомментировали, что заметили сходу
629 2477965
В какой IDE вы работаете? Хватит ли VS Code или надо обязательно GoLand? Есть ли другие бесплатные альтернативы?
630 2478024
>>477578
Устроиться на работу
>>477965
Писал в VSCode , перешел на Голанд, в целом доволен, сделал под себя, только не понимаю как быстро переходить в терминал, сейчас я спличу окно и использую cmd tab для перехода в свой терминал, а там же есть встроенный, как им пользоваться через хоткеи я пока хз
631 2478055
>>478024
А какие работы существуют для гошников? Переписывают монолиты с джавы на микросервисы го?
632 2478611
>>478055
Я чаще встречал что сразу копролиты пишут на говняке
633 2478992
>>477286
если компилятор заметит обращение к указателю переменной то она будет в куче
go.png11 Кб, 460x168
634 2479043
Мне кажется этом примере разработчики языка сами себя переиграли.
635 2479184
А Го не запретят в связи с санкциями?
636 2479228
>>479184
Наоборот, в связи с санциями, обяжут нанимать программеров из рф только в качестве гошников. К концу года половина из них поедет кукухой, а половина самоубъется от жуткой депрессии.
Данил 637 2479504
Всем привет, я пайтон разработчик(джун), понравился го, какие вы проектики на нем пилите для себя? Ибо я не хочу делать дефолт типо book-store и т.д.

Планирую запилить реал тайм ридер логов с докера и показом их на фронте, как идея? Тянет на intermediate?
638 2479559
>>479504
Да мы заебали, научитесь читать треды, каждые 50 сообщений спрашиваете одно и то же
Любое веб апи норм, но будет лучше, если запилишь что-то с апи, бд, работой с очередями и разверткой через докер потому что это будет максимально приближено к типикал проектам на го
639 2479560
>>479559
*вы заебали, оговорочка по фрейду, сам уже заебался отвечать на одно и то же
640 2480028
Дак получается всё равно, есть такой весь классный язык, минималистичный, все дела. А в итоге надо скачивать какой-нибудь сранный фреймворк и в итоге работа ни чем не отличается от джавы со спрингом или сишарпа с асп.нетом.
641 2480092
>>480028

>фреймворк


Но фреймворков уровня спринга или asp.net здесь просто нет...
642 2480098
>>480092
А какие тут фреймворки?
643 2480113
Сап, двач. Мимо ПХПшник, хочу перекатиться.

Скажите, насколько хорошо принимают перекатунов и насколько глубоко стоит знать го? Собесы жосткие на знание самого языка?
644 2480150
>>480113

> Скажите, насколько хорошо принимают перекатунов


Нормально принимают, кейс переката из пыхи в го очень распространенный

> насколько глубоко стоит знать го?


Настолько хорошо, насколько можешь. Как минимум представлять себе, как работает рантайм и понимать идиоматику языка, благо её не очень много.

> Собесы жосткие на знание самого языка?


Сложнее, чем на PHP или JS, но проще, чем в Java. Готовься понимать, как работает сборка мусора и планировщик, а также знать, как под капотом работают базовые типы: мапы, слайсы, каналы, интерфейсы, строки.
645 2480464
>>480150
А есть кейс переката из джавы в го?
646 2480486
Язык разрабатывали с расчетом на бэк, и не догадались добавить тип decimal (для финансовых расчётов), но зато добавили нафиг ни кому не нужные комплексные числа. Разработчики явно в какой-то своей вселенной живут.
647 2480966
>>480464
Джавистов в го перекатывается меньше, чем пехапешников, но и такие есть.

>>480486
А в чём проблема взять любой пакет с таким типом, например https://github.com/shopspring/decimal ? Я его юзал, всё ок, драйвер бд поддерживает из коробки.
648 2481009
>>480966
Кажется теперь я понял, го - это такой конструктор, собери язык себе сам)))
649 2481331
>>481009
Ты с плюсов сюда пришел?)
650 2481893
>>477965
3 года на вскоде, полёт нормальный. в голанде чето дохуя окошек кнопочек как вы этим пользуетесь ебать
651 2481998
Помогите, ничего не понимаю. Вот надо разделить строку. Почему в терминале оно работает так странно. Я ввожу текст с пробелами, нажимаю Enter и то что я ввел вводится в терминал.
1542958509579.png68 Кб, 630x142
652 2482408
Можете подробно объяснить, что значит scanner.Scan()?
653 2482423
>>481998
>>482408

Выкладывайте код не картинкой, а в виде ссылки на https://go.dev/play/

>>481998
Запринти s сначала, возможно, что у тебя scanln как-то странно работает.

>>482408
Scanner это такой объект-буфер, куда ты засунул источник данных (os.Stdin) и теперь при работе с этим объектом он будет сам, по необходимости, читать данные из этого источника. Такой себе объект-хелпер и который избавляет тебя от необхоидимости работать с источником данных руками.
654 2482448
>>482423
То есть, я говорю сканеру, что читать надо оттуда-то и потом, когда надо уже считать вызываю функцию Scan()? А до этого что в переменной находится?
655 2482449
Я просто не понимаю, почему когда я запустил scanner := bufio.NewScanner(os.Stdin), оно сразу не запросило ввод с консоли и не считало его?
656 2482534
>>482448
>>482449
Тебе стоит понять концепцию "ленивых" вычислений.

В качестве очень грубого примера, ты воткнул лампу в удлиннитель, а удлиннитель в розетку. Ток не побежит по удлиннителю, пока ты не включишь саму лампу.

Так и в твоей ситуации. Ты подключил провод некому прибору, в данном случае буферу. И пока ты не вызовешь какие-нибудь методы от буфера, то есть не включишь сам прибор, он не начнет потреблять электричество.

А вообще посмотри код Scanner'а, он же тривиальный. И да, я не уверен, что он тебе сейчас вообще нужен.
657 2482559
>>482534
Надо с клавиатуры считать строку с пробелами. Насколько я понял, сканы из fmt перестают считывать после пробела.
658 2482587
>>482559
Ты просто не умеешь читать документацию и/или примеры.
fmt.Scanln ожидает от тебя, что ты заранее знаешь, сколько строк тебе передадут и поэтому сделаешь что-то вроде
var s1, s2, s3 string
if _, err := fmt.Scanln(&s1,&s2,&s3); err != nil {
panic(err)
}
println(s1,s2,s3)

ты бы понял это, если бы соизволил вот здесь >>481998
на третьей строке обработать ошибку от Scanln

Скорее всего, тебе нужен один из этих сниппетов: https://gosamples.dev/read-user-input/
}
659 2483383
Пацаны, а как нормально реализовать периодическое задание. Скрипт, который будет раз в час запускаться. При этом всегда есть крутящийся веб сервер на го.
Просто запихать в крон? Выглядит топорно и старо, может есть какие нибудь фреймворки, где в отдельной горутине можно запустить бесконечный цикл и как то делать это по другому?
660 2483547
>>483383
Есть куча пакетов типа gocron, поищи по гитхабу, найдешь просто десятки.
Но они тебе на самом деле не нужны, ты можешь просто в коде сделать таймер примерно вот так, вообще без пакетов: https://goplay.tools/snippet/R3srpxc4Qxu
Для тривиальных случаев это нормально заработает, для сложных - тебе потребуются уже отдельные пакеты или всякие сторонние вещи вроде kubernetes cronjob.
661 2483549
>>483383
Крон или системд таймер. Или ты порридж и тебе для всего нужна модная херня?
662 2484053
>>483549
Нет, щас тащемто через крон и сделано. Просто крон в отдельном контейнере крутится и мне казалось это хуевым решением
663 2486986
>>481893
Удобно ли в вс коде работать с гiтом?
664 2486998
Пишут ли голанге простые веб-сайты или только высоконагруженные микросервисы?
665 2487345
Берут ли голанг-разработчиками вкатутосей или надо быть сеньором-помидором в другом языке?
image.png344 Кб, 1539x867
666 2487807
>>486986
да вроде не на что пожаловаться. блейм в один клик, старые коммиты в пару кликов открываются, хоткеи поставил чтобы стейджить выделенные куски отдельно, черрипикнуть/заребейзиться на другой бранч в три клика
667 2487837
>>487807
У меня чё-то нету таких менюшек
668 2487854
Че, уже пора к вам перекатываться? Че у вас по конкуренции?
мимо Java - господин
669 2487861
>>487854
Ты сеньор джава?
670 2487885
>>487861
Нет, я ждун джава и поэтому буду составлять конкуренцию го ждунам, посему и спрашиваю
671 2487897
>>487885
Ждунам запрещено изучать голанг. Надо сначала стать сеньором в другом языке.
672 2487908
>>487897
Да хули там в вашем кале разобраться то? У вас даже экспешенов нет, вместо него паник рофланэбало
673 2487921
>>487908
Вот поэтому пишут всё на языке с эксепшенами и лишь маленькие кусочки реализуют на голанге
674 2487922
Прошу прощения, я залетный, наверное, ответы уже звучали несколько раз, но все же задам. Правда ли что сейчас практически невозможно стать жуном на ламповой го и лучше долбиться в жаву для получения первой работки? И что это за стажировки в вайлдберисе и озоне, как там все проходит?
675 2488171
>>487837
в центре тут гит граф https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph
а дефолтную вкладку гита я просто в secondary panel перенес, т.к. заебало переключатся между файлами и гитом.
ну и всякие gitlens, аддон для сташей который я раз в полгода использую чтобы посмотреть че за говно там скопилось и такое.
676 2488185
>>487922

>И что это за стажировки в вайлдберисе и озоне, как там все проходит?


ну тут все просто. стажировка это не курсы. бэйзикалли ты устраиваешься жуном, только получаешь еще меньше и тебя еще легче выпизднуть. в начале тимлид/сеньор из твоей команды может какие-нибудь тестовые задачи дать типа накидай круд который ходит в этот сервис и забирает тупа никому не нужный жсон чисто чтобы ты с основами разобрался. а потом просто будешь обычные задачки брать и перейдеш на обычного джуна.
677 2488537
Делаю веб ресурс один и встал вопрос.
Ситуация: Приходит человек гетом, в ответ должен получить рандомное имя файла из S3.

Варианты:
1. На каждый запрос ходить в S3 получать список всех файлов, после чего отдавать рандомный из них.
+
up to date список файлов всегда
-
Медленно и не скалируется

2. Хранить все возможные ключи в монге
+
Быстренько получил рандомное имя сразу же из базы и отдал юзеру
-
Придётся контролировать чтобы в монге был up to date список файлов

3. Хранить всё это говно в редисе. Т.е. первый запрос будет ходить в S3 и пихать всё говно в редис. Как это дело обновлять без рестарта я не придумал.

Как белые люди решают такие проблемы? Я макака самоучка, мне ентерпрайзы с нормальной архитектурой даже не снятся.
678 2489854
>>488537
чета я не понял почему у тебя решение с монгой и редисом разные, с точки зрения задачи они одно и то же.
если у тебя требований к задержке нет, то просто воркером получаеш весь список файлов и сохраняешб куда-нибудь, а сервисом из него отдаеш рандомный, проверяя что он действительно есть в с3. можешь это хоть с монгой/редисом/файликом на диске/в памяти делать в зависимости от конкретных нужд. потом можно допиливать вставку в кеш при вставке в хранилище и удоление несуществующих при неудачных выборках
679 2489917
>>487922
В озон тяжко попасть, там попускают по алгоритмам жестко. В вайлдбериз вроде попроще, один знакомый с интеллектом ниже плинтуса туда как-то попал, правда его в штат после стажи не взяли. Сейчас он на фронте кстати, мобилизовали, не успел после окончания вышки найти быстро работу в аккредитованной конторе, а у него военная кафедра была в унике, в магистратуру не пошел.

Сейчас в РФ в принципе работы для жунов не осталось. На джаве тоже. Но за рубежом (говорим про ЕС, США, Канаду, Австралию) джавы на порядок больше.
680 2491274
Анон, помогай!
В сбер-что-то предлагают пойти, но у них там livecoding. Что за задания в общем? Типа помержить два списка или fan-in/fan-out написать? Или что там вообще?
681 2497533
>>491274
ну так че там было
682 2499115
>>474608
Звучит как какие-нибудь триггеры, не совсем понятно, что за таблица С, приведи конкретный пример.
go want smthng.png216 Кб, 1913x1045
683 2501484
>>409760 (OP)
Сап! Помогите новичку. Пытаюсь запустить helloworld на goclipse - вылезает ошибка пикрил. Подозреваю, что проблема в GOPATH. В инструкции по установке goclipse сказано, что GOPATH должна вести в папку workspace. А после установки Go путь вёл в несуществующую папку C:\users\username\go и ошибка была, что надо дописывать @lastinstall, если Go установлен не на диске С.
684 2501527
>>501484
1. твоя проблема в том, что ты взял какое-то древнее говно. давно уже модули все юзают, а не GOPATH.
2. нихуя не понятно в какой папке у тебя проект, а где GOPATH. в тайтлбаре нарисовано MyFirstGo\workspace, а в окне EclipseGO\workspace. тебе пакет нужно создавать там, куда ты GOPATH направил. лучше бы дефолтное ~/go/src оставил и там создавал, т.к. нахуя тебе под конкретную IDE это подстраивать.
у тебя есть три варика:
1. тупа делаеш go mod init myproject из папки с твоим проектом.
2. как белый человек делаеш go mod init github.com/anon/myproject
3. как 300 IQ правильно настраиваешь свой GOPATH, создаешь внутри него проект и тупо делаеш go mod init, а название из папочек подтянется само.
685 2503613
Хелловорлд хелловорлдом, живу в ЕС и пытаюсь найти работу на гошечке и столкнулся с тем, что по факту 2 вакансии где не ищут сильного мидла с опытом и конкретными скилами/сеньора , собственно, по этим 2 вакансиям нет отклика.

Как дойти хотя бы до собеседования? я уже не говорю про получить оффер, хотя бы просто дойти до собеседования. Другой стек пока не рассматриваю, да и особо нечего, я много времени и ресурсов вложил в изучение этого языка и ну типа жалко.
686 2503619
>>503613
а да, свитчнулся с питухона, имею универский бекграунд по информатике, умею в докер, кафку, релационные субд и немного в нерелационные, ну и всякая прочая экосистема, разве что в кубер не умею, не было задач где он был бы мне нужен, но бля, разве этого мало? Хочу хотя бы 1к долларов на старте, пиздец. Каким надо быть гением мысли чтобы писать на Go за деньги? Не за деньги так пожалуйста, пиши хоть сутками, а как за деньги, так подавай сениора с 100 годами опыта
687 2503900
>>503613
линкедин есть?
где ишешь на каких сайтах?
пробовал на почту херкам сразу кидать резуме?
скинь гит, оценим подскажем
689 2504258
>>503619
в го не любят джунов, минимум мидол, и желательно перекатун с другого языка.
го это оптимизации микросервисноый архитектуры, мы нужны в основном крупным компаниям, реже галерам. а крупные компании это деньги, так что не надо жатся как на вакансию пыхера и просить сотку.
у херок обычно есть бюджет, редко это меньше 3к, они смотрят по зп желаемой кто ты. вот наймут тебя на 1к, через 2 месяца ты съебешь от них на 3к, они это понимют прекрасно.
проси 3к+ скажи работал в стартапе неоф. и писал тесты на гохе(оч важно кстати тесты уметь писать для разраба). теперь поднатянулся и решил больше в код.

алсо чем меньше зп просишь тем больше ебут на собесе, 200круб или 3к это уровень мидла начальный примерно

первый месяц ты будешь только получать доступы и делать песочные задачи, с 2 месяца только начнут смотреть как ты работаешь реально, так что к этому времени упеешь разобратся
690 2505239
>>409760 (OP)
Добавил @latest. Теперь goclipse хочет, чтобы я поставил точку в элементе первого пути. Объясните, пожалуйста, где этот элемент.
691 2505281
>>489917

>а у него военная кафедра была в унике


хм, а убеждали, что не будут с кафедрой призывать.
Лучшая реклама для того, чтобы учить алгоритмы
693 2505359
>>504258
Попросят код пруфануть, что тогда? Ссылаться на НДА?
>>503900
Да, завел недавно, я как-то не сижу в соц сетях, хотя общения и друзей/знакомых достаточно, общаемся по тг

justjoin it
ну и местные доски по стране
Не пробовал, только откликался на вакансии. У них же там как минимум 1 хрюша сидит для этого, им приходят пуши во все места, насколько я знаю, и собственно, задача хрюши на это реагировать, так что думаю посмотреть посмотрели. написав им на почту ничего бы не поменялось

Касаемо гита, там 1 микросервис для JWT(можно пихнуть как мидлварю в любое место и если юзер это юзер, то будет отдавать к примеру его айдишник и пермишены, офк , тесты, докер хуекер и так далее согласно модным архитектурам, сервисы, репозитории и тд и тп. Надо бы еще метрики подкрутить и разобраться с сваггер документации, с 1 раза не завелось что-то. универские проекты и все остальное в приватных репо
694 2506102
>>409760 (OP)
В каком ide лучше начать изучать GO?
695 2506170
>>506102
Goland/VSCode
696 2506621
>>505239
go install ./cmd/helloworld для установки локального покета. ожидается что у тебя в ./cmd/helloworld есть main.go
если у тебя есть main.go в текущей папке то тупа можно go install
go install github.com/hui/pizda@latest для установки пакета из интернета
image.png19 Кб, 649x196
697 2507129
в чем подвох, и почему голанд подсвечивает как false на что я и наделся
698 2507195
>>507129
Numeric constants represent exact values of arbitrary precision and do not overflow.
699 2507199
>>507195
точно, спасибо.
700 2508320
>>486986
Зачем работать с гитом из иде, когда есть консоль?
701 2508346
>>508320
это для любителей копипастить хешы или сидеть тыкать TAB TAB TAB TAB TAB TAB до нужного коммита
702 2508723
>>508346
Макака табает, премия капает
Тред утонул или удален.
Это копия, сохраненная 8 ноября 2022 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски