Применение паттерна observer в Redux и Mobx

Автор: admin от 13-02-2018, 07:20, посмотрело: 16

Применение паттерна observer в Redux и Mobx

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



class Observable {
  listeners = new Set();
  subscribe(listener){
    this.listeners.add(listener)
  }
  unsubscribe(listener){
    this.listeners.delete(listener)
  }
  trigger(){
    for(const listener of this.listeners){
       listener();
    }
  }
}


В redux-е этот паттерн применяется без всяких изменений — пакет "react-redux" предоставляет функцию connect которая оборачивает компонент и при вызове componentDidMount вызовет subscribe() метод у Observable, при вызове componentWillUnmount() вызовет unsubscribе() а dispatch() просто вызовет метод trigger() который в цикле вызовет всех слушателей где каждый в свою очередь вызовет mapStateToProps() и потом в зависимости от того изменилось ли значение — вызовет setState() на самом компоненте. Все очень просто, но платой за простоту является необходимость явно указывать от каких частей стора зависит компонент внутри mapStateToProps().

Категория: Программирование » Веб-разработка

 

Как провести тендер на разработку сайта

Автор: admin от 13-02-2018, 07:20, посмотрело: 15

Все чаще и чаще к нам обращаются с приглашением принять участие в тендере на разработку сайта. Причем львиная доля запросов выглядят так: “Сколько стоит разработка такого сайта: fb.com. Письмо разослано на 69 веб-студий. Поэтому решил поделиться своим опытом в тендерах. А опыт у меня есть. С 2010 года работаю на стороне заказчика: Медицинское оборудование, фармацевтика, туризм. Сейчас занимаюсь маркетингом и развитием Веб-студии IT4U и Клуба туристов Кулуар. Знаю о тендерах и участии в них не по наслышке с разных сторон. В этой статье вы прочитаете на что на самом деле стоит обращать внимание, а чем можно пренебречь.

Категория: Программирование » Веб-разработка

 

Nutanix Flow — микросегментация виртуальной сети

Автор: admin от 12-02-2018, 12:25, посмотрело: 20

Nutanix Flow — микросегментация виртуальной сети


Микросегментация — это, наряду с другим нашим ключевым продуктом, облачным оркестратором Nutanix Calm, одна из наиболее важных новинок в вышедшем в конце декабря релизе AOS 5.5 (codename Obelix).



Так как Microsegmentation слишком длинное имя для коммерческого продукта, как продукт данная технология будет носить имя Nutanix Flow.



В релизе 5.5 мы, как это у нас принято, представили Tech Preview, своеобразную «гамма»-версию для ознакомления в тестовой среде, а в следующем обновлении, выходящем в конце февраля-марте, и называющемся 5.5.1, микросегментация будет объявлена финальным, «продакшн-реди» релизом, готовым к использованию.



Nutanix Microsegmentation (Flow) можно рассматривать как своеобразный встроенный в систему виртуализации AHV распределенный файрволл виртуальных машин, защищающий виртуальные машины внутри «облака» инфраструктуры.



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

Категория: Программирование

 

Новые онлайн-программы для разработчиков

Автор: admin от 12-02-2018, 11:00, посмотрело: 20

