Как стать автором
Обновить

Страдания псевдопрограммиста

Время на прочтение3 мин
Количество просмотров2.1K
Для начала поясню что такое псевдо- или недо-программист. На самом деле — ничего страшного в этих людях нет, и никому зла они не делают. Это некая когорта индивидуумов, которые посмели считать себя программистами, а на самом деле являются теми, кто программирует (снова это слово) в среде 1С-предприятие. И я, один из них. И довольно давно.

На самом деле я попал в эти ряды не случайно, а совершенно сознательно. И причина тому простая — надо было как-то кормиться. Видимо, я не очень талантливый человек, потому что кормиться, работая кодером C++/MFC у меня не очень получалось. Ну это все лирика, к делу отношения не имеет. Хотел я сказать иное.

Тварь я дрожащая или право имею называться программистом?

Многие смеются над убогостью так называемого «встроенного языка программирования 1С», у нас этот язык называют проще — v7 или v8, в зависимости от версии.

Скажу сразу — язык примитивен до невообразимости. Например, он полностью на русском языке, что поначалу очень веселит и одновременно раздражает, там нет и намека на ООП, хотя почему это не реализовали в v8 мне не ясно, в обоих версиях языка есть чудные логические нестыковки. Мозг нормального программиста от такого закорглючивается, извилины выпрямляются, мастерство падает. Это непреложный факт. Но, господа присяжные, инструмент ли причина деградации? Не причина ли в самом человеке?

Глядя на код типовых конфигураций (это такие коробочные решения, написанные специалистами фирмы 1С на языке же 1С для автоматизации учета) хочется порыдать, а потом застрелиться, настолько там все феерично. Думаю, именно из-за них появился термин «псевдопрограммист». Основная беда при сопровождении — подкрутил там, сломалось в десяти местах в другом месте. Казалось бы, разве сложно при проектировании соблюсти простейшие принципы культурного программирования, ведь предпосылки есть. Кто заставляет разработчиков напрямую обращаться к данным конкретного объекта? Можно же написать методы get/set, запихав в них необходимые проверки. Особенно это актуально, если конфигурацию пилит несколько человек и кто-то вдруг меняет что-то для своих нужд в глобальнике (это такая общая песочница с глобальными функциями). Кто мешает создать универсальную библиотеку простейших функций и использовать ее от конфигурации к конфигурации? Кто запрещает все сообщения об ошибках снабдить уникальными ИД, и обрабатывать их централизованно? Разве трудно реализовать механизм логгирования в зависимости от требуемого уровня вывода сообщений? Я постоянно встречаюсь с процедурами величиной в сотни строк. Почему бы не разбить процедуру-громадину на более мелкие части? Соглашения об именовании переменных тоже никто не отменял, причем согласиться можно так, как это удобно команде, хангэриэн нотейшен тут не требуется. Точно также можно и принять соглашение о проектировании интерфейса, например у меня стандартизированы размеры и расположение виджетов на формах. И еще можно использовать целую кучу полезностей, чисто «адинэсной» специфики. В итоге, код станет на порядок, а то и на два порядка легче сопровождать.

Но этого я ни разу не видел ни в одной 1С-конфигурации. Каждый творит как бог на душу положит и как ему вздумается. Но почему? Думается мне потому, что 1С это просто. Цикл разработки конечного продукта очень короткий. Я зык примитивный и не надо знать английский. Любая девочка с зачатками знаний бухучета может изучить основы, худо-бедно писать отчеты и называть себя программистом. Не спорю, девочка эта — потенциально молодец с большой буквы. Но равно как и с получением прав на вождение автомобиля — где двухмесячных курсов явно недостаточно, культуру надо прививать, а прививать ее некому, так как слой «адинэсников» лежит где-то в стороне от программистского сообщества. И что с этим делать я не знаю.

Может быть эта заметка поможет части «псевдо» немного задуматься, и своим примером избавить специалистов по 1С от этой унизительной приставки.
Теги:
Хабы:
Всего голосов 42: ↑33 и ↓9+24
Комментарии41

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн