Email or username:

Password:

Forgot your password?
sattellite

У меня припекает от кода, который пишет тимлид. Прям на концептуальном уровне есть две вещи, которые до дрожи меня волнуют.
Во-первых, везде используются "магические" функции init(). Для непосвященных - в golang эта функция вызывается во время импорта пакета, это неявный вызов код, это происходит "за кадром", этого не видно при чтении кода. Считается плохим тоном их использовать. Бывают случаи когда без них никак, но у нас не такой случай. Попытки переубедить его ни к чему не привели. Объясняли ему, что так не стоит, что это неявные вызовы, что не надо так писать. Но тимлид не должен слушать нас, на то он и тимлид. В одном пакете могут быть десятки этих функций (в каждом файле по одной), и чтобы потом оказалось сюрпризом - они все ближе к концу файла, но не строго в конце.
Во-вторых, он использует глобальные переменные на уровне пакета. Это тоже плохой тон. Пакет должен представлять из себя объект с методами. И чтобы метод мог использовать какие-то ресурсы их можно хранить внутри самого объекта. Создаешь объект и передаешь в него подключение к базе данных, например. Всё, пакет работает с базой, базу я инициализировал вот тут с такими-то параметрами и передал ее одному объекту, второму объекту и так далее. А он создал пакет с синглотонами к разным бд и дергает их в разных местах в других пакетах.

Есть еще чисто личностные придирки к его коду. 1. никаких комментариев, 2. никаких проверок на data race, 3. "да нахера нужны ваши линтеры, только красным все время светят", 4. часто абсолютно неинформативный комментарий у коммита, 5. пуш в мастер, 6. отсутствие тестов в принципе, 7. "сейчас некогда вводить процессы, надо срочно релизить <-> как же меня задолбало отсутствие процессов", 8. нет одного стиля именования и написания переменных, 9. пакет это часть методы, часть просто функции, зависит от фазы луны, ведь с глобальными переменными похеру как писать.

Я максимально старался заниматься другими частями проекта, чтобы нигде с ним не пересекаться. Но сейчас я занимаюсь одной общей с ним подсистемой. У меня две недели просто горит пукан. Руки опускаются, потому что переубедить его не реально. За много лет я уже даже не трачу на эти убеждения силы, просто говорю "в пустоту" где и что не правильно.

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

19 comments
Umnik

@sattellite
> они все ближе к концу файла, но не строго в конце.

В голосину с подставы

sattellite

@umnik я сомневаюсь, что это подстава. Думаю там ситуация похожа на эту - "ой, надо ж это тут пропихнуть, через init пока помню".
Но для меня было новостью, что код так сам себя "запускает". От этого и сам архитектурный паттерн выглядит очень необычно.

kurator88

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

sattellite

@kurator88 он все время красный и бибикает

kurator88

@sattellite может в вашем тимлиде завелись бесы если он краснеет и бибикает ?

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

Alexey Skobkin

@sattellite
Вообще очень соболезную.

sattellite

@skobkin о, наверное, не стоит, но искреннее спасибо. Сам себе злобный Буратино 🤥

Xpucckapy

@sattellite а на чём тимлид писал, до того как пересел на го?

sattellite

@xpucckapy на nodejs. Мы вместе писали на ноде, потом потихоньку перешли на го. Но он и на ноде писал с подходом «я на си и не такое творил». У меня с ним давние терки по этим вопросам.

κρ🦥μγ

@sattellite принципы это уязвимость

sattellite

@kpmy если не составит труда, то мог бы немного подробнее выразить свою мысль?

medvedych

@sattellite я в похожей ситуации в итоге словил выгорание и уволился :)

ZogG

@medvedych @sattellite
Ну у меня тимлид даже коммит исправления очепатки не могла сама закоммитить.
И я тоже кстати сгорел и уволился.

sattellite

@medvedych у меня реально сложная ситуация. Хотя может я сам ей сложность накручиваю. Но я уже 9 лет на этом месте, у меня синдром самозванца и я боюсь даже пройти собеседование, потому что будет «опозорился и спит».

medvedych

@sattellite ну не пройдешь и не пройдешь. На рынке сильно не одна контора, куда-то точно пройдешь.
Да и даже если не сменишь работу, то хоть посмотришь как другие люди живут :)

Schlöppa

@sattellite бля даже у меня пукан накалился

sattellite

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

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

Go Up