Александр Кунташов — про 1С и не только
2.13K subscribers
190 photos
7 videos
381 links
Заметки про разработку и смежные штуки. 1С, Битрикс24, 1Script, PHP, Linux, JS, Python и другое
Download Telegram
Интересно читать ход мысли по диагностике ошибки, полученной в Конфигураторе. Оформлено уже как (почти) универсальное руководство к действию.

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

https://kostyanetsky.ru/notes/designer-error-investigation/
Лет десять назад у меня был коллега из Ульяновска, тоже звали Никитой, кстати. Устроился он тогда в компанию, у которой несколько лет уже работал большой, живой, высоконагруженный продукт, приносивший достаточно денег, чтобы платить команде в России. Продукт активно дорабатывался прямо по живому, а чтобы не сойти с ума, функциональность была покрыта интеграционным тест сьютом. Все бы хорошо, но фичи приоритезировались больше, чем тесты, которые в результате начали подгнивать, перестали отражать реальную ситуацию, и в какой-то момент превратились из инструмента безопасного релиза в театр безопасности. Никто не знал, можно ли им верить, они падали в рандомные моменты времени даже на работающем коде, CI перезапускал тест сьют трижды (!) и считал тест успешным, если он прошел хотя бы один раз из трех. Ситуация быстро кульминировала в пик outages (несколько штук в неделю), невыспавшуюся команду и дерганый менеджмент. Дошло до того, что по общему соглашению разработку вообще всех новых фич остановили на полгода (!), которые посвятили исключительно техдолгу, починке тестов и настройке нормальных процессов релиза. Довольно беспрецендентный шаг, по моему опыту, который тем не менее завершился ощутимым успехом (тоже, кстати, редкость, чтобы такие большие планы ожидаемо сбывались) — работать снова стало возможно. Потом, правда, деньги кончились, но это другая уже история.

Никита тогда занимался как раз починкой тест сьюта и вынес несколько патентованых афоризмов.

Зачем тесты:

- Тесты помогают двигаться вперед, не оглядываясь назад.
- Тесты не делают программу лучше или надежнее. Код самой программы делает программу лучше и надежнее. Акцент всегда на коде! Тесты всегда средство.
- Тесты пишутся только из острой необходимости, когда нет других способов обеспечить надежность (простота, гарантии компилятора, БД, ОС).
- Смысл тестов в том, чтобы падать.
- Прошедший/упавший тест — это сигнал, единица информации.
- Тест, падающий всегда, плох. Он ничего не показывает.
- Также плох и тест, не падающий никогда.
- Мигающий тест не несет информации, это шум.

Что тестировать:

- Ровно то, что программа обеспечивает де факто.
- Про каждый (каждый!) тест должно быть понятно, почему он написан, что проверяет, почему это нужно проверять.
- Не должно быть тестов «на всякий случай», «просто».
- Нет смысла тестировать простые, предсказуемые вещи.
- Юнит-тесты тестируют то, что удобно, вместо того, что требует тестирования.
- Погоня за 100% покрытием (или любым другим — 90%, 85%) бессмысленное дрочево^W^W формализм.

Как тестировать:

- Тесты не должны отнимать больше усилий, чем код.
- Тесты должны быть гибкими и податливыми, не быть обузой, когда надо изменить код.
- Не запускать тесты в отдельных, специально создаваемых условиях. Эмуляция окружения, БД, mock-и дают уверенность, что волшебные феечки в волшебной стране работают нормально, а интересно должно быть, как работает реальность.
- Асинхронность — не проблема. Надо признать ее существование и тестировать ровно то и ровно так, как оно на самом деле происходит.
- Тестирование sleep-ами, фиксированные взятые с потолка задержки, retry тестов — прямая дорога к моргающим тестам, дергающемуся глазу, неврозу, дурке.
- Тесты должны быть быстрыми, чтобы запускаться как можно чаще. Duh.
- Тесты должны работать локально так же просто, как и на CI.
- Кажется, что это сложно или невозможно? Только кажется. Обычно фундаментальных препятствий к этому нет, надо лишь один раз заморочиться.
- Править код, архитектуру и даже инфраструктуру (например, взять другую БД!), чтобы написать тесты хорошо — нормально. Тесты тоже часть архитектуры.

От себя добавлю, что главное в тестах — понимание. Когда вы берете в руки отвертку, вы точно знаете, какой именно шуруп вы хотите подкрутить, кто здесь цель, кто средство, какие критерии успеха. Так же должно быть, когда вы садитесь писать тест. Осознанность, епта!
☠️ Казалось бы, тема пиратства в последние годы притихла, по крайней мере я в своем круге общения долгое время ни от кого не слышал, что с вот-де с торрентов что-то скачали. Все уже давно подписаны на сериальчики в нетфликсах, покупают софт в плей-маркетах и эппл сторах, электронные книжки заказывают на букмейтах и учатся во всевозможных курсэрах.

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

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

