Как стать автором
Обновить
40
0.3
Сергей Горностаев @sergey-gornostaev

The believer in the separation of Church and state

Отправить сообщение

Банковские проекты класса mission critical. Стек как раз очень распространённый и относительно свежий - Java местами 11, местами 17 и Spring местами 5, местами 6.

сколько процентов кода в вашем последнем PR было фактически написано LLM?

Ноль.

И как бы отреагировали ваши коллеги/руководство, если бы узнали реальный процент?

Был бы наказан вплоть до увольнения, у нас запрет на использование нейросеток.

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

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

Это не эффект Пигмалиона, а феномен Баадера — Майнхоф, он же эффект частности.

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

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

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

Stream.of(
  "http://example.com",
  "http://google.com"
)
.map(URL::new)
.map(URL::getContent)
.forEach(System.out::println);

такой уродливый и многословный

Stream.of(
  "http://example.com",
  "http://google.com"
)
.map(s -> {
  try {
    return new URL(s);
  } catch (MalformedURLException exc) {
    throw new RuntimeException(exc);
  }
})
.map(url -> {
  try {
    return url.getContent();
  } catch (IOException exc) {
    throw new RuntimeException(exc);
  }
})
.forEach(System.out::println);

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

try {
  // Код предыдущего примера
} catch (RuntimeException exc) {
  if (exc.getCause() instanceof MalformedURLException) {
    // Обработка ошибки
  } else {
    throw exc;
  }
}

А лучше не трогать запрещённый Unsafe, взять LambdaMetafactory и для метода, бросающего проверяемые исключения, на лету сгенерировать обёртку, не делающую этого. Или использовать готовую библиотеку для этого.

P.S. В байткод Lombok ничего не добавляет, он работает с исходным кодом.

кто мешает отдать отредактированную выписку

Электронная подпись мешает.

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

Есть мир наших идеалистических мечтаний о том, как должно быть, и объективная реальность. Я считаю, что успех приближения одного к другому в готовности к компромиссам. Хороший пример - это ситуация со Скалой: Одерского просят хотя бы чуть-чуть сменить вектор развития языка в сторону удобства его промышленного применения, но он продолжает все силы вкладывать в развитие возможностей, имеющих преимущественно академическую ценность, а язык тем временем стремительно теряет популярность. Так же с AST, можно сказать, что в том же Python механизмы метапрограммирования недостаточно хороши и не надо их применять, то ли дело в Lisp'ах, а можно рассказать огромному питонячьему сообществу, как круто иметь возможность менять код в компайлтайме, как полезно создавать выразительные DSL, и что для их рантайма даже есть свой Lisp.

да везде этот AST есть

да никому этот AST не нужен

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

Имеют очень примитивный синтаксис из, образно говоря, пары очень примитивных операторов. Если попытаться написать другой язык с применением такого же подхода, получим ещё один LISP. А это не нужно по двум причинам: Во-первых, LISP'ы уже есть. Во-вторых, на них пишут полтора программиста, уже не образно говоря. Прикладники хотят Java и Go с кучей операторов, которые не simple, но easy.

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

На LISPы гляньте

Смотрю на них очень пристально уже много лет и наслаждаюсь увиденным :) Однако, LISP'ы - это совершенство, с которым мало кто может потягаться.

AST и API работы с ним не меняются только у тех языков, которые не развиваются.

Сверяют. Можно даже в офферах встретить приписку мелким шрифтом "При документальном подтверждении заявленных данных".

то есть это вообще ни о чем, read-only feature

Или я чего-то не понимаю в вашем посыле, или не read-only https://docs.python.org/3/library/ast.html#ast.NodeTransformer

1
23 ...

Информация

В рейтинге
2 472-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer, Software Architect
Lead