Как работать настоящим программистом и стоит ли стремиться уйти из 1С

30.09.22

Саморазвитие

Андрей Овсянкин на конференции Infostart Event 2021 Post-Apocalypse рассказал, какие трудности и приключения ждут 1С-ника, если тот решит стать «настоящим программистом». Докладчик показал, чем 1С выигрывает у других фреймворков и почему дрель – это ненужный инструмент.

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

Для начала разберемся, в чем заключается работа программиста.

 

https://lh4.googleusercontent.com/oAFKjUZx6EVd7s-pQV8QC7trm89Hn2Kh3mk7zaUsX8_NAtPojuApo5xxH-tkrew95fvRUuEqbObNR7Ei9KAcAxw255-wrMV_V9bp8o7ktysv_BM12ELDCNpYbcYhJ9ySCpdm4LZqJ1P2YNBtMttgYaqcYxLUmNSnVxt8QQhpHFZ6Isg2F62UUmFOgg 

 

Программисты не нужны. Если вы мечтаете сменить сферу деятельности, нужно понимать, что программист – это капризный и дорогой посредник между бизнес-идеей и профитом

Программиста терпят, потому что без него нельзя обойтись.

Код – это всего лишь инструмент реализации бизнес-идеи. У заказчика есть классная идея, он знает как заработать, но он вынужден мириться с тем, что ему нужно нанять программиста и терпеть, пока он все это напишет. Код – это инструмент реализации. Заказчику совершенно наплевать на каком языке его идея реализуется.

https://lh6.googleusercontent.com/NbEbq0rVFuMSaK81k0bbFNlTIpXMJTtuLqOktIlszeLcv8DiIvYj6lg7DoNw65InRgb4fQbvXJhBhD5Sq68IAUXIDX4xTSKLfxNDgo0W-aH0uFrLmR6GfseYUDEyDAWHmrBFfqidJH6SBl5GcABHAxnIveggQMEb03McEPSA9MNdkwNnRtJYga7ZAQ 

 

Например, если мы хотим повесить картину, что для этого нужно?

  • нужно взять дрель

  • просверлить дырку

  • забить гвоздь

  • повесить картину.

В этой последовательности есть лишняя деталь – это дрель. Она совершенно не нужна, потому что миру нужны дырки.

https://lh5.googleusercontent.com/d0JSbOFrnXzcBtbj0AcuzJyLBu-0cFxNl2O2pTMPhElNtia32aaf8GYAvX_SurA0ubA-CPxagGobu3PIm3D2LOxKDqtxHVFNZCQMG0Rrs_krw06kI5dc9u8ikNOoLj7XHG7ke3XSqsFX3yHnIVkoSEBl2Mp8PECXtiAq9EbaiJ89Byv1yjv5TBF97Q

 

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

Программный код и программист в середине – ненужный посредник на пути к выручке. 

Когда вы сверлите дырку под картину, то электрическое сопротивление обмотки двигателя дрели – неинтересная вам величина. То же самое с кодом и с фреймворками. Когда бизнес-заказчик заказывает какой-то код и автоматизацию, ему все равно на чем вы это будете делать. Ему нужен профит, а не язык программирования.

https://lh5.googleusercontent.com/f_VntbTKnODh-XgRzNoS1Kl0PpGs2Osxf5Qw1eYUyqG-xgATzfvBdVn0lUHXEy9vhlj-F5ON4c-TzC-vFtujCRwNjIbxobVv8Yi43I1xy9vYdepSLabeiKgYJKjDDd2zn9p_Gc_u6bLIaZ8M6U7a-jlgmierd7_8f8G81BzjegPUdoK9hA2lt-VyRw

 

Если вы поменяете язык программирования, для бизнеса вы так и останетесь ИТ-отделом:

  • сроки и оценки – никуда не денутся; 

  • баги и авралы, когда все сломалось, и все бегают как ошпаренные, – никуда не денутся;

  • нет никакой разницы, на каком языке вы делаете ошибки и опаздываете к дедлайну.

Даже с точки зрения удовольствия, работа программиста на другом языке совсем не отличается от работы программиста на 1С.

 

Как выглядит ИТ-отдел с точки зрения заказчика

 

https://lh5.googleusercontent.com/T8qjzxtRAgzKJy2C_fZEA7X4vw4-iblhahMJmrThQjaHfT2eoDZRi5Aa7MSeArhN0umpYd3F_bMuw0YBQNf1PgafQ5d9xMk_FOkHdOmpGSENIR_vy2I_meNOUXs6OLHc6j8bjbIuLq2-C_KO5C1cjaseH5JWsB3YxYNcO_3kbHVMHiyOOu32dYo22w

 

Заказчик видит ИТ-отдел так:

  • всегда долго;

  • говорят непонятно;

  • делают не то;

  • постоянно возникают ошибки;

  • неудобный интерфейс; 

  • да еще и дорого.

Обратите внимание, в этой формуле нет переменной «стек технологий».

https://lh6.googleusercontent.com/PT1yJu8brpsja7GLAvJbDnWeR-Vz0inZ26RemawtsSFhKR-CRcETxdeonvqWLz7AhwBM3a147N04ErJpUN3in_47wgUKxGkkv30VqkWX4He4PKirpasO5J39z-0G_BjE4CyzfZrLirepkoCJtuDhEtvvF5R2mTG4vxXPwRuPf2ITiTfLqnwHHadvSA

 

Если вы думаете, что вредные и неправильные заказчики есть только у 1С-ников, вы ошибаетесь. Заказчики всегда одинаковые.

Опять же, в этой формуле нет переменной «стек технологий» – неважно, на чем вы будете писать: ваши заказчики всегда будут вас раздражать.

https://lh3.googleusercontent.com/X3OIOVYYApqraCu--xTQ0Wdpq-YIbmQGhBmC_rzEqnbOffUdIhghSRQsD4tl_voCSZmnfwwKqmSNV-PwFRNG8Tp0v-qsZeyTg-Fm9oefuLPaQCdYwUv5U9c31okobW6QziLd2CumezJi8LsA0K_F01YrF_CbC3q5dudyRV6EujseHii4Fz1iv9glXQ

 

Если вы думаете, что перейдя в другой стек вы научитесь чему-то невиданному доселе у коллег-программистов, то вы тоже ошибаетесь.

Коллеги, которые пишут на других языках, не будут умнее вас. Они будут такими же, а может даже еще и хуже.

 

https://lh6.googleusercontent.com/rfrO_LubC18eCuw-KqlKjEmLRGCFQFU-wTJZCyVnba1KzDjO6Wd-dWTwFGfnih-Jbpl3pYcrOdXTiSAe_JH4hiwwPRfAkS7xm9DiWXrrihDiRk3g5PAj8OFdpAgANiR6tqZ9-zBlELkTDLG12XZLVbJvp0KHQ--mi1AomwWEfmls77Hl62-OJqoGiQ

 

Я готов доказать тезисы, которые озвучил.

Расскажу свою историю – о том, как давным-давно программист 1С Андрей Овсянкин решил, что больше не хочет заниматься 1С и пойдет работать программистом на .NET.

Мой второй любимый язык программирования – это .NET. Первый – С++, а 1С – третий.

Я бросил 1С и устроился работать просто программистом: «Не хочу больше думать, хочу просто кодить в свое удовольствие. Просто отстаньте от меня, буду отдыхать».

Мою историю хорошо описывает название одной из книг Толкина – я сходил «туда и обратно».

 

1С-ники умнее, и я не шучу

 

https://lh4.googleusercontent.com/X_ePvP43ZN8WsimovE2jcnUL1fBDJGwhrFiYLSZrXZ8DS0ZhvVeQY0X_BYlJCUTOhfjq0tFFYsTte_bEg7pCGiShLMgbuG8brDRAD2n8ZZQbc54K0YxRi4haNJhYkDhlUTyuTgrhigoO5Ue2bujh5j-bifYOVBAidT9oR4uINMOFKg_Bb_NLldRTcA

 

В нашей отрасли во всех чатиках и форумах существуют такие мифы и легенды:

  • там интереснее работа;

  • там настоящая работа, а не только обслуживание бухгалтерии;

  • там больше платят; 

  • 1С – отстой;

  • на 1С нельзя сделать настоящее приложение.

https://lh5.googleusercontent.com/l3QKW4Z9cm2IxeuUH_Mm1l3iO6i6Mk8J3p_Y1dQ8FBJE65iCrTS9OMjdYDo39_gvfLzCdvyrfuIeHsJb4zRg9lyiJ0InWqC_HlNQX4eB9o9GvGJNRo9kittkMfb_hWlG4JLDEM_NXcPYUVoxTQpcqM_AWa9nIjYqBmjRDBAXJW1Fd1C7MiH6qTs27g

 

На самом деле 1С-ники сильно умнее настоящих программистов. Я не шучу. Я там был.

Удивительно, но факт. «Настоящие» программисты слишком сильно заморачиваются с технической реализацией, сложностью алгоритмов, соблюдением SOLID, мыслями о том, сколько времени занимает добавление в список. В этот момент они теряют из вида понимание того, зачем им вообще ставится задача. 

«Настоящие» программисты реально не понимают, что нужны не код и не программа, а достижение цели.

Они правда не понимают, зачем им поставлена задача. Они этим не интересуются. Из-за этого они теряют смысл того, что они пишут, и пишут не то. 

https://lh4.googleusercontent.com/OgG0-htpUuobOIM1MZ4CrZmzXrgFkIWEF4RWNCJTJu2wFKlDPAnSmQxe_ykX5AyJJW870A-fgO0fYzcSMBobCY_I9EI9y7tg0Ic6MQBv1NTXJwHNeySo1q-d21YySGqOT3_Pva5LIq_Vjgik_mr_CSx5wLU8a4ViBt6tX9Dkv-kSQAtE6e-PmAbOrw

 

В силу своей специфики работы у 1С-ника есть встроенный в голову хороший аналитик. 

1С-ники привыкли работать от процесса и бизнес-функций – они сначала думают «зачем делать», а потом уже «что делать».

Джаверы, дотнетчики и ПХПешники делают наоборот. Они не знают «зачем» делают. Они читают спецификацию ТЗ, и по ней работают. Если ТЗ написано плохо, то результат идет на помойку. Почему-то в их отраслях это считается нормой – я не знаю, почему так происходит.

Порядка 80% программистов на PHP, на Java, на .NET просто берут задачу и делают. Им сказали: «Взорви все» – они возьмут и взорвут, «удали таблицу» – удалят. Потом внезапно: «Ой, что-то пошло не так, я не так понял смысл». Потом на запуске модули не стыкуются, пересылается не то и, в целом, происходит караул. 

А главное, что код уже написан. Заказчику остается только притвориться, что он именно это и хотел, потому что зарплата уже оплачена и время потрачено.

 

Ограничения 1С работают во благо

 

https://lh5.googleusercontent.com/hwPPer82RffDbJpUeYUr220DnBIkhHCgDkS_IhQPSwGhrD-FYfAfG5Dcug8u_rTxqqbtDIWZAkVxvzdOQoHo9kQQwS6V1JttoU_GgIQPpJErumbmlD5LZFqheVtexTfIUwneQuKd0Ocg6pNTFobMDoQx3wSlUHab4RIh8oNiKyYZOfGk7wHXN5njwg

 

Нам очень повезло с фреймворком 1С. Он очень помогает в мелочах, о которых мы даже не задумываемся, а те ребята ломают копья.

Обычно говорят, что в 1С нельзя сделать все, а вот на языке «таком-то» можно сделать все, что захочешь. Наверное, это правда. Но вы не просто сможете сделать все, а вам придется делать все.

 

Работа с базой данных

 

https://lh4.googleusercontent.com/6rAL5G207ycStaU_KP3uM_2Gj_FEY68bON4u632Nva69f1FcESEzEuv0EVZPPidqQyVrpqVVYIQ-VJuoJUSIP1jdaL01sBwtZZzR1gqGmIwxHHaeHTWGz7eXPpW0xT5-Li5QtpDOZqpIw7L0Dj5vx8ddwj_3tzipiGMnkwu0nlrGQzd7bTuw7CZR4Q

 

Посмотрим, как это проявляется в работе с базами данных.

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

  • Например, в 1С только одна база данных. 

  • Все второстепенные источники данных работают либо через интеграцию, либо через веб-сервисы, либо как внешние источники данных. 

  • Нет соблазна налепить интеграцию «прочитаем из базы соседей».

