В процессе выяснилось, что есть data-ориентированные куски системы — новые https://deveducation.com/blog/9-otlichnykh-servisov-dlya-proverki-koda/ страницы, которые внезапно открываются при комбинации определенных данных. Система была настолько объемная, что на этапе presale выловить такой нюанс было проблематично. В итоге все эти необнаруженные части системы не были учтены в изначальном расчете бюджета и сроков. Предрелизном проекте пока никто не знает, кроме предыдущих разработчиков. По каким-то причинам идея не воплотилась либо была реализована частично — и теперь вам разбираться с ее витиеватой логикой.
Всегда прилетают пожелания какие-то или замечания о том, что чего-то не хватает, или что-то не удобно. Клиентами Poster является больше 20 тысяч заведений в мире. Команда Poster считает, что присутствует хотя бы в одной стране, если у них там есть хотя бы один платный клиент. Последние несколько лет Poster активно инвестирует в Латинскую Америку.
Рецензия кода — это возможность обмениваться знаниями и принимать осмысленные инженерные решения. Но это невозможно, если автор воспринимает обсуждение как персональную атаку на него самого. Термин “code review” может означать разные действия, от простого чтения какого-то кода из-за спины разработчика до совещания на 20 человек, где вы разбираете код строчка за строчкой. Я здесь имею в виду формальную и письменную процедуру, но не отягощённую рядом совещаний для инспекции кода. Два инженера, которые смотрят код, ищут пути его улучшения, делятся своим опытом — этот замечательный процесс называется Code review. Именно эту неотъемлемую часть жизни разработчика я хочу разложить по полочкам.
Будут обсуждаться все основные компоненты Spring, разные виды контекстов и их конгломераты, интеграция Spring с другими популярными технологиями, такими как Hibernate, web, security, validation. Регистрация уже открыта и группа ограничена по размеру. Мы уже давно планировали расширить набор тренингов по проектированию и разработке.
Это предотвращает конфликты и позволяет нам тщательно проверить и протестировать наши изменения. Если возникнет какая-либо проблема или ошибка, мы можем ее исправить в изолированной среде, не затрагивая работу других членов команды. Это также обеспечивает гибкость и управляемость процесса разработки. Это, пожалуй, одно из самых заметных преимуществ. Когда разработчик предлагает изменения через пул реквест, другие члены команды могут внимательно изучить наш код.
В конечном итоге все зависит от конкретной задачи, возможностей языка, особенностей проекта, сроков… Список можно продолжать долго. Как тогда определить, когда какой подход использовать? По ходу работы над проектом наша команда представляла свои результаты условному заказчику, который задавал много вопросов, делал замечания и вносил правки в конечный функционал. Это научило меня смотреть на задачи шире, понимать, какую пользу в итоге они принесут конечному пользователю.
Вероятно, он нашёл те же проблемы, о которых кричал я, но он учёл, что Мэллори недавно начала работать в нашей команде. Благодаря проявленной в данный момент гибкости он поможет Мэллори улучшить качество кода в долгосрочной перспективе. То, что Боб первым делом разбил ревью на части, оказалось очень эффективным. Вспомните, что ревью застопорилось на три долгие недели страданий.
Я воспринял это как оскорбление, но такое отношение стало контрпродуктивным. Мне следовало сохранить объективное отношение, которое я пытаюсь принести во все свои ревью. Например, вы рассматриваете код от автора, у которого проблемы с написанием документации — и вдруг натыкаетесь на чёткий, лаконичный комментарий к функции. Он будет быстрее прогрессировать, если вы будете сообщать о правильных действиях, а не просто ждать того случая, когда он облажается — чтобы сообщить ему об этом. Если код низкого качества, решительно запросите разделение списка изменений.
Это позволит получить новый взгляд и опыт для всех сторон. Цель Code review — сделать код лучше, а не найти виновных. Чтобы повысить командный дух и понизить напряжение — используй слово Мы, вместо Ты. Нужно размыть конкретику о том кто написал код, гораздо важнее сосредоточится на решении проблем, которые были найдены в коде.
Анализаторы работают как в live-режиме, то есть при просмотре .cs-файла в Visual Studio, так и при компиляции. Анализаторы Roslyn применяются как расширение пакета стандартных правил компилятора. Предупреждения Roslyn-анализаторов также присутствуют в выводе в консоль при компиляции, а ошибки (предупреждения уровня error) блокируют сборку. В качестве дополнительной цели мне было интересно узнать об общем состоянии проекта.
Этот человек всегда стремится узнать что-то новое, в то же время с радостью делясь своим опытом и навыками. Следующей неожиданностью стала популярность сцены В. Мы сделали ее из части холла и задумывалась она как сцена “для гиков”. Такого ажиотажа на архитектуру и дизайн в Agile мы никак не ожидали. Во время второго доклада пришлось в экстренном порядке расширять сцену В и она заняла в полтора раза больше места, чем планировалось изначально. Появилась даже мысль поменять местами сцены С и В, но решили оставить как есть.
Конечно, абсолютно всех трудностей не избежать. Но вы хотя бы попытаетесь расположить к себе клиента, минуя эти «болевые точки». Конечно, разрабатывать по SOLID, писать оптимизированный код и быть в тренде технологий хорошему разрабу все так же необходимо. Я лишь хочу сказать, что без понимания конечного продукта даже очень хорошей технической базы будет мало.Также описанные выше обязанности частично берут на себя project manager и business analyst.
Думаю, это применимо ко всем компаниям, даже где еще не описаны engineering roles and principles. Можно долго дискутировать о том, сколько времени нужно, чтобы добраться до карьерных вершин. Неизменным остаётся одно — в IT почти невозможно исчерпать себя и достичь потолка. Постоянное развитие, стремление к крутым проектам, драйвовая команда, амбициозные цели и четкое понимание их воплощения — это и есть план реализации собственного профессионального потенциала.
В первой части я рассказал о подготовке и первых двух днях, насыщенных тренингами и мастер-классами. Теперь речь пойдет об основном дне конференции. Первый способ — это обновить конфигурацию железа на вашей рабочей машине. Заменить процессор на модель с большим количеством ядер и жесткий диск на SSD, также не помешает дополнительный объем оперативной памяти. Да и радикальное обновление железа не всегда доступно. После того как будут исправлены критические ошибки, вы, скорее всего, обратите внимание на количество предупреждений уровня warning.
Статические анализаторы были включены в проект и начали работать как quality gate, что позволило избежать лишних затрат на ревью кода, не прошедшего такую проверку. Первый недостаток, о котором хотелось бы упомянуть, — это его влияние на производительность. Стоит сделать оговорку, что у Resharper есть CLI-версия, которая может использоваться на CI, но ее нужно настраивать отдельно. Также Resharper имеет фиксированный набор правил анализа, которые нельзя расширять.
Будут обсуждаться как правильные, так и неправильные шаблоны, названия которых будут озвучены только после того, как качественный код будет написан. С этого тренинга вы унесете чужой жизненный опыт и собственноручно написанный красивый код, которым можно гордиться. Регистрация открыта, торопитесь занять себе место среди участников. Автор может ворчать по поводу разбиения списка изменений, потому что это нудная задача. Облегчите его бремя, предложив логичные границы разделения. Самый простой случай — когда список изменений затрагивает несколько отдельных файлов.
Есть такой термин “LeSS Flip” – это пу сти про переворот компании с ног на голову или с головы на ноги – как вам угодно. У нас была внутренняя шутка в Poster, как не допустить back flip, чтобы все не скатилось обратно. И, собственно, важно заметить такую вещь, что мы уже тогда больше года работали в удаленно в условиях Covid и логично было бы проводить LeSS Flip удаленно… Определяем ветки, для которых мы должны проводить code review и указываем, что работать с ними можно только через MR. 💼 Никаких скучных лекций, только 100% практики под руководством опытных менторов. Спасибо компании ScrumTrek, с которой у нас длительные партнерские отношения, за приглашение и проделанную работу.
IT курсы онлайн от лучших специалистов в своей отросли https://deveducation.com/ here.