💩 Две простейшие строчки кода, логику которых не поймешь с первого раза
На скриншоте за "самодокументирующимся" кодом (ну так гипердлинные идентификаторы обычно оправдывают) прячется вот такая красота:
Этот код можно было бы еще "улучшить", добавив отрицание вместо явного сравнения с Ложью. Нок нашему счастью, метод
Ну и, очевидно, с такой кривой логикой "повествования" (
(Если что, это из модуля 1С:Синхронизация с Битрикс24 для УТ 10.3)
#говнокод #codesmell
На скриншоте за "самодокументирующимся" кодом (ну так гипердлинные идентификаторы обычно оправдывают) прячется вот такая красота:
НеПрервано = Прервано();Такое ощущение, что специально сделали поперек всей логики, чтобы читателю голову сломать, эдакая обфускация.
Если НеПрервано = Ложь Тогда
...
Этот код можно было бы еще "улучшить", добавив отрицание вместо явного сравнения с Ложью. Но
Прервано()
тоже спроектирован не удачно и может вернуть не только значение булева типа, поэтому тут обошлось без Если Не НеПрервано Тогда...
(а было бы веселее!)Ну и, очевидно, с такой кривой логикой "повествования" (
НеПрервано = Прервано()
) какие-либо длинные "самодокументирующиеся" имена становятся не только бесполезными, но и вредят, т.к. в таком идентификаторе при беглом чтении кода "Не" можно и не заметить, или даже наоборот, увидев его в одном идентификаторе, на автомате прочитать во втором, похожем.(Если что, это из модуля 1С:Синхронизация с Битрикс24 для УТ 10.3)
#говнокод #codesmell
Скриншот-то к посту выше ☝️ потерялся, извините, вот он.
В Зазеркалье новая статья про синхронную асинхронность 😱
Вангую, что в 10-летней (ну вы поняли) перспективе это все копирование фич из других ЯП — лишь шаги по долгосрочному рефакторингу платформы с целью отвязать ее от встронного ЯП в пользу какого-либо мейнстримового языка.
Естественно, отказаться здесь и сейчас от "великого и могучего" нельзя: и на уровне архитектуры он гвоздями возможно прибит, и специалистов нужных так быстро не переучишь/не привлечешь, да и просто слишком много на 1С кода написано — в обозримое время не переписать.
Но оставаться с встроенным ЯП 1С навсегда платформе тоже скорее всего уже не получится, ибо это один из тормозов экспансии на запад. Ну представьте себе, вы презентуете некую новую платформу с потенциально интересными фичами, которые потребителям (разработчикам) нравятся. И в конце презентации говорите, что чтобы пользоваться фичами вам нужно изучить новый язык программирования, устаревший морально несколько лет назад. Ну вы поняли.
Вангую, что в 10-летней (ну вы поняли) перспективе это все копирование фич из других ЯП — лишь шаги по долгосрочному рефакторингу платформы с целью отвязать ее от встронного ЯП в пользу какого-либо мейнстримового языка.
Естественно, отказаться здесь и сейчас от "великого и могучего" нельзя: и на уровне архитектуры он гвоздями возможно прибит, и специалистов нужных так быстро не переучишь/не привлечешь, да и просто слишком много на 1С кода написано — в обозримое время не переписать.
Но оставаться с встроенным ЯП 1С навсегда платформе тоже скорее всего уже не получится, ибо это один из тормозов экспансии на запад. Ну представьте себе, вы презентуете некую новую платформу с потенциально интересными фичами, которые потребителям (разработчикам) нравятся. И в конце презентации говорите, что чтобы пользоваться фичами вам нужно изучить новый язык программирования, устаревший морально несколько лет назад. Ну вы поняли.
Заметки из Зазеркалья
Улучшения в синтаксисе языка 1С для работы с асинхронными функциями: синхронная асинхронность
Данная статья является анонсом новой функциональности. Не рекомендуется использовать содержание данной статьи для освоения новой функциональности. Полное описание новой функциональности будет приведено в документации к соответствующей версии. Полный список…
Делал пуш, и тут github внезапно прилег
https://www.githubstatus.com/
Совпадение?.. (с)
upd. На 16:44 Мск заработало, ура.
https://www.githubstatus.com/
Совпадение?.. (с)
upd. На 16:44 Мск заработало, ура.
Срочный апдейт ☝️. Говорят, что падение Github произошло из-за COMMIT-19
Forwarded from Кавычка (Bo🦠oM)
Bitrix - популярная CMS для стран СНГ. Там есть достаточно неплохая встроенная защита, которую всё-таки можно обойти.
Обойти XSS WAF можно через нульбайт, в блоге deteact есть описание, почему это происходит.
А еще там есть смешная обходка для Open Redirect - некорректный парсинг урла, который проверяет вхождение домена в начале строки, который можно откинуть в basic auth.
Обойти XSS WAF можно через нульбайт, в блоге deteact есть описание, почему это происходит.
А еще там есть смешная обходка для Open Redirect - некорректный парсинг урла, который проверяет вхождение домена в начале строки, который можно откинуть в basic auth.
🤖 + 🎬 = ❤️ Будущее кинематографа: пишешь историю/сценарий/книгу или берешь любой готовый текст, загружаешь в свой телевизор, указываешь, каких актеров хотел бы видеть в главных ролях и нажимаешь ▶️. Нейронка генерирует и показывает кинофильм. Не понравилась концовка/актер — исправил — 🔁 — смотришь дальше...
Настоящее продвинутых 1Сников: пишешь сценарий, например, такой: УТ11_Демо.feature. Скармливаешь сценарий Vanessa Automation. Получаешь на выходе видео:
https://www.youtube.com/watch?v=6b2CtestsaU
Выпустили обновление — обновили сценарий — ▶️ — получаешь новое видео.
🔥
Настоящее продвинутых 1Сников: пишешь сценарий, например, такой: УТ11_Демо.feature. Скармливаешь сценарий Vanessa Automation. Получаешь на выходе видео:
https://www.youtube.com/watch?v=6b2CtestsaU
Выпустили обновление — обновили сценарий — ▶️ — получаешь новое видео.
🔥
YouTube
Новые возможности авто видео документации. Работа в браузере.
Для рисования стрелочек, рамок и т.д. используются новые шаги. Видео сделано по фиче:
https://github.com/Pr-Mex/vanessa-automation/blob/develop/features/Support/Templates/%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80/%D0%A3%D0%A211_%D0%94%D1%8D%D0%BC%D0%BE.feature
https://github.com/Pr-Mex/vanessa-automation/blob/develop/features/Support/Templates/%D0%91%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80/%D0%A3%D0%A211_%D0%94%D1%8D%D0%BC%D0%BE.feature
👇 Статья по крутому докладу Дмитрия Решитко с ИфостартЭвента2019 о нюансах сценарного тестирования. Рекомендую 👍
Forwarded from IS: Все публикации
❓ Молчание "best practices": тестовые и эталонные данные, структура и связность, падения и новая функциональность, и другие неудобные вопросы к сценарному тестированию
Непонимание некоторых базовых вопросов мешает программистам начать применять инструменты тестирования в процессе разработки для 1С. Как разобраться в терминологии и интегрировать процесс тестирования в разработку 1С-решений на конференции Infostart Event 2019 Inception рассказал руководитель отдела разработки компании C.T.Consultants Решитко Дмитрий.
Непонимание некоторых базовых вопросов мешает программистам начать применять инструменты тестирования в процессе разработки для 1С. Как разобраться в терминологии и интегрировать процесс тестирования в разработку 1С-решений на конференции Infostart Event 2019 Inception рассказал руководитель отдела разработки компании C.T.Consultants Решитко Дмитрий.
t.iss.one
Молчание "best practices": тестовые и эталонные данные, структура и связность, падения и новая функциональность, и другие неудобные…
Непонимание некоторых базовых вопросов мешает программистам начать применять инструменты тестирования в процессе разработки для 1С. Как разобраться в терминологии и интегрировать процесс тестирования в разработку 1С-решений на конференции Infostart Event…
Александр Кунташов — про 1С и не только
🤖 + 🎬 = ❤️ Будущее кинематографа: пишешь историю/сценарий/книгу или берешь любой готовый текст, загружаешь в свой телевизор, указываешь, каких актеров хотел бы видеть в главных ролях и нажимаешь ▶️. Нейронка генерирует и показывает кинофильм. Не понравилась…
На ИС появилась статья с описанием этого функционала: Vanessa. Использование видеоинструкций для web-клиента
t.iss.one
Vanessa, видеоинструкции для web-клиента
Vanessa-Automation. Использование видеоинструкций в web-клиенте.
https://mobile.twitter.com/iBljad/status/1265303184320446465
В реплаях там у true-разрабов снова подгорает )
В реплаях там у true-разрабов снова подгорает )
🥳 Только вчера напомнили старую шутку про источник новых лулзов новый язык программирования 1С:Исполнитель.
🧐 Далее мои токсичные комментарии на эту тему.
🤬 В статье в Зазеркалье 🤖 1С:Исполнитель позиционируется как инструмент, похожий на языки командных интерпретаторов и приводят в пример "аналоги" в виде
🤥 Зачем-то делается акцент "язык сценариев базируется на встроенном языке разработки 1С:Предприятие" (с оговоркой "имеет ряд отличий"), но по тому, что мы видим в примерах, язык обратно не совместим с встроенным ЯП 1С от слова "совсем" (с). Общего у них, кроме самой 1С, только операторы на кириллице с дублированием операторов на английском.
🤯 Двуязычность операторов языка никак не вяжется и с задекларированной экспансией на запад. Развивающийся язык рано или поздно обрастает библиотеками. Библиотеки, написанные кириллицей, будет сложно переиспользовать программистам-пользователям англоязычного варианта ключевых слов. Т.е. эти библиотеки нужно будет поддерживать в двух вариантах по крайней мере в части публичного API. Но зачем?
🤓 Концепты, реализованные в языке, чужды среднестатистическому 1Снику, не желающему учить что-то новое. А если есть мотивация разбираться в чем-то новом, то перспективнее учить какой-нибудь питон, а не странный нишевый язык программирования. То,что ключевые слова из русского языка как-то сильно помогают осваивать новые концепты программирования, это скорее миф.
😎 True-devops'ов и true-программистов еще сложнее заставить этот язык использовать в качестве своего инструмента. Зачем, когда уже все есть?
🤪 В общем, ни в результате прочтении статьи из Зазеркалья, ни по результатам бурного обсуждения в чатах, ни из комментариев/пересказов коллег, кто был в "Космосе" на Том Самом Докладе, где язык впервые представляли, лично у меня так и не нашлось ответа на вопрос "Нафига Зачем?".
😱 При этом на поверхности такое количество противоречий, что с трудом верится, что решение создавать новый язык или нет, имело вообще хоть какое-то веское обоснование, кроме желания устранить фатальный недостаток (см. Not Invented Here). Кстати, это также и ответ на вполне очевидный вопрос "Почему не OneScript?".
p.s. Точка с запятой в качестве закрывающей операторной скобки — это та еще находка 🤮
Да = СерверуТруба();
(см. предыдущий пост), а сегодня 1С официально представила 🧐 Далее мои токсичные комментарии на эту тему.
🤬 В статье в Зазеркалье 🤖 1С:Исполнитель позиционируется как инструмент, похожий на языки командных интерпретаторов и приводят в пример "аналоги" в виде
bash
и языка командных bat-файлов для cmd.exe
, но по описанию это язык со статической типизацией и другими продвинутыми фичами, т.е. явно не для разработки скриптов для автоматизации рутины и чего-то, что нужно побыстрее написать. 🤥 Зачем-то делается акцент "язык сценариев базируется на встроенном языке разработки 1С:Предприятие" (с оговоркой "имеет ряд отличий"), но по тому, что мы видим в примерах, язык обратно не совместим с встроенным ЯП 1С от слова "совсем" (с). Общего у них, кроме самой 1С, только операторы на кириллице с дублированием операторов на английском.
🤯 Двуязычность операторов языка никак не вяжется и с задекларированной экспансией на запад. Развивающийся язык рано или поздно обрастает библиотеками. Библиотеки, написанные кириллицей, будет сложно переиспользовать программистам-пользователям англоязычного варианта ключевых слов. Т.е. эти библиотеки нужно будет поддерживать в двух вариантах по крайней мере в части публичного API. Но зачем?
🤓 Концепты, реализованные в языке, чужды среднестатистическому 1Снику, не желающему учить что-то новое. А если есть мотивация разбираться в чем-то новом, то перспективнее учить какой-нибудь питон, а не странный нишевый язык программирования. То,что ключевые слова из русского языка как-то сильно помогают осваивать новые концепты программирования, это скорее миф.
😎 True-devops'ов и true-программистов еще сложнее заставить этот язык использовать в качестве своего инструмента. Зачем, когда уже все есть?
🤪 В общем, ни в результате прочтении статьи из Зазеркалья, ни по результатам бурного обсуждения в чатах, ни из комментариев/пересказов коллег, кто был в "Космосе" на Том Самом Докладе, где язык впервые представляли, лично у меня так и не нашлось ответа на вопрос "
😱 При этом на поверхности такое количество противоречий, что с трудом верится, что решение создавать новый язык или нет, имело вообще хоть какое-то веское обоснование, кроме желания устранить фатальный недостаток (см. Not Invented Here). Кстати, это также и ответ на вполне очевидный вопрос "Почему не OneScript?".
p.s. Точка с запятой в качестве закрывающей операторной скобки — это та еще находка 🤮
Заметки из Зазеркалья
1C:Исполнитель
Данная статья является анонсом новой функциональности. Не рекомендуется использовать содержание данной статьи для освоения новой функциональности. Полное описание новой функциональности будет приведено в документации к соответствующей версии. Полный список…
Forwarded from Никита Федькин - мысли, заметки, анонсы
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!
Подвели итоги конкурса, проводившегося после "фестивальчика на удалёночке" 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С:
https://infostart.ru/journal/news/mir-1s/aleksandr-orefkov-prisoedinilsya-k-komande-infostart_1251443/
Вика, Артур, теперь Саша. С ними много кому захочется поработать вместе, прямо кадровый магнит 🧲 в Инфостарте собрался ) Каждый раз удивляюсь, как Доржи удается своевременно предпринимать шаги, которые дают очередной толчок в развитии ИС и сообщества вокруг него. Отличный тайминг )
Очень надеюсь на полную, наконец-то, реинкарнацию Снегопата и предвкушаю катализацию новых интересных проектов.
infostart.ru
Александр Орефков присоединился к команде Инфостарт
Он займется развитием технического инструментария разработчика 1С для команд различного масштаба.
Вышла бета 1С:Исполнителя, из-за которого я недавно ворчал. В общем, я не удержался, написал
p.s. Смущает, что Записать() сам добавляет перенос строки. Фича или баг?
upd: Я в курсе, что производительность так не меряют и что это просто время холодного старта, а не время выполнения основной части скрипта.
hello.sbsl
. Остальное на картинке.p.s. Смущает, что Записать() сам добавляет перенос строки. Фича или баг?
upd: Я в курсе, что производительность так не меряют и что это просто время холодного старта, а не время выполнения основной части скрипта.
🔨 Ближайшую неделю тема экзекутора 1С:Исполнителя нас вряд ли отпустит. Андрей @theEvilBeaver Овсянкин оперативно запилил видео с обзором нового языка от 1С для девопса. В меру беспристрастное, если вы понимаете о чем я 😉, рекомендую, если представление получить хотите, но погружаться в документацию пока не хочется (не забудьте поставить лайк и подписаться на канал Веселого 1Сника).
▶️ https://www.youtube.com/watch?v=rtQkkbCr2N4
Андрей в конце обзора говорит, что документации по языку нет. Очевидно, он имел в виду отсутствие статей и готовых примеров кода, т.к. 120-страничный мануал с описанием языка и примерами кода он в обзоре показал, плюс в 1C:Executor IDE, который Андрей не захотел устанавливать из-за нелюбви к Эклипсу, есть старый добрый синтаксис-помощник.
▶️ https://www.youtube.com/watch?v=rtQkkbCr2N4
Андрей в конце обзора говорит, что документации по языку нет. Очевидно, он имел в виду отсутствие статей и готовых примеров кода, т.к. 120-страничный мануал с описанием языка и примерами кода он в обзоре показал, плюс в 1C:Executor IDE, который Андрей не захотел устанавливать из-за нелюбви к Эклипсу, есть старый добрый синтаксис-помощник.
YouTube
Обзор 1С:Исполнитель. Новости с пылу с жару
Фирма 1С выпустила новейший инструмент для администраторов 1С, который примечателен тем, что он предлагает совершенно новый, созданный с нуля язык программирования. Давайте посмотрим, что же такое этот самый Исполнитель