В других промышленных решениях такие интеграции в порядке вещей:

  • Никто не ограничивает количество баз, с которыми может работать приложение. 

  • Там часто бывают интеграции по типу: «У наших соседей лежит база. Мы прямо из нее почитаем». Одна выборка из одной базы, другая – из другой, и выводим.

  • Потом другая команда удалила или переименовала какую-нибудь колонку в своей базе, и у вас все отвалилось. Они не будут вас уведомлять об изменениях. Это же их база, они не знают, что туда кто-то полез.

Поэтому начинают придумывать регламенты – «прежде, чем реструктуризировать таблицу, вы должны написать письмо на всех». Только никто эти письма не читает.

Для них это – норма жизни. Нам даже в голову не придет этим заниматься.

 

ORM-модель

 

https://lh3.googleusercontent.com/Jt0SIWsSK1DMSz8j_ZljQo-iFwHaBpuc5JtHgTQwI7dglxuud0zssPhsXJBqYGotU1Hp0ZC2Op4NIluAixvrGQiAxYWtXLECsyWxgN_saMskhFrqVwAsxQ5fh67zGkswwkpJXw3ryklD8lcLIvU5EowrHfcnDvC18aP0N_pcJc42bl5GwFQfA-unqA

 

То же самое с объектно ориентированной моделью – ORM-моделью, когда записи базы данных превращаются в объекты (справочники контрагентов и т.д.).

По моему мнению, в 1С ORM работает близко к идеалу: 

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

  • 1С не пытается замести под ковер язык SQL – язык запросов 1С SQL-подобный;

  • С самых первых курсов, с младых ногтей всех 1С-ников натаскивают на производительность запросов и их оптимизацию. 

1С-ников этому учат, а в других стеках работать с ORM не учат. Из-за этого промышленный ORM выглядит как костыли и ад.

  • Они пытаются совсем спрятать от программиста язык SQL. В результате, он даже не знает порой как писать на SQL. 

  • То, что ему ORM-ка генерирует в виде запроса, очень легко превращается в миллион запросов в цикле, и он даже об этом не подозревает. Например, .NET-овская ORM-ка запросто может сделать запрос в цикле миллион раз и выдаст всего лишь незаметное предупреждение в лог (который будут читать, только когда продакшен встанет колом, ведь на машине программиста с тремя тестовыми записями в БД – все было хорошо).

  • Хочешь наименование ссылки – пиши явно. Для 1С наименование ссылки – это примитивная вещь: выбрал ссылки из базы данных, выводишь, а наименования сами подтянутся. У других программистов так не работает. Им нужно писать явно везде, каждый раз, всегда. Хочешь текстовое наименование? Выбирай текстовое наименование. С одной стороны, это вроде правильно, но с другой стороны сильно напрягает, и ты начинаешь скучать по 1С.

https://lh4.googleusercontent.com/hM_pYgkasDCfLUNGa1cTFUK18k1pkUFQC_c2_qqK8c8nhaMV8AdIElsgKFDVP-VCyXxWxyl9KMaquzff09RxNX8G1YSg5cusNT-Zepznpez8cHK38HvoBcVNuL3D_QWUDj11Yg6C_zJtAXbYdIpAZZnUrGn5dDS9IiUYJj8J-My5J2eoROWcxYSTvQ 

 

Еще один недостаток тех ORM-ок, у которых метаданные описываются в коде. 

Объекты, которые моделирует программист – это не бизнес-объекты, не бизнес-модель, и не прообраз записи в базу. Это какие-то франкенштейны, в которых половина полей служебные, «чтобы в базу легло», а половина – «чтобы бизнес-логика работала».

https://lh3.googleusercontent.com/wbyaAGemvq7XGUBFgN1hniug4sBzDJ3QRDz3J-_9hljRHeUFxGW2XFi2qVUvZ9umhCmdg_fBwRVxQloxQqdMUPogMi7SMI-Nw0CYLMz19L6Rhh2BIxLvDbFJ2W2oXFTSgxzlIQg0dk51ty-KZTRvJD2Ko3c5hrbIKPkj1NPf3uyWGrzApF3Le7q0CQ

 

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

Например, на слайде показан класс Customer (контрагент), у которого есть поля:

  • Id (ссылка)

  • Name (наименование)

  • BankId (ссылка на банк)

  • Bank (банк-объект)

  • Orders (заказы)

Вас не удивляет, что банк-объект находится сразу в контрагенте? Или что список заказов, который сделал контрагент, тоже находится сразу в объекте «контрагент»?

Мы в 1С понимаем, что список заказов не является частью контрагента – это просто его связанная какая-то сущность. Нам 1С логично, с помощью метаданных, помогает это настроить.

А другие программисты с легкостью могут налепить такой объект, который при считывании еще и всю историю заказов контрагента будет поднимать. И я не шучу, «настоящие» программисты даже не задаются мыслью: «А что не так?»

Мы лучше проектируем бизнес-модели, это просто факт – я с этим столкнулся на практике. Они не умеют проектировать модель данных. Понятно, что кто-то умеет, но в среднем – нет. Упрямо делают франкенштейнов с глазами на… не том месте, где стоило бы.

 

Архитектура

 

https://lh6.googleusercontent.com/sUzRgITaYkMR-abrUDlTFzMHOVupyrrBJt_qDTzXa2AUzudXIBBkRuutQ-X-3e_To7e3yUCr036wVs-hoAcRtPGKg2hMMKE-ZHOzAsqRSckKwCEIYeYVESxKg39HE_09YUgDqcjJpzVBx2b68tUH1NS9kVElb3jgih_e7AAxErBAJ9SANmeBxLbueQ

 

Логики «ПриЗаписи» или «ПередЗаписью» в большинстве ORM, как правило, нет.

Поэтому, чтобы объекты правильно работали, нужно прописывать очень много служебных обработчиков по бизнес-логике.

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

Чтобы реализовать логику «подписки на изменение» – например, при записи что-то досчитать или послать в кафку какое-то сообщение – нужен еще один архитектурный слой, который будет этим заниматься.

И так – по каждому бизнес-объекту.

https://lh6.googleusercontent.com/5TjmTRH-svP6J2hu_Hh4jD69padtayikN08bEA7Tk8SBq81nWLra0f-w072bTbNRTJqUpbNzMeOKGGYgfzW1BSNv_Bb-Ly6KdJr4C593L5TIhH3pwN9C6T2PJ5ohAenWp4uCPBxjW7p1c08pFH7ofKkCPgdX8lbaTR2m6CEcXDAKpqroUzWbagpO9g

 

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

А ниже уже слой БД, который будет объекты бизнес-логики перекладывать в базу данных.

https://lh3.googleusercontent.com/3ObbO0NDLZ7s5MJrSOUz-YjAZ5qfXjrNx-2ZNEUr9aLjlhzYhrhXB7vQijeaIEeLdyD6JIu5hoZ1PTKNo1tbk7eRIC77RB9u9zuZgThvKy8nwGp-ns-PW9gQV3tWH0glftZV-3QfAW5JKD8khPd8lJEwrHoSrJAcOHszCOUxf8AfccXglnQiJCudnw

 

Все эти слои надо написать:

  • вручную;

  • без ошибок;

  • без привнесения ненужных ответственностей и без перемешивания ответственности между слоями; 

  • срочно, потому что прибегает взволнованный менеджер и кричит. «нам нужно было это сделать еще вчера, пока вы будете это проектировать, поезд уйдет»;

Из-за этого никто ничего правильно не проектирует. Работает – и ладно. 

Количество лапши и франкенштейнов, которые получаются в итоговом коде на Java или PHP в десятки раз страшнее, чем в 1С. И когда все встает «колом», рефакторить сильно сложнее.

 

Индексы

 

https://lh6.googleusercontent.com/ZBCGLIqTeyO4S_HfX3uGf96y_-YfTMIsYMyeM4JGtjZeHSOEEJjCXXiRI-q0zN3aQruJFTtxoMJguAWqHe013k4kT_CedC_P9AhQDjbKdTeFsjb7CMvay4MY8m4uSWP6hOaIf1kgrZT6AnqCCZARX4PNKVqCu3RVb-SqdKdtyORfw3f4tZcYi0OYJA

 

Вас возмущает, что в 1С нельзя управлять индексами?

В других стеках программирования вам придется управлять вообще всеми индексами. 

Никто не создаст за вас даже примитивные индексы – вам об этом придется думать заранее и выяснять, какие индексы нужны.

Это еще не все. Из-за того, что обычные программисты избалованы ORM-ками и не знают SQL, они вообще не вдупляют, что такое индексы.

Я часто спрашиваю 1С-ников на собеседовании: «Что такое индекс в базе данных?». Худо-бедно мне отвечают. Кто-то правильнее, кто-то менее правильно, но отвечают.

Java и .NET программисты вообще не знают. Все, что они могут ответить: «Ну, индекс – это какая-то фигня в базе данных». И я сейчас не шучу. Там не считается позором этого не знать.

 

https://lh5.googleusercontent.com/vg_x-VCz45rstfyYW28G_t3nRny0YLCGvLWEftsa4-rJWpNM8L40MBCahvPMZyJEEpXi0j05xdRUMYGjVVu2V0531sfox4fsm4bset6DscvLBuwBKjeDxXHno_grEM1sb4JWgn-1aIl_z7NsSm_O7IkZNAC61IJCmRYaMjqvUQTTwFPEIjZD75l_-w

 

В других стеках программирования обычно есть DBA – админ, который следит за базой данных. Но он не понимает в коде, он понимает в базе данных. 

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

Оптимизацией запросов занимаются редко. 

  • Есть возможность добавить железа – добавляют. Не хватает индексов – DBA докидывает индексы. Программисты даже не знают, что они написали кривой запрос. Написали и написали – админ базы как-нибудь вывезет.

  • Но когда ради красивого запроса вы решите переписывать код, вам придется поменять часть бизнес-логики, а это сроки. 

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

 

Клиент, Сервер и все-все-все

 

Когда вы вызываете серверный метод из клиента, для вас клиент-серверное взаимодействие происходит совершенно незаметно. Под капотом 1С делает за вас вообще все, и вы даже не думаете о том, как это происходит. 

 

https://lh3.googleusercontent.com/_gKPXkBpzBJvYC3aLDu6Yrq0DqB3i8iCI1h_B4DUmCKlc-r0DCq7H9OjKcsBPUuh3C_nie8AchcYDsShzq8EviUJaTpBB_tUfy4tJOsjOEWjGJTmiXJsBS35VU5QiLyUYbOYNaeWGoFBgNO5MsOKWeT9T7pcxmkrOVO9YBujQ1f_vt-kaM9knB_J_g

 

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

  • Есть JavaScript-приложение в браузере;

  • Есть сервер, с его моделью классов, бизнес-логикой и базой данных;

  • Между ними путешествует JSON. 

https://lh6.googleusercontent.com/sAilCa5W4T5eh1iGqnUcznKU2aiA-s8FcjQN6Vu3PsHNi2qhs9YVNulr0dCt1qNQmNAn0j7DmXPgcguUM1UEWscnNKMxt5QqH-5mcpKwZHEPDIL5_ASW9nRcCTDB-y9Es_x5QjqEUuIaIhvM24nBFclfXnxMXH1B6utbPzTNppdy5XKNZpq74W9-NQ 

 

Казалось бы, все, как в 1С. Но клиент в данном случае – это другое приложение. Его пишет другая команда, например, на React. 

Другая команда вообще не интересуются, какая у вас бизнес-логика. Они ждут от вас только спецификацию, чтобы в этом ТЗ было написано «Поле Валюта должно быть недоступным, если снят флажок “Валютный договор”».

Вы должны будете написать ТЗ, чтобы они на JavaScript сделали такую клиентскую логику. 

Простейшую задачу «Сделать поле недоступным, если стоит флажок» вы в одиночку сделать не сможете, ее решение займет у вас неделю.

  • Вам нужно будет составить ТЗ, проверить результаты работы фронтендеров, провести интеграционное тестирование.

  • Вы напишете сервис, выставите и задокументируете API, объясните им модель данных, какие поля у этого договора есть, в каком порядке их надо вывести на форму. 

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

Неделя – на выключение поля при установленном флажке! 1С-ник выполнит такую задачу за минуту и оставшееся время будет ругать 1С. 

https://lh5.googleusercontent.com/qNAhkvdnMyZvIoLaixImPz84k8AOXateTsgA4G5lD3tqADsKytWwWal-tJ6C0a8XeDWilMzAKHgwDT0_MSSVq0udDlJvo6CMHh6ZboU1cZfQ8jMURJju23gp1kE8lMI4lOqJVtFrhv7d5uPUDcZCeT_f_iqhvzcAG9QDWDYguI0iUxFLQwAzJGY7vA 

 

А потом вам, как серверному программисту, нужно: 

  • десериализовать JSON;

  • получить объектные поля и превратить их в объект, который у нас называется «СправочникОбъект» (то, что ляжет в базу данных);

  • как правило, объект из JSON и объект в базе данных почти совпадают по полям, но не совсем, поэтому вам придется поля перекладывать по одному – при этом никакого «ЗаполнитьЗначенияСвойств» из коробки нет: придется все писать руками;

  • не забыть про логирование, про права доступа, техжурнал, телеметрию;

  • сформировать ответ клиенту.

И так по каждому объекту, и, конечно, вручную.

 

https://lh6.googleusercontent.com/CbWR4YEW9MjWMYduFiq8txqtFFQg1ZN9AfpiIG5mIqV8OZzsVzVW-RgTe9j-T-GiftV3-gepH9LZh92sSuZiPcWCWzXv291VjoNBdHWVkq7IXUt_BMqWqDIAIf145Z-zeUS8kjMXdAY9yD3BLy56XAA3sSj0FL6tMM-z8xTdHr3Gft0GG-5qr-Jszg 

 

Вот так выглядит класс заказа с точки зрения бизнес-логики, базы данных и интерфейса – вроде один и тот же объект, их поля почти похожи, но приходится перекладывать все взад-вперед.

https://lh4.googleusercontent.com/BFpcQavqRqF3zeyFMp3ghLqOKMsIer8m1h9NefQQafLfkr4q-nIM9uzTUi9NY5idfR-3RIOqZDZBORbkffaA1dDcL6y_A-FEJKwEPwWdse3yh8K674CBPYcDrabHfczoVkCLwpcwFZWwEgDHTx4wY0lebWhuPV4MC9YfExWuxilOQnAZYVcEpXradw

 

Итого – при организации клиент-серверного взаимодействия приходится тратить неоправданно много усилий: 

  • Да, они все это пишут это с нуля, все слои.

  • Есть вспомогательные библиотеки, но они слишком универсальные, и ими надо уметь правильно пользоваться;

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

  • Получается спагетти-код – летающий макаронный монстр будет доволен.

 

Роли и права

 

https://lh4.googleusercontent.com/70O8Ps043lRh3JMmHKiIH0U6KqF5rVDWxmrAlSaclB4ZGATz9MIuYfS8OSH7_wlRMilZ--sZXxSseu-6XOgC6ncQZlbMiatuO4SEVLFhfdOPblBdnGQazTYsdE_ev8rlOK7T7aB5lWUn3LsMPqqQGiVoioHdtywc2EFEawV4aIvfsyNiw_8ga_FrrA

 

Роли – это бич не только других языков, но и 1С. 

  • Мы тоже любим проектировать роли «потом». 

  • Но у нас хотя бы есть роли.

  • А там ролей нет вообще – это значит, что и саму механику контроля прав тоже придется писать с нуля. 

  • Сначала неправильно, и потом неправильно, но лучше.

https://lh6.googleusercontent.com/QMeWcA1ipIX-HduiWKD95L65leDy_lDlss37XnYGQVAw2jrRsE1VKvAJiW70utuThdk0hWLpkjumJkcK0BncbtVgCscuWlL5f2H-Se4oBm8t1SmRZDy0-Y-AYvfg2esVBhplNTiHXL0nFQ33WD2Y1ul4uaY8PNVUFjIlsA9TjsTi294r32CU2Ersbw

 

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

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

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

А у них даже этого нет – им приходится все с нуля изобретать. И сроки опять затягиваются.

https://lh4.googleusercontent.com/h9QYqOu5s1ITdTriujifceKT5qC2AeCO6wXRftEkAYZYF5yWnOj55TL9nk__b8rAfYXOPL49CB-VpYSq0odGcGED34YHcfN6zaOHEhpFN0OIwoL6Jl5XH-aypL3gbuJJiaTiJKVH27bATP4J8d1vSIiHjJe5rBMH0Ul_-HhVLWf5NSu6olgKuMtpSQ

 

Мой любимый пример – как на 1С сохранить счет в PDF? Мы записываем табличный документ и сохраняем в PDF.

Как сохранить какой-то счет в PDF на Java? Бесплатной и хорошей библиотеки, чтобы скормить хороший макет в PDF нет ни на Java, ни на PHP, ни на .NET. 

Есть приложение html2pdf.exe, которым пользуются все, потому что он бесплатный. Это внешний процесс: вы его запускаете, кидаете ему HTML, а он вам конвертирует в PDF. Он бесплатный, но медленный, и результат часто получается кривой.

Есть хорошие платные библиотеки. Причем, чем лучше библиотека, тем жаднее ее авторы. 

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

 

Аналитика и постановка задач

 

https://lh5.googleusercontent.com/WDYQiIHSVfbqeK1uPEyggX4nMiF139EUxoskl4DeHIH1_6uudtXrCVnnqu0rpnyBw5tSfXnrkcdP3KxkjgqGIXxfA85eV_4fC1jTNj3FSfRISEgmWew95btKFlnl7ug57hX7k10Wf6t-8diKIdyg9DO5i7EcLu-oRuZ7XYkXPIsC4LtvzuYkYzKgTA

 

1С-ники – очень хорошие аналитики. Если к вам прибежит нервный менеджер и начнет на вас ругаться, вы хотя бы сможете с ним поговорить на языке бизнеса.

В других стеках программирования очень плохие аналитики. Это правда.

https://lh6.googleusercontent.com/jAf6NHBdtlJk0h4Dpxl5Sj8ZQVWzIuXM6WMNc-LjDTi2CZ2jIs7JaQz6ovwJGElyfvT8uDOCmhIjoab2Vxio2p0wDhtB9R9ZSgo_BioDtZHVUD2ldCjHdKEv2DGzd0YpxDrpnQayLrTbEdb1NpAcpfj5yx4d0RkiF9FdZPq_rjOUZbWJI8_-fgxkWQ 

 

1С-ники – лучшие аналитики из всех возможных. Они понимают бизнес и говорят на его языке. Они задают себе вопрос: «Зачем поставлена задача?».

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

А если еще и сроки горят, то: «а когда же мы код писать будем? Сократим время на написание ТЗ!». 

В итоге получаем короткое ТЗ из трех слов – как понял, так и реализовал. Реализовал не то, переделываем. Плюс еще технологические сложности.

Разработка бизнес-приложений на других языках, по сравнению с 1С, – это катастрофические потери времени. Мне просто жалко время и бизнес, который это заказывает.

 

А как же Agile?

 

https://lh4.googleusercontent.com/DSjvVYBJw-fF5uN3KqIUaR2ZFL-5gH65L8AD4mGBdA7Vej9Y4ZSnn6xzIw4Ic7PP86fz0yC5dfqSH35TP0QC85RNGgyfSDtBpHTb015eeS7qP5sLx5xTWdIgb1kTnJh3KnR0JGSbGRPR_QPCfodNng1-C7gx1RL2-gzggE8MotbT8Lpt1fNIul7j3Q

 

В этом плане хорош аджайл, но только если все играют по правилам. 

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

Если бизнес в середине спринта говорит: «Все, о чем мы три дня назад договаривались – идет лесом. Берем новые задачи в спринт», то это нифига не аджайл. 

Чаще всего происходит вторая ситуация. Реже, когда бизнес принял правила игры.

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

 

Стоит ли переходить из 1С на другие языки

 

Я рассказал всяких страшилок, и теперь вы, наверное, думаете, что из 1С не стоит переходить. Однако все не так просто.

https://lh5.googleusercontent.com/qhJd13ZC9tZ3ctUFg-sS6waeLXvGMP8qaDX8vNh5LYBQr9nXmBqB4WHyP0fGkOzyDr2RJuimqCgbfVuP6qVy9z4MPtL6W_709odFGXuwwQvrKWdFwRYsSJYwLVz1eKG84BgK0n00ba0OtN8o8EO_ShBd60Kjjy8QpNJghMVq-ZJYEF6lU98PJUxbfQ 

 

Нужно взвешивать плюсы и минусы. 

  • Например, в других языках есть объектно ориентированное программирование, классы, можно на низком уровне щупать байтики – это все очень интересно.

Но это не преимущество, а геморрой:

  • Как только дело доходит не до развлечения, а до конкретных задач с конкретными сроками, завязанными на вашу зарплату, то задача превращается в ужас, а не в развлечение.

  • Все придется пилить самому. Все то, что было естественным и простым в 1С, придется делать самому на другом языке.

  • Вы будете скучать по 1С, потому что потери времени на фигню будут просто катастрофические.

 

https://lh3.googleusercontent.com/IocBVJWEhtQDMa-CMWq49g4zHOww5Gfbk11cFOb2UQiiLfaHCynrUEU3OMRhoW0kwNoTmO7ylWCaoTdPzAeO7STg35FkuFR2o9EdOgXPBtEonSBZYZITePwcIWEQbByj4vmOJ4lVo6wC7RhK7YoNMBUFqP6Nh_C6lJzxCxhAoLaZZc2HyOxxn38npQ

 

Правда, что там больше платят? Платят там по-разному. У меня есть информация только по Москве, так как я там живу. 

Действительно, в Москве можно с ходу обнаглеть и попросить больше денег, но не всегда.

Я встречал Java-программистов, которые приходят на 100 тысяч рублей и встречал 1С-программистов, которые приходят на 200 тысяч рублей. Я не знаю от чего зависит такой разброс зарплат.

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

Если ты помогаешь решать задачи – тебе платят. Если ты просто кодер – неважно, на чем ты пишешь, ты не нужен.

 

https://lh6.googleusercontent.com/Z_JS9EjJBn92PYV2wwTJY8Cn20BQBuOzhNOlbTdxkO_DfsvMSUJGX8xK1Z1q_N5XtsJJlb88bxIxvr-_il1d-LxqLUDU8G4Ae_4vKiImpvtHwaFDtmHhy1oe-0vPQ-rA_xj9W603PSeB3I4nSYIR5FrP-G4MurSLzHxAx--JkD404p1o5qFPj3t8Sw 

 

Цитата: «В 1С невозможно получить сложную масштабную задачу, а в других языках настоящий HighLoad». Это ерунда и чушь. Просто найдите себе нормального работодателя.

В основном, 90% «настоящего» программирования – это те же самые формочки, записи в базу данных, селекты. Отличий практически нет. Вы не почувствуете разницы с точки зрения каких-то там масштабных или сакральных задач.

 

Ну так переходить или нет

 

https://lh4.googleusercontent.com/XnQQaHxqg68q3BYL50-Ynz8HRWs4kB1tjdaOHf6N5TMtalVE_RDuM69FmNDdBj-p4ED2hyalYjGpk6Tmvshlrvhi21G7wnpsSLOxwDi15jfIvfGZ9_T4-an_hJeoMc6mgikinzYtQzvv3kfTuQ1AQcaV3Y21gIbSXpDiRM5eqXB1qNyj6z9owdr78w

 

Конечно, переходить. Если тянет и хочется, надо пробовать. Вернуться всегда успеешь.

 

Будете ли вы больше получать? 

Не факт. Сейчас очень активизировались эйчары, все время пишут письма и звонят. Рынок перегрет. Можно обнаглеть и попросить сходу какие-то деньги. Если справитесь, то справитесь. Не справитесь, вас выгонят и вернетесь в 1С. Пробовать надо, я считаю.

В 1С сейчас все стабильно, а сможете ли вы там?

Есть такой страх «смогу ли я?». Сможете. 1С-ники реально умнее. Вы умеете строить архитектуру данных и анализировать бизнес-процессы. Там этого никто не умеет.

Вы однозначно будете скучать по 1С. 

Будете говорить: «Господи, неужели я должен неделю кодить то, что раньше делал за две минуты». Такие ситуации будут, и они будут тянуть назад.

Вы даже захотите написать свою 1С с мыслью: «Я же знаю как надо, я знаю как всем спасти жизнь!»

Вы будете писать свой 1С-подобный фреймворк. А потом прибежит менеджер и скажет: «Ты чем тут занимаешься?» Он даст вам втык, заставит написать костыль и захардкодить всякую ерунду. И в таком виде выйдет в продакшн, потому что красивая архитектура никому не нужна, нужен результат.

https://lh5.googleusercontent.com/PDJp-oO6l1cMbXvHiDU9UD64_r1uheXq9OAs9wcaX211IEQTRp_zdCrxX2qTUS03Bc8TyaB7kIxO_vG3WBw_USBg6qBxAomrRZrRNZryNHPzNFkIslfOeWQ-PR309e7CO9GUCq749hZHBUXIWzM-pEw66YUcd1pxRWjolUS2FibLUAIw6TI-AOcZzw 

 

Навыки 1С-ника на порядок полезнее для бизнеса, чем навыки кодить какие-то сложные алгоритмы со структурами данных. Тем более, что в энтерпрайзе никто не кодит какие-то волшебные сложные алгоритмы, это миф. Там действует та же схема: сохранил, записал, добавил, прочитал.

1С-ник умеет «из коробки»:

  • понять, как надо проанализировать задачу;

  • как снять требования;

  • построить корректную модель данных;

  • определить, где не хватает контроля прав доступа;

  • спросить какая будет отчетность;

  • оптимизировать кривой SQL запрос, созданный ORM;

  • и многое другое, потому что у 1С-ника нет границ. 

Вы точно справитесь. Вы не глупее всех этих снобов, которые считают, что 1С – не настоящее программирование. Это чушь.

https://lh5.googleusercontent.com/qhzt__Oen0LqNqx8YrnE-4Kj5FJ6uRueg5t4BG2jHb-eJGl8zXSUVz0IcJ9R9d8UlDUGJi_L2Krv7Xqy-ZBy9iC3PL1c6lnCpZW7pMjahErtNzmar1s6CED44xunsJ2ubbrAAHnODu-4TiloGNiZcXOzleHB2PNcvOgd24E80JJzJgPTDkSDjrAIgw 

 

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

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

В 1С я получаю результат. Я не пишу код ради кода.

Код, как вы знаете из начала доклада, – не нужен. Нужен человек, который решает задачи бизнеса. А это именно вы! Все в ваших руках.

 

*************

Данная статья написана по итогам доклада (видео), прочитанного на конференции Infostart Event 2021 Post-Apocalypse.

См. также

Обучение и наставничество Бесплатно (free)

Обучение взрослых (или если по-профессиональному – андрагогика) – это такой же сложный и творческий процесс, как и обучение детей. И два главных барьера тут похожие – вовлечение и мотивация («Мне это интересно?» и «Мне это нужно?»). Отсюда не просто игровые методы обучения имеют большую популярность, но и те, которые будут вызывать интерес. И я вам расскажу о нескольких дидактических формах, которые уж интерес явно могут вызвать. Это первый ответ на вопрос – откуда появилась идея этой статьи.

31.03.2025    442    0    ashtey    4    

5

Обучение и наставничество Бесплатно (free)

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

26.03.2025    333    0    Бэнни    0    

5

Личная эффективность Программист Бесплатно (free)

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

17.03.2025    618    0    kirillobskih    1    

7

Личная эффективность Бесплатно (free)

В этой статье автор решил немного заделаться психологом и по-простому написать, что за зверь такой – «эмоциональное выгорание», почему ему сильно часто подвержены IT-шники и что с этим делать.

03.03.2025    805    0    kirillobskih    7    

6

Личная эффективность Бесплатно (free)

Я Костя, разработчик 1С и руководитель образовательного направления в компании. Живу в Казахстане, работаю удалённо. Прошёл путь от стажёра до руководителя отдела разработки, меняю позиции и роли, потому что всегда хочется задач посложнее. Расскажу о карьере и тех условиях, которые сыграли важную роль для роста.

25.11.2024    5389    0    PROSTO-1C    9    

11

Обучение и наставничество Бесплатно (free)

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

12.11.2024    1214    0    AlexSvoykin    9    

8

Личная эффективность Бесплатно (free)

«Я знаю одно – во мне есть нечто, и я это скрываю. Я не говорю об этом. Но оно там всегда. Мой Темный попутчик. Когда он просыпается, я чувствую себя живым.» (сериал «Декстер»). «Жажда разработки» – это психологические проявление внутреннего «я», вызывающее острую необходимость программировать. Все, кто любит программировать, неоднократно испытывали такую жажду, и я не исключение. Расскажем о том, как утолить свою жажду и найти баланс между хобби, работой и другими аспектами жизни.

07.11.2024    4843    0    BlizD    89    

50

Обучение и наставничество Бесплатно (free)

Когда начинающий разработчик приходит в новую для себя сферу 1С, ему нужно пройти множество этапов, прежде чем стать специалистом приемлемого рабочего уровня middle. Расскажем о том, какие способы помогут разработчику быстрее научиться эффективно решать задачи.

09.10.2024    2944    0    Akcium    1    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
48. Ruler 85 02.10.22 17:43 Сейчас в теме
2 года назад ушел в java, 80% того что автору кажется минусом и сложным решается фреймворками или всякими кодогенераторами.
Например конвертация из сущности БД в бизнес сущность и потом в ДТО - объект для передачи наружу, поэтому тут или автор не знаком или лукавит.
1С это узкоспециализированный инструмент и в рамках своей специализации безусловно он показывает лучше результаты по скорости решения Бизнес задачи, но это не значит, что работать с 1С программисту удобно, интересно... И как только задачи начинают выходить за рамки, того на что рассчитан 1С, начинается боль, страдание и костыли. Поэтому странно сравнивать конструктор лего с набором инструментов по созданию чего бы хотелось.
Работая программистом 1С мне вот как раз не нравилось быть и экспертом в прикладной области и снимать информацию с заказчика и согласовывать трудозатраты с руководством + программист + тестировщик + базовик и прочее.
Я в своей практике часто сталкивался с тем, что заказчик не понимает чего хочет или смутно это представляет, что часто приводило к тому что надо по десять раз переделывать, ну сейчас такое количество легаси в 1С, что это жуть страшная все эти кастомизированные типовые как-то допиливать, очень не приятно залезать в модуль переписанный 10 разными программистами, каждый со своим кодостайлом. Работая с консультантами постановщиками не было такого что бы ты мог спокойно кодить по ТЗ, всегда приходилось многое самому уточнять, т.е. качество аналитиков с кем сталкивался было среднее.
С точки зрения технологий мне не хватало ООП + паттерны проектирования, это позволило бы раз в 10 минимум сократить кодовую базу и ту лапшу, что 1С развел в типовых структуировать и сделать понятным программисту.
Используя java можно написать все из свободных компонент, запускать везде где есть JVM. Есть возможность писать, так что бы не привязаться к конкретному вендору СУБД, хочешь SQL хочешь NoSQL. Огромное комьюнити, т.е. программистов java сильно больше чем 1С и практически на любой вопрос есть ответ и под многие задачи уже есть платные или бесплатные библиотеки упрощающие жизнь. Уверен что и на js, python, Rust, Go, Dart можно все тоже самое собрать без вложения денег или с минимальными.
kser87; cheburashka; freeek; paramedik; Feelthis; zqzq; NeLenin; A1WEB; rabid_otter; +9 Ответить
54. Evil Beaver 8281 02.10.22 22:37 Сейчас в теме
(48)
конвертация из сущности БД в бизнес сущность и потом в ДТО - объект для передачи наружу


Да, все это есть. Но это надо правильно использовать и создать на это всё мапперы, и создать их корректно, не запихав туда бизнес-логики. Это не всегда случается. Про маппинг ДТО-МОДЕЛЬ-СУЩНОСТЬ даже есть отдельный слайд там, но согласен, он упомянут вскользь, а тут тема на целый доклад почему единый тип данных предметной области (как в 1С) лучше чем три, как в других фреймворках.
58. oleg-m 03.10.22 06:47 Сейчас в теме
(48)
2 года назад ушел в java, 80% того что автору кажется минусом и сложным решается фреймворками или всякими кодогенераторами.


2 года, значит уже можете ответить на вопрос. Сколько (процент) java программистов реально умеют в ООП? Прошу ответить честно)


1С это узкоспециализированный инструмент и в рамках своей специализации

И как только задачи начинают выходить за рамки, того на что рассчитан 1С, начинается боль, страдание и костыли.


В java по такому же принципу выбираете типы данных для решения задач?


быть и экспертом в прикладной области и снимать информацию с заказчика

заказчик не понимает чего хочет или смутно это представляет, что часто приводило к тому что надо по десять раз переделывать


Не понял, вы были экспертом в прикладной области или нет?


С точки зрения технологий мне не хватало ООП + паттерны проектирования, это позволило бы раз в 10 минимум сократить кодовую базу


Серьезно? Моделируя задачу в ООП, не говоря уже о применении паттернов, вообще-то приводит к искусственному увеличению программного кода и появлению дополнительных сущностей.

Используя java можно написать все из свободных компонент, запускать везде где есть JVM. Есть возможность писать, так что бы не привязаться к конкретному вендору СУБД, хочешь SQL хочешь NoSQL.


Зачем обязательно нужно останавливаться на какой-то конкретной платформе? Это же не религия.
За счет http-протокола 1C прекрасно взаимодействует с другими платформами. И не нужно все информационное поле на площадке запихивать в одно адресное пространство.
Iren1809; TerveRus; +2 Ответить
59. Ruler 85 03.10.22 07:42 Сейчас в теме
(58)
2 года, значит уже можете ответить на вопрос. Сколько (процент) java программистов реально умеют в ООП? Прошу ответить честно)

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

(58)
В java по такому же принципу выбираете типы данных для решения задач?

Странные вопрос, исходя из поставленной задачи. Строгая типизация это мастхев для больших проектов, сначала кажется что это неудобно, но защита от глупых ошибок на уровне компилятора, дополнение кода со стороны среды разработки (сколько бы раз не передавался объект а все методы и свойства доступны при дополнении), возможность по клику посмотреть где тот или иной класс используется супер удобно.

(58)
Серьезно? Моделируя задачу в ООП, не говоря уже о применении паттернов, вообще-то приводит к искусственному увеличению программного кода и появлению дополнительных сущностей.

Погрузитесь в немного в ООП и вы увидите как ООП сокращает количество кода, как делает его читаемым, на сколько легче добавить новый функционал. Тут дело привычки, я в начале изучения java тоже, думал что все как-то громоздко но это дело привычки.
starik-2005; kirinalex; +2 Ответить
63. oleg-m 03.10.22 10:35 Сейчас в теме
(59)
С кем работал, более чем у мели

Я не про код ревью и взаимопомощь, я про качество моделей. Возможно, у вас просто процедурный ООП, поэтому вы меня не поняли.

(59)
Строгая типизация это мастхев

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

(59)
Погрузитесь в немного в ООП и вы увидите как ООП сокращает количество кода

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

(59)
ООП сокращает количество кода

(59)
все как-то громоздко но это дело привычки

Не понял, как сокращение объема кода может создавать ощущение громоздкости? И почему, вдруг, привычка работает только в джаве?
83. starik-2005 3169 03.10.22 22:48 Сейчас в теме
(63)
Не понял, как сокращение объема кода может создавать ощущение громоздкости?
Вы предложение видимо не смогли понять и пропустили слова "в начале".ООП - это один из механизмов переиспользования кода - следующий уровень абстракции после процедур и функций. Чем выше уровень абстракции, тем меньше кода.
92. oleg-m 04.10.22 09:20 Сейчас в теме
(83) Нет. Все предложения поняты так, как написаны. В тексте полно противоречий поэтому и вопросов масса.

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

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


(83)
Чем выше уровень абстракции, тем меньше кода.

