TGViewer
Channel Public Channel
Никита Федькин - мысли, заметки, анонсы

Никита Федькин - мысли, заметки, анонсы

@nixel2007_thoughts

Связаться со мной - @nixel2007.
Никита Федькин (ранее Грызлов).

На канале не публикуется платная реклама.
Subscribers
2.88K
Photos
243
Videos
8
Links
369

Showing posts older than #304 · Back to latest

Older Posts 20 shown
Post #303 2.99K
Пятничка, самое время для анонса нового релиза ОСени!

Выпущена версия v2.0.0, список изменений к которой получился чуть ли не жирнее списка возможностей первой версии.

По зарождающейся традиции вся упоротая документация улетает в README. В отдельном пулл-реквесте собраны все изменения документации, в т.ч. обновленное оглавление. Спойлер: появились &Рогатка, &Деталька, &Прозвище, &Верховный (желудь) и не только...

А здесь о серьезном. Версия 2.0.0 принесла:

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

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

#Использовать autumn
#Использовать winow

Поделка = Новый Поделка;
Поделка.ЗапуститьПриложение();

Что за магия за этим стоит? А это описано в той самой упоротой документации :)

Всех с пятничкой!
GitHub GitHub - autumn-library/autumn: Dependency Injection framework for OneScript Dependency Injection framework for OneScript. Contribute to autumn-library/autumn development by creating an account on GitHub.
  • 🔥 22
  • ❤ 3
  • 👏 2
  • 😱 2
  • 💩 1
Post #302 2.59K
В полку визуализаторов планов запросов для PostgreSQL прибыло.

К компании depesz и tatiyants присоединился dalibo.

Ссылки на все три два сервиса с одним и тем же запросом и планом запроса:

https://explain.depesz.com/s/9YGl
https://explain.dalibo.com/plan/911bf82bg80655bg#plan

tatiyants захотел план запроса в формате json, которого под рукой у меня не оказалось, так что можете взглянуть на один из старых планов, которые я там смотрел:

https://tatiyants.com/pev/#/plans/plan_1588843949097

Полезно иногда посмотреть на одну и ту же информацию под разным углом.
Dalibo Plan created on September 29th 2022, 7:17 pm | explain.dalibo.com Visualizing and understanding your PostgreSQL execution plans made easy.
  • 👍 7
  • 👎 1
Post #301 3.38K
Post #300 2.94K
Никита Федькин - мысли, заметки, анонсы Запланирован новый #стрим! Где: ютубчик, родненький https://youtu.be/eIhWSJnRXlU Когда: 17 сентября 2022 в 21:00 MSK Что: ОСень! Та, которая про жёлуди, дубы, пластилин и напильники... Для тех, кто не был свидетелем ночных переписок в чате @oscript_library…
Напоминаю, что завтра вечерочком будем страдать фигнёй и упарываться жёлудями!
  • 👍 13
  • 🔥 1
  • 😁 1
Post #299 3.88K
Запланирован новый #стрим!

Где: ютубчик, родненький https://youtu.be/eIhWSJnRXlU
Когда: 17 сентября 2022 в 21:00 MSK
Что: ОСень! Та, которая про жёлуди, дубы, пластилин и напильники...

Для тех, кто не был свидетелем ночных переписок в чате @oscript_library, после которых остаётся лишь один вопрос: "Вы там все упоролись что ли?" - это dependency injection framework для оскрипта. Не знаете что это такое? Не беда, расскажем. Ещё можно посмотреть весенний пост про неё.
В любом случае, приходите, должно быть весело.

Обратите внимание, время не стандартное - не в четверг в 19:30, а в субботу в 21:00!

До встречи!
YouTube OneScript Autumn. Как собрать поделку из желудей и не сойти с ума Весной увидел свет первый фреймворк для работы по принципам inversion of control и dependency injection для OneScript. Знакомимся с ОСенью, пробуем что-то под неё написать и запилим пару новых интересных фич! Осторожно, видео содержит большое количество…
  • 👍 17
  • ❤ 4
  • 🔥 3
  • 🤯 3
  • 🤡 3
  • 👏 1
