Апрель 14

Архитектура модульных React + Redux приложений


Большинство разработчиков начинает знакомство с Redux с Todo List Project. Это приложение имеет следующую структуру:

actions/
  todos.js
components/
  todos/
    TodoItem.js
    ...
constants/
  actionTypes.js
reducers/
  todos.js
index.js
rootReducer.js

На первый взгляд такая организация кода кажется логичной, ведь она напоминает стандартные соглашения многих backend MVC-фреймворков:

app/
  controllers/
  models/
  views/

На самом деле, это неудачный выбор как для MVC, так и для React+Redux приложений по следующим причинам:

  1. С ростом приложения следить за взаимосвязью между компонентами, экшнами и редюсерами становится крайне сложно
  2. При изменении экшна или компонента с большой вероятностью потребуется внести изменения и в редюсер. Если количество файлов велико, скролить IDE вверх/вниз не удобно
  3. Такая структура потворствует копипасте в редюсерах

Не удивительно, что многие авторы(раз, два, три) советуют структурировать приложение по «функциональности» (by feature). Читать дальше →

Раздел: Без рубрики | Комментарии к записи Архитектура модульных React + Redux приложений отключены
Апрель 13

Безопасность OAuth в эпоху мобильных приложений, или о чем молчит интернет

image

«В API ВКонтакте для получения ключа доступа используется открытый протокол OAuth 2.0. При этом пользователь не передает логин и пароль приложению, поэтому его аккаунт не может быть скомпрометирован»документация VK API.

«ОАuth — это открытый протокол, предоставляющий простой и безопасный способ авторизации для мобильных, десктопных и веб приложений» — вольный перевод слогана oauth.net.

К сожалению, во многих случаях эти утверждения являются ложными. О том как сделать работу через OAuth более безопасной, как с точки зрения конечного пользователя, так и при реализации собственного OAuth провайдера — читайте под катом. Будут рассмотрены такие аспекты безопасности, которым на текущий момент уделено незаслуженно мало внимания в открытых публикациях.

Материал насыщен специфической терминологией и рассчитан на подготовленного читателя.
Читать дальше →

Раздел: Информационная безопасность | Комментарии к записи Безопасность OAuth в эпоху мобильных приложений, или о чем молчит интернет отключены
Апрель 12

Лекции Технотрека. Проектирование СУБД (осень 2016)

image

Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка SQL с учетом особенностей объектно-реляционной базы данных PostgreSQL. Программа предусматривает комплексный подход к изучению стандартизованного языка SQL на платформе PostgreSQL, включая некоторые минимальные возможности администрирования пользователей, ролей, схем, базовых таблиц и других объектов базы данных. Мы рассмотрим основы работы с базой данных PostgreSQL и некоторые особенности SQL применительно к ней. Более подробно — под катом.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Лекции Технотрека. Проектирование СУБД (осень 2016) отключены
Апрель 12

Эволюция приложений или куда мы идем

Называть статью «Эволюция прикладных информационных систем и перспективы развития их архитектуры» было бы слишком академично, а ведь тут будет очень краткая выжимка из реального практического опыта, возможные варианты развития технологий, вызвавшие их потребности и пути решения. Я надеюсь, что статья поможет обобщить и переосмыслить широкий круг задач, связанных с прикладными ИС, и сразу хочу уточнить, что понимаю под этими терминами. ИС — это системы, обеспечивающие обработку, передачу и хранение данных. Это далеко не все программирование, но сейчас ИС чаще всего ассоциируются с веб и мобильными приложениями, хотя и не совпадают с ними полностью, знак равенства между UI и ИС нельзя ставить тем более. Очень прошу всех посмотреть на вопрос как можно шире и присоединяться к обсуждению в комментариях. И еще, я намеренно не буду использовать названия фреймворков и технологий, чтобы избежать лишних холиваров, ограничившись общепринятыми названиями архитектур, стандартов и протоколов, что и вам рекомендую в комментариях.
image

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Эволюция приложений или куда мы идем отключены
Апрель 11

Tarantool как основное хранилище данных для серверных приложений, написанных на .NET

image

