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

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

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

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

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

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

(Если что, это из модуля 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. Точка с запятой в качестве закрывающей операторной скобки — это та еще находка 🤮
​​Coding-конкурс #TechTrain2020

Подвели итоги конкурса, проводившегося после "фестивальчика на удалёночке" TechTrain2020 (сам фестиваль проходил в прошлую субботу).

Было восемь задачек, в рамках которых нужно было написать по веб-сервису. Работа каждого веб-сервиса сводилась к:
- вызвать предыдущий веб-сервис (очевидно, первый сервис никого не вызывал, а просто возвращал результат);
- проверить, что веб-сервис вернул ожидаемую строку;
- прибавить к результату кусочек фразы и вернуть полученную строку.

Первый сервис возвращал "Мы", второй прибавлял к этой строке " сломали" и так пока в результате не получалась фраза:
"Мы сломали твой код, уронили сервак. Вставай, Наташа!"

Особняком стояла восьмая задача, в которой помимо вызова седьмого сервиса нужно было еще и вывести результат как-нибудь кРЕаТиВнЕНьКО.

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

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

Почему бы не поучаствовать в конкурсе и не удивить джавистов? Особенно когда есть, чем удивить, хехе.

Олег Тымко (@otymko), вооружившись гуглом, собственными навыками и небольшой помощью, реализовал первые семь сервисов на "привычных" языках (java, javascript, python, ruby, go, c#, php), а вот восьмой, с html-страничкой - на OneScript.Web :)

И получилось настолько круто и необычно (см приложенную картинку), что организаторы не устояли! Еще бы, код 1с и котики, победа была в кармане еще до начала написания кода :)

Код всех решений (в том числе Олега) можно посмотреть в репозитории https://github.com/JUGRuGroupOnline/TechTrain2020
Блог пост с оглашением победителей: https://t.iss.one/techtrainfest/9332

Мои поздравления :)
Viva la OneScript!
⚡️Александр Орефков теперь в Инфостарте!

Будет пилить Снегопат и другие инструменты для 1С:

https://infostart.ru/journal/news/mir-1s/aleksandr-orefkov-prisoedinilsya-k-komande-infostart_1251443/

Вика, Артур, теперь Саша. С ними много кому захочется поработать вместе, прямо кадровый магнит 🧲 в Инфостарте собрался ) Каждый раз удивляюсь, как Доржи удается своевременно предпринимать шаги, которые дают очередной толчок в развитии ИС и сообщества вокруг него. Отличный тайминг )

Очень надеюсь на полную, наконец-то, реинкарнацию Снегопата и предвкушаю катализацию новых интересных проектов.
Вышла бета 1С:Исполнителя, из-за которого я недавно ворчал. В общем, я не удержался, написал hello.sbsl. Остальное на картинке.

p.s. Смущает, что Записать() сам добавляет перенос строки. Фича или баг?

upd: Я в курсе, что производительность так не меряют и что это просто время холодного старта, а не время выполнения основной части скрипта.
🔨 Ближайшую неделю тема экзекутора 1С:Исполнителя нас вряд ли отпустит. Андрей @theEvilBeaver Овсянкин оперативно запилил видео с обзором нового языка от 1С для девопса. В меру беспристрастное, если вы понимаете о чем я 😉, рекомендую, если представление получить хотите, но погружаться в документацию пока не хочется (не забудьте поставить лайк и подписаться на канал Веселого 1Сника).

▶️ https://www.youtube.com/watch?v=rtQkkbCr2N4

Андрей в конце обзора говорит, что документации по языку нет. Очевидно, он имел в виду отсутствие статей и готовых примеров кода, т.к. 120-страничный мануал с описанием языка и примерами кода он в обзоре показал, плюс в 1C:Executor IDE, который Андрей не захотел устанавливать из-за нелюбви к Эклипсу, есть старый добрый синтаксис-помощник.
Forwarded from Александр Киричков
Первая реакция на 1С:Исполнитель
🔥 Ура! Snegopat — make Конфигуратор Designer great again!