Александр Кунташов — про 1С и не только
2.46K subscribers
219 photos
10 videos
417 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
#1С

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

Аргумент очевиден: разработчики забывают обновлять комментарии.

Я тогда поленился приводить примеры из типовых, а сегодня мне один начинающий в 1С коллега обратился с очередным WTF (в оригинале вопрос был "Как это использовать?" - см. картинку ниже) и я вспомнил то обсуждение.

Как теперь с этим жить?

Когда есть легаси API, которое нужно вызвать из своего кода, а с документацией "что-то не то":

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

2. Читать примеры клиентского кода (имею в виду код, который вызывает процедуру/функцию, информация по которой вам нужна). На этом этапе на исследуемый метод смотрим как на "черный ящик". В идеальном мире нужный клиентский код находится в юнит-тестах (xUnitFor1C) или в реализации сценариев поведения (Vanessa Behavior), но, к сожалению, наш мир очень далек от идеального.

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

3. Читать реализацию метода, если что-то из клиентского кода не очевидно. Опять же, не без помощи отладчика.

Когда написал код и возникло желание написать к нему комментарий:

1. Написать юнит-тест (в идеале - написать сценарий поведения и реализовать шаги по его автоматической проверке); гуглите: xUnitFor1C, Vanessa Behavior, Тестер 1С;

2. Выполнить рефакторинг кода таким образом, чтобы минимизировать необходимость каких-либо дополнительных пояснений.
Пример из типовой БП 3.0 одного из последних релизов #1С #codesmells
#1С в очередной раз идут своим путем и... пишут аналог Jenkins. Скрипты - на питоне, при этом оговариваются Предвкушая возможные вопросы вида " - Теперь нам еще Python и YAML учить?. Религия использовать #1Script как всегда не позволяет.

https://wonderland.v8.1c.ru/blog/1s-tsentr-administrirovaniya-administrirovanie-eto-prosto/
В январе в официальном аккаунте фирмы #1С на Github появился загадочный репозиторий https://github.com/1C-Company/Catalog из одного файла README.md, над которым велась очень бурная работа - в него даже пул-реквест от разработчика, не аффилированного с фирмой 1С приняли.

В файле одна строчка: 1С:Номенклатура - единый каталог стандартизированных описаний товаров и услуг в B2B сегменте.

А сегодня вышло инфописьмо https://1c.ru/news/info.jsp?id=24270, анонсирующее пилотный запуск нового продукта 1С:Номенклатура - единый каталог товаров в 1С:Предприятии. Это не просто программное решение, это сервис по подписке.

Все сегодня влюблены в возможность сервиса 1С:Контрагент добавлять контрагента со всеми (ну почти) его реквизитами просто введя ИНН (обожаю, как это работает в БП).

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

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

Подписка будет стоить 10к руб. за 10к карточек/год (или 90к за 100к карточек/год). Пока идет пилот на 1 год дают бесплатно 10к карточек, если у вас действительна подписка на ИТС.

Мне кажется, это очень крутое начинание и, надеюсь, у сервиса появится публичное API и возможность, его использовать не только из продуктов на платформе 1С.
Первый коммит в официальный репо #1С:Номенклатура (видимо, здесь будет публичный код клиента данного сервиса)
Скриншот из официальной пользовательской документации к модулю обмена 1С и #БитриксУправлениеСайтом https://www.1c-bitrix.ru/download/1c/docs/User%20manual%207.docx
Не знал, что подать заявку на сертификацию #1С:Совместимо своего решения может не только любая компания (даже не партнер фирмы 1С), но и физ. лицо. Это очень интересно, но не столько из-за возможности получить шильдик, сколько из-за возможности опубликовать анонс своего решения в каналах информирования 1С - это большая аудитория.

https://infostart.ru/public/801229/
Рубрика "Великие цитаты великих людей".

Александр Орефков :

На самом деле одинэсники вовсю используют самые лучшие паттерны, тщательно отобранные заботливыми методистами и разработчиками платформы 1С.

Когда ты пишешь свой тупой код для простенькой управляемой формы, на самом деле ты юзаешь
model-view-controller с double-way data binding в three-layered-data-app-engine, сдобренный
high level object-relation-mapping на базе declarative metadata description, имеющей свой
platform-independed query language, c declarative data-driven user interface, complete transparent serialization и domain-oriented programming language.

