Стремление каждого разработчика ПО — писать код. Всё, что от этого кода требуется — работать без ошибок и соответствовать задумке. Не секрет, что для более-менее сложного продукта требуется объединить несколько программистов в одну команду и заставить их работать вместе... И вот тут начинаются проблемы: каждый пишет по-своему и затрудняется понять код коллеги. Что в итоге? Падает эффективность, снижается качество продукта, увеличивается время вхождения для новых разработчиков.
Решить эти проблемы помогает контроль за стилем кода. В этом докладе я расскажу про то, какие практики вам могут пригодиться на выбранном пути и какие средства для этого есть в экосистеме Python.
Слайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Автоматизация тестирования как сервис, Павел Сташевский
Все мы хотим получать качественные сервисы. Мы хотим, чтобы обслуживание было быстрым, качественным и недорогим. Нам важно получить удовольствие от сервиса, будь то парикмахерская или бронирование авиабилетов. Автоматизация тестирования в этом плане практически не отличается от других сервисов, особенно, если она развивается в крупной компании. При этом нужно учесть стек технологий и уровень развития проекта и при этом не наступить на те грабли, что мы собрали при автоматизации тестирования других продуктов. Как строить такой сервис, как его адаптировать под различные команды и получать предсказуемый результат, именно про эти вопросы Павел расскажет в своем докладе. И все это на примерах из 2ГИС.
Когда код «убивает», или зачем нам тестировать наши продуктыОлег Стрекаловский
Доклад посвящен теме тестирования и надёжности ПО. Что вы получаете, когда забываете о качестве разрабатываемого продукта и "куда копать", если вы вдруг решите начать проверять то, что у вас разрабатывается.
Стремление каждого разработчика ПО — писать код. Всё, что от этого кода требуется — работать без ошибок и соответствовать задумке. Не секрет, что для более-менее сложного продукта требуется объединить несколько программистов в одну команду и заставить их работать вместе... И вот тут начинаются проблемы: каждый пишет по-своему и затрудняется понять код коллеги. Что в итоге? Падает эффективность, снижается качество продукта, увеличивается время вхождения для новых разработчиков.
Решить эти проблемы помогает контроль за стилем кода. В этом докладе я расскажу про то, какие практики вам могут пригодиться на выбранном пути и какие средства для этого есть в экосистеме Python.
Слайды с одноименного доклада на IT Global Meetup 2015, прошедшего в Санкт-Петербурге 6 июля.
Тезисы:
* Контроль за качеством кода - это необходимая процедура при работе нескольких человек в одной команде над продуктом из более чем сотни строк. Зачем это нужно? Каждый пишет код по-своему, ожидает понимания от остальных участников команды, но в жизни этого не происходит.
* Недостатки разнобоя в стиле написанного кода: увеличивается время ревью, усложняется внесение правок кем-либо кроме автора кода, увеличивается вероятность пропустить глазами ошибку.
* Основные шаги к решению этой проблемы: создание единого свода правил по оформлению кода (style guide), согласование процедуры разрешения конфликтных ситуаций относительно разночтений этих правил, устранение человеческого фактора в процессе оценки через автоматизацию.
* Что из экосистемы Питона может помочь? При составлении style guide можно взять за основу PEP8 и PEP257, дополнив их принятыми в команде конвенциями (какие кавычки использовать для строк и докстрингов, и т.д. и т.п.). Автоматизировать проверки можно как с помощью уже готовых утилит (pep8, flake8, pylint), так и написав свои с помощью встроенного в язык инструментария (модули ast, tokenizer, сторонние библиотеки для работы с кодом).
* Где производить проверки? Есть несколько возможных этапов:
- IDE разработчика
- Локальная VCS (working copy)
- Общая VCS
- Сервер Continous Integration.
В идеале проверки должны быть на каждом этапе, но при этом как можно меньше затруднять обычный рабочий процесс. Здесь стоит задуматься, какая комбинация из этих этапов лучше всего впишется в стиль разработчки команды.
* Если же нет достаточных ресурсов или проект находится
Автоматизация тестирования как сервис, Павел Сташевский
Все мы хотим получать качественные сервисы. Мы хотим, чтобы обслуживание было быстрым, качественным и недорогим. Нам важно получить удовольствие от сервиса, будь то парикмахерская или бронирование авиабилетов. Автоматизация тестирования в этом плане практически не отличается от других сервисов, особенно, если она развивается в крупной компании. При этом нужно учесть стек технологий и уровень развития проекта и при этом не наступить на те грабли, что мы собрали при автоматизации тестирования других продуктов. Как строить такой сервис, как его адаптировать под различные команды и получать предсказуемый результат, именно про эти вопросы Павел расскажет в своем докладе. И все это на примерах из 2ГИС.
Когда код «убивает», или зачем нам тестировать наши продуктыОлег Стрекаловский
Доклад посвящен теме тестирования и надёжности ПО. Что вы получаете, когда забываете о качестве разрабатываемого продукта и "куда копать", если вы вдруг решите начать проверять то, что у вас разрабатывается.
Гибкие методологии разработки набирают всё большую популярность среди команд разработчиков. Одним их основных инструментов достижения результата при этом является TDD - программисты стараются покрыть юнит-тестами как можно больше своего кода. Зачем тогда нужны тестировщики в гибких командах? Если все же нужны, то сколько? И как они должны тестировать? А как тестировать нетестируемое? В докладе разбираются данные вопросы на примере трех разных проектов.
По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Postroenie_procesa_testirovaniya
*Netpeak Talks — это серия ивентов от Netpeak Group в Одессе (при поддержке ассоциации продуктовых компаний IT-Products Odessa).
В рамках этих встреч есть возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
______________________
Тема #11: Как работать с legacy проектом, которому больше 10 лет?
Спикер: Денис Воскобойник — Team Lead отдела разработки внутренних продуктов в Netpeak Agency.
Тезисы видео:
✔ Построение процессов разработки.
✔ Подготовка команды к проекту.
✔ Внедрение / обновление стека технологий.
✔ Как рефакторить?
✔ Как понять, что нужно вынести отдельно и нужно ли это?
✔ Как тестировать то, что никогда не тестировалось?
✔ Code Review.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
Сайт: http://netpeak.group/talks
Facebook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
Как работать меньше и качественнее, как быть уверенным в своем коде? В чем преимущество написания тестов до функциональности? От чего TDD не спасет и как начать использовать этот подход? Этим вопросам будет посвящен мой доклад. Также из него Вы узнаете: какая связь между TDD и сноубордингом, почему Чак Норрис не пишет тесты, чем похожи страховка автомобиля и покрытие кода тестами.
По материалам конференции .NET разработчиков
Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review
Гибкие методологии разработки набирают всё большую популярность среди команд разработчиков. Одним их основных инструментов достижения результата при этом является TDD - программисты стараются покрыть юнит-тестами как можно больше своего кода. Зачем тогда нужны тестировщики в гибких командах? Если все же нужны, то сколько? И как они должны тестировать? А как тестировать нетестируемое? В докладе разбираются данные вопросы на примере трех разных проектов.
По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Postroenie_procesa_testirovaniya
*Netpeak Talks — это серия ивентов от Netpeak Group в Одессе (при поддержке ассоциации продуктовых компаний IT-Products Odessa).
В рамках этих встреч есть возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
______________________
Тема #11: Как работать с legacy проектом, которому больше 10 лет?
Спикер: Денис Воскобойник — Team Lead отдела разработки внутренних продуктов в Netpeak Agency.
Тезисы видео:
✔ Построение процессов разработки.
✔ Подготовка команды к проекту.
✔ Внедрение / обновление стека технологий.
✔ Как рефакторить?
✔ Как понять, что нужно вынести отдельно и нужно ли это?
✔ Как тестировать то, что никогда не тестировалось?
✔ Code Review.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
Сайт: http://netpeak.group/talks
Facebook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
Как работать меньше и качественнее, как быть уверенным в своем коде? В чем преимущество написания тестов до функциональности? От чего TDD не спасет и как начать использовать этот подход? Этим вопросам будет посвящен мой доклад. Также из него Вы узнаете: какая связь между TDD и сноубордингом, почему Чак Норрис не пишет тесты, чем похожи страховка автомобиля и покрытие кода тестами.
По материалам конференции .NET разработчиков
Доклад на hotcode.org о инструментах и методиках которые помогают нам повышать и следить за качеством PHP кода.
Среди затронутых тем:
- Стандарты в коде
- Средства для статического анализа кода.
- Git хуки
- Непрерывная интеграция
- IDE
- Code review