Грустно, что те, кто с целью экономии рубля здесь и сейчас платят пиратам и не думают о том, что из-за этого хороших и действительно стоящих курсов будет появляться меньше. Вдвойне грустно от того, что решение заплатить пирату принимает твой же товарищ ИТ-цеху.
Forwarded from Хатка Бобра
Есть довольно популярный пиратский канал по теме 1С. На нем есть все курсы от самых разных авторов за копейки. Именно по этой причине я в свое время передумал делать авторский курс "C# для 1С-ников" для тех, что хотел бы выучить другой технологический стек, с детальным объяснением как работает сама 1С и как можно было бы сделать тот или иной ее компонент самому.

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

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

P.S. как считаете, сколько должен стоить такой курс, если бы он существовал?
И да, Андрей Овсянкин aka EvilBeaver, запилил свой канал в телеграме, присоединяйтесь @evilbeaverHouse
Наконец-то! Теперь всю прикладную логику ЗУП можно будет реализовать в одном пакетном запросе.

https://wonderland.v8.1c.ru/blog/novye-funktsii-yazyka-zaprosov-i-sistemy-komponovki-dannykh/
Крутой ход: конференция от 1С про системную разработку (т.е. не использование платформы 1С, а про то, технологии, которые используются в том числе под капотом платформы 1С).

Чем круто? Тем, что это выглядит как эволюционный, я бы даже сказал, "естественный" способ интегрировать бренд "1С" в сообщество true-разработчиков и размыть ассоциацию "1С — это бухгалтерия".

Пока конференция выглядит камерной и в духе "1С для 1Сников" и я не видел (пока?), чтобы она пиарилась за пределами сообщества 1С (например, на хабре), но все равно круто.

Программа еще официально не опубликована, но, например, в пригласительном письме темы были обозначены так (цитирую):

...мы расскажем как устроен наш кластер, балансировка и обеспечение отказоустойчивости.
Или зачем нам вдруг понадобилась NoSQL DB при разработке IDE?
Еще расскажем про генерацию интерфейсов и про облака.

Регистрация: https://developer.1c.ru/conf/sysdev2021
Forwarded from i.Need.Lustin
Именно ради этой фишки я и начал использовать SQLPad - мне нужны были быстрые скриншоты - чтобы обосновывать изменения в параметрах SQL. А с помощью диаграммы это делать удобней

Лучи добра сегодня летят Юрию Былинкину - радостно что мы все вместе потихоньку Докером в голову людям меняем мышление

https://infostart.ru/1c/articles/1356921/
Коллега в типовой подсистеме БиблиотекаЭлектронныхДокументов наткнулся на прикольный пример нейминга: ИППДОИПУПДУКД (аббревиатура "Извещение о получении подтверждения даты отправки информации покупателя").

Смущает тут не столько смешное и длинное сокращение, а непоследовательность: по-каким-то причинам, часть имен значений перечисления "свернуты" в аббревиатуры , причем многие вполне по меркам 1С короткие, например, ИОП (Извещение о получении), а часть имен оставлены как есть.

Например, есть значение с именем СоглашениеОбИзмененииСтоимостиПолучатель. Почему тогда не СОИСП?

🤷‍♂️
Я в Инфостарте 5 марта вместе с Артуром Аюхановым буду проводить очередной технический митап на тему автоматизации различной рутины, с которой сталкиваются разработчики.

Признаюсь, что изначально хотели тему сделать провокационной и назвать митап OneScript vs 1С:Исполнитель vs <Что-то еще>, чтобы по-весеннему весело и шумно похоливорить. Но личные изыскания и общение с коллегами показали , что в этой неравной битве двух якодзун (с) 1С:Исполнителю участвовать пока рановато, слишком он пока юн.

Тем не менее, нам все равно очень хочется найти кого-то, кто пробовал написать на 1С:Исполнителе что-то больше, чем hello.sbsl. Отважный early adopter, отзовись! Напиши мне, пожалуйста, в личку.

Также интересен опыт тех специалистов 1С, кто для автоматизации своей работы с 1С в 21 веке использует не OneScript, а что-то еще: bash/PowerShell/Python/etc? Расскажите о задачах, которые решаете, поделитесь, почему сделали такой выбор? Интересно услышать и тех, кто в проде пользовался 1С:Центром Администрирования. А еще тех, кто разворачивает 1Ску и связанное окружение при помощи ansible, puppet'а или что вы там у себя используете нетленное-самописное 😉?

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

