Рубрика «Разработка веб-сайтов» - 279

Опрос разработчиков от StackOverflow (2017) - 1 В конце марта вышел очередной мега-опрос разработчиков от StackOverflow, в котором приняли участие десятки тысяч человек. Ссылка на результаты опроса здесь. Отчет получился внушительным по размеру, поэтому давайте просто рассмотрим некоторые интересные моменты из него.

Кстати, на КДПВ — список "Most Loved" языков, это языки, на которых опрашиваемые пробовали писать, и им понравилось.

Читать полностью »

PHP: Хранение сессий в защищённых куках - 1На некоторой стадии развития веб-проекта возникает одна из следующих ситуаций:

  • backend перестаёт помещаться на одном сервере и требуется хранилище сессий, общее для всех backend-серверов
  • по различным причинам перестаёт устраивать скорость работы встроенных файловых сессий

Традиционно в таких случаях для хранения пользовательских сессий начинают использовать Redis, Memcached или какое-то другое внешнее хранилище. Как следствие возникает бремя эксплуатации базы данных, которая при этом не должна быть единой точкой отказа или бутылочным горлышком в системе.

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

Анонс митапа Sync.NET #4 в Харькове - 1

Собираемся на Sync.NET #4, друзья! Традиционно в программе ивента крутые доклады и не менее крутые спикеры, отличный кофе и не менее вкусные сладости, встреча со старыми и новыми знакомыми, приветливый фотограф, дружелюбные бариста и много-много интересного.
Кратко о спикерах и докладах — под катом.
Читать полностью »

Добрый день, уважаемые коллеги, пользователи и критики! Сервис MyTaskHelper предоставляет своим клиентам возможности и функционал для реализации sms- и e-mail рассылок. В этой статье мы детально (с примерами и скриншотами) расскажем о вариантах организации только email-уведомлений и рассылок. Что же касается sms-рассылок и уведомлений, то они создаются аналогичным образом.

У клиентов MTH имеется 2 возможности:

  1. Отправлять автоматизированные сообщения при тех или иных манипуляциях с веб-формой или базой данных;
  2. Генерировать рассылки как по собранной посредством веб-форм, так и по импортированной базе контактов клиентов или партнеров.

Напомню, что во всех CMS в той или иной мере имеется возможность настроить e-mail-уведомления различных типов. А вот с функцией e-mail-рассылок туговато и для того, чтобы вести эффективные и массовые рассылки, придется заводить аккаунт на каком-либо специализированном сайте. Но в MTH реализованы обе опции и даже те, кто зарегистрировался в системе и укладывается в лимиты бесплатного аккаунта (см. страницу с ценами) смогут в полной мере оценить удобство интеграции обеих функций в одной системе.

Читать полностью »

Абсолютно невозможно отрицать, что развитие естественных паттернов в интерфейсах дало фантастический толчок к развитию всей ИТ-индустрии в целом. И речь не только и не столько о голосовых интерфейсах, сколько о повсеместном внедрении жестов, гигантском сдвиге в парадигме мобильных платформ и, конечно, существенных работах в области UI и UX в целом. В то время как индустрия стремится стать все более дружелюбной для все более широких масс людей, обычная и, в определенной степени, рутинная разработка превращается в бесконечные попытки объять необъятное. Если раньше нас в основном заботили уровни абстракции языков и фреймворков, то сейчас перед нами стоят куда более глобальные вопросы. Как найти баланс между сложным и функциональным интерфейсом? Стоит ли начинать новый проект с микросервисов? На эти вопросы я не могу ответить, зато я могу рассказать вам об инструментах, которые уже сейчас существенно облегчают и удешевляют освоение и применение новых технологий и подходов к разработке.Читать полностью »

Как мы делали безопасную телефонию для Wheely, мирового сервиса личных водителей - 1Добрый день, уважаемые читатели. Мы тут недавно осознали простую вещь – наш блог так долго рассказывал о том, как реализовать ту или иную фичу, что мы совершенно упустили из виду зачем. Другими словами, когда есть конкретная задача, найти под нее инструмент бывает несложно. Тем более, что со своей стороны мы сделали максимум для того, чтобы это было просто и недорого.

Однако нам часто встречается ситуация, когда клиент просто не знает, что именно он может сделать. Ни «как», а именно «зачем». В результате ты где-нибудь на конференции, мельком, рассказываешь простой случай, а из рядов доносится: «O, а это мысль!»

Поэтому мы решили сделать несколько публикаций, посвященных задачам, которые решаются, условно говоря, 10 строчками кода, но необходимость которых не всегда приходит в голову. И первая из них: как мы делали телефонию для сервиса вызова личных водителей Wheely.
Читать полностью »

Разработка WebRTC видеочата между iOS, Android и браузером - 1

В предыдущей статье мы описывали принципы разработки видеочата между браузером и Android — устройством. Теперь же попробуем усложнить задачу и заимплементить трехсторонний видеочат на следующих платформах: Google Chrome на десктопе, Android приложение на планшете, и iOS приложение для Apple iPhone.
Читать полностью »

image

Краткий обзор Matreshka.js. В посте используется ECMAScript 2017, который можно переписать на ECMAScript 5.

Основные функции

Функция bindNode связывает свойство и элемент.

const object = { name: 'Brendan' };
const node = document.querySelector('.name');
Matreshka.bindNode(object, 'name', node);
object.name = 'Doug';

Если свойство меняется, меняется и элемент, если элемент меняется (например, пользователь вводит текст), меняется и свойство. Из коробки Matreshka.js умеет обрабатывать любые элементы форм. Можно объявить байндинг для произвольных элементов см. документацию.

Функция calc связывает одно свойство с другими.

Matreshka.calc(object, 'fullName', ['firstName', 'lastName'], (firstName, lastName) => {
    return `${firstName} ${lastName}`
});
object.firstName = 'Brendan';
object.lastName = 'Eich';
// ...
console.log(object.fullName); // "Brendan Eich"

Когда меняется свойство-источник (firstName или lastName), меняется и свойство-цель (fullName).

Вместе с функцией bindNode можно объявлять длинные цепочки зависимостей: свойство a зависит от состояния элемента e1, свойство b зависит от свойства a, свойство c зависит от элементов e2 и e3 и от свойства b, изменение которого, как следствие, меняет e1, e2 и e3...

Такие зависимости можно представить как таблицу в табличном процессоре (например, Excell): в каждый момент времени вы думаете об одной формуле, а не о многочисленных связях все ячеек. Как следствие, получаете меньше багов, так как нужно думать об атомарных сущностях, а не обо всей "таблице" (приложении). Больше информации в документации.

Читать полностью »

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №256 (27 марта — 2 апреля 2017) - 1

Читать полностью »

Сегодня, в день смеха, рада поделиться с вами гороскопом для разработчиков. Отнеситесь к нему с юмором и чаще улыбайтесь!
Если по счастливому совпадению вы нашли что-то общее с персонажами, напишите в комментариях.
Авторские иллюстрации подготовлены Антоном , за что ему огромное спасибо!
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js