vit_r: default (vit_r)
[personal profile] vit_r
Exceptions - это трюк, введённый, чтобы побороть лень программистов, забывающих проверить, возвратила ли функцию ошибку, и всё-таки остановить ошибочно работающую программу.

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

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

В mission critical software это запрещено юридически. В остальных областях программисты используют свою свободу не знать.

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

Date: 2015-08-20 09:23 pm (UTC)
From: [identity profile] rudakov.livejournal.com
Я сам не программист, хотя когда-то развлекался программированием на разных языках и платформах. Однажды я увидел, как программирует один мой знакомый, профессиональный программист, и мне стало нехорошо. :)

Date: 2015-08-20 09:52 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Это ещё оставляет надежды. Я видел "mission critical" изнутри. После чего я достаточно цинично отношусь к мелким слабостям отдельных программистов, даже тех, что с Индостана.

Date: 2015-08-21 12:11 pm (UTC)
From: [identity profile] rudakov.livejournal.com
> В результате, большинство кодописателей ловят исключения и прячут их куда-нибудь подальше, где ни пользователи, ни администраторы, ни тестировщики, ни сами программисты их не увидят.

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

Date: 2015-08-21 12:58 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Люди оптимизируют по тем параметрам, по которым их оценивают. Качество всем пофиг. Причём, в большинстве случаев его не только измерять не умеют, но ещё и не понимают.

Date: 2015-08-21 11:37 pm (UTC)
From: [identity profile] cucumber405.livejournal.com
тебе, наверное, не везет.
по моим подсчетам, хотя бы в половине проектов есть вменяемые архитекты, которые в состоянии настроить работу кодеров и за ними уследить.
ПМы не в счет, им лишь бы кто то за них сделал работу, а они получили бони.
Если узнаю, что ПМ получил образование как кауфман, в проект не иду.

Date: 2015-08-22 09:50 am (UTC)
From: [identity profile] vit-r.livejournal.com
Если выбирать хорошие проекты, в которых настоящие специалисты пишут хороший код, то и будешь видеть хороших специалистов. Это циклическое определение, постепенно сжимающееся в точку.

Кода пишут всё больше. Специалистов всё меньше.

Date: 2015-08-21 10:20 am (UTC)
From: [identity profile] ufm.livejournal.com
Программистов даже можно понять - по моему ни один из существующих языков программирования не позволяет удобно разделить бизнес-логику и обработку ошибок окружающего мира.

Date: 2015-08-21 11:27 am (UTC)
From: [identity profile] vit-r.livejournal.com
Вообще-то программистам деньги платят за то, чтобы было удобно не им, а пользователям.

Date: 2015-08-21 01:36 pm (UTC)
From: [identity profile] ufm.livejournal.com
Если бы. Норовят заплатить не за "удобство", а за время. Да еще съэкономить на этом.

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

Date: 2015-08-21 11:46 pm (UTC)
From: [identity profile] cucumber405.livejournal.com
При чем тут язык вообще? дело то не в языке, а в уровне абстракции, MVC давно сменилось на MvvM, но быдлокодерам про это не сказали!
Лет пять назад мой тогдашний босс мне сказал - ты чрезмерно концентрируешся на технической стороне, а нужно понимать проблему целиком! Тогда в мозгу нарисуется вся картинка, которую можно поделить по горизонтали и вертикали, спроектировать, а потом начать реализацию.
Половина ПМ-ов, к примеру, не понимают разницы между юнит тестами и интеграционными.
Почему? Да потому что им насрать на это! Давай-давай, сделай, что бы заработало. И рождается мутант, левел-бридж, когда для того, что бы заработало, на самом верху, в уровне презентации, делается запрос к базе. Причем разработчик знает, что за это его положено принародно кастрировать, но на нормальное решение ему не дают времени!

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

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

Date: 2015-08-22 09:58 am (UTC)
From: [identity profile] vit-r.livejournal.com
MVC давно сменилось на MvvM