Post #298 3.43K
Вспомнилось.

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

Пришли к выводу, что все возможно. Главное прочтение!

Как там он звучит, этот ваш аджайл манифест?

Люди и взаимодействие важнее процессов и инструментов - конечно, ведь то, как мы работаем, назвать процессом невозможно, а из инструментов у нас только лопаты без ручек и тупые топоры.
Работающий продукт важнее исчерпывающей документации - документация?
Сотрудничество с заказчиком важнее согласования условий контракта - да ну бросьте, какая разница, что там в тз написано, все равно всегда все не так.
Готовность к изменениям важнее следования первоначальному плану - у кого-то есть план, прикиньте!

Всем хорошего начала недели.
  • 😁 28
  • 👍 16
  • ⚡ 1
  • 💩 1
Post #297 4.29K
Юрий Пермитин + Инфостарт = всё.

https://t.me/DevQuietPlace/190

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

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

Спасибо, Юра. Твои статьи помогли решить множество проблем с 1ской. Ну а вендор... 1с повела себя как 1с, несмотря на все эти ваши коммьюнити и программы поддержки разработчиков.
  • 😱 27
  • 😢 16
  • 👍 7
  • 💩 2
  • 😁 1
  • 🤔 1
Post #296 4.42K
Новости одной строкой.

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

Ну нихрена ж себе.

P.S. Не знаю, куда делась превьюха. По ссылке - официальный ютуб-канал с записями всяких сисдевконов от вендора
  • 🔥 26
  • 👍 4
  • 🤬 1
Post #295 4.11K
Не знаю, чего это обитатель Хатки Бобра молчит, но на днях опубликовали его выступление "Как донести здравый смысл до заказчика. Инструменты архитектора" на Infostart Event 2021, сорвавшее джэкпот по заполняемости малого зала.

https://infostart.ru/1c/articles/1706553/

Про mind-map, bpmn, uml и главное про "зачем это всё". Если вы не используете эти инструменты в работе, то как минимум рекомендую ознакомиться с докладом, а как максимум - начать использовать!

Напомню, что для plantUML существует библиотечка по добавлению в него 1сных стереотипов: https://github.com/ovcharenko-di/1ce-icons-for-plantuml
Telegram Хатка Бобра Личный блог EvilBeaver. Программирование, музыка, мысли о жизни
  • 👍 32
  • 🔥 11
Post #293 3K
Весной я писал про инструмент мониторинга 1С под названием Алькир и упомянул, что немного участвую в проекте в качестве разработчика.

Настало время открыть один из компонентов этой системы под названием rahc - Remote Administration HTTP Client

https://github.com/DigiLabsru/alkir-rahc

Вы могли натыкаться на ИТС на Программный Java-интерфейс для административного сервера (сокращенно ibis), позволяющий дергать RAS (который remote administration server из состава платформы) из джавы/jvm-языков, минуя консольный запуск RAC (remote administration client), на базе которого построено большинство опенсорсных инструментов. В рамках разработки Алькира понадобился некий http-сервис для оперирования RAS, консольный запуск RAC не подходил по ряду причин, поэтому было решено попробовать напилить микросервис поверх ibis.

В качестве фреймворка для разработки был выбран Spring Boot, с которым у меня сложились теплые отношения за время работы над BSL Language Server.

Что могу отметить из ништяков и особенностей...

Во-первых, сам Spring Boot прекрасен. Работающий прототип с rest-интерфейсом для пары сущностей был написан за буквально 2.5 часа. Дальше уже пошли хотелки и улучшалки. Добавление новых методов в сервисы или сервисная обвязка делается в пару строчек шелковистого и душистого кода.

Во-вторых, поддерживается два интерфейса доступа - собственно rest с его get/put/delete/post и JSON-RPC версии 2.0.

В-третьих, есть как возможность настроить один инстанс rahc на один ras (используя переменные среды и API версии v1), так и использовать rahc как ультра-тонкий клиент взаимодействия с RAS, передавая параметры авторизации RAS в качестве параметров http-запроса.

