❓Эффект разбитых окон при доработке легаси-кода
Представьте ситуацию: разработчику Васе (имя вымышленное, но ситуация реальная) предстояло изменить некий существующий функционал. По факту оказалось, что за последний год до него там была пара итераций доработок, выполненных другими подрядчиками.
В результате этих доработок изначально неплохо написанный механизм два разработчика довели до смердящего 💩 состояния. (Оценку "неплохо" даю по фрагментам незатронутого доработками смежного кода.)
На ревью я с удивлением обнаружил, что неплохо программирующий Вася мимикрировал под своих коллег, оставивших след до него. И я задумался 🤔.
Заказчик в код не смотрит, а новый функционал соответствует его ожиданиям. Ограничения по бюджету и сроку соблюдены. Сам Вася комплексов, как я понял, не испытывает. Код в этом модуле изменяется относительно редко и от него ничего серьезного не зависит. Это так мой внутренний голос эффективного (зачеркнуто) менеджера 😈 убеждает меня, что все ок.
А моя технарская душонка 👼 не спокойна и все равно требует сказать Васе, что так нельзя и что нужно было хотя бы поднять вопрос о рефакторинге. А еще лучше, заставить его в назидание все хорошенько прибрать.
Как бы поступили вы на месте разработчика? Зарефакторили молча? Или все-таки сначала обсудили бы явно с руководителем/заказчиком, а уже в случае отрицательного решения — наговнокодили? Или, может быть, забили бы на окружающий старый код, но сами постарались бы написать чисто?
Нормально ли, когда разработчик, видя говнокод, который ему предстоит доработать, вместо того, чтобы прибрать, подбрасывает в него свеженького? Или это проявление непрофессионализма?
Кажется, неплохая тема для пятничной дискуссии. Предлагаю обсудить в @ssl1c :-)
#codesmells #говнокод
Представьте ситуацию: разработчику Васе (имя вымышленное, но ситуация реальная) предстояло изменить некий существующий функционал. По факту оказалось, что за последний год до него там была пара итераций доработок, выполненных другими подрядчиками.
В результате этих доработок изначально неплохо написанный механизм два разработчика довели до смердящего 💩 состояния. (Оценку "неплохо" даю по фрагментам незатронутого доработками смежного кода.)
На ревью я с удивлением обнаружил, что неплохо программирующий Вася мимикрировал под своих коллег, оставивших след до него. И я задумался 🤔.
Заказчик в код не смотрит, а новый функционал соответствует его ожиданиям. Ограничения по бюджету и сроку соблюдены. Сам Вася комплексов, как я понял, не испытывает. Код в этом модуле изменяется относительно редко и от него ничего серьезного не зависит. Это так мой внутренний голос эффективного (зачеркнуто) менеджера 😈 убеждает меня, что все ок.
А моя технарская душонка 👼 не спокойна и все равно требует сказать Васе, что так нельзя и что нужно было хотя бы поднять вопрос о рефакторинге. А еще лучше, заставить его в назидание все хорошенько прибрать.
Как бы поступили вы на месте разработчика? Зарефакторили молча? Или все-таки сначала обсудили бы явно с руководителем/заказчиком, а уже в случае отрицательного решения — наговнокодили? Или, может быть, забили бы на окружающий старый код, но сами постарались бы написать чисто?
Нормально ли, когда разработчик, видя говнокод, который ему предстоит доработать, вместо того, чтобы прибрать, подбрасывает в него свеженького? Или это проявление непрофессионализма?
Кажется, неплохая тема для пятничной дискуссии. Предлагаю обсудить в @ssl1c :-)
#codesmells #говнокод
Вам поставили задачу доработать некий существующий функционал. Его текущая реализация: 💩-код. Как вы поступите? (подробнее ситуация описана в https://t.iss.one/kuntashov_devnotes/315)
anonymous poll
2. 😷 Свой код напишу чисто, чужой постараюсь не трогать – 113
👍👍👍👍👍👍👍 50%
4. 👔 Предложу сначала провести рефакторинг. Откажутся - см. п. 2 – 80
👍👍👍👍👍 35%
3. 💩 Напишу в стиле предыдущих авторов (для единообразия) – 20
👍 9%
1. 💪 Перепишу все с нуля – 8
▫️ 4%
5. 😎 Другое (расскажу в чате @ssl1c) – 6
▫️ 3%
👥 227 people voted so far.
anonymous poll
2. 😷 Свой код напишу чисто, чужой постараюсь не трогать – 113
👍👍👍👍👍👍👍 50%
4. 👔 Предложу сначала провести рефакторинг. Откажутся - см. п. 2 – 80
👍👍👍👍👍 35%
3. 💩 Напишу в стиле предыдущих авторов (для единообразия) – 20
👍 9%
1. 💪 Перепишу все с нуля – 8
▫️ 4%
5. 😎 Другое (расскажу в чате @ssl1c) – 6
▫️ 3%
👥 227 people voted so far.
👋 Всем привет!
За последнюю неделю количество подписчиков приятно увеличилось на 150+ человек (судя по всему благодаря упоминанию на Geekbrains). Добро пожаловать!
Я профессионально занимаюсь разработкой и управлением проектами вокруг да около 1С и Битрикс/Битрикс24 и публикации в этом чате так или иначе являются отражением моей рабочей деятельности.
В личке меня уже несколько раз спросили, где в Телеграме можно задать вопрос и пообщаться по тематике 1С. Вот список чатов в Телеграме, где я время от времени бываю и в которых почти каждый день идут интересные обсуждения с участием крутых разработчиков 1С:
@ssl1c — чат для обсуждения 1С:Библиотеки стандартных подсистем и в целом по разработке на 1С и смежным темам, например по DevOps'у в мире 1С и архитектуре, по стандартам разработки (в контексте 1С и не только). Чат администрируется одним из разработчиков БСП.
@testspro1c — чат для обсуждения вопросов тестирования в 1С. Там админствует Леонид Паутов (PrMex), в прошлом ведущий разработчик Vanessa Behavior, а сегодня - автор ее форка Vanessa Automation.
@edt1c — чат по 1C:Enterprise Development Tools, новому средству разработки 1С, который когда-нибудь заменит конфигуратор 1С (не сочтите за сарказм).
@oscript_library — чат по OneScript — опенсорсной, кросс-платформенной реализации встроенного языка программирования 1С. Там обсуждают практику использования ванскрипта и библиотек, написанных на нем. Администраторы чата: ведущий разработчик OneScript Андрей Овсянкин и автор огромного количества библиотек на этом языке — Никита Грызлов.
@silvernation — чат команды Серебряная пуля (знаменитые в сообществе 1С Алексей Лустин, Артур Аюханов, Андрей Овсянкин). Эти ребята на передовой: авторы и разработчики/ментейнеры ведущих open-source проектов на 1С, таких как xUnitFor1C и Vanessa-ADD. Цитирую Артура: "Мы и тестированием активно занимаемся, и DevOps, и статический анализ кода и вообще одни из главных и первых практиков применения инженерных практик для мира 1С".
@unofficialC1 — это самый неформальный из перечисленны выше чатов, в котором общаются специалисты по 1С (не только разработчики). Обсуждения там бывают и на профессиональные темы, и не очень. Осторожно: там ругаются матом, грубо шутят и уровень флуда там часто переходит границы разумного.
@bit24dev — чат для внедренцев и разработчиков CRM Битрикс24. Там есть в том числе разработчики из самого Битрикса (даже Востриков собственной персоной периодически появляется и отвечает).
Кому нужно больше, посмотрите список каналов и чатов по 1С и управлению проектами по ссылке https://www.yellowbathrobes.com/blog/tgchannels
Продуктивного и приятного общения!
За последнюю неделю количество подписчиков приятно увеличилось на 150+ человек (судя по всему благодаря упоминанию на Geekbrains). Добро пожаловать!
Я профессионально занимаюсь разработкой и управлением проектами вокруг да около 1С и Битрикс/Битрикс24 и публикации в этом чате так или иначе являются отражением моей рабочей деятельности.
В личке меня уже несколько раз спросили, где в Телеграме можно задать вопрос и пообщаться по тематике 1С. Вот список чатов в Телеграме, где я время от времени бываю и в которых почти каждый день идут интересные обсуждения с участием крутых разработчиков 1С:
@ssl1c — чат для обсуждения 1С:Библиотеки стандартных подсистем и в целом по разработке на 1С и смежным темам, например по DevOps'у в мире 1С и архитектуре, по стандартам разработки (в контексте 1С и не только). Чат администрируется одним из разработчиков БСП.
@testspro1c — чат для обсуждения вопросов тестирования в 1С. Там админствует Леонид Паутов (PrMex), в прошлом ведущий разработчик Vanessa Behavior, а сегодня - автор ее форка Vanessa Automation.
@edt1c — чат по 1C:Enterprise Development Tools, новому средству разработки 1С, который когда-нибудь заменит конфигуратор 1С (не сочтите за сарказм).
@oscript_library — чат по OneScript — опенсорсной, кросс-платформенной реализации встроенного языка программирования 1С. Там обсуждают практику использования ванскрипта и библиотек, написанных на нем. Администраторы чата: ведущий разработчик OneScript Андрей Овсянкин и автор огромного количества библиотек на этом языке — Никита Грызлов.
@silvernation — чат команды Серебряная пуля (знаменитые в сообществе 1С Алексей Лустин, Артур Аюханов, Андрей Овсянкин). Эти ребята на передовой: авторы и разработчики/ментейнеры ведущих open-source проектов на 1С, таких как xUnitFor1C и Vanessa-ADD. Цитирую Артура: "Мы и тестированием активно занимаемся, и DevOps, и статический анализ кода и вообще одни из главных и первых практиков применения инженерных практик для мира 1С".
@unofficialC1 — это самый неформальный из перечисленны выше чатов, в котором общаются специалисты по 1С (не только разработчики). Обсуждения там бывают и на профессиональные темы, и не очень. Осторожно: там ругаются матом, грубо шутят и уровень флуда там часто переходит границы разумного.
@bit24dev — чат для внедренцев и разработчиков CRM Битрикс24. Там есть в том числе разработчики из самого Битрикса (даже Востриков собственной персоной периодически появляется и отвечает).
Кому нужно больше, посмотрите список каналов и чатов по 1С и управлению проектами по ссылке https://www.yellowbathrobes.com/blog/tgchannels
Продуктивного и приятного общения!
👔 Взгляд среднего бизнеса на инновации vs 🤓 взгляд молодого ИТшника. Утрировано и однобоко, но основной конфликт отражает.
Оригинальный тред: https://mobile.twitter.com/karbonio/status/1085996541482070016
Оригинальный тред: https://mobile.twitter.com/karbonio/status/1085996541482070016
📚 Что почитать на выходных — 6
🎓 Будущее программирования, Роберт Мартин [25 мин]
Владимир Литвиненко сделал транскрипт/перевод интересного выступления Дядюшки Боба с размышлением о том, как развивалась, развивается и будет развиваться наша отрасль. Видео оригинального доклада здесь.
😎 The Four Keys To Rapid Response Software Development [15 мин]
Энди Хант, один из авторов Agile Manifesto, кратко и по делу пишет о 4 ключевых принципах на которые должна опираться современная разработка ПО. Зацепило: "...if you have long-running feature branches that have to be re-integrated to Master at some point in the future, then congratulations! You’ve just re-invented “waterfall.”"
🐒 Пользователи нелогичны, а инновации нужны не всем: ожидания и реальность дизайнеров при разработке продуктов [20 мин]
В статье систематизированы основные ошибки, которые аналитики, дизайнеры UI и разработчики допускают, пытаясь понять, чего хотят пользователи. Ничего нового для тех, кто читал фундаментальные книжки по анализу требований и проектированию UX, но в качестве конспекта-напоминалки хорошо подойдет.
🤓 Things I don't know as of 2018 [10 мин]
Ведущий разработчик React Дэн Абрамов признается в том, что он знает гораздо меньше технологий, чем многие думают о нем ("тыжпрограммист"). Статья бурно обсуждалась в твиттере, в результате автор написал продолжение: The Elements of UI Engineering, в которой написал, что же он все-таки знает. Общие идеи публикаций в том, что полезнее не знание каких-то конкретных технологий, а понимание проблем, которые они решают и принципов, на которых они построены.
🔔 Комбинаторика британского колокольного звона [10 мин]
Статья для гиков, любящих комбинаторику, а также для тех, кому интересны истории любопытных устройств. К слову, любителям всего странного около-ИТшного и около-математического рекомендую канал @pathetic_low_freq целиком.
📖 Бонус-трек: Для чтения на всю грядущую неделю рекомендую Яндекс.Книгу — история становления и развития Яндекса, построенная в виде множества интервью с ключевыми персонажами, связанными с Яндексом. Мне чтение подарило несколько инсайтов на тему стартапов, управления персоналом, (само)мотивации. Ну и в целом история интереасная, написано не скучно. Вот вам одна из классных цитат книги для затравки (слова Леонида Богуславского):
У меня есть вообще такая теория. У каждого человека в течение жизни возникает некоторое количество уникальных для него возможностей. И люди делятся на три категории. Одни эти возможности не замечают, просто не видят. Вторая категория — это те, кто видит эти возможности, но не готов ничего изменить в своей жизни. Я их называю люди-трамваи, они ездят по рельсам, видят, что вот там что-то такое светит, что-то хорошее, интересное, но как-то вот на рельсах тоже неплохо, надежно — ну и едем дальше. А третья категория — это те, кто видит эти возможности и всегда готов к переменам, чтобы их постараться реализовать.
#ЧтоПочитатьНаВыходных
🎓 Будущее программирования, Роберт Мартин [25 мин]
Владимир Литвиненко сделал транскрипт/перевод интересного выступления Дядюшки Боба с размышлением о том, как развивалась, развивается и будет развиваться наша отрасль. Видео оригинального доклада здесь.
😎 The Four Keys To Rapid Response Software Development [15 мин]
Энди Хант, один из авторов Agile Manifesto, кратко и по делу пишет о 4 ключевых принципах на которые должна опираться современная разработка ПО. Зацепило: "...if you have long-running feature branches that have to be re-integrated to Master at some point in the future, then congratulations! You’ve just re-invented “waterfall.”"
🐒 Пользователи нелогичны, а инновации нужны не всем: ожидания и реальность дизайнеров при разработке продуктов [20 мин]
В статье систематизированы основные ошибки, которые аналитики, дизайнеры UI и разработчики допускают, пытаясь понять, чего хотят пользователи. Ничего нового для тех, кто читал фундаментальные книжки по анализу требований и проектированию UX, но в качестве конспекта-напоминалки хорошо подойдет.
🤓 Things I don't know as of 2018 [10 мин]
Ведущий разработчик React Дэн Абрамов признается в том, что он знает гораздо меньше технологий, чем многие думают о нем ("тыжпрограммист"). Статья бурно обсуждалась в твиттере, в результате автор написал продолжение: The Elements of UI Engineering, в которой написал, что же он все-таки знает. Общие идеи публикаций в том, что полезнее не знание каких-то конкретных технологий, а понимание проблем, которые они решают и принципов, на которых они построены.
🔔 Комбинаторика британского колокольного звона [10 мин]
Статья для гиков, любящих комбинаторику, а также для тех, кому интересны истории любопытных устройств. К слову, любителям всего странного около-ИТшного и около-математического рекомендую канал @pathetic_low_freq целиком.
📖 Бонус-трек: Для чтения на всю грядущую неделю рекомендую Яндекс.Книгу — история становления и развития Яндекса, построенная в виде множества интервью с ключевыми персонажами, связанными с Яндексом. Мне чтение подарило несколько инсайтов на тему стартапов, управления персоналом, (само)мотивации. Ну и в целом история интереасная, написано не скучно. Вот вам одна из классных цитат книги для затравки (слова Леонида Богуславского):
У меня есть вообще такая теория. У каждого человека в течение жизни возникает некоторое количество уникальных для него возможностей. И люди делятся на три категории. Одни эти возможности не замечают, просто не видят. Вторая категория — это те, кто видит эти возможности, но не готов ничего изменить в своей жизни. Я их называю люди-трамваи, они ездят по рельсам, видят, что вот там что-то такое светит, что-то хорошее, интересное, но как-то вот на рельсах тоже неплохо, надежно — ну и едем дальше. А третья категория — это те, кто видит эти возможности и всегда готов к переменам, чтобы их постараться реализовать.
#ЧтоПочитатьНаВыходных
Попытка - не пытка?!
p.s.
А вообще здесь "прекрасно все":
1. Вложенные попытки
2. Закомментированный код
3. Цикл без тела цикла
4. Сравнение константы булева типа с литералом булева типа
4. Копипаст
5. В условной конструкции
6. Неиспользуемая переменная
#codesmells 💩 #говнокод
p.s.
А вообще здесь "прекрасно все":
1. Вложенные попытки
2. Закомментированный код
3. Цикл без тела цикла
4. Сравнение константы булева типа с литералом булева типа
4. Копипаст
5. В условной конструкции
Если Константы...
4 экрана программного кода6. Неиспользуемая переменная
#codesmells 💩 #говнокод
Все любят истории про ПервыйБит. Вот твиттер свеженького принес. Оригинал: https://twitter.com/_jeck/status/1087353614979481605
Ссылка на тест из твита:https://hr-portal.ru/pages/hu/logika.php
Ссылка на тест из твита:https://hr-portal.ru/pages/hu/logika.php
Бодренький обзор событий 2018 года в мире 1С от @iwangoff aka Yellow robe man, автора канала @yellow1c
https://www.yellowbathrobes.com/blog/itogi2018
https://www.yellowbathrobes.com/blog/itogi2018
Прикольная вакансия в Битрикс24 с релокацией в Калининград под крыло к Сергею Вострикову aka @brainmixer
Forwarded from Иван
Аттеншен, плиз :)
Регулярно местные пишут что в доке по RESTу "не все так гладко как бы хотелось".
Так вот что мы (битрикс) на эту тему надумали.
Хочется сделать так, чтобы разработчик с самым разным уровнем получал исчерпывающий ответ - как ему решить задачу клиента, создать приложение. Именно это и нужно будет организовать новому человеку в нашей команде. @brainmixer набирает себе помощника. Ответственная и интересная задача.
Обычно даже в небольшой команде разработчиков выделяется человек, которому искренне интересно разобраться "как оно устроено" и объяснить другим. Ведуться блоги, пишутся мануалы. А тут документация, "туториалы" для огромного сообщества.
Тысячи (и я не утрирую) разработчиков работает с Б24, с нашей докой по всему миру! Представляете какую уважуху от сообщества можно получить на этой позиции! Не подумайте плохого, зарплату тоже платят :)
Подробное описании вакансии по ссылке https://kaliningrad.hh.ru/vacancy/29646728
Элеонора Золошкова наш HR, ей писать отклики +7 (911) 4669958, [email protected]
Знаю что и с релокацией мы помогаем, а уж сколько про жизнь в Калининграде написано :)
---
p.s.
Если вы знаете подходящего кандидата - поделитесь с ним ссылкой пожалуйста!
Кажется всем разработчикам в этом чатике интересно чтобы такой человек нашелся быстрее :)
Регулярно местные пишут что в доке по RESTу "не все так гладко как бы хотелось".
Так вот что мы (битрикс) на эту тему надумали.
Хочется сделать так, чтобы разработчик с самым разным уровнем получал исчерпывающий ответ - как ему решить задачу клиента, создать приложение. Именно это и нужно будет организовать новому человеку в нашей команде. @brainmixer набирает себе помощника. Ответственная и интересная задача.
Обычно даже в небольшой команде разработчиков выделяется человек, которому искренне интересно разобраться "как оно устроено" и объяснить другим. Ведуться блоги, пишутся мануалы. А тут документация, "туториалы" для огромного сообщества.
Тысячи (и я не утрирую) разработчиков работает с Б24, с нашей докой по всему миру! Представляете какую уважуху от сообщества можно получить на этой позиции! Не подумайте плохого, зарплату тоже платят :)
Подробное описании вакансии по ссылке https://kaliningrad.hh.ru/vacancy/29646728
Элеонора Золошкова наш HR, ей писать отклики +7 (911) 4669958, [email protected]
Знаю что и с релокацией мы помогаем, а уж сколько про жизнь в Калининграде написано :)
---
p.s.
Если вы знаете подходящего кандидата - поделитесь с ним ссылкой пожалуйста!
Кажется всем разработчикам в этом чатике интересно чтобы такой человек нашелся быстрее :)
kaliningrad.hh.ru
Вакансия Веб-разработчик на направление "Маркетплейс" в Калининграде, работа в 1C-Битрикс (вакансия в архиве)
Вакансия Веб-разработчик на направление "Маркетплейс". Зарплата: не указана. Калининград. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 30.01.2019.
📚 [ИТС] Организация эксплуатации крупной информационной системы
@zeegin в @ssl1c поделился ссылкой на прикольную статью на ИТС, название которой вынесено в заголовок поста:
https://its.1c.ru/db/metod8dev#content:5905:hdoc (доступ бесплатный, без регистрации и СМС)
Внушительный такой чеклист по элементам DevOps в контексте 1С.
p.s. У многих специалистов сложился устойчивый стереотип, что все полезное на ИТС по подписке, но нет, есть и открытые публикации, так что полезно посерфить по сайту даже не имея полного доступа.
@zeegin в @ssl1c поделился ссылкой на прикольную статью на ИТС, название которой вынесено в заголовок поста:
https://its.1c.ru/db/metod8dev#content:5905:hdoc (доступ бесплатный, без регистрации и СМС)
Внушительный такой чеклист по элементам DevOps в контексте 1С.
p.s. У многих специалистов сложился устойчивый стереотип, что все полезное на ИТС по подписке, но нет, есть и открытые публикации, так что полезно посерфить по сайту даже не имея полного доступа.
Forwarded from Никита Федькин - мысли, заметки, анонсы
#Анонс новых релизов
Выпущена вязанка релизов вокруг проекта BSL Language Server.
Во-первых, обновился BSL Parser. Помимо исправления различных ошибок, он теперь умеет строить AST по инструкциям препроцессора и не считает ключевые слова после точки ключевыми словами - например
Во-вторых, обновился сам BSL Language Server. Было добавлено несколько новых диагностик, например, такие как поиск пустых блоков кода, ограничение на размер метода; так же были исправлены ошибки асинхронной работы на больших проектах и проведены некоторые прочие оптимизации.
А еще у проекта появился собственный сайт на базе GitHub Pages! Туда перенесена часть информации из README, появился раздел по списку диагностик и репортеров. На wiki проекта появилась статья Добавление диагностики, рассказывающая, как добавить новую диагностику в language server. В скором времени она будет перенесена на сайт.
В третьих, выпущен новый релиз SonarQube 1C (BSL) Community Plugin. Плагин теперь умеет рисовать главный сонаровский дашборд, рассчитывать дублирование кода (cpd), количество строк кода, заработала подсветка исходников при просмотре файлов. Плагин научился импортировать несколько json-файлов с результатами анализа.
Отчаянные early adopters уже развернули сонар у себя и пытаются импортировать типовые и доработанные конфигурации ;) Особо отчаянные даже пишут экспортер из АПК в формат, совместимый с BSL Language Server, который (я надеюсь) будет доделан еще до выхода следующего большого релиза АПК :)
Скриншоты прилагаются!
P.S. Ссылочки проектов видут на подробные чейнджлоги.
Выпущена вязанка релизов вокруг проекта BSL Language Server.
Во-первых, обновился BSL Parser. Помимо исправления различных ошибок, он теперь умеет строить AST по инструкциям препроцессора и не считает ключевые слова после точки ключевыми словами - например
Запрос.Выполнить()
.Во-вторых, обновился сам BSL Language Server. Было добавлено несколько новых диагностик, например, такие как поиск пустых блоков кода, ограничение на размер метода; так же были исправлены ошибки асинхронной работы на больших проектах и проведены некоторые прочие оптимизации.
А еще у проекта появился собственный сайт на базе GitHub Pages! Туда перенесена часть информации из README, появился раздел по списку диагностик и репортеров. На wiki проекта появилась статья Добавление диагностики, рассказывающая, как добавить новую диагностику в language server. В скором времени она будет перенесена на сайт.
В третьих, выпущен новый релиз SonarQube 1C (BSL) Community Plugin. Плагин теперь умеет рисовать главный сонаровский дашборд, рассчитывать дублирование кода (cpd), количество строк кода, заработала подсветка исходников при просмотре файлов. Плагин научился импортировать несколько json-файлов с результатами анализа.
Отчаянные early adopters уже развернули сонар у себя и пытаются импортировать типовые и доработанные конфигурации ;) Особо отчаянные даже пишут экспортер из АПК в формат, совместимый с BSL Language Server, который (я надеюсь) будет доделан еще до выхода следующего большого релиза АПК :)
Скриншоты прилагаются!
P.S. Ссылочки проектов видут на подробные чейнджлоги.
GitHub
GitHub - 1c-syntax/bsl-language-server: Реализация Language Server Protocol для языка 1C (BSL)
Реализация Language Server Protocol для языка 1C (BSL) - 1c-syntax/bsl-language-server
Отличная иллюстрация к посту https://t.iss.one/kuntashov_devnotes/315
🔩 Аннотация &ИзменениеИКонтроль и директива #КонецВставить 🤦♂️ в расширениях
Судя по почтовому уведомлению новый пост в Зазеркалье вышел 10 минут назад, а мне в личку коллега уже успел пошутить, что 1С легализовала на уровне платформы в препроцессоре "авторские комментарии"
На самом деле это не совсем так. В отличие от злополучных авторских комментариев эти директивы в расширенном методе с аннотацией
https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-rasshireniy-konfiguratsii-15/
Судя по почтовому уведомлению новый пост в Зазеркалье вышел 10 минут назад, а мне в личку коллега уже успел пошутить, что 1С легализовала на уровне платформы в препроцессоре "авторские комментарии"
#Удалить
и #Вставить
(#КонецВставить
🤦♂️🤦♂️🤦♂️🤦♂️🤦♂️🤦♂️🤦♂️🤦♂️ — надеюсь, к релизу переименуют).На самом деле это не совсем так. В отличие от злополучных авторских комментариев эти директивы в расширенном методе с аннотацией
&ИзменениеИКонтроль
позволят на этапе применения расширения платформе сообщать нам о том, что бизнес-логика расширенного метода изменилась и вероятно ваши "вставленные" 🤦♂️ доработки нужно проверить.https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-rasshireniy-konfiguratsii-15/
🤓 #meetupweek в Саратове c 4 по 10 февраля: Blockchain, QA, JS, ML etc
Всю следующую неделю в Саратове в лектории Пионер пройдет неделя митапов по ИТ-тематике. Бесплатная регистрация по ссылке: https://youcon.timepad.ru/event/895526/
Каждый день по одной модной теме:
— 4/02 Blockchain
— 5/02 С++
— 6/02 DevOps
— 7/02 Machine Learning
— 8/02 QA
— 9/02 Java
— 10/02 JavaScript
Для тех, кто работает в офисе в центре города это хороший способ переждать уже привычные этой зимой 10-бальные пробки: начало митапов в 19 часов.
Мне было бы интересно попасть как минимум на доклад "Как завалить автоматизацию на геркин: вредные советы". Как вам слова "автоматизация" и "геркин" в одном предложении? 😉
Всю следующую неделю в Саратове в лектории Пионер пройдет неделя митапов по ИТ-тематике. Бесплатная регистрация по ссылке: https://youcon.timepad.ru/event/895526/
Каждый день по одной модной теме:
— 4/02 Blockchain
— 5/02 С++
— 6/02 DevOps
— 7/02 Machine Learning
— 8/02 QA
— 9/02 Java
— 10/02 JavaScript
Для тех, кто работает в офисе в центре города это хороший способ переждать уже привычные этой зимой 10-бальные пробки: начало митапов в 19 часов.
Мне было бы интересно попасть как минимум на доклад "Как завалить автоматизацию на геркин: вредные советы". Как вам слова "автоматизация" и "геркин" в одном предложении? 😉
👩 Автовидеоинструкции в Vanessa-Automation
Реализованный еще в Vanessa-Behavior механизм видео-инструкций вызвал у меня тогда восторг: идея автоматически получать видео-инструкцию на основе сценарного теста звучит круто.
Но практика показала, что из фич в исходном виде получаются не дружелюбные для конечного пользователя скринкасты. Чтобы их очеловечить, приходится в файл добавлять дополнительную информацию: сопроводительный закадровый текст; шаги, не нужные для проверки поведения, но нужные для инструкции. Некоторые шаги сценарного теста, наоборот, в инструкции не нужны. Такая информация захламляет фиче-файлы и делает их сложными для восприятия аналитиками и разработчиками.
Поэтому сценарные тесты лучше создавать отдельно, а сценарии для видео-инструкций — отдельно.
Посмотрите пример автоматически созданного скринкаста: https://www.youtube.com/watch?v=JNnmtv_yWI8 Современные Text-to-Speach движки больше не раздражают механическим голосом, а сценарий подготовлен так, что повествование звучит естественно по сравнению с прямым озвучиванием шагов, как было в первых версиях VB.
А вот так выглядит исходник сценария для видео-инструкции по ссылке выше: https://github.com/Pr-Mex/vanessa-automation/blob/develop/doc/VSL/Form/Док-Закладки%20формы.feature
Несмотря на то, что нельзя просто так взять произвольный фиче-файл и получить из него хорошую видео-инструкцию, преимущества автоматизированного создания скринкастов налицо:
— Видео пишется точно по сценарию с первого дубля, без отдельного этапа монтажа. 👩 Ванесса в отличие от живого человека прочитает текст без запинок и отклонений от сценария; введет значения без опечаток; кликнет сразу ровно там, где нужно независимо от фазы луны, настроения, состояния здоровья и т.п. Да, сценарий придется написать и отладить, но и при записи скринкастов человеком нужен этап подготовки, сравнимый по усилиям.
— Автоматически созданные видео-инструкции проще исправлять и поддерживать в актуальном состоянии. Небольшие исправления сценария, не требующие отладки, например, изменения сопроводительного текста, бесплатны по сравнению с перезаписью человеком. Изменения в самом сценарии — менее затратны, чем перезапись видео, записанного вручную.
— Создание видео-инструкций естественным образом интегрируется в сборочный конвеер CI. Если в программе появились ломающие изменения, сценарий упадет с ошибкой, новая версия инструкции не запишется и по отчету будет видно, какие видео устарели и требуют актуализации сценария.
P.S. Обсудить новый функционал VA и задать вопросы по тестированию решений на платформе 1С можно в чате @testspro1c
#Инструменты
Реализованный еще в Vanessa-Behavior механизм видео-инструкций вызвал у меня тогда восторг: идея автоматически получать видео-инструкцию на основе сценарного теста звучит круто.
Но практика показала, что из фич в исходном виде получаются не дружелюбные для конечного пользователя скринкасты. Чтобы их очеловечить, приходится в файл добавлять дополнительную информацию: сопроводительный закадровый текст; шаги, не нужные для проверки поведения, но нужные для инструкции. Некоторые шаги сценарного теста, наоборот, в инструкции не нужны. Такая информация захламляет фиче-файлы и делает их сложными для восприятия аналитиками и разработчиками.
Поэтому сценарные тесты лучше создавать отдельно, а сценарии для видео-инструкций — отдельно.
Посмотрите пример автоматически созданного скринкаста: https://www.youtube.com/watch?v=JNnmtv_yWI8 Современные Text-to-Speach движки больше не раздражают механическим голосом, а сценарий подготовлен так, что повествование звучит естественно по сравнению с прямым озвучиванием шагов, как было в первых версиях VB.
А вот так выглядит исходник сценария для видео-инструкции по ссылке выше: https://github.com/Pr-Mex/vanessa-automation/blob/develop/doc/VSL/Form/Док-Закладки%20формы.feature
Несмотря на то, что нельзя просто так взять произвольный фиче-файл и получить из него хорошую видео-инструкцию, преимущества автоматизированного создания скринкастов налицо:
— Видео пишется точно по сценарию с первого дубля, без отдельного этапа монтажа. 👩 Ванесса в отличие от живого человека прочитает текст без запинок и отклонений от сценария; введет значения без опечаток; кликнет сразу ровно там, где нужно независимо от фазы луны, настроения, состояния здоровья и т.п. Да, сценарий придется написать и отладить, но и при записи скринкастов человеком нужен этап подготовки, сравнимый по усилиям.
— Автоматически созданные видео-инструкции проще исправлять и поддерживать в актуальном состоянии. Небольшие исправления сценария, не требующие отладки, например, изменения сопроводительного текста, бесплатны по сравнению с перезаписью человеком. Изменения в самом сценарии — менее затратны, чем перезапись видео, записанного вручную.
— Создание видео-инструкций естественным образом интегрируется в сборочный конвеер CI. Если в программе появились ломающие изменения, сценарий упадет с ошибкой, новая версия инструкции не запишется и по отчету будет видно, какие видео устарели и требуют актуализации сценария.
P.S. Обсудить новый функционал VA и задать вопросы по тестированию решений на платформе 1С можно в чате @testspro1c
#Инструменты
YouTube
Демонстрация новых возможностей автовидео инструкций
- рисование стрелки на экране
- подсветка кликов мышки
- подсветка элементов формы с помощью стилей 1С
- подсветка кликов мышки
- подсветка элементов формы с помощью стилей 1С
🔨 git diff и cp1251 (настройка пейджера)
Перевожу один древний веб-проект с CVS на GIT, а он в кодировке cp1251, т.к. создавался во времена, когда UTF-8 только-только входила в обиход. Сконвертировать проект в UTF-8 пока нельзя, т.к. продуктовый сервер тоже из тех времен и тоже не поддерживает правильной кодировки.
Чтобы diff в консоли выводился в UTF-8, в GIT можно задать свою команду вызова пейджера вот таким образом:
Но вот незадача: комментарии к коммитам у нас в проекте в UTF-8, чтобы в веб-интерфейсе сервера управления репозиториями (у нас GOGS) они отображались правильно. А указанная выше настройка пейджера действует глобально на все команды, в результате
Оказывается, для каждой команды GIT'а пейджер можно настроить отдельно, в частности, для решения моей проблемы в дополнение к указанной выше настройке нужно сделать:
Пейджер можно вообще отключить, указав вместо команды пейджера значение
Перевожу один древний веб-проект с CVS на GIT, а он в кодировке cp1251, т.к. создавался во времена, когда UTF-8 только-только входила в обиход. Сконвертировать проект в UTF-8 пока нельзя, т.к. продуктовый сервер тоже из тех времен и тоже не поддерживает правильной кодировки.
Чтобы diff в консоли выводился в UTF-8, в GIT можно задать свою команду вызова пейджера вот таким образом:
git config --local core.pager "iconv -f cp1251 -t utf-8 | less"т.е. перед вызовом пейджера less я вызываю iconv для перекодировки вывода и ее результат уже через пайп отдаю пейджеру.
Но вот незадача: комментарии к коммитам у нас в проекте в UTF-8, чтобы в веб-интерфейсе сервера управления репозиториями (у нас GOGS) они отображались правильно. А указанная выше настройка пейджера действует глобально на все команды, в результате
git diff
у нас показывает русский текст правильно, а git log
— кракозябры.Оказывается, для каждой команды GIT'а пейджер можно настроить отдельно, в частности, для решения моей проблемы в дополнение к указанной выше настройке нужно сделать:
git config --local pager.log lessТ.е. для всех команд (diff, blame etc) выполняется конвертация из cp1251 в UTF-8, а для команды log конвертация не выполняется.
Пейджер можно вообще отключить, указав вместо команды пейджера значение
false
. Например, у нас список тэгов небольшой и удобнее, когда он сразу весь в консоль выводится, поэтому я пейджер для команды git tag
отключил:git config --local pager.tag falseВсе настройки можно указать и вручную прямо в
.git/config
репозитория. Например, после выполнения указанных выше команд в этом файле настройки будут такие (все, что не относится к пейджингу, я пропускаю):[core]#Инструменты #Лайфхак
...
pager = iconv -f cp1251 -t utf-8 | less
...
[pager]
log = less
tag = false