В чём разработчики 1С отличаются от западных коллег, так это в пиаре. Те любят любой фигне дать громкое имя и носиться с ней, как с писаной торбой.

#1С
Неудачное решение - дать одинаковые имена объекту и его ТЧ: ломает штатное поведение запросов и конструктора запросов. Обход: задать в запросе псевдоним, отличный от имени объекта #codesmells #УНФ
Очередной (давно, кстати, не было) евангелистический 1С:Лонгрид от Петра Грибанова на хабре. На этот раз раскрыта кухня автоматизации процессов разработки технологической платформы.

(спойлер) Используют: Jenkins, Apache JMeter, 1С:ТестЦентр и собственные велосипеды, например для "визуального тестирования" (судя по описанию - аналог SikuliX). А еще (цитирую): "Для целей тестирования в этом режиме доступно написание скриптов на языке 1С. В рамках скрипта доступны специальные объекты для целей тестирования." Интересно, это свой внутренний #1Script или просто служебная конфигурация на 1С?

#1С

https://habrahabr.ru/company/1c/blog/352210/
Кажется, это первая публикация в 1С:Справочнике внедренных решений, в которой упоминается использование "true open source" решения на 1С: https://1c.ru/rus/partners/solutions/solution.jsp?SolutionID=912372

Поздравляю Леонида Паутова, команду SilverBulleters и всех контрибуторов проекта Vanessa Behavior!

#1С #BDD
Кстати, команда SB на днях зарелизила ADD - Automation Driven Development - продукт, объединяющий в себе #xUnitFor1C и #VanessaBehavior.

Со слов Артура Аюханова все основные усилия команды будут теперь сосредоточены на развитии инструментов именно в составе ADD, а поддержку xUnitFor1C и VanessaBehavior по крайней мере со стороны команды SB постепенно прекратят. В связи с этим рекомендуют переходить на ADD.

У меня пока чувства двоякие. Рациональная часть меня поддерживает такое объединение. Но все же есть тревога насчет того, что направление развития инструмента будет сильнее зависеть от потребностей и политики SB.

https://github.com/silverbulleters/add
Недавно у нас в Саратове проходила конференция по тестированию ПО в формате "школы" - TMPA School 2018.
На днях компания Exactpro Systems, организовавшая эту конференцию, выложила на своем канале в публичный доступ видео всех выступлений.

Из того, что я посмотрел очень рекомендую две лекции Александра Александрова из Luxoft'а (он в рамках конференции по сути прочитал полноценный курс по тестированию):

* Оценка трудозатрат на тестирование - https://www.youtube.com/watch?v=S_MxC1m2_E0
Мне здесь особенно интересными показались выводы про специфику тестирования в проектах сопровождения.

* Автоматизация тестирования: https://www.youtube.com/watch?v=p_IrFET_d88
Взгляд на автоматизацию тестирования через призму экономической целесообразности.

Рекомендую всем, кто так или иначе касается вопросов тестирования ПО (менеджерам проектов, тестировщикам, разработчикам).

#Тестирование
Цветовые темы для управляемого интерфейса #1С подогнали (будет в 8.3.13).

https://wonderland.v8.1c.ru/blog/podderzhka-korporativnogo-stilya/
А кто еще помнит, что отладчик в #1С:Предприятие 7.7 - это отдельное приложение? :)
На прошлой неделе по производственным нуждам потребовалось допиливать выгрузку в Битрикс для конфигурации на #1С:Предприятии 7.7. Не знаю, знакомо ли вам чувство, когда вы видите с любовью написанный кем-то код? :) Но это был тот самый случай :) ООП при помощи 1C++, прямые запросы, прокаченные ToySQL, FormEx. Контроль версий в GIT при помощи, естественно, gcomp. На современных ресурсах винтажный MFC-стайл интерфейс просто летает :)
Статья про #TDD с провокационным заголовком https://habrahabr.ru/post/353312/

Задело в статье (я с этими утверждениями согласен):

- Лучшая документация - исполняемые примеры кода
- НО: Юнит-тесты или реализация шагов BDD-тестов являются более актуальными (по сравнению с примерами в документации)
- НО: В юнит-тестах слишком много инфраструктурного кода, который мешает увидеть те самые примеры, которые должны служить документацией

Автор предлагает решение в виде инструмента https://github.com/Igmat/baset (для JS).
Чуть более, чем полностью разделяю