• Простыми словами о Twelve-Factor App

      Известный провайдер heroku поддерживает манифест, который называется «12-факторное приложение» (Twelve-Factor App). Это набор лучших практик для разработки современных веб приложений на любой платформе. Практики описывают приложения, которые готовы:
      • к горизонтальному масштабированию;
      • к непрерывному развертыванию;
      • к современным облачным хостингам.

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

      Манифест (на хабре есть отличный перевод) слишком подробен и хорош для детального изучения. В этой же статье, я коротко остановлюсь на основных преимуществах.
      Читать дальше →
      • +9
      • 26.1k
      • 1
    • Приложение двенадцати факторов — The Twelve-Factor App

      • Translation
      Уважаемые читатели! Представляю вашему вниманию перевод методологии создания веб-приложений The Twelve-Factor App от разработчиков платформы Heroku. Мои комментарии скрыты спойлерами по ходу статьи.

      Введение


      В наши дни программное обеспечение обычно распространяется в виде сервисов, называемых веб-приложения (web apps) или software-as-a-service (SaaS). Приложение двенадцати факторов — это методология для создания SaaS-приложений, которые:

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

      Методология двенадцати факторов может быть применена для приложений, написанных на любом языке программирования, и которые используют любые комбинации сторонних служб (backing services) (базы данных, очереди сообщений, кэш-памяти, и т.д.).
      Читать дальше →
      • +21
      • 37.1k
      • 5
    • Изучаем веб-аналитику с нуля. Большая подборка

      • Tutorial
      Привет, читатель!

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

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

      image

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

      Если я не добавил стоящий материал, свяжитесь со мной — добавлю.

      Приступим!

      Введение в веб-аналитику


      Что такое веб-аналитика и зачем она вам нужна?
      Подробное руководство по аналитике веб-трафика
      Какие бывают источники трафика
      Какие ошибки возникают при работе с Google Analytics и как с ними бороться
      Как настраивать представления в Google Analytics — подробное руководство
      18 метрик и KPI интернет-маркетинга, которые вы должны знать
      Основные термины в веб-аналитике
      Что такое UTM-метки и как их применять
      Глоссарий: базовые понятия веб-аналитики
      Что такое ROI и какие нюансы следует учитывать при его расчете
      Модели атрибуции — подробный обзор и сравнение
      Модели атрибуции от Google
      Что такое A/A тестирование, и как его провести
      6 советов начинающему веб-аналитику
      Читать дальше →
      • +28
      • 26.4k
      • 2
    • Как выжить охотнику за багами: ежедневная борьба за доход

      • Translation

      В принципе, можно сделать карьеру независимой киберищейки – если вы достаточно непритязательны




      Эван Рикафорт работает из дома, и его офис занимает одну комнату в доме, расположенном на шоссе в Филиппинах, где вместе с ним живёт его семья. Родители 22-летнего компьютерщика работают в продуктовом магазинчике, принадлежащем его семье, и расположенном в южном городе Ипиль, а он сам проводит до 75 часов в неделю взаперти, вкалывая на своём компьютере. И здесь, среди какофонии мотоциклов, лая собак и плача детей, он может заниматься спасением ваших персональных данных.

      Рикафорт – охотник за багами, принадлежащий к определённому типу положительных хакеров, ищущих уязвимости в безопасности ПО, созданного крупнейшими технокомпаниями мира, пытаясь опередить плохих хакеров, которые могли бы воспользоваться этими уязвимостями. Делают они это не бесплатно, естественно: многие компании платят (иногда прилично) за вклады, помогающие компаниям исправлять код, от которого зависит их бизнес. И таких предложений достаточно, чтобы охота за багами стала одной из нарождающихся профессий.
      Читать дальше →
      • +12
      • 5.3k
      • 5
    • Автоматное программирование – новая веха или миф? Часть 1. Введение

      Тема автоматного программирования ( AP, АП) уже много лет занимает заметное место в научно-популярных СМИ. Однако, несмотря на это, АП не стало магистральным трендом. Главная причина здесь — недостаточный опыт использования, и как следствие, отсутствие популяризаторов. Нельзя сказать, что недостаточно статей посвященных АП, но круг обсуждаемых в статьях вопросов по большому счёту сводится к описанию UML Statechart, т.е. инструменту описания автоматов, либо к вопросу «Как реализуются программные автоматы?». Это печально но факт, отсутствует обсуждение того, какие перспективы для программистов-профессионалов открываются при использовании данной технологии.

      Эта статья – попытка взглянуть на программаты глазами прагматика, на примере задачи, взятой из реальной практики программирования микроконтроллеров. Однако она может заинтересовать не только embedderов, поскольку автоматный подход может эффективно использоваться для создания и драйверов и интерактивных приложений в системах основанных на обработке событий, как например Windows.

      Читать дальше →
    • 11 кругов ада для тех, кому не хватает опыта на новой работе

        image
        Eugene Smith, «Country Doctor» («Сельский доктор», 1948 г.)

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

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

        И это всё правда. И я даже скажу категорично: обучение новым видам деятельности и вообще сам процесс постижения нового – это очевидное благо.

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



          Введение


          Хочу заметить, что тем, кто пользуется терминами ООП, будет очень трудно понять меня. Дело в том, что ООП подменил понятия. В ООП под классом понимается не множество, как обычно принято в математике, или лингвистике. В ООП классом называют тип объектов, как у Аристотеля. Было бы правильно в ООП вместо термина класс объектов использовать термин тип объекта. Однажды, съехав с правильной терминологии, вернуться в лоно правильных терминов оказывается очень трудно. В данной статье я попробую помочь тем, кто желает разобраться с терминологической кашей, заваренной ООП. В своих рассуждениях я буду использовать термины в их первоначальном смысле, а не в смысле ООП. Термин класс будет взят из логической парадигмы моделирования предметных областей, которая, в свою очередь, заимствовала этот термин из теории множеств. Термины тип и экземпляр будет взят из теории типов, построенной на парадигме Аристотеля о существовании типов.

          Адепту ООП очень трудно понять, что термин экземпляр класса в русском языке указывает на класс объектов, а не на созвучный этому термину элемент класса – объект класса. Для многих, кто изучал ООП, термины экземпляр и элемент – неразличимы. Давайте разберемся с этими терминами внимательно.
          Читать дальше →
        • Для чего программисту Continuous Integration и с чего начинать

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



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

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

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

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

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

            В 1991 году Гради Буч, видимо, устал от такого безобразия, и предложил делать сборку всего проекта каждый день, чтобы выяснять несовместимости не в день релиза, а пораньше — и назвал этот подход Continuous Integration.
            Читать дальше →
          • Тонкости благополучного git-merge

              Вступительное слово


              Считается, что «киллер фичей» СКВ Git является легковесное ветвление. Я ощутил это преимущество в полной мере, ведь я перешел на Git с SVN, где ветвление было достаточно дорогим процессом: для создания ветки нужно было скопировать весь рабочий каталог. В Git все проще: создание ветки подразумевает лишь создание нового указателя на определенный коммит в папке .git/refs/heads, который является файлом с 40 байтами текста, хешем коммита.

              Основными командами пользовательского уровня для ветвления в Git являются git-branch, git-checkout, git-rebase, git-log и, конечно же, git-merge. Для себя я считаю git-merge зоной наибольшей ответственности, точкой огромной магической энергии и больших возможностей. Но это достаточно сложная команда, и даже достаточно длительный опыт работы с Git порой бывает недостаточным для освоение всех ее тонкостей и умения применить ее наиболее эффективно в какой-либо нестандартной ситуации.

              Попробуем же разобраться в тонкостях git-merge и приручить эту великую магию.

              Здесь я хочу рассмотреть только случай благополучного слияния, под которым я понимаю слияние без конфликтов. Обработка и разрешение конфликтов — отдельная интересная тема, достойная отдельной статьи. Я очень рекомендую так же ознакомиться со статьей Внутреннее устройство Git: хранение данных и merge, содержащей много важной информации, на которую я опираюсь.
              Читать дальше →
            • Почему я ушёл из Google и начал работать на себя

              • Translation
              Последние четыре года я работал разработчиком программного обеспечения в Google, но 1 февраля уволился, потому что они не сделали мне подарок на Рождество.

              Шучу, на самом деле всё немного сложнее.

              Первые два года


              Первые два года я любил Google.

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

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


              Мой обычный день в Google.
              — Ещё тортика, господин Программист? Он бесплатен в любом количестве.
              — Не сегодня, Пьер. Я опаздываю на массаж, он тоже бесплатный.

              Читать дальше →
            • Штрихи, штришки и штришочки

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

                  подборка книг по типографике

                  Типографика — это искусство сделать текст красивым, удобным для чтения, отразив в начертании букв информационный посыл или характер издания. Это искусство привнести визуальную гармонию в любой текстовый материал. Искусство выразить смысл не только через слова, но и через их отображение. Типографика вовсе не ограничивается выбором шрифтов и отступов — это более глубокая, сложная и интересная дисциплина. И освоить её вам поможет наша подборка книг.
                  Читать дальше →
                  • +37
                  • 38.1k
                  • 9
                • Как читать техническую литературу: советы резидентов Quora, Reddit и Hacker News

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

                    Сегодня мы расскажем, к каким источникам рекомендуют обращаться программисты, инженеры и резиденты тематических платформ (Stack Exchange, Stack Overflow и др.), если вам нужно изучить новый язык или углубить знания в какой-то отдельной области. Также приведем несколько их рекомендаций о том, как с такой литературой «работать».

                    Читать дальше →
                  • Руководство по материалам электротехники для всех. Часть 1

                    • Tutorial
                    Привет гиктаймс! Я решил опубликовать по частям свое руководство по материалам, используемым не только в электротехнике, но и вообще в технике, в том числе самодельщиками. С описанием, примерами применения, заметками по работе. Руководство написано максимально просто, и будет понятно всем, от школьника до пенсионера.

                    В этой части начинаем разбирать проводники — Серебро, Медь, Алюминий.

                    image

                    Добро пожаловать под кат (ТРАФИК)
                    узнать о материалах