понедельник, 15 июня 2015 г.

о категоризации тестов

Раньше мы запускали тесты все и всегда, не задумываясь о том, а нахрена.
с недавнего времени ввели категоризацию. идея не нова, просто на каждый тест навешали список тегов.

что это такое
суть в том, что перед каждым тестом мы на него вешаем атрибут с тегом (пример выполнен на языке С# с фреймворком запуска Gallio MBUnit).

        [Test]
        [Category("Contact-List")]
        [Category("Presence")]
        [Category("Chat")]
        public void  CheckUserStatusInContactListTest()
        {
                   //...
        }

Получилась примерно такая картинка.
для сравнения, раньше тесты были сгруппированы по пространствам имен и именам классов, в которых они были описаны. главным отличием лично мне нравится считать то, что класс, в котором описан тест, один. а тегов на тесте может быть много. это дает нам бОльшую гибкость при запуске.

коротко о впечатлениях:
1. стало реально удобнее. чисто эстетически приятнее работать с тестами, когда они разбиты по тегам.
2. стало быстрее, за счет того, что перед тем, как бездумно жмякать на кнопки запустить все, ты подумал, а что реально тебе нужно, и что можно запустить на всякий случай, а что нахер не надо. так вот, третья группа реально была якорем. много тестов, часть из которых еще и проходила не с первого раза. в результате тратилось время на прохождение, потом на анализ результатов, потом на перезапуск.

короче, я доволен. с этим, разумеется, нужно быть довольно осторожным, ввиду того, что однажды есть риск не запустить то, что будет нужно. но это, как говорится, уже совсем другая история

суббота, 10 января 2015 г.

Отзыв на книгу Р.Мартин "Идеальный программист. Как стать профессионалом в области разработки ПО"

Купил книгу на сайте издательства Питер в электронном виде. Насколько я понял, в печать ее пока не сдали. Но это однозначный мастрид, если вы работаете в области IT.
Полезность: высокая.
Легко ли читать: легко.

Хорошая книга. И хотя временами это сборник мемуаров капитана Очевидность, всегда полезно получить краткое руководство на бумаге на тему "как делать свою работу хорошо и не раздражать коллег и руководство".

Тем не менее, не везде лично я мнение автора разделяю. К примеру, в главе про оценку я с автором не согласен. Закон больших чисел, который он приводит в качестве примера для более точной оценки, противоречит закону Паркинсона про то, что работа занимает все отведенное ей время. Тут я, скорее, соглашусь с дядькой Голдраттом, который в "Критической цепи" довольно детально объяснил, почему подстраховка в оценке задач является причиной того, что только 30% проектов сдаются в срок.

Где-то мысли автора пересекаются с проповедями Макса Дорофеева на тему того, что если делать качественно, то получится и в срок, и дешево, и со всеми плюшками.

Особенно в душу запала фраза "Выберите методы, с которыми вы работаете в кризисных ситуациях. А потом начните использовать их постоянно". Не знаю, почему, но это прям за живое задело. А вообще, в книге много полезного. Там и про то, как говорить "нет", что очень важно в повседневной работе программиста. Там и про то, как подходить к планированию. И очень очень много про командную работу.

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

В остальном, прекрасная книга, обязательная к прочтению любому человеку, который время от времени пишет код или работает с теми, кто пишет код.

четверг, 27 ноября 2014 г.

10 ошибок при встрече 1:1

Сходил вчера послушать Сашу Орлова, когда он вещал онлайн про встречи 1:1 и то, как сделать этот инструмент эффективным для работы.
Поскольку сам я заражен бациллой полезности этих встреч уже около года, я просто не мог пропустить сие мероприятие. Хотя, несмотря на то, что практикую такие посиделки достаточно давно, сразу хочу заметить, что инструмент подойдет далеко не всем.

Недавно наткнулся на книгу "Идеальная IT-компания. Как из гиков создать команду программистов". Так вот там описывались три кита командной работы: скромность, уважение и доверие. К чему я это все. Если кто-то из вас к собеседнику не обладает хотя бы одним из этих китов, то встреча не будет максимально продуктивной. Люди могут просто не открыться. Но это не значит, что ее не стоит проводить. Просто нужно быть готовым к тому, что она может пойти с определенным отклонением от сценария. Кроме того, скромность, уважение или доверие друг к другу на таких встречах вполне себе можно прокачать. Но это я уже отвлекся в лирику.

О чем это было
Сначала говорили о том, зачем это все нужно. Говорили достаточно детально, поскольку одна из основных проблем того, что люди этим не занимаются - это то, что они не понимают, зачем. Причем они могут где-то в глубине сознания понимать, что наверно это штука клевая, но, не понимая цели, они точно не смогут донести до начальника или тем более подчиненного.
Дальше обсуждали разного рода ошибки, которые приводят к тому, что инструмент работает не так, как надо, или не работает вообще. Там было и про подготовку и про продалбывание назначения встреч и про "забыли про прошлые договоренности", и про "что делать, когда людей очень много".
Ну и конечно Орлов был бы не Орловым, если бы помимо формулирования ошибок не рассмотрел, как их решать на конкретных примерах.
Сразу за вебинаром последовали четкие рекомендации, что нужно сделать прямо сейчас.

Не могу сказать, что весь материал был для меня нов и свеж, но кое-какие нововведения я буду пытаться применить. Главным образом моя практика расходится с Сашиной теорией в периодичности встреч. Мы проводим такие мероприятия регулярно, но примерно раз в 1-1.5 месяца. Саша же рекомендовал это делать раз в две недели. Пока что мучаюсь между желанием попробовать и опасениями просто не набрать материала для такой периодичности.

Короче, было очень круто. особенно понравилось то, что вопросы рассматривались как с позиции начальника, так и с позиции подчиненного. Лично мне последнее помогло гораздо больше.
Уж не знаю, выложат ли ребята запись в открытый доступ и разрешат ли поделиться, но если разрешат, то однозначно рекомендую к просмотру людям, у которых есть или начальники, или подчиненные :-).
Ссылку ребята любезно предоставили http://qps.ru/3VTmN





