• Обработка ошибок в Node.js

    • Перевод
    • Tutorial


    Пост содержит перевод статьи «Error Handling in Node.js», которую подготовили сотрудники компании Joyent. Статья была опубликована 28 марта 2014 года на сайте компании. Dave Pacheco поясняет, что статья призвана устранить неурядицу среди разработчиков, касаемо лучших практик работы с ошибками в Node.js, а так же ответить на вопросы, которые часто возникают у начинающих разработчиков.
    Читать дальше →
  • Дизайн и архитектура в ФП. Часть 3

    • Tutorial
    Свойства и законы. Сценарии. Inversion of Control в Haskell.

    Совсем немного теории

    В прошлой части мы убедились, что очень легко запутаться в плохо спроектированном коде. К счастью, с древних времен нам известен принцип “разделяй и властвуй”, — он широко применяется при построении архитектуры и дизайна больших систем. Мы знаем разные воплощения этого принципа, как-то: разделение на компоненты, уменьшение зависимости между модулями, интерфейсы взаимодействия, абстрагирование от деталей, выделение специфических языков. Это хорошо работает для императивных языков, и надо полагать, что будет работать в функциональных, за тем исключением, что средства реализации будут другими. Какими же?
    Читать дальше →
    • +14
    • 10,5k
    • 6
  • Дизайн и архитектура в ФП. Часть 2

    • Tutorial
    Восходящее проектирование в ФП. Идея — основа хорошего дизайна. Антипаттерны в Haskell.

    Немного теории

    В прошлой части мы построили высокоуровневую архитектуру приложения. Мы определили подсистемы и их связи, а также разделили программу на три слоя: Application, Game Logic, Views. По логике, следующий этап — дизайн приложения. По важности этот этап не уступает предыдущему, так как именно в ходе дизайна мы должны поддержать все функциональные требования, определить фактическую структуру подсистем, описать основные технические проблемы, применить какие-либо типовые решения или придумать другие. Но прежде попробуем ответить на вопрос: каков он, хороший дизайн ПО? По каким критериям мы определяем «хорошесть» дизайна?
    Читать дальше →
    • +24
    • 11k
    • 5
  • Кооперативные потоки с нуля в 33 строках на Хаскеле

    • Перевод
    Хаскель отличает себя от большинства функциональных языков тем, что имеет глубокие культурные корни из области математики и информатики, которые дают обманчивое впечатление, что Хаскель плохо подходит для решения практических задач. Однако, чем больше вы знаете Хаскель, тем больше вы цените то, что теория часто является наиболее практическим решением многих общих проблем программирования. Этой статьёй хочется подчеркнуть эту точку зрения тем, что мы смешаем имеющиеся в наличии теоретические основы и создадим чистую пользовательскую систему потоков.

    Читать дальше →
    • +32
    • 10,4k
    • 5
  • Готовим адаптивное видео для HTTP Live Streaming

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

    Несмотря на то, что динамическая адаптация видеопотока уже сравнительно «старая» технология, существует множество мелких подробностей о том, как добиться лучшего результата. Чтобы и на серверной стороне попроще и подешевле, и чтобы такое видео было совместимо с как можно большим количеством клиентов (Web, iOS, Android, ну и не забываем про Smart TV).

    Посмотреть, как сделать адаптивное видео для HLS
  • Вся правда о Chrome (и не только) Web Inspector. Часть 1

      Я постараюсь сделать самое полное и подробное описание возможностей Web Inspector, на русском языке.
      В первой серии мы залезем в настройки, посмотрим, что умеет консоль и поиграемся с панелью «Elements».

      Так как Web-Inspector не переведен на Русский, я буду сохранять оригинальные названия.


      В качестве бонуса, приложу скриншот одной и самых первых версий, из далекого 2006го.
      Читать дальше →
    • Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 2

      • Перевод
      (Окончание перевода статьи Эдди Османи о сравнении и выборе библиотеки для проекта со значительной ролью JS на клиенте.)
      Содержание первой части:

      ■ Что такое MVC или, лучше сказать, MV*?
      ■ Когда нам нужен MV*-фреймворк JS?
      ■ Где же мы будем нуждаться в MV*, а где нет?
      ■ Проблема выбора: слишком много вариантов?
      ■ TodoMVC: общее приложение для обучения и сравнения
      ■ Предложенные нами критерии выбора фреймворка
      ■ Dojo и усложнение фреймворков на JavaScript
      ■ Коллекция TodoMVC (фреймворки, на которых сделаны реализации тестового приложения Todo)
      Читать дальше →
    • Тестирование компонентов и приложений ExtJS/Sencha с использованием движка PhantomJS

        PhantomJS — это сборка движка WebKit без графического интерфейса, позволяющая в режиме консоли загружать веб-страницу, выполнять JavaScript, полноценно работать с DOM, Canvas и SVG. Одним из главных заявленных применений PhantomJS является автоматизированное функциональное тестирование пользовательского интерфейса. PhantomJS имеет интеграцию с различными фреймворками для тестирования JavaScript и веб-страниц. Посмотрим, что можно сделать на базе стандартного функционала PhantomJS, чтобы протестировать отдельный компонент и целое приложение, написанное на ExtJS/Sencha. В этой статье я приведу некоторую простейшую заготовку для тестировочного фреймворка, иллюстрирующую подход к тестированию кода, основанного на сторонней JavaScript-библиотеке. Весь код, представленный в статье, доступен на GitHub.

        Читать дальше →
        • +18
        • 8,9k
        • 9
      • Быстрый старт для ExtJS back-end


          Проблема взаимопонимания


          Представьте себе ситуацию: вы — фрилансер и работаете с Ext. С вами удалённо работает один (или несколько) разработчиков back-end. Работа идёт быстро и гладко. Но вот вот случилось так, что разработчик серверной части сменился. Если у нового коллеги есть опыт взаимодействия с Ext — всё замечательно. Но вот если человек впервые будет писать back-end для Ext или впервые будет писать для веба (такое тоже случается), то вам будет необходимо найти общий язык.
          И вот тут могут начаться проблемы…
          Придётся тратить время на простое объяснение протокола, объяснения как должен реагировать сервер на те или иные запросы. Чтобы избежать этого, я подготовил документ, описывающий все (ну или почти все нюансы стандартного для Ext протокола). Этот документ и представлен под катом.
          Читать дальше →
        • intro.js — пошаговое руководство для веб-страницы



            Эта маленькая библиотека позволяет очень просто создать пошаговое введение для сайта или приложения. Достаточно добавить атрибуты data-intro и data-step с описанием и номером шага соответственно к нужным элементам страницы. Вот так:

            <a href='http://google.com/' data-intro='Hello step one!' data-step='1'></a>
            
            Читать дальше →
            • +129
            • 46,7k
            • 24