Итого программный фонд = Программный фонд низкого уровня абстракции + Программный фонд какой-то прикладной логики
Общий объем программного фонда в ООП принципиально ниже не становится. Стейт-машины, протоколы и интерфейсы сами по себе не зашевелятся, надо все-равно где-то описать инструкции, пусть и где-то там - в иерархии файлов и классов)))
103. starik-2005 3169 04.10.22 15:40 Сейчас в теме
(92) Код низкого уровня - интерфейс класса - он не будет меньше, но он определяет тот самый низ, хотя и там есть куда двигаться в сторону переиспользования - классовая иерархия. Но суть в том, что куда чаще нам нужны методы объекта, реализованные классом. И тут как раз все говорят, что на 1С можно сделать больше за меньшее время, т.к. в платфору уже напихана туева хуча прикладных объектов типа СКД, реализующих достатояно сложный механизм взаимодействия юзера и платфомы. В итоге за счет этого объекта твой прикладной код вообще может отсутствовать - только элементарный запрос, который польщователь будет группировать кликами мышки. Вот в идеале ООП в принципе сводит всю программу к new app и app.run(). Остальная логика пилится на своем уровне абстракций в иерархии взаимодействующих объектов. И если сто лет назад диалог выбора файла писался кучей слов, из которых писалась функция, то потом все это стало частью системных диалогов. А сейчас приложения идут по пути от монструозных интерфейсов к системе общения с ботом в телеге, код которого - это дергание микросервисов и осуществление роутинга сообщений между юзером и сервисами.
187. user598231_nicka 14.11.22 09:42 Сейчас в теме
(92) угу, очень удобно и компактно иметь по 5-9 вложеннных вызовов процедура бла-бла-бла() между разными модулями.
А потом удивляться, что начисление зп на всего лишь 200 человек считается и проводится полчаса на неплохом железе.
Или что модель и экземпляр бюджета на 12 колонок и более чем полсотни строк каждый чих переваривает по 5+ минут. Поскольку каждая ячейка передается тудасюда *количество строк в таблице. А в базу падает 100к запросов.
Или что отражение по статьям делается через вложенные циклы с запросами по детализациям. Одинаковые почти запросы. Просто с отборами. Переписывание с доп запроса на обработку вложенной выборки на одном из емнип 4х вложений - и вуаля, отражение идет не 16 часов а 10-30 минут.
Типовые конфы если что.
Ну и даунов с очень странным кодом в 1с не меньше, чем везде. Пожалуц даже больше, ибо вход типа простой
bgazobeton; +1 Ответить
81. AllexSoft 03.10.22 19:54 Сейчас в теме
(48) как то проводил мысленный эксперимент, а что если у нас есть полноценное ООП в 1С, что будет если взять какую либо подсистему и переписать ее на ООП? Ну вот я открыл РаботаСФайлами... ну сделал бы тип, класс.. и точно такие же методы чтения\записи этих самых файлов. Да, это было бы внешне на программном интерфейсе красивее и правльнее.. но объем кода был бы примерно тот же. ООП удобно когда вы эти объекты создаете "с нуля", а у нас платформенные механизмы есть уже, и вот получается либо мы отказываемся от методов платформы. ну либо используем платформенные методы, но тогда уровней абстракции (слоев в этом пироге вызовов) и так достаточно потому что платформа все "низшие" методы закрывает, в своем стиле, но закрывает. В общем не так уж нужно ООП полноценное в 1С. А код сокращает возможности языка ну и синтаксический сахар от части.. возможностей языка действительно не хватает.
Forest_Owl; TerveRus; +2 Ответить
82. Ruler 85 03.10.22 20:30 Сейчас в теме
(81) ООП - это не только разделение на классы..
Вы упускаете одну из важнейших возможностей - наследование...
Есть базовая сущность - и от не наследники, которые содержат все свойства и возможности базовой и от них тоже наследники и мы получаем иерархию классов, где дублирование кода минимально.
Ниже упрощенные пример для понимания о чем я:
Например - Документ - Банковский Документ ( абстрактный класс без реализации) - Приходный Банковский Документ, Расходный Банковский Документ. В Расходном и Приходном документе будут доступны через точку процедуры и свойства как они определены в базовом "Банковский Документ" (упрощаем, что они все публичные) и при необходимости вы можете их в потомке переопределить.
Т.е. потомок содержит только отличия от базового, т.е. некий инкремент к базе.
https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0­%B0%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80­%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
Конечно везде есть подводные камни, но подход интересный и он реально работает.
По поводу платформенных методов, по мне так большинство функций и методов БСП надо в платформу зашивать, и работать будет быстрее и при необходимости можно будет переопределить или что то свое написать, а не таскать при каждой сборке это.
Хотя может что то движется, уже 2 года не открывал конфигуратор))
Forest_Owl; SagittariusA; rabid_otter; +3 Ответить
97. AllexSoft 04.10.22 11:07 Сейчас в теме
(82) да я это все помню и понимаю, только вот попробуйте придумать хотя бы 3 метода которые должны сидеть в родительском классе Банковский документ ? ну и что без дублирования нельзя реализовать экспортными функциями общего модуля... я даже знаю как реализовать тот самый ООП "в стиле 1С" - в ветке общих объектов метаданных сделать "группа метаданных", что то типа подсистем. ну и собственно у каждой группы мог бы быть модуль менеджера, модуль объекта - родительский класс для включенных в группу метаданных. Ну или просто для подсистем сделать подобное. Но опять же это наведет порядок, но кодовую базу не уменьшит.. ну сделали вы условную функцию НайтиПоУникальномуИдентификаторуПлатежа() в таком классе.. чем она будет отличаться от такой же функции в общем модуле БанковскиеДокументы ? ничем...
Forest_Owl; TerveRus; +2 Ответить
112. Ruler 85 04.10.22 20:20 Сейчас в теме
(97) Общий модуль некая сущность, которая никак не связна с объектом "Банковский документ" или "Расходный банковский документ" и живет такой модуль своей жизнью, в какой-то момент кто-то смотрит и такой а давайте отделим вызовы функций от их реализации а то как то все вперемешку опа уже 2 модуля, потом кто-то решит что функции не правильно по модулям распределены и надо их в перетасовать и а потом давайте разделим их еще по какому признаку и вот уже стройный порядок превращается в клубок лапши, приходит потом новый программист на проект и при отладке занимается блуждением по таким модулям, а еще у нас нет типизации ведь это так сложно, и в процессе отладки мы смотрим что наша процедура вызывает еще 10 других каждая из которых что-то возвращает, например некую структуру состав которой зависит от кучи параметров половина которых как-то вычисляется в других функциях и процедурах вызываемых и это все тоже в разных модулях, которые тоже как-то называются и от обновления к обновлению меняются названия и состав и вот мы попадаем в чудесное путешествие....
Классы и объекты решают какую-то задачу, описывая класс вы понимаете зачем он создается, какое у него будет поведение и цель его создания какие данные ему нужны для выполнения задач. Модуль - некое именованное место где хранят код...
178. TerveRus 07.11.22 11:29 Сейчас в теме
(97) согласен полностью. Общих модулей более, чем достаточно, а все основные свойства и методы уже есть в классах документов, справочников и регистров на уровне платформы. Не надо там еще одной надстройки ООП для пользователя. Если было бы надо, то 1С реализовала бы. Вот общие реквизиты есть, и то редко используются.

Вот товарищ ниже призывает общий модуль как бы закреплять за определенным документом, и тогда типа ему будет понятнее что где искать. Но это дичь какая-то, никаких проблем с бардаком в коде она не решит. Ну и в конфигурациях 1С так уже делают, когда группируют формы и методы по смыслу внутри определенной обработки.
177. TerveRus 07.11.22 11:22 Сейчас в теме
(82) в платформе уже есть почти все, что надо. Есть классы справочников, регистров, документов, у них есть куча общих методов. 1С-никам вменяется в вину то, что они сами не пишут класс документа. А зачем?

Очень мало внутри нескольких документов пересекается общих функций. И все методы, что пересекаются, вынесены в общие модули и вызываются удобно одной строкой. Зачем там городить ООП ради того, чтобы оно там просто было? Что поменяется кардинально? Как возрастет удобство? Никто конкретно сказать не может, просто какие-то пустые абстрактные рассуждения, что было бы неплохо и все.

БСП - это попытка унифицировать общие функции в различных конфигурациях, тоже неплохо. Что-то типа фреймворка в терминологии других языков. Все остальное решают общие модули и расширения. Что там еще выдумывать?
84. starik-2005 3169 03.10.22 22:52 Сейчас в теме
(81)
Ну вот я открыл РаботаСФайлами... ну сделал бы тип, класс.. и точно такие же методы чтения\записи этих самых файлов.
Ну просто у Вас не висело бы стопиццот функций, создающих файл и его версию, часть из которых не работает, а для второй части написано, чтобы их не использовали ))) А так был бы у Вас один класс, вы бы создали экземпляр этого класса и получили бы объект с файлом и методами работы с ним, с его свойствами. Сейчас ведь есть внутренний тип Файл от 1С, просто в нем не хватает методов, привязывающих его к ORM-модели конфигурации. А могли бы мы расширить этот "прототип" - была бы у нас совершенно другая жизнь с куда меньшей кодовой базой.
95. AllexSoft 04.10.22 10:09 Сейчас в теме
(84) А это стопицот функций это легаси, оно же ведь никак не зависит от ЯП... оно для совместимости там оставлено. Можно хоть сейчас взять этот модуль и выпилить эту функции из областей УстаревшиеПроцедурыИФункции.. ну и как бы останется по одному методу на все, то есть то что бы у вас висело в паблик методах класса. Если присмотреться что там внутри этих методов - это бизнес логика типа если в настройках флаг такой то то пишем в файловую систему, если флаг другой то в бд, если версионирование то еще и версию записываем... в общем эта прослойка бизнес логики она как была на уровне конфы (ну так как к конфе и относится собтсвенно) так и останется, будет ли ООП или нет. То есть платформа и так сейчас позволяет сделать свой слой бизнес-логики, ну и все собственно. Нужна ли еще одна абстракция выше уровня бизнес-логики, например на уровне подсистем (как предложили в камменте выше) - это очень большой вопрос, с учетом что есть общие модули на каждую подсистему и там по сути методы и собраны.. общих свойств нет разве что, но опять же были бы они кодовую базу это никак не уменьшило бы. С ооп внешняя оболочка программных интерфейсов - да станет красивше из за классов как вы и описали, с этим полностью согласен, меньше говнокода было бы возможно. я об этом в своем камменте писал.
Forest_Owl; TerveRus; +2 Ответить
104. starik-2005 3169 04.10.22 15:54 Сейчас в теме
(95) а я и не говорил, что без ООП нельзя. Просто ООП создает отдельный слой абстракции, который, на мой взгляд, более прозрачен. Сейчас код раьоты с файлами разнесен на несколько модулей, при этом он достаточно сильно связан. В нем выделена и интерфейсная часть, и внутренние функции механизма, и интерфейс, и переопределяемые - попытка наследования, как расширение через обработчики событий. Но это запутанная логика. Вот в идеале код прикрепления файла к объекту долден быть каким-то таким: файл = новый Файл( ИмяФайла, Объект ); файл.Записать(). Вот не должно быть кучи дополнительных методов. Я вот делал народу для УТ11 фотографер на мобильной платформе, чтобы фоткать позиции на складе. Так вот я полчаса тупил, почему вроде бы такое простое действие, как добавление основной картинки к номенклатуре, заставило меня лезть в отладчик, ибо функция БСП просто вываливалась с ошибкой. Пришлось для веб-сервиса писать обертку над системной внутренней функцией, получать двоичные данные и заполнять структуру параметров файла. Ну да, это просто отдельные баги в БСП и к ООП вроде бы никак не относится, но наличие шести (если не ошибаюсь) разных модулей раьоты с файлами - это перебор.
111. AllexSoft 04.10.22 19:36 Сейчас в теме
(104) с этим абсолютно согласен, наличие ооп привело бы к большему порядку и прозрачности в коде конфигураций однозначно
57. hamsar 17 03.10.22 05:24 Сейчас в теме
1С-ники умнее, и я не шучу


вот это смешно. Небольшое противопоставление. В году в 2014 до крыма, когда доллар стоил 30 рублей за штуку, я работал в компании где были и 1сники и другие, каждой твари по паре. И Так или иначе все мы взаимодействовали, еще и мигрировали от стека к стеку, обменивались данными. и я внезапно выяснил, что тупой мидл jsер получает столько же, сколько и хорошенький синьер на 1с(не спешите уничтожать этот пример, с того времени прошло почти 10 лет, а я уже не раз подтверждал эту картинку, данный пример не один, а приведен только для илюстрации), значит ли это что 1сники умнее. В целом да соглашусь, вы получаете 1сника умнее за меньше денег, но умнее ли он этого бооольшой вопрос.

Я бы перефразировал эту фразу, 1сники умнее на 1 рубль, получаешь больше ума ,чем нанимая другого программиста на эту же единицу, тем самым абсурдно уничтожая суть этой фразы, тем фактом что 1сник туп раз получает меньше вебера(не люблю обьяснять шутки) но последние пару лет, показали что иногда это не шутки.

