Откровенно о программировании и программистах
Сегодня день программиста. Но почему-то я решил не столько поздравить коллег, сколько рассказать о нашей нелегкой профессии. О неожиданной популярности, о сложности и к сожалению о не совсем правильном развитии...
Давайте скажем откровенно, что 99% работы программистов - это либо сайты, либо учетные системы, либо их симбиоз. Что удивляет... Зачем все эти сложные абстракции: ООП, ФП (если не знаете что это, то лучше и не пытайтесь узнать). Разве не хватает классического процедурного подхода для решения любых возникающих задач. Разве не важнее понимание предметной области и возможность быстрой автоматизации реальных бизнес-процессов. Конечно существуют одаренные, даже где-то гениальные люди, которым удобно оперировать сложными парадигмами, чтобы допустим на выходе снизить вероятность ошибок. Я же считаю, что гении должны работать не простыми программистами и не разработчиками всяких бессмысленных прожектов, типа беспилотных автомобилей. Они должны заниматься настоящим нужным делом, биоинформатикой, биохакингом, расшифровкой генома человека, чтобы в конце то концов победить болезни и хотя бы чуть-чуть увеличить продолжительность жизни. А то право неудобно перед потомками, занимаемся всякой фигней. А собственно программистами должны работать умные, но все-таки ремесленники, которые с помощью удобных инструментов аккуратно занимаются автоматизацией. Иногда кажется, что лишняя сложность, как и во всех других областях, создана специально для увеличения бюджетов. Но как ни странно, высокие зарплаты и популярность не приводят к наплыву грамотных специалистов из-за трудности входа в профессию. Заколдованный круг. Ну ладно, если бы при этом всем получался результат. Но ведь прямо сейчас мы пользуемся продуктом, созданным с помощью всех современных методик и больше года не можем дождаться доработки просмотра списков своих подписок и подписчиков. Если честно, в моем мире 1С, за такую продуктивность уже бы уволили.
Опять одинэсник будет хвалить свою дурацкую одинэску, подумает готовый разочароваться читатель и будет не прав. В этот праздничный день продолжу ругаться. Да в 1С нет сложных абстракций, а код пишется на русском языке и это, черт возьми, круто. Это позволяет быстрее и понятнее описывать предметную область. Ведь англоязычные программисты пишут англоязычный код и им удобно, почему же мы должны мучиться. Но невидимая рука рынка сумела сильно усложнить и изначально простой и доступный инструмент. Казалось бы бухгалтерия, зарплатно-кадровый учет, складская система, мелкое производство, розница, все это не очень сложно. Но нет же, ради того, чтобы иметь возможность зачем-то запускаться прямо в браузере, убрали модальность и соответственно усложнили событийную модель, реализовав пресловутый callback hell. Кроме того, глубина процедурных вызовов в типовых конфигурациях часто превышает 15, от чего при отладке закипает мозг. Но странные решения принимает не только вендор, но и обычные программисты. Рассмотрим многофилиальную структуру. Некоторые организуют работу в одной базе данных, тем или иным способом, доступной в интернете. Имеют кучу проблем производительности и закатывая глаза рассказывают на ютубе о способах оптимизации. Есть другой подход, в каждом филиале своя база данных, а информация ходит с помощью механизма обменов. Но в случае непоседливой работы маркетинга, всяких непрерывных скидок на каждый раз новые объемные сегменты номенклатуры имеем проблемы передачи, вероятную неактуальность данных и непростые способы с этим бороться. Кстати, когда в требованиях к вакансии сделан упор на оптимизацию и обмены, скорее всего столкнетесь с неправильной архитектурой. Это как надевать штаны через голову и соответственно необходимы серьезные акробатические навыки. Я все никак не могу понять, почему бы просто не надевать штаны через ноги! Как же надо организовывать многофилиальную работу... То что нужно для продаж и при этом должно быть актуальным прямо сейчас (цены, скидки), центральная база должна отдавать веб-сервисом. Не надо таскать в филиалы тяжелые сегменты, надо просто, чтобы центр мгновенно выдал недостающие данные по составу текущего чека (накладной) и все. А если нашлась ошибка в настройках скидки, просто исправили в одном месте и это сразу же вступает в силу для всей сети.
Может показаться, что я считаю себя Дартаньяном и всех критикую. На самом деле, это не так. Описанную архитектуру с веб-сервисом придумал вовсе не я. Мне просто удалось продолжить и усовершенствовать начатое. А еще, тех кто программирует на 1С в нашей стране больше, чем всех остальных, а тех кто на 1С проектирует адекватные решения больше, чем любителей сложности. Нормальные люди просто работают и им не особо нужен пиар. При отсутствии проблем нечем хвастаться. Я же просто написал то, о чем другие молчат.
Если не усложнять себе жизнь ненужными сложными абстракциями, можно спокойно тратить свободное время на свою семью и на отдых. С опытом приходит понимание, что чем больше в какой-либо области странностей, тем легче найти высокооплачиваемую работу если вы просто хороший специалист и способны постепенно наладить то, что до вас сломали или недоделали.
В этот праздничный день желаю всем нам, и программистам, и пользователям, понятных и надежных программных продуктов, которые делают жизнь немного удобнее. А еще, желаю терпения и душевного равновесия, особенно в это непростое время. Вот такой длинный и нудный получился тост.