воскресенье, 23 ноября 2014 г.

Простейшая схема работы Join в SQL

Совершенно случайно на просторах вконтактика наткнулся на простейшую схему с джойнами. По-моему, сделано довольно прикольно. Надеюсь, начинающим изучать SQL это будет полезно

понедельник, 17 ноября 2014 г.

Обзор на книгу "От знаний к навыкам" Лемов Д., Вулвей Э., Ецци К.

Признаться, ожидал от этой книги советов по увеличению персональной эффективности. На деле оказалось, что она немного о другом. Тем не менее, книга безумно крута, и большое спасибо Леше Пименову за то, что когда-то давно ее порекомендовал.

Полезность: выше среднего
Легко ли читать: легко

Книга представляет собой 42 совета разделенные на 6 логических частей о том, как лучше построить процесс обучения, а также о развитии способностей (как своих, так и чужих). Написана она учителями с многолетним опытом и большинство примеров написаны как раз на основании ситуаций в школе.
Тем не менее все это дело очень легко проецируется на рабочий процесс. Для себя счел полезными и легко применимыми в работе около 15 из 42 советов, часть из которых уже нашла свое отражение в работе. Ребята здесь вспомнили и про принцип Парето, и про то, что работа должна приносить удовольствие, и про то, что фокусироваться нужно на решении, а не на проблеме, и одно из моих любимых – про выполнение простых рутинных задач в автоматическом режиме с наполовину выключенным мозгом. И да, порой рекомендации выглядят довольно банальными, все же по моему субъективному мнению достоинств книги это не умаляет.

Отдельный плюс в карму авторам за главу про обратную связь. И хотя нового я для себя там не узнал почти ничего, мой щенячий восторг обусловлен совпадением личного мнения по этому вопросу с авторским. Всегда приятно встретить единомышленников)).

Лично я рекомендовал бы к прочтению всем, кто занимается обучением новых сотрудников, а также эйчарикам и (!!сюрприз-сюрприз) спортсменам. Очень многое из книги можно и даже нужно спроецировать на тренировочный процесс, а отдельные примеры нередко приводятся с упоминанием Хави или Леонеля Месси.


Чтобы добавить немного конкретики в первое представление читателей об этой книге я подготовил майндмапу, которая содержит в себе все 42 навыка и краткие пояснения к каждому из них. лежит тут