Ах ну и скажу что курс поменялся в 2 раза с 14го года
60. Ruler 85 03.10.22 08:49 Сейчас в теме
(57) умнее странная оценка, вот знание сопутствующих технологий у среднего 1С-ка не очень и это сильно затрудняет переход, например Git, SQL ( то что использует 1С маленькая часть языка, нет DDL, DML(1С только например часть пользует, DCL) ), Docker, HTTP протокол (что-то кроме Get и Post редко кто может рассказать ну и чем они отличаются тоже), Rest, самый обычный вопрос на собесе "Вот вы набрали что то в поисковом запросе в браузере и нажали Enter, расскажите что будет дальше максимально подробно".
Тут не претензия к 1с-ку, тут претензия к 1С, что они создают свои велосипеды и программист вынужден учить не лучшие практики Ит а то как в 1С это работает, ну или верить, что ему это не нужно и без этого вон как удобно кастомизировать ЕРП отлаживать и тестировать в нем))
SagittariusA; hamsar; kirinalex; rabid_otter; +4 Ответить
75. SergeyTerentyev 03.10.22 11:47 Сейчас в теме
(57)Делать отсылки к курсу - само по себе не умно. Нормальный 1С ник таким не занимается. )
88. hamsar 17 04.10.22 02:38 Сейчас в теме
(75)
(75)
(57)Делать отсылки к курсу - само по себе не умно. Нормальный 1С ник таким не занимается. )


курс добавляет множитель ко всей этой истории, что и без курса выглядит не очень с точки ума/рубль
93. SergeyTerentyev 04.10.22 09:41 Сейчас в теме
(88) Ничего он и никуда не добавляет. Этот показатель почему считается важным у людей, которые в функционировании экономики и ценообразовании мало что понимают. Тупой механистический подход.
94. hamsar 17 04.10.22 09:51 Сейчас в теме
(93) ваша польза приносимая обществу, в котором вы проживаете, на которое вы работаете оценивается в этом множителе.

Это не всегда честная оценка, иногда признание приходит после смерти.
Но спрос, на услугу и соответственно цену определяется деньгами.
Поэтому отрицание этого явления, есть отрицание культуры и общества.
105. starik-2005 3169 04.10.22 16:00 Сейчас в теме
(57) скажем так: потолок 1С-нега ниже потолка многих других стеков. Т.е. вот ты, допустим мидл в 1С и выше головы не прыгнешь. В другом стеке ты тоже мидл, но в 1С потолок твоей ЗП - это условно 200к, а в других стеках этот потолок может быть и на порядок выше. Ну и для того, чтобы стать сеньором в 1С, необходимо хорошо знать не столько программирование, сколько экономику бизнеса, его процессы. Для того, чтобы стать сеньором во многих других стеках тебе достаточно знать сумму технологий, а бизнес-аспекты знать вовсе необязательно.
121. hamsar 17 05.10.22 06:52 Сейчас в теме
(105)
а бизнес-аспекты знать вовсе необязательно.

немного не соглашусь, мне довольно неплохо помогает в карьерном росте знание бизнес аспектов.
И моим коллегам программистам тоже.
122. starik-2005 3169 05.10.22 08:26 Сейчас в теме
(121) Вы путаете необходимость знать бизнес-аспекты 1С-негом для того, чтобы стать сеньором и отсутствие этой необходимости в большинс ве других стеков. В 1С без этого знания в руководители разработки, РП и ко5сультанты путь заказан, в то же время в других стеках это далеко не всегда так.
64. leemuar 23 03.10.22 10:38 Сейчас в теме
Андрей, спасибо, интересный рассказ.

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

В мире PHP, например появление Laravel в свое время сильно перевернуло отрасль т.к. фреймворк принес не только общие библиотеки, но и методологию использования и решения типовых проблем.
AllexSoft; +1 Ответить
65. leemuar 23 03.10.22 10:44 Сейчас в теме
Возведение ООП (если точнее - "ООП с классами") в ранг священной коровы тоже интересный феномен. Этому в свое время сильно поспособствовала Sun и Java. Большинство книг по методологии были написаны и распиарены именно с учетом использования классов: все эти рефакторинги Фаулера и прочие промышленные паттерны проектирования. Других книг, которые объясняли бы другие подходы просто днем с огнем не сыщешь. Поэтому у людей едет крыша, когда ты им показываешь как в том же чистом C без классов полиморфизм реализован лучше, и что дело не в инструментах, а в способах их применения.
atomskxs; AllexSoft; +2 Ответить
66. Starikova_NK 03.10.22 10:52 Сейчас в теме
80. Evil Beaver 8281 03.10.22 16:06 Сейчас в теме
67. Ruler 85 03.10.22 11:00 Сейчас в теме
(63) Что-то я потерял нить вашей мысли применительно к утверждению автора статьи, что в 1С все сделано супер по уму а вот вне 1С все слишком сложно и отвлекает от задачи...
Холивар между парадигмами программирования это тема отдельной беседы и точно не в рамках этой статьи, но уже давно общепринятая практика что большие проекты пишутся с использованием ООП и там это нужно и оправдано, уверен что платформа не пишется на чистом С )) при этом программистам 1С предлагается работать с кодовой базой ЕРП где более 5 млн строк кода именно в процедурной парадигме (ну или как 1С это называет предметно ориентированном)...
78. пользователь 03.10.22 15:55
Сообщение было скрыто модератором.
...
98. oleg-m 04.10.22 14:51 Сейчас в теме
(78) К чему эти обобщения с оскорблениями? Вы кто такой? Кто вам дал право обобщать неизвестных вам людей и их опыт?

Те, кого лично я считаю настоящими программистами, привязывают себя к самой дисциплине программирования, а не к конкретному продукту.

Если вам кто-то что-то не хочет объяснять, возможно речь идет о базовых вещах, которые учат в школе.
starik-2005; +1 1 Ответить
99. пользователь 04.10.22 14:59
Сообщение было скрыто модератором.
...
101. oleg-m 04.10.22 15:12 Сейчас в теме
(99) Жесть. Если вас кто-то обидел в интернете, то я то тут причем?

Кстати, вы сами такой стиль задали) Перечитайте свой первоначальный комментарий.
102. пользователь 04.10.22 15:14
Сообщение было скрыто модератором.
...
73. SergeyTerentyev 03.10.22 11:43 Сейчас в теме
Я кстати до сих пор не понимаю почему кто то решил что IT шнеги это какие то жутко дефицитные человеки в России. В России их не умеют сурово бить по тестикулам что бы они продуктивно работали. Уехала толпа и чего? А ничего. Реально те кто свалили - мусор оказался. А 1С-ник если он не раб главного бухгалтера еще и в бизнес умеет и все такое прочее. Он реально нужен.
atomskxs; muskul; +2 2 Ответить
76. MikhailDr 03.10.22 12:06 Сейчас в теме
Тема из разряда "Почему гвозди лучше забивать молотком, а не микроскопом". 1С изначально создавалась и развивалась как среда для разработки бизнес-приложений (учетные системы, склад, бухгалтерия, CRM и т.д.) Она годами под это затачивалась и внезапно оказалось что это действительно лучшая платформа для этих задач.

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

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

В итоге автор лукавит. Он сравнил 1С и ее специалистов на том поле, где она выступает лучше всего и ожидаемо победил. Я скажу так, 1С не лучше, она другая, для своих задач лучшая. Хотите другие задачи, идите в другие стеки.
Forest_Owl; cheburashka; obmanOZ; salbey; AllexSoft; angur; Ruler; rabid_otter; kirinalex; +9 Ответить
79. Evil Beaver 8281 03.10.22 16:06 Сейчас в теме
(56) нет, конечно, не признаю. Доклад такой, как я и хотел. Провокационный. Кто-то поймет, а у кого-то сгорит стул и штанишки. Так и задумано.
Forest_Owl; oleg-m; +2 Ответить
87. hamsar 17 04.10.22 02:36 Сейчас в теме
(79)
Если вы считаете, что у меня сгорели штанишки, от того что вы выставили себя клоуном и исказили факты, вы ошибаетесь.
ivanchai; rabid_otter; +2 1 Ответить
110. ivanchai 04.10.22 16:48 Сейчас в теме
(79) а мне кажется не провокационный а однобокий и врушный
hamsar; rabid_otter; +2 1 Ответить
89. Petr54-ru 92 04.10.22 05:59 Сейчас в теме
Я посмотрел доклад на ютубе и не понял смысла этих ковыряний в наших и не наших технологиях.

Как Капитан Очевидность сейчас напишу, где описываются стеки технологий. Они описываются в объявлениях о вакансиях которые хедхантеры пишут на своих хедхантерских ресурсах. При этом уровень зарплат там в полтора - два раза выше чем в нашем родном 1С.

Еще можно сравнить полисы ДМС, качество рабочего места, наличие парковки для сотрудников на работе, стоимость кофе в кофемашине и качество печенек и фруктов, корпоративные абонементы на фитнес и в бассейн. Хотя наверно лучше этого не делать, сравнение будет стопудово не в нашу пользу. Я конечно про Новосиб, возможно в столицах все не так.

Исходя из этих соображений, я невестке, когда она собралась перековываться в айтишники, настоятельно порекомендовал обходить наше гетто стороной. Потому что два рубля - это в два разА больше чем один рубель.
Forest_Owl; VEkimov; SagittariusA; Feelthis; A1WEB; ivanchai; NeLenin; +7 Ответить
179. TerveRus 07.11.22 11:38 Сейчас в теме
(89)
полисы ДМС, качество рабочего места, наличие парковки для сотрудников на работе, стоимость кофе в кофемашине и качество печенек и фруктов, корпоративные абонементы на фитнес и в бассейн.

Это свойство не вакансий "настоящих программистов", а самой конторы. И такое только в Москве видел, и не у всех. Кто-то не дает этих плюшек, но дает выше зп, и весь этот ДМС и фитнес тебе в итоге дороже обойдется.

(89)
уровень зарплат там в полтора - два раза выше чем в нашем родном 1С.

Уровень зарплат зависит от "мск"/"не мск" и проектов, а не от языка программирования.
Forest_Owl; +1 Ответить
182. Petr54-ru 92 08.11.22 18:32 Сейчас в теме
(179) я вообще то про Новосиб писал.

(89)
Я конечно про Новосиб, возможно в столицах все не так.
96. coollerinc 197 04.10.22 10:42 Сейчас в теме
Самый главный минус, что на 1с можно делать легко и быстро приложения для бизнеса. Где пофиг на красивый интерфейс и удобство. Просто приложение для конечного пользователя написать не получится.
Если сравнивать 1с с конкурентами, то 1с сильно проигрывает в производительности.

Т.е. 1с идеальна для бизнеса и их сотрудников, где одновременных пользователей на одном участке учета не больше 100.
Forest_Owl; +1 Ответить
100. ivanchai 04.10.22 14:59 Сейчас в теме
Сама концепция построения системы 1с построена на принципе впихнуть не впих@емое и склеить вату с воздушным шариком это так если по философски и кратко. Если чуть подробнее - код типовых конф пишут не программисты, а программные фреймворки а что им там скармливают не знаю))). Иначе не понимаю зачем использовать 12 уровней вложенности для процедуры которая используется только в одном месте. Нет единной цементирующей идеи - все по принципам там приклеим + там пришлепнем получается зоопарк, но не стройная и четкая система. 8.2 платформа была еще более менее оптимальная по скорости и производительности, но 8.3 это тормоза, глюки и конкретный жор оперативы. появляются баги их залатывают на один старый - три новых. 1с и биг дата или дата сайнс это вообще вещи не совместимые, нет оптимизации, производительности. да для учета система рабочая, но если больше 1000 человек тогда начинаются пляски с бубном. для среднего бизнеса пойдет да же очень хорошо. для крупного это трешак. самое главное нет обратной связи между чаяниями рядовых программистов и разработчиков платформы 1с. все спускается сверху в декларативной форме.
Feelthis; rabid_otter; +2 2 Ответить
120. user1778306 05.10.22 04:35 Сейчас в теме
(100)
Нет единной цементирующей идеи - все по принципам там приклеим + там пришлепнем получается зоопарк, но не стройная и четкая система.

