Computer Vision & Kotlin
Обычно всяческие CV, ML, AI проекты делаются на Python или C++, но есть возможность работать с этим из Java и, соответственно, Kotlin. Рассмотрим использование OpenCV из Kotlin на примере matchTemplate — операции поиска объекта по шаблону.
---
Найдём ли нужную кошку в толпе кошек?
#bytedeco #ComputerVision #kotlin #OpenCV #быстрыйСтарт
Обычно всяческие CV, ML, AI проекты делаются на Python или C++, но есть возможность работать с этим из Java и, соответственно, Kotlin. Рассмотрим использование OpenCV из Kotlin на примере matchTemplate — операции поиска объекта по шаблону.
---
Найдём ли нужную кошку в толпе кошек?
#bytedeco #ComputerVision #kotlin #OpenCV #быстрыйСтарт
alse-code
Computer Vision & Kotlin |A| alse-code
Обычно всяческие CV, ML, AI проекты делаются на Python или C++, но есть возможность работать с этим и из Java и, соответственно, Kotlin. Рассмотрим использование OpenCV из Kotlin на примере matchTemplate - операции поиска объекта по шаблону. OpenCV - открытый…
Опыт установки GitLab + Runners
Временно у меня появилось пару серверов для экспериментов. Самое время попробовать установить GitLab EE, GitLab Runner и настроить CI через него.
---
Насколько сложен GitLab dev&ops для разработчика? Куда копать и что смотреть?
#devops #gitlab #быстрыйСтарт
Временно у меня появилось пару серверов для экспериментов. Самое время попробовать установить GitLab EE, GitLab Runner и настроить CI через него.
---
Насколько сложен GitLab dev&ops для разработчика? Куда копать и что смотреть?
#devops #gitlab #быстрыйСтарт
alse-code
Опыт установки GitLab + Runners |A| alse-code
Временно у меня появилось пару серверов для экспериментов. Самое время попробовать установить GitLab EE, GitLab Runner и настроить CI через него. для тех, кто в танке: GitLab Runner это сервисы, которые ставятся отдельно и подключаются к гитлабу. Они служат…
Что можно сделать с GitLab API
Gitlab предоставляет достаточно мощное REST API, с помощью которого можно делать множество рутинных действий. Расскажу о его подключении и нескольких типичных задачах, которые им можно решить, с примерами.
---
Как настроить, какие доки смотреть, примеры задач, исходник решения
#gitlab #kotlin #быстрыйСтарт
Gitlab предоставляет достаточно мощное REST API, с помощью которого можно делать множество рутинных действий. Расскажу о его подключении и нескольких типичных задачах, которые им можно решить, с примерами.
---
Как настроить, какие доки смотреть, примеры задач, исходник решения
#gitlab #kotlin #быстрыйСтарт
alse-code
Что можно сделать с GitLab API |A| alse-code
Gitlab предоставляет достаточно мощное REST API, с помощью которого можно делать множество рутинных действий. Расскажу о его подключении и нескольких типичных задачах, которые им можно решить, с примерами. Документация здесь. Подключаем к Gradle библиотечку…
Gitlab CI основы
Замечательная штука, чтобы настроить свои CI/CD процессы. Думаю, по популярности идёт на втором месте, сразу после Jenkins’а и постепенно вытесняет его.
gitlab-ci.yaml - сгруппированный по стадиям набор задач, запускающий скрипты в докер контейнере. Если кратко, то это и есть вся суть
---
Примерчик для быстрого старта, со скриншотами где че тыкать. И обязательно погружение - куда копать дальше, где доки, где примеры, где че искать
#devops #gitlab #быстрыйСтарт
Замечательная штука, чтобы настроить свои CI/CD процессы. Думаю, по популярности идёт на втором месте, сразу после Jenkins’а и постепенно вытесняет его.
gitlab-ci.yaml - сгруппированный по стадиям набор задач, запускающий скрипты в докер контейнере. Если кратко, то это и есть вся суть
---
Примерчик для быстрого старта, со скриншотами где че тыкать. И обязательно погружение - куда копать дальше, где доки, где примеры, где че искать
#devops #gitlab #быстрыйСтарт
alse-code
Gitlab CI основы |A| alse-code
Замечательная штука, чтобы настроить свои CI/CD процессы. Думаю, по популярности идёт на втором месте, сразу после Jenkins'а и постепенно вытесняет его. Итак, чтобы собрать свой pipeline в gitlab'е, нужно завести в нём репу, куда в корень просто добавляем…
Gitlab Pages: публикуем статик-сайты через CI
Хостинг статических сайтов (аналогичный GitHub pages), который собирается через Gitlab CI по исходникам в репозитории
---
#devops #gitlab #быстрыйСтарт
Хостинг статических сайтов (аналогичный GitHub pages), который собирается через Gitlab CI по исходникам в репозитории
---
#devops #gitlab #быстрыйСтарт
alse-code
Gitlab Pages: публикуем статик-сайты через CI |A| alse-code
Аналогично Github Pages в гитлабе существует собственный: Gitlab Pages. Это хостинг статических сайтов, который собирается через Gitlab CI по исходникам в репозитории. О Gitlab CI уже писал, так что за подробностями туда. Хотя и здесь постараюсь описать понятно…
Kotlin JS React. Парочка нюансов. HOC
Ох и запарился же я, когда пытался заюзать HOC (higher order component) компонент из react либы.
---
Пример использования React HOC из Kotlin/JS и конечно погружение с подробным объяснением, почему так
#kotlin #react #kotlinJs
Ох и запарился же я, когда пытался заюзать HOC (higher order component) компонент из react либы.
---
Пример использования React HOC из Kotlin/JS и конечно погружение с подробным объяснением, почему так
#kotlin #react #kotlinJs
alse-code
Kotlin JS React. Парочка нюансов. HOC |A| alse-code
Ох и запарился же я, когда пытался заюзать HOC (higher order component) компонент из react либы. Задача: В react-yandex-maps для использования api карт предлагается использовать HOC компонент withYMaps. Решение: определяем типизацию: @file:JsModule("react…
Синьор: Откуда ты взял этот код?
Джуниор: На Stack Overflow
Синьор: Из ответа или из вопроса?
Джуниор: На Stack Overflow
Синьор: Из ответа или из вопроса?
Микросервисы. Послевкусие
- устали от темы микросервисов? Посмотрим на них с непопулярной стороны
- сбиваем спесь и разгребаем последствия одного из мощнейших хайпов десятилетия
- относятся ли плюсы микросервисов действительно к микросервисам?
- может не надо или когда-нибудь может и надо и что происходит? монорепы, модули, soa, unix-пайпы, FaaS? Спокойствие, только спокойствие
---
Запись с конференции
Ссылки из презентации:
Мартин Фаулер 1 2
Сэм Ньюмен. Создание микросервисов
Microservices - Not a free lunch!
Остановитесь! Вам не нужны микросервисы
Модули вместо микросервисов
Микросервисы. Закат хайпа?
#concept #погружение #микросервисы
- устали от темы микросервисов? Посмотрим на них с непопулярной стороны
- сбиваем спесь и разгребаем последствия одного из мощнейших хайпов десятилетия
- относятся ли плюсы микросервисов действительно к микросервисам?
- может не надо или когда-нибудь может и надо и что происходит? монорепы, модули, soa, unix-пайпы, FaaS? Спокойствие, только спокойствие
---
Запись с конференции
Ссылки из презентации:
Мартин Фаулер 1 2
Сэм Ньюмен. Создание микросервисов
Microservices - Not a free lunch!
Остановитесь! Вам не нужны микросервисы
Модули вместо микросервисов
Микросервисы. Закат хайпа?
#concept #погружение #микросервисы
YouTube
Микросервисы. Послевкусие | Орбита-Базис MeetUp
Микросервисы. Послевкусие
- устали от темы микросервисов? А давайте посмотрим на них с непопулярной стороны
- сбиваем спесь и разгребаем последствия одного из мощнейших хайпов десятилетия
- относятся ли плюсы микросервисов действительно к микросервисам?…
- устали от темы микросервисов? А давайте посмотрим на них с непопулярной стороны
- сбиваем спесь и разгребаем последствия одного из мощнейших хайпов десятилетия
- относятся ли плюсы микросервисов действительно к микросервисам?…
Kotlin log VS Lombok
Скучаете по аннотации @Slf4j из Lombok? Забываете, как там пишется это всё вручную? Решение есть!
Всего несколько движений мышкой и корень…
И теперь — всё просто. Пишете
Вы скажете: лучше объявлять логгер статической переменной — и будете правы! Ничего сложного, просто надо добавить одну переменную и изменить ApplicableContext:
Только не забывайте, что для котлина есть специальный kotlin-logging. В прочем, для него алгоритм тот же, только template text немного другой:
✅ Достижение получено:
Мастер объявления логов в Котлин🥇
---
#лайфхаки
Скучаете по аннотации @Slf4j из Lombok? Забываете, как там пишется это всё вручную? Решение есть!
Всего несколько движений мышкой и корень…
Preferences -> Editor -> Live Templates -> Kotlin -> + -> Live Template:
Abbreviation: log
Description: insert slf4j log
Template Text: private val log = LoggerFactory.getLogger(this::class.java)
Applicable context->Define: Kotlin: class
(см.картинку)И теперь — всё просто. Пишете
log
, нажимаете tab — и готово!Вы скажете: лучше объявлять логгер статической переменной — и будете правы! Ничего сложного, просто надо добавить одну переменную и изменить ApplicableContext:
private val log = LoggerFactory.getLogger($CLASS$::class.java)
(см.картинку)Только не забывайте, что для котлина есть специальный kotlin-logging. В прочем, для него алгоритм тот же, только template text немного другой:
private val logger = KotlinLogging.logger {}
И-ес!✅ Достижение получено:
Мастер объявления логов в Котлин🥇
---
#лайфхаки
alse-code
Kotlin log VS Lombok |A| alse-code
Скучаете по @Slf4j из Lombok? Забываете, как там это всё вручную? Решение есть!
Всего несколько движений мышкой и корень... Не, ща разберёмся
Всего несколько движений мышкой и корень... Не, ща разберёмся
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты ещё не знаешь, как выглядит карьерная лестница программистов..
AlseCode | Краткость и раскопки по разработке
Микросервисы. Послевкусие - устали от темы микросервисов? Посмотрим на них с непопулярной стороны - сбиваем спесь и разгребаем последствия одного из мощнейших хайпов десятилетия - относятся ли плюсы микросервисов действительно к микросервисам? - может не…
Проблема с микросервисами
Видео от автора одной из основных книг по CD
Очень многие мысли пересекаются с моим докладом, но под другим углом
---
#concept #погружение #микросервисы
Видео от автора одной из основных книг по CD
Очень многие мысли пересекаются с моим докладом, но под другим углом
---
#concept #погружение #микросервисы
YouTube
The Problem With Microservices
Microservices are one of the most popular modern architectural approaches, but they are much more complicated to do well than most organisations think. So what is Microservices Architecture, what is it for, what are Microservices and why are they a lot more…
Как достигается изоляция транзакций в PostgreSQL? Разве блокировками?
Очень интересный вопрос для собеса, но я ничего подобного не слышал ни разу и сам не спрашивал. Но теперь запишу и буду задавать😎
Первое, что приходит на ум, когда читаешь про ACID и конкретно про Isolation, - "да ведь это всё на блокировках, всё ясно!"
Отнюдь - инженерная мысль ушла далеко.
В Postgres'е реализован механизм многоверсионности: хранятся сразу несколько версий строк для разных транзакций. То есть строки в одной транзакции могут не совпадать со строками другой. С помощью этого механизма всё работает практически без блокировок - просто, в случае чего, транзакция откатится!
И ещё один плюс этого подхода - меньшие уровни изоляции обеспечивают большую защиту от проблем изоляции без дополнительных накладных расходов!
Цитата:
См. статью от Postgres Pro про изоляцию
и про внутреннее устройство памяти Postgres
Очень интересный вопрос для собеса, но я ничего подобного не слышал ни разу и сам не спрашивал. Но теперь запишу и буду задавать😎
Первое, что приходит на ум, когда читаешь про ACID и конкретно про Isolation, - "да ведь это всё на блокировках, всё ясно!"
Отнюдь - инженерная мысль ушла далеко.
В Postgres'е реализован механизм многоверсионности: хранятся сразу несколько версий строк для разных транзакций. То есть строки в одной транзакции могут не совпадать со строками другой. С помощью этого механизма всё работает практически без блокировок - просто, в случае чего, транзакция откатится!
И ещё один плюс этого подхода - меньшие уровни изоляции обеспечивают большую защиту от проблем изоляции без дополнительных накладных расходов!
Цитата:
В PostgreSQL реализован многоверсионный вариант такого протокола. Идея многоверсионности состоит в том, что в СУБД могут сосуществовать несколько версий одной и той же строки. Это позволяет строить снимок данных, используя имеющиеся версии, и обходиться минимумом блокировок. Фактически блокируется только повторное изменение одной и той же строки. Все остальные операции выполняются одновременно: пишущие транзакции никогда не блокируют читающих транзакций, а читающие никогда не блокируют никого.
См. статью от Postgres Pro про изоляцию
и про внутреннее устройство памяти Postgres
Хабр
MVCC-1. Изоляция
Привет, Хабр! Этой статьей я начинаю серию циклов (или цикл серий? в общем, задумка грандиозная) о внутреннем устройстве PostgreSQL. Материал будет основан на у...
Выступаю завтра на конференции в Бишкеке с темой
Также будет много других крутейших докладов и классных спикеров, подключайтесь к трансляции или лично!
Пост от коллеги с подробным описанием:
https://t.me/mikrotikninja/1357
Или от одних из организаторов в инсте:
https://www.instagram.com/p/CdplKb_oLYO
Запись выступления
https://youtube.com/watch?v=Yxu-AHXGJMM&t=21790s
SQL vs NoSQL vs NewSQL. Ориентиры в мире БД
.Также будет много других крутейших докладов и классных спикеров, подключайтесь к трансляции или лично!
Пост от коллеги с подробным описанием:
https://t.me/mikrotikninja/1357
Или от одних из организаторов в инсте:
https://www.instagram.com/p/CdplKb_oLYO
Запись выступления
https://youtube.com/watch?v=Yxu-AHXGJMM&t=21790s
Отличные размышления по поводу собесов.
Нестандартный взгляд, новые мысли и логическое обоснование рисков найма, которые видны чаще интуитивно
Нестандартный взгляд, новые мысли и логическое обоснование рисков найма, которые видны чаще интуитивно
Forwarded from Russian Association of Software Architects (Ivan Zakrevsky)
🔷 "Обязан ли разработчик развиваться?" - статья на Хабре полностью подтверждает актуальность целей нашего объединения архитекторов.
Мы уже не раз обсуждали в чате сообщества @ru_arc_chat о том, что требуются новые способы разрешения противоречия между трудоемкостью освоения перегруженной области знаний и стесненностью ресурсов времени практикующего специалиста.
Именно этим фактором вызван взрывной рост интереса на рынке к reference applications/architectures, которые, по сути, решают одну проблему - быструю навигацию на основе схожести решаемой проблемы и демонстрацию решения на основе примера. Это позволяет легко отыскивать решения в условиях недостаточной полноты знаний. Но еще большего результата могут дать графы принятия решений и СППР.
Мы также обращали внимание на огромное количество когнитивных искажений, действующих в процессе собеседования, которые, по сути, превращают его в лотерею.
Отчасти эта проблема могла бы быть решена (или хотя бы смягчена) с помощью системы квалификационной классификации, путем представления нанимателю данных об уровне экспертности участника экспертного сообщества (по его желанию), выраженного конкретным опытом, ценность которого подтверждена другими участниками.
Т.е. чтобы уровень экспертности соискателя определяло бы не случайное лицо на основе получасового диалога, а саморегулируемое экспертное сообщество, на основе степени владения его участником теорией, выраженной практическим опытом.
Ведь если соискателю сложно освоить всю полноту перегруженной и переусложненной области знаний в силу конструктивных ограничений физиологии человека, то ведь интервьюер - тоже человек, на которого распространяются те же ограничения. А значит, единственное, что он может оценить - это уровень схожести знаний соискателя с отдельными сегментами своих знаний (именно сегментами, превалирующими в силу когнитивных искажений "эффекта недавнего", "эффекта края памяти", "кривой забывания" и т.д.) И чем обширней становится область знаний отрасли, тем меньше область вероятного пересечения освоенных ими подмножеств этих знаний.
Далее в дело включается "эффект неоднозначности" и предпочтение отдается не тому соискателю, кто более перспективен и мог бы обогатить компанию новыми знаниями, а тому, кто оказался максимально похожим на интервьюера и вызвал меньше неопределенности и рисков.
И все это, разумеется, через призму "психологической защиты", оберегая свое социальное положение от потенциальных угроз личной конкуренции. Я уже не говорю про "Искажение в восприятии сделанного выбора", "Склонность к подтверждению своей точки зрения", "Селективное восприятие", потребность в самоутверждении и пр.
Как мы и говорили, статья заканчивается признаками психологической защиты (отторжением раздражителя зоны комфорта) - "специалист не обязан развиваться", тем самым в очередной подчеркивая важность психологического аспекта планирования самообучения.
Интересное противоречие возникает из статьи - чтобы избавиться от чувства вины, возникает желание исключить трудоемкое развитие из своих обязанностей, но отторгая развитие специалист изолирует себя от обретения тех знаний, которые могли бы изменить его условия труда, и добровольно превращает себя в легкую добычу психологических манипуляций, вынужденную принимать всю вину на свой счет, и непонимающую, как выйти из замкнутого круга. Не отказ от развития, а переориентация развития в соответствии с причинно-следственными циклами системного мышления способно разорвать этот замкнутый круг, формируя благоприятные условия для самого развития. Как говорится, "есть только один правильный путь - свой".
Из статьи вытекает важность развития горизонтальных связей с коллегами из других компаний, и участие в профессиональных сообществах, в которых можно обрести поддержку, понимание, взаимовыручку, а самое главное - чувство безопасности.
А еще - объединяться в организованную силу, способную изменять и улучшать профессиональную среду специалиста на рынке. Эта организованная сила и есть то самое, что отличает практическое применение знания от пустого мечтательства.
#Goal
Мы уже не раз обсуждали в чате сообщества @ru_arc_chat о том, что требуются новые способы разрешения противоречия между трудоемкостью освоения перегруженной области знаний и стесненностью ресурсов времени практикующего специалиста.
Именно этим фактором вызван взрывной рост интереса на рынке к reference applications/architectures, которые, по сути, решают одну проблему - быструю навигацию на основе схожести решаемой проблемы и демонстрацию решения на основе примера. Это позволяет легко отыскивать решения в условиях недостаточной полноты знаний. Но еще большего результата могут дать графы принятия решений и СППР.
Мы также обращали внимание на огромное количество когнитивных искажений, действующих в процессе собеседования, которые, по сути, превращают его в лотерею.
Отчасти эта проблема могла бы быть решена (или хотя бы смягчена) с помощью системы квалификационной классификации, путем представления нанимателю данных об уровне экспертности участника экспертного сообщества (по его желанию), выраженного конкретным опытом, ценность которого подтверждена другими участниками.
Т.е. чтобы уровень экспертности соискателя определяло бы не случайное лицо на основе получасового диалога, а саморегулируемое экспертное сообщество, на основе степени владения его участником теорией, выраженной практическим опытом.
Ведь если соискателю сложно освоить всю полноту перегруженной и переусложненной области знаний в силу конструктивных ограничений физиологии человека, то ведь интервьюер - тоже человек, на которого распространяются те же ограничения. А значит, единственное, что он может оценить - это уровень схожести знаний соискателя с отдельными сегментами своих знаний (именно сегментами, превалирующими в силу когнитивных искажений "эффекта недавнего", "эффекта края памяти", "кривой забывания" и т.д.) И чем обширней становится область знаний отрасли, тем меньше область вероятного пересечения освоенных ими подмножеств этих знаний.
Далее в дело включается "эффект неоднозначности" и предпочтение отдается не тому соискателю, кто более перспективен и мог бы обогатить компанию новыми знаниями, а тому, кто оказался максимально похожим на интервьюера и вызвал меньше неопределенности и рисков.
И все это, разумеется, через призму "психологической защиты", оберегая свое социальное положение от потенциальных угроз личной конкуренции. Я уже не говорю про "Искажение в восприятии сделанного выбора", "Склонность к подтверждению своей точки зрения", "Селективное восприятие", потребность в самоутверждении и пр.
Как мы и говорили, статья заканчивается признаками психологической защиты (отторжением раздражителя зоны комфорта) - "специалист не обязан развиваться", тем самым в очередной подчеркивая важность психологического аспекта планирования самообучения.
Интересное противоречие возникает из статьи - чтобы избавиться от чувства вины, возникает желание исключить трудоемкое развитие из своих обязанностей, но отторгая развитие специалист изолирует себя от обретения тех знаний, которые могли бы изменить его условия труда, и добровольно превращает себя в легкую добычу психологических манипуляций, вынужденную принимать всю вину на свой счет, и непонимающую, как выйти из замкнутого круга. Не отказ от развития, а переориентация развития в соответствии с причинно-следственными циклами системного мышления способно разорвать этот замкнутый круг, формируя благоприятные условия для самого развития. Как говорится, "есть только один правильный путь - свой".
Из статьи вытекает важность развития горизонтальных связей с коллегами из других компаний, и участие в профессиональных сообществах, в которых можно обрести поддержку, понимание, взаимовыручку, а самое главное - чувство безопасности.
А еще - объединяться в организованную силу, способную изменять и улучшать профессиональную среду специалиста на рынке. Эта организованная сила и есть то самое, что отличает практическое применение знания от пустого мечтательства.
#Goal
Хабр
Обязан ли разработчик развиваться?
Мир IT довольно токсичен. Нас окружает успешный успех — он захлёстывает и сбивает нас с ног каждый раз, когда мы смотрим на публичных людей в нашей отрасли. Один — ворочает «маленьким кластером на...
Провожу сегодня вебинар для общественной организации "Общее Дело" по профориентации в ИТ.
Для аудитории моего канала основная тема возможно будет слишком проста, но кто сейчас в ситуации "прошёл обучение, всё знаю, но как теперь найти первую работу?" - вы те, кто мне нужен на этом вебинаре! Поделюсь секретами и предложу варианты 😏
Сегодня в 19:00 Мск, регистрация по ссылке
https://obchee-delo.ru/it
Для аудитории моего канала основная тема возможно будет слишком проста, но кто сейчас в ситуации "прошёл обучение, всё знаю, но как теперь найти первую работу?" - вы те, кто мне нужен на этом вебинаре! Поделюсь секретами и предложу варианты 😏
Сегодня в 19:00 Мск, регистрация по ссылке
https://obchee-delo.ru/it
obchee-delo.ru
IT настоящего и будущего. Как стать крутым специалистом
ВЕБИНАР Алексея Степанова о профориентации в ИТ
Как починить IntelliJ IDEA
Недавно мой менти (ученик) обратился с такой проблемой. При работе с проектом любимый продукт JetBrains начинает тупить.
Проблема достаточно частая: всё подсвечивается красным, хотя все зависимости есть. Что делать?
Продиагностируем:
Запустите из консоли
Если не собирается, значит проблема не в IntelliJ. Если собирается, а в IDEA нет, значит
Решаем проблему:
- Закройте IntelliJ полностью
- Зайдите в директорию проекта и удалите папку
- Откройте IntelliJ и откройте в ней проект
IntelliJ IDEA заново всё импортирует и настроит, применив свою магию.
Больше подробностей и другие способы решения в статье на сайте.
#IntelliJ #Idea #лайфхаки
Недавно мой менти (ученик) обратился с такой проблемой. При работе с проектом любимый продукт JetBrains начинает тупить.
Проблема достаточно частая: всё подсвечивается красным, хотя все зависимости есть. Что делать?
Продиагностируем:
Запустите из консоли
mvn compile test
или ./gradlew build
.Если не собирается, значит проблема не в IntelliJ. Если собирается, а в IDEA нет, значит
Решаем проблему:
- Закройте IntelliJ полностью
- Зайдите в директорию проекта и удалите папку
.idea
- Откройте IntelliJ и откройте в ней проект
IntelliJ IDEA заново всё импортирует и настроит, применив свою магию.
Больше подробностей и другие способы решения в статье на сайте.
#IntelliJ #Idea #лайфхаки
alse-code
Как починить IntelliJ IDEA |A| alse-code
При работе с проектом то любимый продукт JetBrains бывает начинает тупить.Всё подсвечивается красным, хотя все зависимости есть. Что делать? Диагностируем проблему: запустим сборку из конс...
Немного о методах решения конфликтов в разработке. Proof Of Work.
При возникновении конфликта, например, на код-ревью (дальше рассмотрим и другие примеры) - хорошим решением для руководителя будет организация следующего процесса: кто напишет тесты на свой вариант с бОльшим покрытием, то решение и принимается.
Плюсы/минусы:
+ хорошее покрытие говорит о хорошей архитектуре. На практике подверждается как минимум жизнеспособность и долговечность предложенного подхода
- "проигравшему" таким образом может быть обидно, особенно когда такой способ возник неожиданно. Поэтому лучше заранее обсуждать этот подход (либо просто с обоими одновременно, чтобы сравнять шансы)
+ когда все в команде знают о таком подходе - конфликтов будет возникать меньше, т.к. мало кто хочет себе лишнюю работу. Но если уверен в результате, то сделает его
+ формальный и от того достаточно справедливый подход, взамен возникающим странным решениям, когда руководитель принимает решение лишь бы просто закончить дискуссию, переросшую в спор (что часто бывает)
Аналогичный подход PoW применим и при других контекстах возникновения. На архитектурном ревью можно запилить Proof Of Concept (mvp) решений и посмотреть, что получилось (а ещё лучше провести (нагрузочные) тесты этого mvp). Известный эффект синдрома самозванца - критика решений коллег без предложения лучшего решения (~для самоутверждения). Такой подход может сглаживать и этот эффект тоже.
+ зная об этом подходе в компании, участники команды заранее стараются пойти на мировую и не достигать точки кипения, в которой необходимо будет подтверждать своё мнение тестами или PoC
#softskills #лайфхаки #leading
При возникновении конфликта, например, на код-ревью (дальше рассмотрим и другие примеры) - хорошим решением для руководителя будет организация следующего процесса: кто напишет тесты на свой вариант с бОльшим покрытием, то решение и принимается.
Плюсы/минусы:
+ хорошее покрытие говорит о хорошей архитектуре. На практике подверждается как минимум жизнеспособность и долговечность предложенного подхода
- "проигравшему" таким образом может быть обидно, особенно когда такой способ возник неожиданно. Поэтому лучше заранее обсуждать этот подход (либо просто с обоими одновременно, чтобы сравнять шансы)
+ когда все в команде знают о таком подходе - конфликтов будет возникать меньше, т.к. мало кто хочет себе лишнюю работу. Но если уверен в результате, то сделает его
+ формальный и от того достаточно справедливый подход, взамен возникающим странным решениям, когда руководитель принимает решение лишь бы просто закончить дискуссию, переросшую в спор (что часто бывает)
Аналогичный подход PoW применим и при других контекстах возникновения. На архитектурном ревью можно запилить Proof Of Concept (mvp) решений и посмотреть, что получилось (а ещё лучше провести (нагрузочные) тесты этого mvp). Известный эффект синдрома самозванца - критика решений коллег без предложения лучшего решения (~для самоутверждения). Такой подход может сглаживать и этот эффект тоже.
+ зная об этом подходе в компании, участники команды заранее стараются пойти на мировую и не достигать точки кипения, в которой необходимо будет подтверждать своё мнение тестами или PoC
#softskills #лайфхаки #leading