Вот не вижу в этом ничего полезного.

Половина ПМ-ов, к примеру, не понимают разницы....

"Половина" - это оптимизм.

Почему? Да потому что рулить халтурно не получится!

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

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

Date: 2015-08-22 10:31 am (UTC)
From: [identity profile] ufm.livejournal.com
> Люди вынули технологии из контекста, не понимая основ.
С языка снял.

> Теперь все радостно бегают, размахивая кривыми молотками.
Да молотки даже не то что бы кривые. Просто раньше молотком пользовался мастер. И молотки делались практически под руку конкретного мастера. И забивали им гвозди в дерево.
А сейчас понаделали копий таких молотков, пораздавали в руки ПТУ-шникам и отправили пластик к бетонным стенам приколачивать.

Date: 2015-08-21 11:35 pm (UTC)
From: [identity profile] cucumber405.livejournal.com
Пустые кетч блоков прекрасно отлавливаются Сонаром, и быдлокодеру дается по мозгами, при повторении снимается бонус. Более того, в продвнинутых конторах достаточно умные анализаторы кода используются, так что кипиай сразу пойдет вниз.

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

Кроме того, стектрейс в продакшн системе в сотню раз увеличивает понятность, ГДЕ стряслась жоппа, чисто по логам. Опять же, если мудло не объявило пустого кетч блока, а тут смотри пункт первый и второй. Лично я бил бы линейкой по пальцам, металлической, ребром.

Date: 2015-08-22 09:48 am (UTC)
From: [identity profile] vit-r.livejournal.com
Теория - теорией, практика - практикой.

А физические наказания - это из области фантазий.

Date: 2015-08-22 08:44 am (UTC)
From: [identity profile] vdggenerator.livejournal.com
>> Программисты ленивы активно и просто затыкают любые попытки заставить их делать лишнюю работу: пока ошибка не найдена, исправлять её не нужно.
Это ещё что. Приходится работать с программистом, который редкоиспользуемую функциональность пишет только когда тестировщик прямо ему укажет об её отсутствии (а до этого говорит "я всё закодил"). А если тестировщик проворонит, то когда пользователь в продакшене захочет использовать редкую фичу.

Date: 2015-08-22 10:27 am (UTC)
From: [identity profile] vit-r.livejournal.com
Видел, как забывают. Но таких лентяев встречать не приходилось. Впрочем, везде использовались какие-то системы контроля и надо было отметить, что сделано, чтобы закрыть issue.

Date: 2015-08-22 01:05 pm (UTC)
From: [identity profile] vdggenerator.livejournal.com
Да, такие issue приходится даже переоткрывать.

Хочешь сделать хорошо - сделай сам ;-)

Date: 2015-08-22 08:54 am (UTC)
From: [identity profile] vdggenerator.livejournal.com
>> Программисты ленивы активно и просто затыкают любые попытки заставить их делать лишнюю работу: пока ошибка не найдена, исправлять её не нужно.
По поводу эксепшенов пример из жизни. В одном софте есть уровень работы с БД, по разным (в том числе историческим) причинам не имеющий собственного настраиваемого логгера. Программисту было сказано "выведи для вызова каждой хранимой процедуры, при получении ошибки от БД, название процедуры и значения передаваемых аргументов". Программисту был дан один тестовый пример данных, при которых возникает ошибка, и желаемое сообщение. Тестирование выявило, что программист решил задачу только для этой одной хранимой процедуры - задачу вернули в кодирование. После доработки, тестирование показало, что задача решена только для половины вызываемых хранимых процедур. После этого с программистом пришлось провести разъяснительную беседу на тему квантора всеобщности.

Profile

vit_r: default (Default)
vit_r

February 2026

S M T W T F S
12 34 567
8 9 1011121314
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 11th, 2026 11:09 am
Powered by Dreamwidth Studios