Pull to refresh

Comments 36

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

Sic!

А вообще это богатая тема, создавать для всяких буйных меньшинств отдельные песочницы.

Гвидо и Брендан пробовали, и результат им не понравился. Только у Расмуса получилось.

Настоящий профессионал всегда счастлив рассказать ...

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

Начальство надо уметь переубеждать, иначе так и будем всю жизнь ключи подавать.

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

Вы читали «Made at Intel»? Отличная серия — читаешь это и думаешь, ну какое счастье, что я не в этом бабуиннике.

Не читал, но после вашей рекомендации почитаю. А так-то да, конечно, лучше, тут и говорить не о чем.

Ещё очень интересный коммент к автору цикла — https://habr.com/ru/articles/967252/comments/#comment_29126008 по-поводу ИИ и начальства:

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

Господи, наконец-то мы можем показать этим умникам их место в общем бараке!

Здесь, кроме экономического мотива, звучит яркая нота мести. Услышьте ее.

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

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

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

Я был в такой ситуации примерно два года назад — сделал довольно сложное решение сложной проблемы (язык С++, что не добавляет прозрачности), дальше диалог:

— Пожалуйста, отрецензируйте PR.
— Я не понимаю решения.
— Давайте я расскажу, как оно устроено.
— У меня нет времени на то, чтобы разобраться.


И вот что в такой ситуации делать, если скандал разводить не хочется?

Менять тимлида рецензента.

Я как-то с трудом удержался от фразы «ты вообще понимаешь, что несёшь?». Пикантность ситуации заключалась в том, что в группе тогда было 2 человека — я и TL.

Менять тимлида рецензента

А можно мне другого психотерапевта?)

диалог:

— Пожалуйста, отрецензируйте PR.
— Я не понимаю решения.
— Давайте я расскажу, как оно устроено.
— У меня нет времени на то, чтобы разобраться.

Вполне нормальный диалог. Считайте, что PR это презентация. Она должна читаться без пояснений и главное быстро. Рецензент должен проверить быстро, иначе качество рецензии резко снижается, а это ответственный элемент качества. Поставьте себя на месте рецензента.

Чистый код вам в ноги!

https://howdoescleancodeworks.com

IP not found

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

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

Проект закрыт нахер за нехваткой квалификации у непосредственного начальства. Это к вопросу о том, чем отличается бакалавр от к.ф-м.н. Когда ничем, а когда отличие — это запоротые проекты.

Когда конторы en masse поймут, что на одного синьёра должно приходиться три-пять мидлов, и примерно 10 джунов, — БФ-2 исчезнет сам собой. Но когда вокруг одни грёбаные синьёры, получившие лычку просто за выслугу лет, а не за решения, — пиши пропало.

А вы что думаете?

А мы думаем, что надо ждать, пока вас разбанят. Так, сама по-себе, ситуация несколько сложнее, чем нарисована:

  1. Случай БФ-2, когда «все остальные едут по встречке», может, например, означать, что решать задачу и не нужно. Например, контора уже и так «too big to fail», или изменения должны быть косметическими, чтобы клиенты не переучивались, или ещё что.

    Например, из общих соображений о движении к монополизации (см. книгу «Империали́зм, как вы́сшая ста́дия капитали́зма. Популярный очерк») следует, что маленькие конторки оказываются съеденными гигантами, а тех сеньоры за выслугу лет вполне устраивают.

  2. Да, безусловно, двум медведям в одной берлоге ужиться сложно, если они ещё и думать об этом не хотят. Но ведь и прекрасный ведущий — это тоже не Господь Бог. Вы вот отмечали ситуации, когда вы со своими идеям были неправы, а ваше начальство право? Я вот отмечал такое периодически в отношении себя.

  3. У наших американских коллег есть замечательная тенденция «продать». Если рассматривать с плохой стороны, то это «впаривание», а если с хорошей стороны, то это «детальное рассмотрение интересов аудитории» и «умение продвигать идеи».
    То есть, когда вы рассказываете про технологию условному Васе, можно попробовать изучить его интересы (цЫнично — нихера не делать, и получать з.п., чтобы не выгнали), и попробовать изложить так, чтобы эта скотина заинтересовалась сразу.

  4. Как мы знаем, настоящие сеньоры стараются писать как можно более простые решения (потому, что они же наиболее модифицируемы — усложнить любой дурак сможет). Короче говоря, обычно у сеньора код получается очень даже отчуждаемым. Т.е. истинный профессионал в кап. обществе работает себе во вред — часто «мавр сделал своё дело, мавр заменён на джуна». Поэтому, возможно такое, что уважаемый ведущий специалист немного недопроработал решение?

