Александр Кунташов — про 1С и не только
2.47K subscribers
220 photos
10 videos
418 links
Заметки про разработку и смежные штуки: 1С, Vanessa Automation, DevOps в 1С, OneScript, PHP, Linux, JS, Python и всякое вокруг и около ИТ.
Download Telegram
Forwarded from FEDOR BORSHEV
​Тесты снимают когнитивную нагрузку

Чтобы соответствовать бизнес-требованиям, нужно постоянно с ними сверяться (написал и почувствовал себя инфобизнесменом — покупайте мои курсы, кек).

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

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

У ребят с тестами все наоборот, спокойно: у них всегда на экране есть лампочка. Зелёная — все работает, красная — все сломалось. Конечно хорошие разработчики всегда ходят в пользовательский интерфейс, но только для того, чтобы увидеть картинку глазами пользователя.

А не чтобы убедиться, что не сломали все нафиг.
🔥Поддержка AMPQ в 1С:Предприятии 8.3.17 "из коробки"

Новости Зазеркалья: в платформу завезли ESB

https://wonderland.v8.1c.ru/blog/integratsionnaya-shina/

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

Почему 1С снова делает свое — такой вопрос себе 1сники-старожилы давно не задают, а для тех кто все-таки задает, сегодня напомнили ответ (вольный краткий пересказ): "Потому что можем доступно и всерьез!" (см. раздел статьи под заголовком "Преимущества нашей «Интеграционной шины»").
This media is not supported in your browser
VIEW IN TELEGRAM
Хм... 🤔 #1C

p.s. Я так и не смог отключить оба чекбокса "Защита от опасных действий", платформа 8.3.16.1148.
#стрим

Рабочий треш и угар начала года рассосался, а значит, можно провести очередной стрим и поднять кружку чая за здоровье Злого Именинника :)
Обсудим новости, поднимем что-нибудь упавшее. Еще ничего не упало? Ничего страшного, обязательно уроним и поднимем :)

Завтра (31.03.2020) в 19:30 на YouTube:

https://www.youtube.com/watch?v=pbDtqn9Ahec
☝️🍻+🍷+ ☕️ 👍 #ОставайсяДома #StayAtHome

p.s. Время московское
💩 Две простейшие строчки кода, логику которых не поймешь с первого раза

На скриншоте за "самодокументирующимся" кодом (ну так гипердлинные идентификаторы обычно оправдывают) прячется вот такая красота:

НеПрервано = Прервано();
Если НеПрервано = Ложь Тогда
...

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

Этот код можно было бы еще "улучшить", добавив отрицание вместо явного сравнения с Ложью. Но к нашему счастью, метод Прервано() тоже спроектирован не удачно и может вернуть не только значение булева типа, поэтому тут обошлось без Если Не НеПрервано Тогда... (а было бы веселее!)

Ну и, очевидно, с такой кривой логикой "повествования" (НеПрервано = Прервано()) какие-либо длинные "самодокументирующиеся" имена становятся не только бесполезными, но и вредят, т.к. в таком идентификаторе при беглом чтении кода "Не" можно и не заметить, или даже наоборот, увидев его в одном идентификаторе, на автомате прочитать во втором, похожем.

(Если что, это из модуля 1С:Синхронизация с Битрикс24 для УТ 10.3)

#говнокод #codesmell
Скриншот-то к посту выше ☝️ потерялся, извините, вот он.
— А-а-а-синх... 😷
— Будьте здоровы!


(источник картинки)
В Зазеркалье новая статья про синхронную асинхронность 😱

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

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

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

https://www.githubstatus.com/

Совпадение?.. (с)

upd. На 16:44 Мск заработало, ура.
Срочный апдейт ☝️. Говорят, что падение Github произошло из-за COMMIT-19
Forwarded from Кавычка (Bo🦠oM)
Bitrix - популярная CMS для стран СНГ. Там есть достаточно неплохая встроенная защита, которую всё-таки можно обойти.
Обойти XSS WAF можно через нульбайт, в блоге deteact есть описание, почему это происходит.
А еще там есть смешная обходка для Open Redirect - некорректный парсинг урла, который проверяет вхождение домена в начале строки, который можно откинуть в basic auth.
🤖 + 🎬 = ❤️ Будущее кинематографа: пишешь историю/сценарий/книгу или берешь любой готовый текст, загружаешь в свой телевизор, указываешь, каких актеров хотел бы видеть в главных ролях и нажимаешь ▶️. Нейронка генерирует и показывает кинофильм. Не понравилась концовка/актер — исправил — 🔁 — смотришь дальше...

Настоящее продвинутых 1Сников: пишешь сценарий, например, такой: УТ11_Демо.feature. Скармливаешь сценарий Vanessa Automation. Получаешь на выходе видео:

https://www.youtube.com/watch?v=6b2CtestsaU

Выпустили обновление — обновили сценарий — ▶️ — получаешь новое видео.

🔥
👇 Статья по крутому докладу Дмитрия Решитко с ИфостартЭвента2019 о нюансах сценарного тестирования. Рекомендую 👍
Молчание "best practices": тестовые и эталонные данные, структура и связность, падения и новая функциональность, и другие неудобные вопросы к сценарному тестированию


Непонимание некоторых базовых вопросов мешает программистам начать применять инструменты тестирования в процессе разработки для 1С. Как разобраться в терминологии и интегрировать процесс тестирования в разработку 1С-решений на конференции Infostart Event 2019 Inception рассказал руководитель отдела разработки компании C.T.Consultants Решитко Дмитрий.
https://mobile.twitter.com/iBljad/status/1265303184320446465

В реплаях там у true-разрабов снова подгорает )
🥳 Только вчера напомнили старую шутку про Да = СерверуТруба(); (см. предыдущий пост), а сегодня 1С официально представила источник новых лулзов новый язык программирования 1С:Исполнитель.

🧐 Далее мои токсичные комментарии на эту тему.

🤬 В статье в Зазеркалье 🤖 1С:Исполнитель позиционируется как инструмент, похожий на языки командных интерпретаторов и приводят в пример "аналоги" в виде bash и языка командных bat-файлов для cmd.exe, но по описанию это язык со статической типизацией и другими продвинутыми фичами, т.е. явно не для разработки скриптов для автоматизации рутины и чего-то, что нужно побыстрее написать.

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

🤯 Двуязычность операторов языка никак не вяжется и с задекларированной экспансией на запад. Развивающийся язык рано или поздно обрастает библиотеками. Библиотеки, написанные кириллицей, будет сложно переиспользовать программистам-пользователям англоязычного варианта ключевых слов. Т.е. эти библиотеки нужно будет поддерживать в двух вариантах по крайней мере в части публичного API. Но зачем?

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

😎 True-devops'ов и true-программистов еще сложнее заставить этот язык использовать в качестве своего инструмента. Зачем, когда уже все есть?

🤪 В общем, ни в результате прочтении статьи из Зазеркалья, ни по результатам бурного обсуждения в чатах, ни из комментариев/пересказов коллег, кто был в "Космосе" на Том Самом Докладе, где язык впервые представляли, лично у меня так и не нашлось ответа на вопрос "Нафига Зачем?".

😱 При этом на поверхности такое количество противоречий, что с трудом верится, что решение создавать новый язык или нет, имело вообще хоть какое-то веское обоснование, кроме желания устранить фатальный недостаток (см. Not Invented Here). Кстати, это также и ответ на вполне очевидный вопрос "Почему не OneScript?".

p.s. Точка с запятой в качестве закрывающей операторной скобки — это та еще находка 🤮