Ссылка на официальную страницу митапа: https://infostart.ru/events/1372008/ (там можно записаться).
⚙️ Ну и в дополнение немного технических деталей по теме. Я тут влегкую развлекаюсь с 1С:Исполнителем (у которого, кстати, было обновление 17.02.2021, но модули все еще не завезли, не спрашивайте). Живу на линуксе, поэтому эксперименты в первую очередь провожу на нем.

1С:Исполнитель распространяется сейчас в виде архива. Распаковываю в ~/Executor, нахожу там подкаталог bin и чтобы скрипт стал доступным глобально линкую скрипт bin/executor.sh в /usr/local/bin. Запускаю:

$ executor
Error: Could not find or load main class
com.e1c.g5rt.executor.client.ConsoleExecutor
Caused by: java.lang.ClassNotFoundException:
com.e1c.g5rt.executor.client.ConsoleExecutor

Упс.

Смотрю содержимое executor.sh, а он написан так, что симлинки не поддерживает. Для исправления нужно заменить вторую строчку на такую:

SCRIPT_DIR=$(cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" ; pwd -P)

🛠Diff, или исправленный скрипт целиком.
🎙 Евгений @iwangoff, автор канала @RussianAutomatization позвал к себе на подкаст поговорить:

https://www.youtube.com/watch?v=EkQXsO_wMA8

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

К сожалению, по результату не могу привести ни одного аргумента за то, чтобы слушать выпуск со мной 😳, но вот две предыдущих серии подкаста "Люди говоря" мне показались не только интересными, но и полезными:

🔹 в выпуске с HR Анной есть информация и для тех, кто ищет работу в сфере 1С, и для тех, кто наоборот ищет специалистов по 1С.

🔹 в выпуске с Ранисом, создателем i-cron.ru, тоже много говорят про кадры, но немного с другой стороны: про отношения между сотрудником и работодателем, про удаленную работу, про обучение и проверку знаний; а еще про бизнес в сфере 1С тоже было интересно.

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

— это не познавательный выпуск и что-то практически полезное в нем вы врядли услышите; полезное про 1С, кроме названных мной выше выпусков, можно послушать в подкасте Никиты WildHare Зайцева 🎙"Радио 1С Энтерпрайз", а еще в выпусках передачи "Готовые решения" ⤴️ Инфостарта;

— только слушать, а не смотреть: кроме того, что смотреть две говорящих головы бессмысленно, я по неопытности кручусь на кресле и это вас наверняка будет раздражать (меня дико бесит, больше не буду так делать);

— слушать нужно минимум на х1.25, а лучше х1.5.
Ну кому еще как не Андрею Овсянкину популяризировать 1С:Исполнитель )
👊 Среди набрасываемых уже который день на вентилятор ошметков по теме интервью Леонтьева у АйтиБороды проскочила ссылка на очень крутой канал, не могу не поделиться, надо же хоть как-то способствовать распространению информации о true-одинэсниках:

https://www.youtube.com/channel/UCXCFK4G65cNI4soCev0mOWA

Для привлечения внимания просто случайные названия тем видео:

— Запускаем процедуру Code Review в 1С 🔥🔥🔥 (посмотрел бегло, там реально крутые вопросы обсуждаются)
— Производительность VS Читабельность
— Подводные камни Системы компоновки данных
— Git для разработчика 1C
— CI/CD на Jenkins

p.s. Если что, я не разделяю хейта к Леонтьеву, но как всегда в интернете кто-то не прав. И да, с нетерпением ждем интервью с Никитой Грызловым.
Forwarded from Желтый клуб (Евгений Шилов)
Стрим в часть 8 марта с 2-мя очаровательными девушками.

А вы знали, что в 1С сфере не только мужики работают? В гостях у Желтого клуба завтра в 18:00 (06.03.21) 2 очаровательные девушки. Главный разработчик и Ведущий аналитик.

Поговорим, как они попали в 1С сферу, нравится ли работать в 1С. Чувствуют ли мужскую конкуренцию, да и вообще кто круче в сфере 1С: мужики или девушки))

Побольше бы нам в 1С сфере девушек

Залетайте на стрим в 18:00 тут: https://youtu.be/ZLPiU261DGw
Forwarded from Хатка Бобра
Одна картинка лучше сотни слов. Примерно год назад я перешел на документацию в стиле кода и не нарадуюсь. Знаете, как быстро и легко создавать такие красивые поясняющие диаграммки?
Проголосуйте за мой доклад на ИС и приходите смотреть - еще и не такое узнаете! https://event.infostart.ru/2021/agenda/#item1392837