Привет, Хабр! Сегодня хочу поделиться с вами текстовой версией доклада, представленного на Tarantool Meetup второго марта 2017-го года в Mail.Ru Group с поправкой на то, что прошёл уже месяц, и кое-что из обещанного уже было реализовано, поэтому текст будет интересен даже тем, кто видел выступление. Я работаю в компании eVote, которая разрабатывает сервис онлайн-опросов. Мы активно применяем Windows и .NET-технологии в наших продуктах, и в этом посте я расскажу про то, как мы добавили к стеку наших технологий СУБД Tarantool.

Большое спасибо коллегам, друзьям и сотрудникам компании Mail.Ru Group, которые помогали написать эту статью.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи Tarantool как основное хранилище данных для серверных приложений, написанных на .NET отключены
Апрель 10

[Перевод] Шаблоны проектирования с человеческим лицом

image

Шаблоны проектирования — это способ решения периодически возникающих проблем. Точнее, это руководства по решению конкретных проблем. Это не классы, пакеты или библиотеки, которые вы можете вставить в своё приложение и ожидать волшебства.

Как сказано в Википедии:

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

image Будьте осторожны

  • Шаблоны проектирования — не «серебряная пуля».
  • Не пытайтесь внедрять их принудительно, последствия могут быть негативными. Помните, что шаблоны — это способы решения, а не поиска проблем. Так что не перемудрите.
  • Если применять их правильно и в нужных местах, они могут оказаться спасением. В противном случае у вас будет ещё больше проблем.

В статье приведены примеры на PHP 7, но пусть вас это не смущает, ведь заложенные в шаблонах принципы неизменны. Кроме того, внедряется поддержка других языков.

Читать дальше →

Раздел: Без рубрики | Комментарии к записи [Перевод] Шаблоны проектирования с человеческим лицом отключены
Апрель 10

[Перевод] Будущее API

image

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

Читать дальше →

Раздел: Без рубрики | Комментарии к записи [Перевод] Будущее API отключены
Апрель 10

e-Government будущего

Возможно ли сделать так, чтобы любой желающий мог безопасно писать код прямо в кабинете электронного правительства?

Читать дальше →

Раздел: Без рубрики | Комментарии к записи e-Government будущего отключены
Апрель 10

Инструменты для команды удалённых разработчиков

Сегодня все чаще говорят о возможности удаленной работы. Тут и там большие компании анонсируют повсеместный исход офисного и не только планктона из корпоративных теплиц. Разработчики – первые, кого вспоминают в этот контексте. Работая удалённым разработчиком, вы зачастую не можете встретиться лицом к лицу с клиентом, лично представить свой проект, присесть за стол к коллеге, чтобы вместе решить какую-то проблему. Из-за этого у некоторых может возникнуть впечатление, что у удалённой работы есть ряд серьёзных недостатков. На мой взгляд, и по мнению десятков тысяч удаленных разработчиков это ложное впечатление. Удалённые разработчики в целом счастливее, работают усерднее, и быстро осваивают подходящие инструменты для совместной работы. Конечно, удалённая работа — вещь непростая. Ведь нас с детства приучают к тому, что нам нужен коллектив, и что общаться нужно лицом к лицу. Уходя из офиса на удалёнку, приходится учиться пользоваться инструментами, компенсирующими географическую распределённость команды. Под катом — подборка инструментов, которая поможет вам эффективно взаимодействовать с коллегами в других городах и странах. Безусловно, это не весь инструментарий. Было бы любопытно прочесть о ваших находках в комментариях к данной статье. Читать дальше →

Раздел: Без рубрики | Комментарии к записи Инструменты для команды удалённых разработчиков отключены
Апрель 8

Цифровая экосистема eGaaS

image

eGaaS (Electronic Government as a Service) — это цифровая экосистема, спроектированная для реализации идеи электронного правительства. При этом термин “электронное правительство” в eGaaS трактуется не в узком смысле, как лишь онлайн сервис оказания услуг гражданам или механизм автоматизации деятельности правительства, а понимается как целостная цифровая экосистема, объединяющая в едином информационном пространстве деятельность всех сфер государства: институтов власти, экономики, финансов и социальной сферы. Экосистема eGaaS включает в себя глобальные реестры и программные средства для построения государственных, частных и общественных пользовательских приложений и платформ на базе смарт-контрактов.

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

Раздел: Без рубрики | Комментарии к записи Цифровая экосистема eGaaS отключены