Я видел кучу систем (не 1С) где все тоже самое ))) Зоопарк делают люди а не 1С
ktb; AllexSoft; oleg-m; +3 Ответить
106. Borometr 11 04.10.22 16:27 Сейчас в теме
Отучился на программиста, но в свое время не смог найти работу по специальности без опыта. Пришлось идти в 1С. Давно мечтал уйти из 1С, но семья, ипотека и прочее сдерживали. Сейчас имея немалый опыт в 1С, нестрашно попробовать себя в других языках и уйти из 1с, даже несмотря на временный спад дохода. Вернуться всегда можно будет, если захочется. Хотя, таких как Андрей, наверное единицы.
TerveRus; SagittariusA; ivanchai; rabid_otter; +4 Ответить
107. пользователь 04.10.22 16:37
Сообщение было скрыто модератором.
...
113. user705393_den 04.10.22 21:48 Сейчас в теме
У меня вопрос не к 1С - никам. Вы че здесь делаете вообще?) И если вам действительно так кайфово в других языках, откуда столько эмоций и попыток доказать, что там круче?
Forest_Owl; TerveRus; +2 Ответить
114. starik-2005 3169 04.10.22 22:05 Сейчас в теме
(113)
доказать, что там круче
Я тут ни одной попытки доказать, что там круче не увидел. Были попытки доказать, что там "правильнее", но никак не круче. Круче 1С только яйца )))
116. ivanchai 04.10.22 22:36 Сейчас в теме
(114)Круче TensorFlow, Keras, Teano, Torch, Python, Java, С++
да даже Delphi круче
117. starik-2005 3169 04.10.22 22:38 Сейчас в теме
(116) яйца все-равно круче.
SagittariusA; ktb; AllexSoft; +3 Ответить
118. ivanchai 04.10.22 22:46 Сейчас в теме
115. ivanchai 04.10.22 22:33 Сейчас в теме
(113) Да мы здесь уже почти ничего не делаем, смотрим на эту лажу и смеемся
119. user1778306 05.10.22 04:33 Сейчас в теме
"Будете говорить: «Господи, неужели я должен неделю кодить то, что раньше делал за две минуты». " - о да!!! Так и было!!!

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

Автоматизацию большинства бизнес процессов учета логично делать на 1С, под другие задачи возможно лучше использовать другие инструменты.
TerveRus; AllexSoft; +2 Ответить
124. AllexSoft 05.10.22 10:51 Сейчас в теме
(112) собственно я об этом и писал, что ооп наведет порядок и придаст этому прозрачности, хотябы на уровне типовых решений и бсп.. кодовую базу она не уменьшит, как было в бсп порядка 500к строк, так и останется, пользоваться и подключаться будет проще, документация будет проще. По поводу дублирования и говнокода - это и с ооп можно нагородить и своих классов непонятно что делающих. Вот и написал какое то программист свой класс БанковскиеДокументы и какие то методы в нем, дальше пришел какой нибудь юнец из франча, который про ооп в универе слышал в лучшем случае, и вот в 99% он не полезет разбираться с этим монстром, он напишет рядом свою процедурку как попросил бухгалтер... а еще хуже просто скопирует этот класс (ну всмысле модуль с ним целиком) и назовет МойКлассБанковскиеДокументы, потому что про наследование не знает... в общем налепить можно такого что с ооп что без ооп... это от уровня специалистов зависит.
Вот что прям ооп маст хэв в 1с что жизни нет без него, ну вряд ли... я бы предпочел вместо него появление лямбда-функций, инициализацию входящих параметров процедур\функций результатом другой функции или стандартным значением (включая предопределенные элементы справочника\перечисления), получение ссылки на функцию модуля, нормальную асинхронность из коробки. то есть создание реальных потоков (а не обертку над ОписаниеОповещения то что сделали асинх)
125. starik-2005 3169 05.10.22 14:26 Сейчас в теме
(124) асинхронность - это такая однопоточная многозадачность, когда ожидание нажатия кнопаря позволяет копировать файл, а ожидание, пока файл копируется, позволяет еще что-то сделать. А реальные потоки - это многопоточность, которая к асинхронности мягко говоря не относится. И у 1С есть возможность что-то делать в несколько потоков через фоновые задания, но обмен данными между ними весьма труден, а процесс синхронизации потоков ограничен только методом ожидания завершения, который вываливается в исклбчение, если не дождался. Да, убого. Но сделай они какой-нить объект типа pTread или что-то в этом духе, то пользоваться им с умом не такое большое число 1С-негов сможет.
Forest_Owl; +1 Ответить
128. ivanchai 05.10.22 18:13 Сейчас в теме
(125) сдается мне что они не могут сделать нормальный объект типа pTread
во ржачь, это центральная концепция 1с - сделать через... все от А до Я - 1с-ники они ведь почти все - такие пользоваться с умом не смогут, короче пусть они там плескаются в нашем "идеальном конфигураторе", ковыряются в непонятно чем кем и для кого написанном типовом коде. нетленки гораздо приятнее читать и кодить чем типовые конфы 1с. корочь вы как бы намекаете за 1с - "ребята программисты вы наши 1с-ники мы вас совсем не уважаем, ну так чуток самую малость, терпите это - ведь вы терпилы))))" так что ли?
126. ivanchai 05.10.22 14:28 Сейчас в теме
(120) пройдет лет 20 и автоматизацию большинства бизнес процессов учета будет делать ИИ и он будет написан не на 1с
129. AllexSoft 05.10.22 19:18 Сейчас в теме
(125) ага, я не так выразился, но вы все поняли.. многопоточность конечно имелась ввиду.. На клиенте вообще нет сейчас ничего по этой теме. На сервере убого, в отдельном сеансе.
130. Ruler 85 05.10.22 21:39 Сейчас в теме
(129) а зачем вам на клиенте многопоточность? На клиенте как раз асинхронность работает лучше, мы же хотим тонкий клиент и работать на любом калькуляторе, что то тяжелое запустили на сервере и пока оно выполняется, работаете с системой. У многопоточного программирования куча подводных и не очевидных проблем, основная это синхронизация, придется работать с блокировками на уровне потоков, обмениваться сообщениями, бороться со странным поведением потоков ну и как вишенка можно и дедлоки получать)) так что на сколько это полезно... Для параллельной обработки данных и то, что есть норм.
Общее адресное пространство при многопотоке это не простая задача, придется придумывать потокобезопасные структуры данных, или в полный рост рулить блокировками на уровне потоков...
131. AllexSoft 05.10.22 22:19 Сейчас в теме
(130) это сложная тема, я согласен... из того что было нужно недавно это на форму разместить таймер - пользователь может работать в форме не более 30 минут (такая бизнес логика продаж некоторых в общем), причем на этой форме должна быть надпись которая отображает состояние таймера, сколько еще осталось работать - оказалось что эта достаточно простая задача не решается без прямого назначения выполнения таймера в отдельном потоке. Если кратко то любое изменение надписи на форме приводит к неявному обновлению элементов формы и вот вы печатаете какой то текст в форме ввода, в эту секунду происходит обновление надписи на форме - поле куда вы набирали текст очистится... такие вот камни. Сейчас это решается через поле html-документа и простой JS с таймером + отлавливание события когда таймер закончился. Вот поле html-документа видимо выполняется в отдельном потоке на клиенте - его обновление никак не влияет на остальные элементы формы. Хотя я признаю что таких задач немного - всякие там дашборды, свои рисованные элементы управления, кто в общем упарывается в UI тому точно зайдет - вот где я работаю например
133. starik-2005 3169 06.10.22 08:35 Сейчас в теме
(129) да ладно, все решается обработчиком ожидания. Не верю, что менеджерам нужно было добиться вот прям 30 минут и ни миллисекундой больше. А в остальном простой алгоритм - в реквизите формы запоминаем время открытия, раз в 30 сек отображаем изсенение таймера, если текущее время больше, чем время открытия формы + 30 минут - блокируем форму на изменение, которое только манагер сиаршой может снять своим мегаштрихкодом или паролем.

Но в 1С другое меня бесит. Вот вчера помогал друзьям до часу ночи разобраться, почему на одном серваке форма открывается 100 часов (судя по замеру производительности), на другом хватает 10 секунд. И вот в 1С вообще никак не посмотреть, почему она на этом "медленном" серваке в одной из 4х практически идентичных процедур виснет на выходе. Т.е. основное время тратиться на то, что происходит уже после КонецПроцедуры. И обе процедуры находятся в сервкрном контексте, так что передача контекста тут вряд ли играет роль.
Forest_Owl; +1 Ответить
134. AllexSoft 06.10.22 10:16 Сейчас в теме
(133) а вот и нет.. я сделал сначала ровно то что вы и описали, обработчик ожидания, сравнение текущего времени и времени запуска таймера и раз в н-секунд (даже раз в минуту делали) обновление надписи... написал я это, протестили, положили в прод, сижу такой радостный... а самые камни начинаются в реальной работе, был у них там один длинный комментарий в продаже, что то там со слов клиента.. и вот это самое время обновления надписи иногда совпадало с тем временем когда менеджер что то активно печатает в поле комментария (а менеджеров у нас больше 100, так что происходило это с завидной регулярностью). И выяснилось что любые поля формы будут очищены при любом изменении формы в обработчике ожидания если в них не срабатывало событие ПриИзменении (то есть перевод фокуса ввода в другой элемент или нажатие enter), собственно это длинное поле просто чистилось и клиента приходилось опрашивать заново.
135. пользователь 06.10.22 11:32
Сообщение было скрыто модератором.
...
138. starik-2005 3169 06.10.22 20:06 Сейчас в теме
(134)
собственно это длинное поле просто чистилось и клиента приходилось опрашивать заново
Вопрос решается отдельным окошком с таймером в форме №2.
137. 1CUnlimited 325 06.10.22 19:33 Сейчас в теме
Постановка вопроса в статье странная. Зачем прикладному программисту 1С идти в совершенно НЕприкладные языки программирования? То что на них ктото реализует бизнес задачи для которых проще использовать 1С Enterprise или шаблоны Битрикса это проблема проектных команд. Да платформа 1С позволяет сосредоточится на реализации бизнес процесса поскольку многое делается под капотом незаметно.

Но и границы архитектуры 1С видны четко - просто попробуйте на 1С сделать горизонтально маштабируемое решение и Вы сразу упретесь в издержки реализации платформы о чем я написал тут https://infostart.ru/1c/articles/1683197/

Если посмотрите архитектуру приложений JavaEE , сразу понятно что это полный отход от монолитной архитектуры, где все можно сделать в рамках одной платформы или фреймворка с net примерно тоже самое. Поэтому даже простой с точки зрения логики 1С клиентбанк для банка приходится реализовывать в виде микросервисов, которые работают с несколькими системами. Да это долго, дорого и длительно и альтернативный вариант это кастомизация готовых решений на базе Java, Spring , Net и т.д.
https://docs.oracle.com/javaee/7/tutorial/img/jeett_dt_001.png

