• Управляем состоянием в Angular при помощи Mobx

    • Translation

    State Managment


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


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


    Два наиболее популярных решения это ngrx/store, вдохновленной по большей части Redux, и Observable сервисы данных.


    Лично мне очень нравится Redux, и он стоит каждой строчки бойлерплейт кода. Но, к сожалению, некоторе со мной могут не согласиться или Redux не особо применим в их приложениях.


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

    Читать дальше →
    • +10
    • 9.5k
    • 2
  • Что нового нас ждет в Swift 4?

    • Translation

    Оглавление


    1. Односторонние диапазоны
    2. Строки
    3. Приватные объявления видимы в экстеншенах того же файла
    4. Умные ключи пути
    5. Архивирование и сериализация
    6. Улучшения в Dictionary и Set
    7. Метод MutableCollection.swapAt
    8. reduce с поддержкой inout
    9. Генерики в сабскриптах
    10. Мостик для NSNumber
    11. Экземпляры классов и подтипов
    Читать дальше →
    • +23
    • 19.5k
    • 9
  • Композиция протоколов для инъекции зависимостей

    • Translation

    Мне нравится использовать композицию и инъекцию зависимостей, но когда каждая сущность начинает инъектится несколькими зависимости, получается некое нагромождение.


    Проект растет и приходится инъектить все больше зависимостей в объекты, рефакторить методы помногу раз, Xcode не особо с этим помогает, как мы знаем.


    Но есть более управляемый способ.


    Читать дальше →
  • Все рушится

    • Translation
    Давайте постараемся вместе уменьшить фрагментацию в мире JavaScript. Недавно, после анонса Yarn (пакетный менеджер для node.js от facebook прим. пер.), некоторые в JavaScript сообществе раскритиковали Facebook и проект в целом.

    Существует тенденция для компаний или индивидумов форкать или пересоздавать OSS проекты, вместо работы над существующими в сообществе. Это случается по многим причинам, но это случается чаще чем нужно. Это объясняет, почему появился Yarn.
    Читать дальше →
  • Mobx — управление состоянием вашего приложения

    • Translation

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


    Основная идея


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


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

    Читать дальше →
  • Изоморфное Приложение с React и Redux

    • Translation
    Итак, я знаю что ты любишь Todo списки, то есть, что тебе очень нравится писать Todo списки, поэтому мне хочется, чтобы ты создал один из них, используя новый, восхитительный и питательный («nutritious» прим. пер.) Flux фреймворк, Redux! Я желаю тебе только лучшего.

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

    • Цельнозерновой рендеринг на сервере
    • Расширенный роутинг, богатый Omega-3
    • Маслянистая асинхронная загрузка данных
    • Гладкое функциональное послевкусие


    Если это похоже на то, чего ты хочешь в этой жизни, вперед под кат, если нет, то не заморачивайся.
    Читать дальше →
  • Настоящее модульное тестирование в AngularJS

    • Translation
    AngularJS молод и горяч, когда дело доходит до современной веб разработки. Его уникальный подход к компиляции HTML и двусторонней привязки данных делает его эффективным инструментом для создания клиентских веб приложений. Когда я узнал что Quick Left (студия в которой работает автор. прим. пер.) будет использовать его для создания приложения для одного из наших клиентов, я был взволнован и постарался узнать о angular столько сколько мог. Я обошел весь интернет, каждый урок и руководство, которые смог найти в Google. Они были реально полезны в понимании работы директив, шаблонов, компиляции и цикла обработки событий (digest), но когда дело дошло до тестирования, я обнаружил что эта тема была просто упущена.

    Я обучался подходу TDD (Разработка через тестирование) и я чувствую себя не в своей тарелке без подхода «Красный-Зеленый-Рефакторинг». Так как мы все еще разбирались что к чему в тестировании в Angular, команде иногда приходилось полагаться на подход «тестирование-после». Это начало нервировать меня, поэтому я решил сосредоточится на тестировании. Я потратил на это недели, и в скором времени покрытие тестами поднялось с 40% до 86% (Кстати, если вы еще этого не делали, можете попробовать Istabul для проверки покрытия кода в вашем JS приложении).

    Читать дальше →
    • +34
    • 41.3k
    • 1
  • Ansible и Docker, почему и зачем?

    • Translation
    Достаточно много интереса проявляется среди технического сообщества к Docker и Ansible, я надеюсь, что после прочтения данной статьи, вы тоже разделите этот интерес. Вы так же получите навыки практического применения Ansible и Docker в настройке сервера и окружения для Rails приложения.

    «Почему бы просто не взять и использовать Heroku?», спросите вы.
    Прежде всего, я могу запустить Docker и Ansible на любой машине, с любым хостинг провайдером. Во вторых, я предпочитаю гибкость, удобству. Я могу, таким же образом, запускать все что угодно, не только web приложения. Ну и напоследок, потому что я эксперементатор в душе, я получаю удовольствие от понимания того как оно все вместе работает. Фундаментальная основа Heroku это Linux контейнер. Та же технология лежит и в основе Docker'a. На самом деле, одним из девизов Docker'a является «Контейнеризация это новая виртуализация»
    Читать дальше →
  • Вышел Laravel 4

      Состоялся долгожданный релиз четвертой версии замечательного фреймворка.
      Также обновился официальный сайт.

      Быстрая установка


      Для установки Laravel, скачать копию репозитория с Github.
      Далее, после установки Composer, запускаем composer install команду в корневой папке. Composer скачает и установит все зависимости.
      Читать дальше →
    • MVC умер, пришло время MOVE

      • Translation
      MVC феноменальная идея. У вас есть модели, самостоятельные кусочки состояний, представления которые самостоятельные кусочки UI, и контроллеры которые самостоятельные кусочки… эм?

      Что?


      Я конечно не первый кто это замечает, но проблема с MVC в том что в контроллеры пихают слишком много кода.

      Чтобы исправить это, я использую новый паттерн: MOVE. Models, Operations, Views и Events.
      Читать дальше →
    • Laravel — PHP Framework для ремесленников

        Laravel PHP Framework
        Laravel — это чистая и стильная основа для разработки. Он избавит вас от спагетти кода. Поможет вам создавать прекрасные веб-приложения используя простой и выразительный синтаксис. Разработка должна доставлять удовольствие. Наслаждайтесь глотком свежего воздуха.
        Читать дальше →
      • Kartograph — фреймворк для создания интерактивных карт

          Kartograph — это новый фреймворк для создания интерактивных картографических веб приложений без использования Google Maps/Bing Maps или любого другого сервиса. Он создавался с учетом потребностей дизайнеров и журналистов.

          Можно поглядеть на демки, чтобы узнать на что способен Kartograph.
          или узнать как это все работает.
        • Шрифт использующий точки вместо букв

            Dotsies

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

            Если верить сайту то за 20 минут можно освоить чтение данного шрифта.
          • JSZip Создаем .zip файлы

              Очень хороший и простой способ отдать клиенту несколько файлов в zip архиве. Не нагружая и без того нагруженный сервер.
              var zip = new JSZip();
              zip.add("Hello.txt", "Hello World\n");
              img = zip.folder("images");
              img.add("smile.gif", imgData, {base64: true});
              content = zip.generate();
              location.href="data:application/zip;base64,"+content;
              

              Итак давайте разберем, что тут происходит.
              Создается экземпляр нашего zip архива, класс JSZip,.
              Далее мы можем добавлять в него любые данные, допустим Hello.txt, также можно добавить папку images.
              Далее положить в нее smile.gif, все это завернуть, и отдать вам как zip фаил.
              Узнать вкусные подробности
            • Kerning.js

                Свершилось, теперь чудеса типографики стали доступны и нам простым смертным.

                Как использовать


                Да легко, просто подключаем и используем.
                <script src="kerning.js"></script>
                

                Больше ничего не нужно, остальное она сделает сама.

                Узнать о самых крутых вкусностях
              • Скоро все сервисы Google будут доступны через IPv6

                • Translation
                Еще в январе, мы присоединились к Интернет Обществу и нескольким ведущим интернет-компаниям, чтобы объявить о Всемирном дне IPv6. Объявление станет призывом для принятия нового интернет-протокола. Менее чем через шесть месяцев, мы выросли до 400 организаций. Мы считаем, что IPv6 является единственным долгосрочным решением проблемы адресного истощения IPv4, и его развертывание имеет решающее значение для дальнейшего роста открытого интернета.

                Начиная с этого момента, на протяжении 24 часов, в полночь 8 июня (вторник днем ​​в США, в среду утром в Азии), все участники общества включат поддержку IPv6 на своих сайтах. Для нас это будет означать практически все наши сервисы, включая Поиск, Gmail, YouTube и многое другое.
                Читать дальше →
              • У сокращалки ссылок от Google появился полноценный API

                • Translation
                В сентябре, когда мы запустили сервис сокращения ссылок, для него ещё не было сопутствующего API, чтобы позволить людям интегрировать goo.gl в свои приложения и веб странички. Однако, как мы говорили, что работаем над этим, и сегодня рады вам сообщить, что запустили полноценный goo.gl API доступный в Google Code Labs. Документация расположена на сайте Google Code, с примерами кода в секции Getting Started.

                С этим API, разработчики могут программно получить доступ ко всем быстрым, гладким вкусняшкам, которые доступны через веб интерфейс. Вы можете сокращать и разворачивать URLы используя API, а также получать историю и аналитику. Вы сможете использовать эти возможности для широкого спектра приложений, начиная от автоматического сокращения ссылок в Twitter или Google Buzz клиентов запуская процесс мониторинга статистики и данные трафика. Для начала вы можете ознакомится с консолью Google API.

                Мы очень рады возможности предоставить вам наш API для доступа к одному из самых быстрых сервисов сокращения ссылок. Мы продолжаем работать над некоторыми улучшениями юзабилити и возможностью автоматического определения спама или вредоносного контента. Мы надеемся, что с новым API, вы найдете место для goo.gl в своей будущей деятельности. Если вы являетесь разработчиком, ознакомьтесь с документацией по goo.gl API и посмотрите как это все работает.
                Читать дальше →
              • парсим сайты легко и непринуждённо вместе с phpQuery

                  Привет хабр, думаю у некоторых из вас возникала потребность стянуть что нибудь нужное с какова нибудь сайта. Но писать тонны функций, чтобы вытащить фразу, это очень муторно, долго и не продуктивно.
                  Представляю вашему вниманию phpQuery. Это php вариант известного javascript фраемворка — jQuery.
                  Автор постарался на славу и портировал почти всё что нам нужно.
                  • Selectors
                  • Attributes
                  • Traversing
                  • Manipulation
                  • Ajax
                  • Events
                  • Utilities
                  • Plugin ports

                  Давайте посмотрим что она умеет.
                  Поехали