• Коротко о главном: Clean Architecture, Robert C. Martin

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

    Архитектура


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

    1. Поведение (behavior) — функции и задачи, которые программа (компонент, сервис) выполняет.
    2. Архитектура — этот термин в большей мере о изменении приложения.

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

    И вот как строить эту архитектуру, как избавится от головной боли при маленьком изменении требований от PM’а, или от стейкхолдера: об этом и поведает книга
    Читать дальше →
  • Coroutines :: опыт практического применения

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

      Статья подготовлена по материалам моего доклада на MBLT DEV 2018, в конце поста — линк на видеозапись.

      Последовательный стиль


      Читать дальше →
      • +27
      • 11.8k
      • 3
    • Как сделать мобильную игру командой из 2 человек с нулевым бюджетом и получить фичеринг в Google Play



      Мы с мужем давно хотели делать игры вместе, но времени на это никогда не хватало. Мы оба работали: он — UI-программистом в геймдеве, я — продакт-менеджером в social media, затем в финтехе, и сил на собственную игру не оставалось.

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

      Как мы придумывали


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

      Мы сами довольно много играем и всегда отмечаем то, что нам нравится, и что — не очень. Основной момент, который нас раздражает в современных мобильных казуалках — это однообразие их механик, обилие попапов с предложениями что-нибудь купить и длинными описаниями, а также перенасыщенный UI с кучей каких-то плашек, бабблов и объёмных шрифтов. Поэтому в нашей игре мы постарались сделать всё наоборот.
      Читать дальше →
    • Разбираемся с Clean Code в Android

      • Translation
      В качестве вступления хотелось бы вспомнить цитату дядюшки Боба
      Вы читаете эту статью по двум причинам. Первая — Вы программист, вторая — Вы хотите быть лучшим программистом.
      Читать дальше →
    • Заблуждения Clean Architecture

        Превращаем круги в блоки

        ­­ 


        На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

        Читать дальше →
      • Услуги сервиса Firebase подорожали в 70 раз, а нас никто не предупредил

        • Translation
        На своем блоге в Meidum команда стартаперов HomeAutomation рассказала поучительную историю с относительно счастливым концом о том, как безобидный сервис вроде Firebase может превратиться в западню и как недальновидное планирование на ранних этапах обернулось для компании катастрофой спустя несколько лет.



        Начало


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

        Мы распространяли свой продукт бесплатно, и вскоре он начал завоевывать популярность. Это было так захватывающе! За какие-то несколько месяцев наша аудитория из десяти бета-тестеров в скайп-конференции выросла до сотен, а потом и тысяч пользователей. Мы были на седьмом небе! Помню, как просто сидел и смотрел на статистику Google и Woopra, наблюдая за действиями пользователей.

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

        Ошибка заключалась не в том, что мы не ознакомились с документацией. И не в том, что выбрали сервисы, у которых какие-то проблемы с функционалом или плохие показатели. Нет, мы допустили мелкую, но опасную оплошность (и я подозреваю, что многие другие разработчики приложений допускают ее в этот самый момент) — мы позволили сервису превратиться в ловушку.
        Читать дальше →
      • Что нового в ConstraintLayout 1.1

        • Translation

        ConstraintLayout


        ConstraintLayout упрощает создание сложных макетов в Android, позволяя создавать большую часть вашего пользовательского интерфейса с помощью визуального редактора в Android Studio. Его часто называют более мощным RelativeLayout. С помощью ConstraintLayout вы можете избегать множества уровней вложенности при вёрстке сложных экранов.


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

        Читать дальше →
      • ИТ-байки розницы — как это было 12 лет назад



          В 2005 году в Москве вылетела подстанция, и все в стране внезапно поняли, что нужно делать резервные серверные. Банки делали их в 2006-2007-м, розница — с 2008-го. Почему так поздно? Потому что затраты на ИТ тогда ещё не казались чем-то таким же важным, как сейчас. Я вспоминаю историю, как моего заказчика чуть не уволили за простой в два дня по всей сети и заодно за другие особенности ритейла. Оказалось, многие в ИТ уже не верят, что так было.

          А так было. Вот вам первая история из серии «да ладно, так не бывает» — про то, как магазин был зарезервирован по аналоговому модему для доступа к Интернету. Просто тогда был только один провайдер с волокном в этом месте, а из альтернатив — спутниковая тарелка или диалап. ЗССС — дорого, поэтому выбрали войс-модем. В один прекрасный момент экскаватор рвёт магистраль «Голден телекома». Они в это время перекладывали свою ВОЛС, поэтому временно не было резерва. Три дня магазин работает по модему. Днём 48 килобит в секунду, ночью 96 килобит в секунду. Как вы видите по скоростям, это был очень хороший Zyxel, он держался даже на шумной линии.
          Читать дальше →
        • Темы и стили в Android без магии. И как их готовить с SwitchCompat


            В предыдущей статье мы рассмотрели как использовать темы и стили на уровне кода, на примере кастомной view. В этой статье давайте разберем несколько способов стилизации стандартного ui элемента, а в частности SwitchCompat.
            Читать дальше →
            • +14
            • 6.9k
            • 1
          • Темы, стили и другие


            Практически все разработчики знают, что в андроиде есть Темы, но применение их обычно ограничивается копированием кусков xml из Stack Overflow или других ресурсов. В интернете есть информация по темам, но это обычно просто рецепт, как добиться определенного результата. В этой статье я постарался дать вводный обзор механизма стилизации андроида.
            Читать дальше →
            • +22
            • 5.6k
            • 7
          • Где моя оплата? Как мошенники зарабатывают на фрилансерах

              Где оплата за работу?


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

              В один прекрасный день, нам на корпоративную почту приходит письмо, от жительницы Украины (любой другой страны), следующего содержания:

              Здравствуйте, в интернете вы набираете на работу копирайтеров. Я откликнулась на предложение от Юлии Якубенко. Сделала заказ, который получила, но не получила по нем ни оплаты ни ответа, хотя я его нашла на сайте в интернете. Как мне это понимать? Ваша фирма со всеми сотрудниками так поступает??? Прошу вас дать ответ на мое сообщение!

              Скриншот
              image

              Разумеется никакую вакансию мы не размещали, тем более на Украинских сайтах фриланса (важный момент, что сайт был не Российский). Слегка удивившись такому письму и немного порассуждав на тему, а не очередной ли это спам и стоит ли на него отвечать, мы все же решили уточнить у девушки более подробную информацию по вакансии и работе в целом.
              Читать дальше →
            • Почему лед скользкий: научный ответ на детский вопрос



                Когда мы были маленькими, нашим родителям приходилось отвечать на сотни вопросов: почему небо синее, почему трава зеленая, почему кипяток горячий, почему нельзя кушать только сладкое и т.д. Любопытство и желание понять окружающий мир сопровождают нас всю жизнь. Кто-то вырастает и эти вопросы становятся для него вторичными, а кто-то начинает искать ответы в физике, химии и других науках. Сегодня мы с вами рассмотрим исследование ученых из Парижского университета, в котором они решили детальнее рассмотреть скользкую природу льда. Какие интересные открытия сделали ученые, мы узнаем из их доклада. Поехали.
                Читать дальше →
              • Как проводить Code Review по версии Google

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

                  И вот недавно при подготовке к очередному выпуску подкаста "Цинковый прод" я узнаю, что Google опубликовал свод правил по проведению Code Review, битком набитый ценными мыслями. Весь материал довольно объемный и не влезет в одну статью, поэтому я постараюсь выделить наиболее интересные (мне) мысли.


                  Итак, поехали

                  Читать дальше →
                • Комфортный офис — помогает работать или мешает и отвлекает? Ответят Sidenis, Alternativa Games и FunBox



                    Есть люди, которые в гневе закрывают вакансию при виде фразы «у нас есть печеньки». Есть люди, которые отказываются от новой дико интересной работы с высокой зарплатой, потому что в офисе не будет бесплатных обедов. Есть люди, которые увольняются, потому что устали сидеть в опенспейсе.

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

                    Мы обсудили эти вопросы с сотрудниками компаний Sidenis, Alternativa Games и FunBox, которые получили самую высокую оценку по критерию «комфортные условия» в нашем рейтинге лучших работодателей в ИТ. Они описали свои офисы, сравнили их с самыми ужасными воспоминаниями и порассуждали о роли комфорта в рабочих буднях.
                    Читать дальше →
                  • Зарплаты в ИТ в первом полугодии 2019 года: по данным калькулятора зарплат «Моего круга»



                      Публикуем отчет по зарплатам в ИТ-индустрии на 1-е полугодие 2019. Отчёт построен по данным калькулятора зарплат «Моего круга»: в котором за данный период было собрано более 7000 зарплат. 

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

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

                      Сервис зарплат запущен на «Моем круге» в конце 2017 с целью регулярного мониторинга зарплат в ИТ-индустрии. Зарплаты оставляют сами специалисты, мы их собираем и предоставляем всем в открытый доступ в агрегированной и анонимной форме.
                      Читать дальше →
                    • Байки из ЦОДа: хэллоуинские страшилки о дизелях, дипломатии и саморезах в калорифере

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


                        Читать дальше →
                      • Телефонные мошенники. Действие первое, в котором мне любезно рассказывают о других мошенниках



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

                          Такие звонки мне поступают иногда. И надо сказать, всегда я сразу посылал таких звонящих. Но после прошлого, который случился примерно месяц назад, подумал, правильно ли я делаю? Решил попробовать в следующий раз сделать над собой усилие, провести более подробное «интервью». И вот, сегодня этот следующий раз произошел.
                          Читать дальше →