• Data Context Interaction (DCI) — эволюция объектно-ориентированной парадигмы

    • Перевод
    Слишком часто стала мелькать в западных блогах и твиттере аббревиатура “DCI”. Меня удивил тот факт, что на хабре по данной тематике почти нету информации, лишь в Ruby NoName Podcast S04E09 упоминалось об этом. Любопытство взяло вверх, и я решил узнать об этом загадочном слове побольше. В процессе поиска я наткнулся на хорошую статью, написанную на английском моим земляком, Виктором Савкиным. Данная статья без обильной теории, на практических примерах показывает, что из себя представляет DCI. Далее повествование будет идти от лица Виктора.
    Читать дальше →
  • Отношения классов — от UML к коду

    Введение

    Диаграмма классов UML позволяет обозначать отношения между классами и их экземплярами. Для чего они нужны? Они нужны, например, для моделирования прикладной области. Но как отношения отражаются в программном коде? Данное небольшое исследование пытается ответить на этот вопрос — показать эти отношения в коде.
    Читать дальше →
  • Как я дизайн монетизировал. 15 инсайтов о создании цифрового продукта, который продается


      Итоги года для UI дизайнера, у которого не было ни одного интересного проекта в портфолио и он решил создать свой собственный продукт для популярной теперь дизайн-платформы Figma.

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

      Я не работал в больших компаниях, не устраивал-дизайн спринты и не сидел бок о бок с крутыми парнями в коворкингах. Я в дизайне уже не менее 16 лет, я самоучка, и однажды у меня не оказалось ни одного интересного проекта в портфолио, который бы круто работал и современно выглядел. Все мои последние годы стабильного фриланса — это клиенты с обычными заказами. Они приходят и уходят. И 80% из них позднее выбрасывают в топку всё ваше творчество. Потому что по законам рынка это число терпит неудачу после запуска проекта.
      Читать дальше →
      • +10
      • 4,4k
      • 7
    • Завершающий курс специализации по Python от Mail.ru Group



        Python — простой и гибкий язык, применяемый во многих областях современной разработки. На нём создают веб-приложения, пишут игры, анализируют данные и выполняют многие другие задачи. Mail.ru Group запустила на платформе Coursera специализацию «Программирование на Python», состоящую из четырех курсов — от погружения в язык до Data Science. Мы хотим, чтобы изучать и углублять свои знания в языке могли и новички, и студенты, и опытные разработчики.

        Первая из четырех частей, «Погружение в Python», стартовала еще в 2017 году. В августе слушателям стали доступны вторая и третья части: «ООП и паттерны проектирования в Python» и «Создание Web-сервисов на Python». А в декабре стартовала четвертая, заключительная часть специализации «Python для анализа данных».

        Все курсы подготовлены при поддержке МФТИ, их авторы — сотрудники МФТИ и Mail.ru Group.
        Читать дальше →
        • +28
        • 8,3k
        • 2
      • Прототипируем кодом. Лекция на FrontTalks

          С праздниками, друзья! Готовясь к началу нового рабочего года, мы завершаем серию материалов с конференции FrontTalks 2018. Это лекция Андрея Саломатина filipovskii_off — разработчика из компании Polychops. Андрей предлагает сбалансированный подход к прототипированию: чтобы из ремесленников, которые выполняют заказы, превратиться в исследователей — научиться работать с неопределённостью и, возможно, сохранить рассудок даже без четкого плана.


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

          Чего бы нам хотелось вместо этого? Пользователь, который опишет эту темную комнату, который знает ее гораздо лучше, чем мы сами.
          Читать дальше →
        • 42 оператора расширенного поиска Google (полный список)

          • Перевод
          • Tutorial
          Те, кто давно занимается поисковой оптимизацией, хорошо знают об операторах расширенного поиска Google. Например, почти все знают об операторе site:, который ограничивает поисковую выдачу одним сайтом.

          Большинство операторов легко запомнить, это короткие команды. Но уметь эффективно их использовать — совсем другая история. Многие специалисты знают основы, но немногие по-настоящему овладели этими командами.

          В этой статье я поделюсь советами, которые помогут освоить поисковые операторы для 15 конкретных задач.
          Читать дальше →
        • Как расставить приоритеты в разработке. Опыт внедрения GIST + ICE в Яндекс.Маркете

            Рассмотрим одно из подразделений Яндекс.Маркета. Оно довольно крупное — 85 человек. Внутри подразделения есть несколько команд. Команды либо занимаются функциональными частями Маркета, либо решают какую-то большую пользовательскую задачу. Вот одна из них: изменить сам сервис Яндекс.Маркет и интернет-торговлю в регионах так, чтобы местным пользователям стало удобнее решать свои проблемы.


            С чего командам начать? Как объяснить всем вокруг, почему мы делаем одно, а не другое? Как донести до каждого инженера, зачем он занимается своей текущей задачей? Как вкладывать силы в то, что действительно улучшит мир вокруг, и не тратить время на то, что не нужно? Как сделать работу команд прозрачной друг для друга?


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


            Читать дальше →
            • +22
            • 5,3k
            • 5
          • Разработка доступных интерфейсов

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

              Хорошие примеры доступных сайтов у Пенсионного Фонда и Госуслуг. Чтобы ваш ресурс стал доступным, такой масштабной работы, как для ПФР, не требуется. Достаточно применить три принципа, добавить в закладки два сайта с подробной документацией по разработке доступных сайтов и немного адаптировать рабочий процесс под новую парадигму. В результате ваши ресурсы перейдут на новую ступень: будут доступными и удобными для людей с ограниченными возможностями.

              О том, как быстро и эффективно разрабатывать доступные ресурсы сегодняшняя расшифровка доклада Сергея Кригера на Frontend Conf.

              Читать дальше →
              • +30
              • 5,4k
              • 4
            • Delivery Manager — новая роль в мире Agile

              • Перевод
              Всем добрый день!

              До конца года осталось уже почти всего ничего, но всё же несколько новинок в курсах у нас будет. Один из таких новый курсов — «Agile Delivery Manager», который создала Марина Арефьева. По традиции подготовили для вас открытые уроки и интересные материалы. Сегодня познакомимся о виденье, что же такое Delivert Manager и с чем его едят.

              Поехали.

              Рич Льюис (Rich Lewis) — лучший, с кем я когда-либо работал. Когда я только встретил его, он был бизнес аналитиком и скрам-мастером небольшой команды. Он справлялся со своей работой, но явно был способен на большее. Я предложил ему должность Delivery Manager в программе, которой занимался в то время.

              О роли Delivery Manager мы говорим не часто. Конечно, это не часть “семьи” Agile, где доминирует терминология Scrum. Владелец Продукта; Скрам-мастер; Все остальные с ярлыком “Разработчик”. Вот, пожалуй, и все.

              Тем не менее, название должности — Delivery Manager, существует. Например, в The Government Digital Service (GDS) в Великобритании и все большем количестве компаний в США.

              Читать дальше →
            • Советы и рекомендации по портфолио UX-дизайнера

              • Перевод
              Простая и понятная статья от Micah Bowers о том как лучше подойти к созданию портфолио UX дизайнеру, чтобы получить профит.

              «То как вы поднимаетесь на гору, важнее факта достижения вершины».



              В своих мемуарах Let My People Go Surfing Ивон Чуйнард, основатель глобального наружного бренда Patagonia, пишет:

              «То как вы поднимаетесь на гору, важнее факта достижения вершины».

              Именно в мире UX дизайна методология важна более всего, а особенно в поиске клиентов и карьерных возможностях. Один из лучших способов для разработчиков UX продемонстрировать методологию и навыки профессиональное решение проблем — через хорошо продуманное сайт-портфолио.

              Вместо того, чтобы думать о портфолио как демонстрации навыков — «Вот что я могу сделать» — дизайнеры UX должны воспользоваться возможностью, чтобы проиллюстрировать процесс и создать восхитительный пользовательский опыт: «Вот как я использую дизайн для решения проблем людей».

              Подобно тому как люди стремятся работать в тех отраслях в которых они хотят работать, дизайнеры должны адаптировать портфолио к определенной аудитории. Почему?
              Читать дальше →
            • Microsoft предлагает альтернативу пользовательским персонажам

              • Перевод


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

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

              Но сейчас мы начинаем осознавать, в чем состоит отрицательная сторона персонажей. Они по природе своей являются амальгамацией, усредненным набором атрибутов, которые мы приписываем своему среднему пользователю. А в реальности средних пользователей попросту не бывает.
              Читать дальше →
              • +32
              • 9,2k
              • 3
            • Пример работы с методом ICE от менеджера продуктов Google и Microsoft

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

              Эта статья – перевод материала с сайта Hackernoon.com. Ее автор предлагает применение собственного инструмента оценки приоритетов в рамках метода ICE Scoring. В этой статье детально описан подход и разобран простой и доступный пример, понятный любому менеджеру продукта.

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

                Управление продуктом становится важнейшей частью функционирования большинства компаний. Однако для некоторых стартапов и даже крупных команд процесс управления продуктом остается не до конца понятным явлением.

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

                image
                Читать дальше →
              • Как убедиться в компетенциях ПМа на ИТ-проект?



                  У нас проект по разработке и внедрению новой ИТ-системы! И нужен ПМ…
                  Случалось? Куда ж без этого. И вроде бы рынок насыщен всевозможного рода руководителями проектов.
                  — Выбирай! У всех прекрасный богатый опыт. Есть ПМ-ы с опытом внедрения проектов в Строительстве и Оборонке. Есть ПМ-ы с опытом внедрения медицинских проектов. Есть даже в Авиастроительстве! Что тебе еще надо!? Уровень ответственности и требовательности в этих отраслях – полный отвал башки.
                  — А он знает ИТ?
                  — Зачем тебе это?! У него прекрасные знания методологии ведения проектов…это – главное!
                  Читать дальше →
                • Поэтапное руководство по алгоритму автоматического размещения из CSS Grid

                  • Перевод


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

                  В этом руководстве мы рассмотрим все этапы алгоритма автоматического размещения элементов из модуля CSS Grid Layout. Каждый этап управляется с помощью свойства grid-auto-flow. В своих других статьях “Introducing the CSS Grid Layout” и “Seven Ways You Can Place Elements Using CSS Grid Layout” автор рассмотрел спецификацию CSS Grid и проанализировал, как с помощью Grid можно позиционировать элементы на веб-странице. Однако в этих материалах в сетке явным образом задавалась позиция единственного элемента. Остальные элементы размещались с помощью некоего алгоритма.

                  Теперь разберем этот алгоритм. И когда в следующий раз вы обнаружите, что элемент оказался не там, где нужно, вам не придётся чесать затылок и удивляться, как так произошло.
                  Читать дальше →
                  • +16
                  • 9,9k
                  • 1
                • Как создать надёжную игровую механику, пользуясь только Excel: моделирование и оптимизация решений

                  • Перевод
                  image

                  Мы занимаемся поиском, а не итерациями


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

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

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

                  Такие «итерации» совсем непохожи на линейные изменения, которые обычно происходят в «итерациях» компьютерного кода; гораздо больше они напоминают поиск в лабиринте со множеством резких поворотов и вынужденных возвратов назад. Часто они приближают нас к цели, но часто оказывается непонятно, улучшилась ли от них игра. Иногда обнаруживается, что изменения дизайна, которые, по нашему мнению, должны были улучшить игру, имеют непредвиденные изъяны и нам нужно откатить них или попробовать заново.
                  Читать дальше →
                  • +21
                  • 10,8k
                  • 7
                • Почему вам стоит перестать использовать продуктовые роадмапы и попробовать GIST

                  • Перевод

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




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

                  Читать дальше →
                  • +23
                  • 14,4k
                  • 8
                • [ Психология дизайна ] — The Psychology of Design

                  • Перевод


                  Существует ряд дебатов о том, какие дополнительные навыки должны изучать дизайнеры. Должны ли дизайнеры кодироваться уметь писать код и понимать бизнес? Эти навыки невероятно ценны, но, возможно, не являются существенными. Тем не менее, я бы сказал, что каждый дизайнер должен изучить основы психологии. Как люди, у нас есть основной «план» того, как мы воспринимаем и обрабатываем окружающий мир, а изучение психологии помогает нам определить этот план. Как дизайнеры, мы можем использовать психологию для создания более интуитивных, ориентированных на человека продуктов и опыта. Вместо того, чтобы принуждать пользователей подстраиваться под дизайн продукта или опыта, мы можем использовать некоторые ключевые принципы из психологии в качестве руководства для проектирования дизайна по модели поведения людей.

                  Но проблема в том, с чего начать? Какие принципы из психологии полезны? Каковы примеры этих принципов в работе? В этой статье мы рассмотрим основы и обсудим этические последствия использования психологии в дизайне.
                  Читать дальше →
                  • +20
                  • 11k
                  • 3
                • Как собеседует Google: чему быть, чего не миновать

                    В последние недели участилась волна статей на хабре о том, как проводятся собеседования.

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

                    Нет, я не стал рекрутером. Процесс собеседования предполагает сперва разговор с рекрутером. Это общая беседа “что-куда-зачем” (то есть описание процесса для вашего конкретного случая) и тот самый всеми любимый скрининг из опросника с несколькими вариантами ответов. Скрининг мне в своё время показался весьма базовым, подозреваю, что вы отвечали на такие вопросы уже сотню раз. Затем собеседования будут проводиться уже инженерами — вашими будущими коллегами (близкими или далёкими, это уже как получится, наша планета весьма небольшая).

                    Читать дальше →
                  • Дизайн цифровых продуктов. Цель, роль, метод

                      Мне довелось создать с нуля подразделение дизайна в Альфа-Банке и поработать дизайн-директором. На это ушло пять лет. В результате у нас получилась дизайн-система (в коде) и подход к диайну цифровых продуктов. Собственно, про этот подход я и расскажу здесь. Точнее, это — текст лекции, которую я читал в начале 2018 года в Москве, Перми, Новосибирске и Петербурге. В мае я принял решение покинуть банк, теперь дошли руки опубликовать текст лекции.

                      В Альфа-Лаборатории мы строили процессы продуктовой разработки как раз по скраму, где каждая команда является самостоятельной единицей, способной делать поставки так быстро, как смогут (в идеале — недельными или двухнедельными спринтами).

                      Важная оговорка: весь текст рассказывает о работе дизайнера в скрам-команде. Это очень важная оговорка, которую надо держать в голове. На лекциях я это упоминал мимоходом, как само собой разумеющееся, поэтому кто-то мог потерять смысл рассказа. Для канбана и традиционных подходов (договор-дизайн-верстка-сборка-акт) такой метод скорее всего может даже навредить. Поэтому, если вам понятие «скрам» ново, изучите подход — может быть кому-то это поможет лучше организовать работу у себя. По ходу текста я насыпал ссылок на статьи и книги.

                      В конце 2017 года в Лаборатории было около 30 команд (может больше), и почти для каждой нужен был свой дизайнер. Даже на таком относительно большом масштабе важнее работать на уровне стратегии, верхнеуровневых понятий и подходов, потому то «контролировать» работу 30 дизайнеров, которые работают над разными продуктами и в разных командах и с разной скоростью технически качественно не получится. Тактику определяет каждая команда самостоятельно, в этом вся прелесть.
                      Читать дальше →
                      • +20
                      • 4,3k
                      • 1