• Ад своими руками

      Многие говорят – рассказывать надо не только об успехах, но и о неудачах. Полностью с этим согласен — понимание своих неудач, их причин и последствий, иногда ценнее любых успехов.

      Был у меня в жизни такой опыт автоматизации, за который долгое время было стыдно. Не потому, что система плохо работала, или метаданные кривые были, или ТЗ не соответствовала — ровно наоборот. Все красиво, быстро, с полным внедрением во всей компании. С точки зрения формальных критериев это был полный успех.

      Но компанию, ее культуру это внедрение превратило в ад — бюрократический, системный и бессмысленный.

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

      Обо всем по порядку.
      Читать дальше →
    • Дзен и искусство поддержки чистого кода

      • Перевод


      Привет, Хабр!

      Говорить о чистом коде можно бесконечно, но следующая статья Дэйва Николетта очень метафорична и, надеемся, действительно достойна перевода. Пусть и немного «назидательна», о чем автор заранее преуведомляет читателей в оригинале статьи.

      Приятного чтения.
      Читать дальше →
    • Роль тимлида в рекрутинге

        Мы знаем, как часто общение потенциальных кандидатов с HR воспринимается в штыки. Именно поэтому, когда вы сами в поиске новых классных сотрудников, вы не можете переложить все заботы на кого-то другого и надеяться, что вам принесут рок-звезду на блюдечке.

        Для найма почти смертельно, если тимлид самоустраняется от процесса. Ваша личная история может так легко продать вакансию кандидату, как не сможет никакой HR-бренд. В условиях нехватки кадров, роль тимлида в рекрутинге одна из ведущих.



        Доклад Катерины Гавриловой на Saint TeamLead Conf дает вполне конкретные, не слишком трудозатратные рекомендации для руководителей, которые хотят нанять к себе в команду своих людей и не потратить на поиски полгода.

        Читать дальше →
      • Повышаем сознательность граждан

          Привет!

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



          Почему это важно сделать на бумаге? Потому что она без батарейки, не требует подключения к сети и содержит самые важные номера законов. В общем, бумага очень отказоустойчивая. Естественно, есть и PDF, которую можно просто залить на телефон.
          Читать дальше →
        • Джеффри Рихтер, Павел Йосифович, Грег Янг и все-все-все. Хардкор и архитектура на DotNext 2018 Moscow

            Совсем скоро, 22-23 ноября пройдёт следующий московский DotNext. Программа стала более определенной, поэтому хотелось бы поделиться несколькими наблюдениями про хардкорные и архитектурные доклады.

            Во-первых, есть часть докладчиков «без категории». Это те люди, которые сами по себе могли бы заполнить отдельную конференцию. Их имена вы знаете: Джеффри Рихтер, Павел Йосифович и Грег Янг.

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



            Читать дальше →
          • Прокачиваем производительность C# с Федерико Луисом

              Сегодня мы поговорим о производительности в C#, о способах прокачать её до неузнаваемости. Задача этой статьи — продемонстрировать такие способы повышения производительности, которые, при необходимости, вы смогли бы использовать самостоятельно. Однако эти методики не являются универсальными — вы не сможете использовать их в качестве общего решения любой задачи. Они хороши при наличии вполне конкретных сценариев использования, о которых пойдет речь ниже.


              В качестве прототипа статьи был выбран доклад Федерико Луиса, основателя компании Corvalius (они занимаются R&D). Работая над движком базы данных для одного из клиентов, они посвятили около четырёх лет задачам оптимизации. Такое количество времени требуется для того, чтобы применить разного рода техники и достичь хороших показателей оптимизации. Требуется выявить все проблемы и узкие места, проследить поведение софта в соответствии со всеми имеющимися метриками и так далее. Примеры из этой статьи основаны на работе над RavenDB 4.0 (известная NoSQL база для .NET), которую компания Федерико тюнила до уровня наносекунд во всевозможных сложных кейсах.


              Все примеры, которые встретятся вам в ходе рассказа (плюс некоторые дополнительные), доступны в специальном репозитории на GitHub.


              Осторожно, трафик! В этом посте присутствует огромное количество картинок — слайдов и скриншотов с видео в формате 720p. На слайдах присутствует важный для понимания статьи код.

              Читать дальше →
            • Коммуникации как performance-зона работы тимлида

                Участники Saint TeamLead Conf назвали доклад Александра Зизы одним из лучших вероятно потому, что от навыков коммуникации тимлида зависит многое, а развиты они, как правило, не очень хорошо.

                Рассказ будет состоять из четырех смысловых блоков:

                1. Про коммуникацию. Коснемся того, что такое коммуникация, в чем основная проблема с коммуникацией, почему о ней так много говорят и пишут. Все ученые философы мира, начиная с Аристотеля пытаются решить эту задачу, но окончательного решения «взять и сделать» до сих пор нет.

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

                1. Мастерство: 4 уровня развития компетентности. Здесь поговорим про личное мастерство руководителя, который осуществляет свое управленческое воздействие через коммуникацию.

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




                Ниже вы найдете видео и текстовую версию этого выступления, но просто так посмотреть или прочитать его недостаточно. Надо постараться тут же начать применить подходы на практике, и Александр вас в этом убедит. Фактически это часть программы по развитию управленческих компетенций, по прокачке навыков тимлида с подробным руководством к действию и заготовкой для домашнего задания.
                Читать дальше →
                • +25
                • 8,5k
                • 7
              • Первые дни в команде разработки — как это бывает у нас

                  Когда только собираешься выйти на новую работу, хочется в деталях представлять себе, что тебя ожидает. В этом посте я расскажу, как обычно строится первый рабочий день и первые недели в нашей команде, а также упомяну несколько мифов об Авито.


                  Читать дальше →
                • Особые исключения в .NET и как их готовить

                    У разных исключений в .NET есть свои особенности, и знать их бывает очень полезно. Как обмануть CLR? Как остаться в живых в рантайме, поймав StackOverflowException? Какие исключения перехватить вроде бы нельзя, но если очень хочется, то можно?



                    Под катом расшифровка доклада Евгения (epeshk) Пешкова с нашей конференции DotNext 2018 Piter, где он рассказал про эти и другие особенности исключений.
                    Читать дальше →
                  • Тайм-менеджмент, или Эффективное управление хаосом

                      Каждый в той или иной степени ощущал нехватку времени, давление сроков, испытывал стресс от вынужденной спешки и зарекался: уж в следующий раз я точно буду тщательнее следить за временем, смогу заранее всё запланировать, не буду распыляться на много задач или, наоборот, превращусь в супермена и переделаю все дела сразу. Так какая же стратегия наиболее эффективна? Спешить или не спешить? Делать последовательно или параллельно?   

                      Источник
                      Читать дальше →
                    • Как дать адекватную оценку времени, когда неопределённость бьёт по башке

                        Большинство людей не умеют адекватно оценивать сроки выполнения задач. Ой как это заставляет порой понервничать… Тут и «дэдлайн подкрадывается незаметно». И перестраховка в 500% на всякий случай (все равно не хватает). И отжимание «заведомо раздутых сроков», чтобы исполнитель пообещал чего-то более приемлемого. И невнятные бормотания вместо конкретных цифр.

                        image

                        В этой статье собраны и структурированы принципы и методы, с помощью которых можно научить себя и других давать адекватные оценки. В начале — общие принципы и чуть-чуть математики. В конце — конкретика для студий.
                        Читать дальше →
                      • Internal DSL & Expression Trees — динамическое создание функций serialize, copy, clone, equals (Часть I)


                          Статья посвящена двойному применению API Expression Trees — для разбора выражений и для генерации кода. Разбор выражений помогает построить структуры представления (они же структуры представления проблемно-ориентированного языка Internal DSL), а кодогенерация позволяет динамически создавать эффективные функции — наборы инструкций задаваемые структурами представления.


                          Демонстрировать буду динамическое создание итераторов свойств: serialize, copy, clone, equals. На примере serialize покажу как можно оптимизировать сериализацию (по сравнению с потоковыми сериализаторами) в классической ситуации, когда "предварительное" знание используется для улучшения производительности. Идея в том, что вызов потокового сериалайзера всегда проиграет "непотоковой" функции точно знающей какие узлы дерева надо обойти. При этом такой сериализатор создается "не руками" а динамически, но по заранее заданным правилам обхода. Предложенный Inernal DSL решает задачу компактного описания правил обхода древовидных структур объектов по их свойствам/properties (а в общем случае: обхода дерева вычислений c проименованием узлов) . Бенчмарк сериализатора скромный, но он важен тем, что добавляет подходу, построенному вокруг применения конкретного Internal DSL Includes (диалект того Include/ThenInclude что из EF Core) и применению Internal DSL в целом, необходимой убедительности.

                          Читать дальше →
                        • RxJS: реактивное расширение для фронтенд разработки

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

                            Итак, прошу любить и жаловать, Виктор Русакович. Родом из Минска, работает в компании GP Software.travel.
                            Виктор последние пять лет занимается (в основном) фронт-енд разработкой. Ну а начинал, как и большинство из нас, с jQuery.

                            Потом был backbone, angular v1. Последние полгода он работает в проекте на Redux/React.js (часто их путают с RxJS, но это немного другое).


                            Читать дальше →
                          • Долговечность лжи

                            • Перевод

                            Самый знаменитый психологический эксперимент всех времён оказался мистификацией. Почему мы не можем уйти от стэнфордского тюремного эксперимента?




                            Поздним вечером 16 августа 1971 года двадцатидвухлетний Дуглас Корпи, тощий, невысокий выпускник Беркли с копной бледных нечесаных волос, закрытый в тёмной комнате подвала стэнфордского департамента психологии, без одежды, за исключением тонкой белой рубахи с номером 8612, орал во всю глотку.

                            «Господи, да я весь горю! – кричал он, яростно пиная дверь. – Вы что, не понимаете? Я хочу выйти отсюда! Это полный капец! Я не выдержу ещё одну ночь! Я просто больше не выдержу!»

                            Это был определяющий момент того, что стало, возможно, самым знаменитым психологическим исследованием всех времён. Узнали ли вы о знаменитом "стэнфордском тюремном эксперименте" (СТЭ) Филиппа Зимбардо на вводном занятии по психологии, или впитали эту информацию из культурного эфира – вы, наверняка, слышали эту историю.
                            Читать дальше →
                          • Открытая трансляция главного зала DotNext 2018 Piter



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

                              Какие доклады попали в открытую трансляцию? Полный список с описаниями — под катом, а перед ним отметим пару вещей. По итогам двух предыдущих DotNext Дилан Битти оказался явным зрительским фаворитом, поэтому откроет DotNext выступлением о том, как работают привычные нам технологии. А буквально вчера, когда доклад уже был полностью готов и согласован, Дилан открыл для себя тонкости кодировки KOI8-R и теперь увлечённо переделывает часть презентации!

                              Cменит его в главном зале Андрей Александреску — и это фигура такого масштаба, что мы сами не можем удержаться от селфи с ним. А следующим будет Саша Гольдштейн, которого представлять его дотнетчикам тоже не требуется. В общем, лайн-ап подобрался звёздный.
                              Читать дальше →
                            • Обзор программы конференции DotNext 2018 Piter



                                Конференция: DotNext 2018 Piter
                                Дата: 22-23 апреля 2018 года
                                Место: Санкт-Петербург, Гостиница «Park Inn by Radisson Пулковская»
                                Всего пара дней осталась до следующего DotNext. Над программой и докладами была проведена колоссальная работа — ранее мы уже писали об этом в анонсе конференции и отдельной статье.

                                В этом хабрапосте мы свели воедино всю-всю программу в виде одного большого списка, с описаниями докладов и докладчиков. Можно уже сейчас начинать думать, на какие доклады стоит пойти — ведь придется выбирать между тремя параллельными треками. Кроме того, все еще остается возможность приобрести билеты.

                                Подробное описание программы — под катом.
                                Читать дальше →
                              • Управляем большим длинным проектом: почему важно разговаривать словами



                                  У меня в подчинении был один руководитель проектов, который никогда не собирал совещания. Он был немного хикки и обладал исключительным перфекционизмом (насколько это возможно для ПМа), что выражалось в стремлении всё происходящее фиксировать в почте. Письма были очень детальные, на несколько страниц: содержали все нужные описания, в них фиксировались все обещания, сроки, хотелки, большое внимание уделялось договорённостям и упрёкам в безответственности исполнителей. В общем, идеальные письма, последовательно излагающие ход событий, — хоть книгу по ним пиши.

                                  Но проект шёл медленно: надо же написать письма, потом дождаться ответа и снова написать. Поскольку он был длинным, было ярко заметно, как на третий месяц начали накапливаться задержки и технический долг. Мой коллега продолжал писать письма, фиксируя каждое обязательство и каждый косяк и регулярно перенося сроки. Ситуация накалялась.

                                  Я регулярно просил его собирать руководителей команд, работающих над проектом (инженеров по железу, разработчиков и так далее). Исходя из моего опыта, проблема, скорее всего, была в том, что команды не менялись информацией между собой.

                                  Он собрал совещание, но на нём молчал. И все молчали. Точнее, докладывали статусы и поднимали проблемы. Результат совещания — он написал ещё одно длинное письмо с требованиями и фиксацией статусов с косяками.

                                  Задержки продолжили копиться.
                                  Читать дальше →
                                • Где лучше жить программисту. Сравниваем 9 стран

                                    Предлагаю вашему вниманию сводную таблицу-сравнение под кодовым названием «Лучшая страна для программиста», которую я подготовила с помощью IT-блогеров из разных стран. В список попали Германия, США, Испания, Канада, Австралия и Австрия, а также добавила в список Англию, Швейцарию и Нидерланды.

                                    В этой статье страны сравнивались по следующим параметрам:

                                    1. Зарплаты программистов
                                    2. Налоги
                                    3. Стоимость жизни
                                    4. Социальное обеспечение
                                    5. Развитость рынка IT
                                    Читать дальше →
                                  • Как стать фронтенд-разработчиком в 2018 году

                                    • Перевод
                                    Камран Ахмед, автор материала, перевод которого мы сегодня публикуем, говорит, что занимается фуллстек-разработкой уже 5 лет и в настоящее время работает на должности ведущего инженера в компании tajawal. Там ему приходится заниматься многими вещами. Ему, по долгу службы, надо быть в курсе того, что происходит в мире веб-разработки, кроме того, одна из его задач заключается в том, чтобы поддерживать знания и навыки других разработчиков в хорошем состоянии. По его словам, наблюдение за развитием технологий — это не только его работа, но и хобби. Ему приходилось видеть сложности, с которыми сталкиваются начинающие программисты (и опытные — тоже), когда речь заходит об оперативном освоении новшеств. Камрану, в прошлом году, часто приходилось отвечать на вопросы о том, в чём нужно ориентироваться для того, чтобы оставаться современным и востребованным программистом. В результате он, для того, чтобы помочь себе и другим, решил подготовить схемы, ссылки на которые отвечали бы на большинство вопросов, которые ему обычно задают.

                                    image

                                    Читать дальше →
                                  • Применение Теории Ограничений для постановки процесса

                                      В деятельности менеджера всегда есть какая-то доля работы связанная с постановкой бизнес-процессов. Как правило это необходимо когда появляются новые потребности компании, бОльший оборот, лучшая стабильность по денежному потоку или просто внедрить каике-то улучшения. Иногда бывает, что мы сталкиваемся только с симптомами или нежелательными явлениями, когда что-то идет не так: «продалбываем» сроки, заказчик недоволен, слишком большие расходы на содержание инфраструктуры или иные издержки. Между этими двумя позициями есть общая деталь: если есть потребность к изменению значит что-то эти улучшения сдерживает, и это можно расценивать как нежелательное явление. Когда мы начинаем разбираться в ситуации, то можем собрать множество разрозненных фактов из которых понятно только то, что изменения требуются. но с чего начать? Как минимальными усилиями провести изменения?


                                      И тоже самое можно сказать о конфликтах в команде. Когда видишь конфликт интересов но решить его в лоб, административным рычагом, будет не самым правильным выходом. Нужно искать корневую причину конфликта и решать ее.


                                      Алгоритм решения
                                      • +11
                                      • 9,8k
                                      • 4