Новые онлайн-программы для разработчиков Этой весной CS центр и Академический университет запускают на платформе Stepik.org три бесплатные полугодовые онлайн-программы:




  • «Алгоритмы и эффективные вычисления»,

  • «Математика для разработчиков»,

  • «Разработка на C++, Java и Haskell».


  • Подробнее о программах

    Категория: Программирование

     

    Руководство для практикующего специалиста, как читать научные статьи по языкам программирования

    Автор: admin от 12-02-2018, 10:35, посмотрело: 22

    Неделю назад я пошутил, что статьи по принципам языков программирования POPL должны соответствовать критерию «интеллектуального запугивания», чтобы их принимали для публикации. Конечно, это неправда, но факт в том, что статьи по языкам программирования выглядят особенно устрашающе для специалистов-практиков (или академик действительно работает в другой области компьютерных наук!). Они битком набиты математическими символами и такими фразами как «суждения», «операционная семантика» и тому подобное. Там много тонких вариантов записи, но вы можете в основном уловить суть статьи, усвоив несколько базовых понятий. Так что вместо рассказа об очередной научной статье я подумал, что сегодня лучше напишу краткое практическое руководство по расшифровке научных статей на тему языков программирования. Здесь я следую книге Бенджамина Пирса «Типы в языках программирования» в качестве авторитетного источника.

    Категория: Программирование » Веб-разработка

     

    Новшества React 16.3(.0-alpha)

    Автор: admin от 12-02-2018, 10:35, посмотрело: 22

    React 16.3-alpha опубликован в npm, его уже можно загружать и использовать. Сегодня мы поговорим о самых крупных и интересных нововведениях этого релиза. В частности, речь пойдёт об API Context, о новых методах жизненного цикла, о статическом методе codev_0, а также об обновлённых инструментах разработчика React.



    Новшества React 16.3(.0-alpha)

    Категория: Программирование » Веб-разработка

     

    Дайджест свежих материалов из мира фронтенда за последнюю неделю №301 (5 — 11 февраля 2018)

    Автор: admin от 11-02-2018, 23:50, посмотрело: 24

    Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.



    Дайджест свежих материалов из мира фронтенда за последнюю неделю №301 (5 — 11 февраля 2018)

    Категория: Программирование

     

    Продвинутая работа с JSON в MySQL

    Автор: admin от 11-02-2018, 23:50, посмотрело: 26

    У MySQL нет возможности напрямую индексировать документы JSON, но есть альтернатива: генерируемые столбцы.



    С момента введения поддержки типа данных JSON в MySQL 5.7.8 не хватает одной вещи: способности индексировать значения JSON. Для того, чтобы обойти это ограничение, можно использовать генерируемые столбцы. Эта возможность, представленная в MySQL 5.7.5, позволяет разработчикам создавать столбцы, содержащие информацию, полученную из других столбцов, предопределенных выражений или вычислений. Генерируя столбец из значений JSON, а затем индексируя его, можно практически индексировать поле с JSON.

    Категория: Программирование

     

    Предсказание случайных чисел в умных контрактах Ethereum

    Автор: admin от 11-02-2018, 23:50, посмотрело: 25

    Предсказание случайных чисел в умных контрактах Ethereum


    Ethereum приобрёл огромную популярность как платформа для первичного размещения монет (ICO). Однако она используется не только для токенов ERC20. Рулетки, лотереи и карточные игры — всё это можно реализовать на блокчейне Ethereum. Как любая реализация, блокчейн Ethereum не поддаётся подделке, он децентрализован и прозрачен. Ethereum допускает выполнение тьюринг-полных программ, которые обычно пишут на языке программирования Solidity. По словам основателей платформы, это превращает систему во «всемирный суперкомпьютер». Перечисленные характеристики полезны в приложениях для азартных игр, где особенно важно доверие пользователей.



    Блокчейн Ethereum является детерминированным и поэтому представляет определённые сложности при написании генератора псевдослучайных чисел (ГПСЧ) — неотъемлемой части любого приложения для азартных игр. Мы решили исследовать смарт-контракты, чтобы оценить безопасность ГПСЧ на Solidity и подчеркнуть характерные ошибки проектирования, которые ведут к появлению уязвимостей и возможности предсказания будущего состояния ГПСЧ.

    Категория: Программирование

     

    Принцип SOLID в языке Go

    Автор: admin от 11-02-2018, 23:50, посмотрело: 25

    Приветствую вас, хабровчане, решил поделиться с сообществом переводом довольно часто (по личным наблюдениям) упоминаемого поста SOLID Go Design из блога Dave Cheney, который выполнял для собственных нужд, но кто-то говорил, что нужно делиться. Возможно для кого-то это окажется полезным.


    SOLID дизайн Go


    Этот пост на основе текста из основного доклада GolangUK прошедшего 18-ого Августа 2016.
    Запись выступления доступна в YouTube.

    Категория: Программирование