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