В-четвертых, Spring Boot подарил легкую генерацию Swagger UI (как под rest, так и под json-rpc варианты вызова), так и подключение Spring Boot Admin (в проект включен и клиент и сервер) на пару с Spring Boot Actuator

И в-пятых, и наверное, это было самое сложное - решена проблема зависания ibis. Я не совсем понимаю, зачем ibis была написана именно так, но в ней есть ненулевая вероятность, что запрос, отправленный в RAS, никогда не получит ответ. И для сервиса, который в системе мониторинга дергается по многу раз в минуту, такое зависание и распухание http-сессий недопустимо. Потому что привет OutOfMemoryException или закончившиеся tcp-порты :(
В rahc вшит очень жестокий, но работающий способ обрыва таких зависших сеансов и повторный вызов сервиса.

Из особенностей:
1) Наружу торчат не все сущности и методы, доступные в ibis. Торчит то, что реально используется в Алькире. Но доработать это добро довольно просто. ЖВПР, как говорится.
2) Для сборки нужно руками подложить ibis в нужную папочку и выполнить магическую команду. Планирую упростить сей шаг с помощью автоматической таски в gradle, но пока так.

P.S. Перед началом работы над rahc я видел и ripreal/admin1c, и hirac. Но они по ряду причин не подходили. Но хорошо, что есть выбор, да? Можно попробовать все и найти подходящее. Или сделать своё :)
Telegram Никита Федькин - мысли, заметки, анонсы Про мониторинг и немного рекламы. Мониторинг - штука сложная. Он еще и разный: железо, ось, приложение, бизнес-метрики... тысячи показателей с еще большим количеством зависимостей между ними. А уж есть мы говорим про мониторинг производительности... 1С…
  • 👍 31
  • 🐳 3
  • ❤‍🔥 1
  • 🌚 1
Post #292 2.92K
С третьего дня рождения BSL Language Server прошёл год, а значит, сегодня четвёртый день рождения! 🥳

За прошедший год внешне BSL Language Server изменился не очень сильно, зато много изменений произошло под капотом. И как это водится, часть изменений еще не влита в девелоп, т.к. не финализирована. Но мы стараемся :)

Мы опубликовались в Maven Central, а снапшоты девелопа теперь всегда можно забрать с Sonatype. Jitpack.io был хорошим подспорьем в начале жизни проекта, но в последние полтора-два года стабильность сервиса оставляла желать лучшего. Цвета и выделение выражения, как и обещанный control flow graph увидели свет в релизе 0.19.0.

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

Что ждет нас в 0.21.0?

Я очень хотел бы добить ряд долгостроев, висящих сейчас в виде feature branches, особенно подсказки по именам параметров в вызываемых методах и (вы не поверите) расширенную поддержку модулей и классов OneScript с автодополнением умнее, чем УправлениеКонфигуратором = Новый УправлениеКонфигуратором.

Но пока мы готовимся к этому радостному событию и неспешно принимаем новые пулл-реквесты, на prerelease-канале, про который я писал ранее, доступен ряд вкусненьких фич!
Леха намонстрячил умное переименование переменных и методов, Эдуард научил BSL Language Server отлавливать вызовы методов в обработчиках описаний оповещений (даже иерархия вызовов теперь их ловит, не говоря уже о всплывающей подсказке), а Артур поправил FP'шки и нашел пару досадных багов в имеющихся механизмах. Я же впилил отправку баг-репортов с информацией о падении в Sentry.io. Жмякайте разрешение отправки, если вдруг нарветесь на баг или сразу добавьте такое разрешение в конфигурационный файл, будем вам очень благодарны за репорты :)

На сладкое хочу поделиться видео с визуализацией истории репозитория BSL Language Server за 4 года. Пиу-пиу лазерами из глаз по файликам в репозитории :)

https://youtu.be/H8WgOgZpJz8