С другой стороны, статья безусловно интересная, разбивку на БФ-1 и БФ-2 я действительно нигде не встречал. Темы подняты интересные. Ждём разбана.

Хабр в своей третьей лиге по технической части; сценарий «автор с 40 публикациями написал текст в песочницу» отрабатывается вот так:

Могу, да не могу
Могу, да не могу

Но лишь спустя сутки мне возвращают право написать гадость в комментариях.

Ладно.

Случай БФ-2, когда «все остальные едут по встречке» […]

Это не тот, случай, который я пытался описать. БФ-2 едет по своей полосе, проблема в том, что попутного потока нет. И когда БФ-2 проколет шину, или завязнет в грязи, — ему в помощь будет запаска, домкрат и та самая едрёна матерь.

двум медведям в одной берлоге ужиться сложно

Опять не то. Два медведя (на личном опыте) уживаются волшебно, я даже целый абзац^W предложение этому посвятил: «Если таких инженеров несколько — они набрасываются на проблему со всех сторон, решают ее, верифицируют решение, и телега катится дальше.»

Вы вот отмечали ситуации, когда вы со своими идеям были неправы, а ваше начальство право?

Конечно. Тысячу раз. И еще десять раз прав был я. И начальство приходило спустя неделю с побитым видом: «Что ты там говорил про второй независимый кластер при роллинг апдейтах этого грёбаного кубера?».

замечательная тенденция «продать»

С «продать» у меня никогда не было проблем. Будь я потвердолобее, и не пытайся я вникнуть в то, что там лопочет начальство, соотношение из предыдущего примера было бы 50:1050, а не 1000:100 (запах ФИДО случаен).

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

настоящие сеньоры стараются писать как можно более простые решения

Когда это возможно — разумеется. Ключевое слово — «стараются». Но ведь не зря Менкен (эту сентенцию часто приписывают Артуру Блоху) однажды сказал: «For every complex problem there is an answer that is clear, simple, and wrong.».

возможно такое, что уважаемый ведущий специалист немного недопроработал решение?

Конечно. Но по условиям задачи эта ситуация выходит за рамки обсуждения.

Это не тот, случай, который я пытался описать. БФ-2 едет по своей полосе, проблема в том, что попутного потока нет. И когда БФ-2 проколет шину, или завязнет в грязи, — ему в помощь будет запаска, домкрат и та самая едрёна матерь.

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

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

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

Но ведь ваша пирамида не способствует этому бас-фактору?

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

По-разному бывает. Было двое, один уволился по не зависящим от вселенной причинам, — пока второго найдешь, обязательно свалится задачка. Или как у Вознесенского, «пусть мой напарник певчий, // забыв, что мы сила вдвоем, // меня, побледнев от соперничества, // прирежет за общим столом».

ваша пирамида не способствует этому бас-фактору?

Минимизирует, скажем так. Но есть вещи, я настаиваю на этом, которые не то, что вчерашнему джуну — триста лет синьёру не объяснишь. Даже если он старается понять.

Но есть вещи, я настаиваю на этом, которые не то, что вчерашнему джуну — триста лет синьёру не объяснишь. Даже если он старается понять.

Ну тогда есть авторитет и ответственность. Вот человек, вот его слово, вот его действия по исправлению, если он был неправ.

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

хотелось бы примера таких вещей

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

Для вышеозначенной проблемы необходимо определить ① что мы считаем выбросом, ② как мы удаляем выбросы, ③ как восстанавливаемся от многих выбросов подряд, ④ что считается «приемлемым риском», ⑤ как мы обнаруживаем проникновение выброса в систему, ⑥ как откатываем изменения, вызванные проникновением выброса, ну и так далее.

На пальцах это можно объяснить даже продажнику. Код восстановления после сбоя — поймет с листа несколько человек в мире. Наверняка можно было написать просто и понятно, на радость Мартину с Фаулером, но я осилил хоть как-то, и оно даже работает. Но как оно работает — не понимал никто, пока не пришел толковый джун, который меня усадил рядом и трое суток задавал мне вопросы по коду.

Код восстановления после сбоя — поймет с листа несколько человек в мире.

Ну и ладно.

Но как оно работает — не понимал никто,

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

Но вы вообще заметили, что рецензирование кода — вещь вообще неблагодарная?

садитесь рядом, проходите через код

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

рецензирование кода — вещь вообще неблагодарная?

Ерунда какая. Самые ценные уроки по любимому языку я получил от Жозе (автора языка) — в дискуссиях к моим предложениям по улучшению. Я сам иногда больше комментариев пишу, чем было рецензируемого кода.

Но лучше, если автор рядом с тобой не сидит, особенно, если он значительно сильнее, — авторитет никто не отменял, и он может ненароком убедить рецензента в том, что все прекрасно.

Ерунда какая. Самые ценные уроки по любимому языку я получил от Жозе (автора языка) — в дискуссиях к моим предложениям по улучшению. Я сам иногда больше комментариев пишу, чем было рецензируемого кода.

С точки зрения теории игр, в стандартной конторе ваши рецензии не улучшают ваше положение на performance review, соответственно, они только сжирают ваше время и ваши силы. Соответственно, эти ходы «запрещены», как «запрещённые переходы» в квантовой механике (она, кстати, имеет очень интересную связь с социологией — акт наблюдения меняет наблюдаемые величины). Это я и имел ввиду.

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

P.S.
Спасибо за объяснения. Понятно, в общем!

А вы что думаете?

Мы думаем, что интересно было бы увидеть статистику, сколько из десяти джунов - толковых.

«Статистики» у меня нет, конечно. По собственному опыту — могу экстраполировать. Если джунов набирать не пучком по три рубля, а через стажировку — бо́льшая половина. На стажировку иногда не хватает дальновидности руководства и свободных денег — тогда из десяти — шесть-восемь остаются после испытательного срока и из них вырастают три-четыре — прям толковых.

По моему опыту БФ-2 когда работающее решение не могут понять другие это 90% факап его автора, кроме совсем уж эллиптических кривых.

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

Код дешёв. Даже гениальный. Дорого проектирование, ревью, обеспечение качества. Чтобы ревью тоже было дешёво и нужен чистый код.

Единственное, в чём согласен с автором: джунов надо гнать из команды, только снижают общий уровень качества и отвлекают.

Если у вас код можно ревьюить со скоростью 200 строк в минуту, вам не нужен БФ-2, да и он никогда не пойдет в такую контору работать. А эллиптических кривых разного порядка в мире — гораздо больше, чем кажется. Сходите вон отревьюйте мою библиотеку акторов на расте, хотя бы. Там гораздо больше подводных камней, чем кажется.

Строгая типизация, изоляция слоев и тесты помогают.

Опять эта строгая типизация. Она позволяет отловить только те ошибки, которые БФ-2 даже пьяный в три часа ночи не допустит.

Именно так чистый код и работает.

Я скоро сделаю такую же страничку для чистого кода, ей-богу. Чистый код — та же самая гомеопатия, только в профиль.

Чистый код — та же самая гомеопатия

В исполнении Фаулера - да.

Но цель то хорошая.

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

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

SRP и короткие изолированные чистые функции очень помогают не засрать голову на ревью. Если абстракции выбраны верно)

Опять эта строгая типизация. Она позволяет отловить только те ошибки, которые БФ-2 даже пьяный в три часа ночи не допустит.

Нет. Просто нет. Прочитайте parse, don't validate и прочее про невыразимость невалидных данных.

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

Директоров можно пучками понабирать по объявлению, и (если они не полезут за руль, конечно) все будет работать, как работало. Мнению директора в данном случае цена — три копейки. Пусть новые машины закупает, желательно — молча.

Зависит от наукоёмкости процесса.

А про рефакторинг / реинжиниринг у меня статья в черновиках. Никак не доведу до публикации.

Код вашей библиотеки я смотрел. Думаю, он качественный. Вопрос только что я не пишу на эрланг и потому не могу понять/оценить ценность "привычности joerl для программистов эрланг". Возможно, проблемы не в коде, а в целеполагании. А может и нет, ХЗ.

А другие реализации акторной модели на раст есть.

другие реализации акторной модели на раст есть

Неужели? Жаль только, что они все написаны людьми, которые мало что понимают в том, зачем акторная модель вообще нужна.

Sign up to leave a comment.

Articles