В мире *net похожая ситуация
https://learn.microsoft.com/ru-ru/dotnet/architecture/modern-web-apps-azure/media/image5-12.png
139. AllexSoft 06.10.22 22:22 Сейчас в теме
(138) по условиям задачи этого нельзя было реализовать в другой форме, говорю же у нас упарываются в интерфейсы (самописная crm система), таймер должен быть ровно на том месте где было в макете, он должен иметь точно такие размеры\цвет и прочие оформления как было заказано.. у нас даже 1с сама на себя не сильно похожа - свои стилистические решения, макеты оформления отчетов, форм. свои элементы управления которые генерятся динамически из кучи декораций\надписей и групп + элементы на поле html документа в котором динамически генерящаяся страница на html+css+js и все это в одной форме ) Формы списка некоторых регистров сведений - дашборды в виде различных диаграмм с возможностью расшифровки до реальных записей регистра.
140. starik-2005 3169 06.10.22 22:57 Сейчас в теме
(139)
в котором динамически генерящаяся страница на html+css+js и все это в одной форме
Остается задать вопрос на тему того, а нахрена вам там, собсно, 1С? Выкинуть ее в бэкофис, чтобы глаза не мозолила. Ну и все общение с ней, как с гиперсервисом через http/rest/soap.
148. AllexSoft 07.10.22 11:05 Сейчас в теме
(140) правильный вопрос... а ответ в том что это и был бэкофис 3 года назад. Собственно была классика: 1с на бэке + фронт CRM на классическом языке (bpm от Terrasoft переработанная под нас) + api для взаимодействия между ними. В итоге много лет боролись c этой схемой и 1С победил в решающих сражениях) Победил скоростью и стоимостью разработки разумеется, как всегда - то что бизнес хотел писалось на классическом ЯП месяцами и за много-много-очень-очень-много денег, правда и хотелки космических масштабов. Годами ждать появления нужных подсистем в crm никого не устроило, в итоге то что надо бизнесу скатилось до банального экселя, в bpm вели то что он мог поддержать. Причем заметьте это Москва и компания очень даже крупная - один из топ-заказчиков у тех парней были явно. Поэтому собственно и 1С оказался на фронте. Я общаюсь напрямую с бизнес-заказчиками (РП со стороны бизнеса, руками отделов и департаментов) и никто даже не думает уйти из 1с на что либо, ибо разницу вкусили так сказать. Головные боли которые тревожили последние лет 10 сняли, эксели почти все вывели.. Из минусов что оказалось в 1С - ожидаемо интерфейсы, очень не гибко, очень в парадигме 1С, шаг в сторону и хочется всяких вещей типа многопоточности на клиенте, множества дополнительных свойств на тех же диаграммах, элементах форм (стилевых в первую очередь), больший выбор разнообразных вида текущих элементов форм (то что скины называется). Из плюсов - архитектура на порядок продуманее выходит (вот тут обращаюсь собственно к докладу Андрея, 1с программисту приходится и архитектором быть и бизнес-аналитиком) да и платформа подсовывает правильные архитектурные построения сама - за счет этого сложные выборки в отчетности проходят по итогу намного быстрее чем это смогли реализовать на классическом ЯП. Ну и скорость разработки за счет БСП той же, много готовых платформенных кейсов (готовых классов, типов данных)
dvsidelnikov; TerveRus; +2 Ответить
149. AllexSoft 07.10.22 11:34 Сейчас в теме
(141) в (148) ответил развернуто почему так.. дорого и долго, хотят здесь и сейчас.. на высококонкурентном рынке это всегда так. Про вероятность что 1С что то сломают в платформе, это да, есть риски конечно, а где их нет? У нас в принципе есть подстраховка КОРП лицензия и подписка с расширенной поддержкой в том числе вендора напрямую, через нее даже решили 1 платформенный баг, вполне себе кстати оперативно признали ошибку и включили в один из ближайших релизов платформы исправление. Чему я был удивлен даже (ибо за 7 лет работе во фране имел дело с вендором и там решалось все на отстань, правда было это давно).
150. 1CUnlimited 325 07.10.22 13:55 Сейчас в теме
(148) Если бизнес интересует только функционал, туда ему и дорога. Есть такое понятие маштабирование, которое особенно актуально для фронт офиса. Скажем возможность принять запросы от десятков тысяч клиентов одновременно. 1С имеет четкие архитектурные лимиты для таких задач, поэтому бэкофис карма 1С. Даже SOAP в 1С https://its.1c.ru/db/intgr83/content/80/hdoc с повторным использованием сеансов как бы намекает на лимиты. Это вопрос психологии общения с бизнесом, что он хочет упустить выгоду от маштабирования, или сиеминутные хотелки.
141. Ruler 85 07.10.22 08:18 Сейчас в теме
(139) хм, может вам на 1С поднять рест контроллеры и интерфейс сделать красивым при помощи средств фронта?
В 1С всегда есть не 0 вероятность, что в следующей версии платформы, что то "поправят" и все ваши хаки и костыли лягут или начнут как то не так работать.
151. AllexSoft 07.10.22 17:45 Сейчас в теме
(150) у нас это внутреняя CRM система, там не может быть десятков тысяч клиентов одновременно, да и продаем мы недвижимость.. сами понимаете насколько это долгая история продать 1шт товара в нашем случае) в общем масштабирование не актуально от слова совсем..актуально удобство пользования, детальная проработка отчетности с кучей аналитик, возможность оперативно допилить функционал (сегодня у нас специоперация и ломанулись все кто был с одобренной ранее ипотекой под низкую ставку, они за месяц закончились и актуальна стала рассрочка и всякие там субсидированные программы, послезавтра гибкая система скидок и лояльности...). Возвращаясь к докладу Андрея - он все правильно говорит, бизнес не интересует чистый код и наличие ООП.. их интересует только поможет ли это решение заработать очередной лярд или не поможет. ну а мы с вами не для себя это все пишем на любом ЯП, а для бизнеса, кто платит тот и заказывает музыку как говорится.
Evil Beaver; +1 Ответить
152. starik-2005 3169 08.10.22 14:56 Сейчас в теме
(151)
это решение
Ну у вас очень особенное такое решение, что просто пипец какое + небольшое количество пользователей. Но некоторые пытаются внедрить 1С на 10к рабочих мест, а потом тратят только на то, чтобы она хоть как-то работала, годовые бюджеты средней африканской страны. И я вот ни разу не уверен, что отдельное решение на питоне или ноде чисто для фронта было бы в поддержке и скорости разработки дороже и медленнее, при том с неограниченными возможностями, а фронтмены могут стоить вполне недорого - у вас же этот фронт и так для 1С пишется, которая завтра с вебкита перейдет на еще что-то и все сдохнет - риск. А прокинуть отчеты в вебку - это вообще не проблема. А с чем-нить типа кликвью или повербиай эта штука была бы куда подвижнее. Но это просто вопрос компетенций ИТ-директора. И раз он кроме 1С и этого вот кейса, который стоил как авианосец, ничего не знает, то мои соболезнования. С другой стороны, раз 1С работает, то и пусть работает - это ни разу не плохо, просто есть решения лучше (опять же на мой скромный взгляд).
153. AllexSoft 10.10.22 11:38 Сейчас в теме
(152) ну по меркам 1С у нас не "небольшое количество пользователей". какбы лизензия КОРП намекает) другое дело что их число относительно стабильно, поэтому мы плюс минус можем прикинуть ресурсы с прицелом на среднесрочную (3-5лет) перспективу. Есть у нас и PowerBI (который видимо таки отвалится по причине что MS уходит), и клик есть и даже 1С:Аналитика ) и красивые интерактивные дашборды в 1с... в общем все разнообразие поверьте... и вебщики внутри отдела у нас есть, поэтому прекрасно мы все знаем и затраты на фронт и скорость разработки, из первых рук так сказать. Если бы у нас была относительно статичная конфа и 10к пользователей, то да, фронт на каком нибудь JS был бы очень неплох, его можно было бы неспешно пилить, вводить кусками, вылизывать... но по факту не тянут даже 20 фронтендеров то что будут делать 10 1с программистов, то есть бэк (ну по сути БД для фронта) будет намного быстрее развиваться, то есть узким горлом опять станет фронт который не может обеспечить потребности бизнеса.
bmp на классическом яп вот это был крейсер с эскадрой самолетов, медленный и дорогой, уже пройденный этап, ну не работает это и все, не объяснишь бизнесу почему нужно ждать год, когда надо за неделю, через год эта задача уже станет не актуальна, таких клиентов уже не будет просто, я собственно выше писал почему 1С - дешево и быстро.
ПС: не бывает дешевых фронтендеров, бывает дешевая рабочая сила, не важно на каком ЯП... если вы платите мало - покупаете джуна, но и качество будет соответствующее, нас этот вариант не устраивает никак.
154. пользователь 10.10.22 12:00
Сообщение было скрыто модератором.
...
155. starik-2005 3169 10.10.22 12:33 Сейчас в теме
(154)
стоит ли
Хабр?
(153) Ну фронт - это средство ввода данных. С одной стороны, в 1С проще добавить реквизит на форму. с другой стороны, это вызовет реструктуризацию. И если бизнес ночью спит, то техокно - огого! А если нет, то ... Большой и красивый фронт на ноде или питоне может атомарно обновиться за единицы секунд - там есть множество вариантов для этого. А на 1С вариантов немного - две штуки: полная реструктуризация или через новомодную фичу, требующую джавы, при том нет 100%-й гарантии, что это будет существенно быстрее.
156. пользователь 10.10.22 12:52
Сообщение было скрыто модератором.
...
157. kser87 2469 14.10.22 16:37 Сейчас в теме
На самом деле вывод такой: надо активнее продвигать 1С в странах дальнего зарубежья. Писать конфигурации, искать клиентов, учить английский. Мы имеем все шансы
161. smit1c 106 24.10.22 14:47 Сейчас в теме
(157) 1С там теперь даром никому не нужна
158. papami 55 17.10.22 12:08 Сейчас в теме
Такие темы обычно собирают кучу комментов просто потому, что кто-то навязывает чувство вины "ненастоящий программист", а кто-то (многие) ведется.
159. user745543 17.10.22 15:24 Сейчас в теме
Автор явно путает работу проститутки, которая обслуживает клиентов и работу преподавателя в консерватории классической музыки. Да, проститутка зарабатывает намного больше и у нее есть обратная связь от клиентов, которая греет ее ЧСВ. Ведь она приносит такую очевидную пользу всем ) Она и архитектор, и менеджер, и финансист в одном лице. Куда до нее какой-то скрипачке из консерватории. Если автор до сих пор не понимает разницу между настоящими программистами и 1с-ником, его просто жаль. Хотя, конечно, кто-то добровольно идет в проститутки и им это может нравиться.
160. papami 55 21.10.22 09:31 Сейчас в теме
(159) Еще автор забыл привести пример клоунов, которые качественно работают с эмоциями зрителей)
162. SagittariusA 24.10.22 19:42 Сейчас в теме
Андрей, спасибо за труд! Также отдельное спасибо всем кто "продолжает статью" в виде комментариев! Интересно почитать.
163. sojuznik 23 27.10.22 12:11 Сейчас в теме
Статья довольно вызывающая.
Нельзя так прямо сравнивать программистов, среды и возможности языков программирования. 1С заточена для учета ведения бизнеса для малых и средних предприятий - это ее ниша. Этот механизм позволяет запустить, например торговое предприятие за день используя типовую конфигурацию.
В свое время 1С использовала такой же маркетинговый ход как компания Microsft со своей операционной системой - с платформой можно было работать не покупая ее, т.е. бесплатно. Это сработало. Многие этой возможностью пользуются до сих пор. Стоимость входа и владения в 1С очень низкая.
Да - программист 1С - это универсальный швейцарский нож - но только в своей нише: он же аналитик, архитектор, программист и техподдержка. Если хотим сделать что-то другое или что-то большое - вести учет бизнеса для большого предприятия - нужно использовать другой механизм, 1С здесь не потянет.
Ограничение во благо - это неверное выражение. В платформе должны быть возможности, что б у программиста были крылья, которые он мог расправить.
Если можешь использовать несколько языков программирования - это великолепно. У тебя больше возможностей для оптимального решения задачи.
Не стоит забывать, что для решения поставленной задачи заказчик может заплатить определенное количество денег. Что бы вложиться - лучше допилить типовое решение, чем что-то создавать с нуля. Для личного удовольствия с 1С никто не работает - это бизнес-платформа.
166. pyrkin_vanya 498 02.11.22 09:55 Сейчас в теме
Я аж прослезился) Спасибо за статью.
167. rebuzx 165 02.11.22 15:23 Сейчас в теме
По логике статьи, программист составляющий алгоритмы на С++ для секвенирования генома, составления статистических данных на R и вывода информации на Phyton, в подметки не годится программисту 1С.
А программист 1С с полуоборота разберет геномные цепочки.
Выводы про самых умных, недооценённых и всеми обиженных, мягко говоря, очень странные.
168. muskul 03.11.22 03:34 Сейчас в теме
(167)-Методичка есть? -Есть.. -Сейчас до курю пойдем сдавать.
180. TerveRus 07.11.22 14:08 Сейчас в теме
(167)
программист составляющий алгоритмы на С++ для секвенирования генома

Программист С++ сам не выдумывает алгоритмы секвенирования генома! А 1С-ник может работать за всех, и за постановщика задачи, и за пользователя тоже. И сам себе интерфейс придумает/нарисует, и алгоритм. А "настоящие" программисты гнут пальцы насчет своей супер ультра специализации, хотя ничего крутого в этом нет - вот о чем статья.
181. rebuzx 165 08.11.22 15:28 Сейчас в теме
(180) Если бы сравнивались программисты SAP и программисты 1С, я бы с вами согласился.
Но автор сопоставляет несопоставимое, нарушает правило "при прочих равных" и делает ошибочные выводы.
rabid_otter; +1 Ответить
189. kser87 2469 14.11.22 10:17 Сейчас в теме
Да здравствует 1001 й срач между 1сниками и "настоящими погромистами"
192. muskul 21.11.22 03:03 Сейчас в теме
(189)И тем не менее задницу одина положили на прошлой недели как раз те самый "трупрограммисты"
196. WarAn 07.01.25 22:02 Сейчас в теме
Статья, наверное, хорошая, сейчас попробую дочитать, но ОЧЕНЬ СИЛЬНО ВЗБЕСИЛИ ваши картинки. Потому что они дебильные! Потому что они бесполезные. Потому что они на 100% дублируются в тексте под ними. Удалите их, и качество вашей статьи улучшится многократно!
197. пользователь 07.01.25 22:17
Сообщение было скрыто модератором.
...
Оставьте свое сообщение