P.S. Да, я чуть-чуть не успел на сам день рождения. Долго возился с видосом. Но все равно с днюшечкой нас!
Telegram Никита Федькин - мысли, заметки, анонсы BSL Language Server три года! 🎉 Ровно три года назад, спустя неделю робких попыток разработать плагин для 1С в IntelliJ IDEA, нам с @Labotamy пришла в голову идея попробовать реализовать ядро поддержки языка отдельно от IDE в виде Language Server - специализированного…
  • 🎉 38
  • 🔥 9
  • 👍 2
Post #291 2.82K
Делюсь находкой.

Периодически страдаю от затирания красивого git blame из-за переформатирования кода или еще хуже из-за нормализации окончаний строк.

За релизами git как консольной утилиты я не слежу, а вот GitHub заботливо подсказывает о появлении новых фич различными всплывашками.

Новая (?) фича GitHub - автоматически удалять из интерфейса git blame коммиты, отмеченные в специальном файлике. Чтобы не приходилось руками тыкать по кнопке "View blame prior this change", которая под капотом делает git blame --follow.

https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

Переписал половину истории репы сменой окончаний строк? Добавил хэш коммита в файлик и наслаждаешься не-сломанным git blame.

Ня.
  • 👍 16
  • ❤‍🔥 3
Post #290 3.7K
  • 🌭 6
  • 🔥 4
  • 👎 3
  • 👏 2
  • ❤ 1
  • 👍 1
  • 🎉 1
Post #289 4.36K
Хе-хей, breaking news!

Я выступал на Инфостарт Эвенте
Опубликовали запись моего выступления на Инфостарт Эвенте 2021, где я рассказывал про jenkins-lib!

https://infostart.ru/1c/articles/1681427

Кажется, получился неплохой обзор возможностей библиотеки, особенно после затянувшегося и не совсем доведенного до конца видео про поднятие сборочной линии на канале Весёлый1С.

Вот такой вот фигнёй приходится заниматься :)
GitHub GitHub - firstBitMarksistskaya/jenkins-lib: Jenkins shared library для 1С:Предприятие 8 Jenkins shared library для 1С:Предприятие 8. Contribute to firstBitMarksistskaya/jenkins-lib development by creating an account on GitHub.
  • 👍 23
  • ❤‍🔥 3
  • 🔥 1
Post #287 4.76K
Аееееееееееееееееееееее.

@Artem_Kuznetsov, принимай в клуб, буду ковырять эти ваши сопилоты!
  • 🔥 9
  • 👍 3
Post #286 3.57K
Пятница. Все еще весна (и это символично). А значит, я успель.

Если вы поглядываете за судьбой BSL Language Server, то наверное уже слышали про Spring. Как больно мы на него переезжали, и как вкусно там стало после этого переезда.

Одной из основных целей переезда на Spring была реорганизация работы с зависимостями между компонентами. Хотелось честного Dependency Injection, да еще и Inversion of control в паре мест. Разложить все по полочкам, развязать между собой, спрятать инфраструктурный код подальше от кода полезного. Спринг это дал. А в 1С...

В 1С что с DI, что с IoC все сложновато. И если IoC еще с горем пополам можно провернуть, то с DI грустно. Интроспекции нет, не говоря уже о полноценной рефлексии. Но... Рефлексия есть в OneScript!

Я очень люблю проверять на оскрипте различные концепции. Брать некий базовый инструмент и творить! Загрузка сценариев из строки родила notify и fluent. Поддержка аннотаций и их параметров на пару с развитием рефлектора выродилась в entity. Что же, настал черед DI!

Встречайте, ОСень!

https://github.com/nixel2007/autumn

ОСень - это фреймворк для построения (хотелось бы сказать полноценных, но тут уж как повезет) приложений на основе компонентов и внедрения зависимостей. Базовый комплект включает в себя:
* описание компонентов на основе классов;
* фабрики и фабричные методы для создания компонентов;
* поддержку синглтонов и prototype/transient-компонентов;
* внедрение зависимостей через конструктор, поля и методы-сеттеры;
* дополнительные пользовательские обработчики создания компонентов (aka bean post processors);
* вызов post-construct метода;
* специфичный юмор.

Удивительно, но все работает, тесты в наличии.

Т. к. разработка использует фичи движка, еще не вошедшие в стабильный релиз OneScript, то я пока не выкладываю ОСень в хаб, дабы не поломать opm install --all у тех, кто его использует. Но вы всегда можете поставить свежий ночник оскрипта и забрать релиз ОСени с GitHub.

Вот такие пироги жёлуди.

P.S. Спасибо @theEvilBeaver за настрой и завязку ридми. Это... Это прекрасно.
  • 🔥 26
  • 👍 9
  • 🤯 4
  • 😁 1
Post #285 2.85K
Ударный май продолжается!

Новый день принёс нам новый долгожданный релиз BSL Language Server под номером 0.20.0!

Изменения в релизе условно можно разделить на три группы.
1) Внутренняя возня, которая сейчас для пользователя не особо видна, но позволит в будущем докатить до релиза несколько фич, о которых я писал ранее. Вроде показа подсказок по параметрам вызываемых методов или команд запуска тестов.
2) Всякие полезные улучшалки вне диагностик. Например, теперь можно использовать глобальный конфигурационный файл на все проекты! Или форматтер, который научился ключевые слова к каноническому виду приводить. Или пороги для срабатывания бесявых линз со сложностью.
3) Но кого это все волнует, когда есть диагностики, да?

Встречайте. Фильтр по подсистемам! Игнорирование диагностик в расширенных методах вне Вставка-КонецВставки! 13 новых диагностик, среди которых неиспользуемые переменные! Куча доработок старых в конце-то концов.

Кажется, что огонь :)

Вдобавок сильно поработали над потреблением памяти. Если у вас раньше зависал bsl ls в vscode на erp, попробуйте свежий релиз, теперь все должно быть намного расторопнее и экономнее.

Вот такие пироги. Stay tuned.
GitHub Release v0.20.0 · 1c-syntax/bsl-language-server Общие изменения Добавлена поддержка Java 17 при сборке проекта; Снижено потребление оперативной памяти, занимаемой данными конфигурации и внутренними кэшами BSL Language Server; Во всплывающую под...
  • 🔥 33
  • 👍 5
Post #284 2.62K
У jenkins-lib вышел новый релиз под номером v0.6.0!

Из самых вкусных плюшек в наличии отправка результатов сборки в почту и в телеграм и поддержка декорирования пулл-реквестов в SonarQube (у вас же стоит branch plugin, да?).

Полный чейнджлог доступен по ссылке выше, а в корне репы лежит обновлённый README.

Кто сделает пулл-реквест с нормальной подробной документацией, тот и молодец. :)

P. S. Надеюсь, что скоро выйдет ещё одна статья по мотивам моего выступления на прошедшем Infostart Event, где я рассказывал как раз про jenkins-lib. Может быть даже быстрее, чем через полтора года :)
GitHub Release v0.6.0 · firstBitMarksistskaya/jenkins-lib Добавлена возможность указывать конкретную требуемую версию EDT. Имя агента высчитывается автоматически на основании заполненности версии edt. @ivanmolodec Добавлена отправка результатов сборки по ...
  • 🔥 13
  • 👍 6
Post #283 3.39K
Наконец-то готова и опубликована статья по мастер-классу "SonarQube. В омут с головой", который я проводил на Инфостарт-митапе "Путь к чистому коду" осенью 2020ого года.

https://infostart.ru/1c/articles/1661973/

Рассказывал, вы не поверите, про SonarQube и немного про gitsync и планировщик Windows :)

Спасибо орг комитету Инфостарта за приглашение на митап, спасибо ред коллегии Инфостарта, вычитывавшей эти 74 зубодробительные страницы и отдельное спасибо Вике Дорохиной, что оцифровала, вычитала, отредачила и вытерпела все это в конце концов :)
  • 🔥 45
  • 👍 13
  • ❤ 1
  • 👏 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →