Как стать автором
Обновить
0
Карма
0
Рейтинг

Front-end developer

  • Публикации
  • Комментарии

Как Мегафон спалился на мобильных подписках

Информационная безопасностьМонетизация веб-сервисовКонтент-маркетингЗаконодательство в ITСотовая связь
Обсуждение операторов сотовой связи в Телеграм tg.guru/opsosru

Уже давно как не смешные анекдоты ходят истории о платных мобильных подписках на IoT устройствах.


С Пикабу

Всем понятно, что без действий сотовых операторов эти подписки не обходятся.
Читать дальше →
Всего голосов 626: ↑624 и ↓2 +622
Просмотры239.2K
Комментарии 678

Новости

Показать еще

Перед вами — React Modern Web App

Разработка веб-сайтовOpen sourceJavaScriptReactJSПоисковая оптимизация
Tutorial

Перед тем как начать собирать с нуля Modern Web App нужно разобраться, что такое — Современное Веб-Приложение?


Modern Web App (MWA) — приложение, придерживающееся всех современных веб-стандартов. Среди них Progressive Web App — возможность скачивать мобильную браузерную версию на телефон и использовать как полноценное приложение. Так же это возможность листать сайт в оффлайне как с мобильного устройства, так и с компьютера; современный материальный дизайн; идеальная поисковая оптимизация; и естественно — высокая скорость загрузки.



Вот что будет в нашем MWA (советую использовать эту навигацию по статье):



Люди на Хабре деловые, поэтому сразу ловите ссылку на GitHub репозиторий, архив с каждой из стадий разработки и демо. Статья рассчитана на разработчиков, знакомых с node.js и react. Вся необходимая теория представлена в необходимом объеме. Расширяйте кругозор, переходя по ссылкам.


Приступим!

Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Просмотры28.4K
Комментарии 11

Как развернуть окружение для разработки приложений на React Native на Windows

Блог компании НеофлексРазработка мобильных приложенийReactJS
Tutorial

Доброго времени суток!


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

Конечно, на официальном сайте есть подробное описание, но следуя только этим рекомендациям, было довольно сложно сделать все настройки.


Читать дальше →
Всего голосов 15: ↑12 и ↓3 +9
Просмотры27K
Комментарии 9

Опыт использования redux без редьюсеров

Разработка веб-сайтовJavaScriptReactJS
Из песочницы


Хотел бы поделиться своим опытом использования redux в enterprise приложении. Говоря о корпоративном ПО в рамках статьи, я акцентирую внимание на следующих особенностях:

  • Во-первых, это объем функционала. Это системы, которые разрабатываются по много лет, продолжая наращивать новые модули, либо до бесконечности усложняя то, что уже есть.
  • Во-вторых, зачастую, если мы рассматриваем не презентационный экран, а чье то рабочее место, то на одной странице может быть смонтировано огромное количество привязанных компонент.
  • В-третьих, сложность бизнес-логики. Еcли мы хотим получить отзывчивое и приятное в использовании приложение, значительную часть логики придется делать клиентской.

Первые два пункта накладывают ограничения по запасу производительности. Об этом чуть позже. А сейчас, предлагаю обсудить проблемы, с которыми сталкиваешься, используя классический redux – workflow, разрабатывая что либо, сложнее чем TODO – list.
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Просмотры6.6K
Комментарии 11

Маршрутизация в большом приложении на React

Блог компании Rambler&CoРазработка веб-сайтовJavaScriptПрограммированиеReactJS


Привет, меня зовут Борис Шабанов, я — руководитель Frontend-разработки в департаменте разработки рекламных технологий Rambler Group. Сегодня я расскажу вам о том, как на нашем приложении возникли проблемы маршрутизации, и про то, как мы их решали.

Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры30.5K
Комментарии 21

Руководство по Node.js, часть 3: хостинг, REPL, работа с консолью, модули

Блог компании RUVDS.comХостингРазработка веб-сайтовJavaScriptNode.JS
Перевод
Tutorial
Перед вами третья часть перевода руководства по Node.js. Сегодня мы поговорим о выборе хостинга для Node.js-проектов, о том, как работать с Node.js в режиме REPL и как запускать скрипты с аргументами, о взаимодействии с консолью и о модулях.



Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Просмотры55.3K
Комментарии 6

Комментарии в коде как способ самовыражения

Блог компании ua-hosting.companyРазработка веб-сайтовПрограммированиеРазработка мобильных приложений
Недавно, ковыряя один не особо популярный фреймворк, я наткнулся на следующий кусок кода.


Потому что роботы-убийцы любят единорогов!

Не знаю, какую мысль и в каком настроении хотел донести автор, но это навело меня на размышления: как часто мы используем комментарии не совсем по назначению? Немного находок под катом.

//Не рекомендуется к прочтению, если Вы не любите пятничные посты во вторник.
Читать дальше →
Всего голосов 58: ↑52 и ↓6 +46
Просмотры26.1K
Комментарии 73

Уязвимости вашего приложения

Блог компании JUG Ru GroupИнформационная безопасностьCSSJavaScriptHTML

Актуальны ли ещё угрозы XSS? Прошло около 20 лет с тех пор, как Cross Site Scripting (XSS) появился как вид атаки. С тех пор мы получили богатый опыт и знания, защита наших сайтов стала намного сложнее, а многочисленные фреймворки были призваны оберегать нас от ошибок. Но последние данные показывают совсем другую картину: в первых кварталах 2017 года количество сообщений об XSS-атаках и количество найденных уязвимостей выросло в несколько раз.


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


Прототипом статьи является доклад на конференции HolyJS 2017 Moscow. Алексей — фронтенд-тимлид/архитектор в компании EPAM Systems и один из лидеров сообщества FrontSpot в Минске. Основные области профессиональных интересов: архитектура и инфраструктура приложений, управление разработкой.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Просмотры24.4K
Комментарии 29

Веб-воркеры в JavaScript: безопасный параллелизм

Блог компании RUVDS.comРазработка веб-сайтовJavaScript
Перевод
Веб-воркеры дают программисту инструмент для выполнения JavaScript-кода за пределами главного потока, который отвечает за то, что происходит в браузере. Этот поток обрабатывает запросы на вывод данных на экран, он поддерживает взаимодействие с пользователем, воспринимая, в частности, нажатия на клавиши клавиатуры и щелчки мышью. Этот же поток отвечает за поддержку сетевого взаимодействия, например, обрабатывая AJAX-запросы.

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

image

Веб-воркеры позволяют выполнять JavaScript-код в отдельном потоке, который совершенно независим от главного потока и от того, что в нём обычно происходит.

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

В материале, перевод который мы публикуем сегодня, будут рассмотрены особенности использования веб-воркеров для решения задач, которые слишком тяжелы для главного потока. В частности, речь здесь пойдёт о том, как организовать обмен данными между главным потоком и потоком веб-воркера. Здесь же будет рассмотрена пара примеров, иллюстрирующих различные сценарии использования веб-воркеров.
Читать дальше →
Всего голосов 27: ↑25 и ↓2 +23
Просмотры16.7K
Комментарии 0

Как работает JS: движки рендеринга веб-страниц и советы по оптимизации их производительности

Блог компании RUVDS.comРазработка веб-сайтовJavaScriptКлиентская оптимизация
Перевод
Сегодня, в переводе одиннадцатой части серии материалов, посвящённых JavaScript, мы поговорим о подсистемах браузера, ответственных за рендеринг веб-страниц. Они играют ключевую роль в деле преобразования описаний документов, выполненных с помощью HTML и CSS, в то, что мы видим на экране.

image

Автор материала говорит, что в компании SessionStack приходится уделять рендерингу огромное внимание. В этой статье он поделится советами, касающимися оптимизации веб-страниц с учётом особенностей их визуализации.
Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры38.1K
Комментарии 6

Простой статический сайт на Webpack 4

Разработка веб-сайтовCSSJavaScriptHTMLNode.JS
Tutorial


После прочтения ряда статей (например, этой) решил перейти на современный подход с использованием Node.js при написании простых сайтов с подхода «динозавров». Ниже представлен разбор примера сборки простого статического сайта с помощью Webpack 4. Статья написана, так как инструкции с решением моей задачи не нашел: пришлось собирать всё по кусочкам.

Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры120.6K
Комментарии 88

Вам действительно нужен Redux?

JavaScriptСовершенный кодООПReactJSTypeScript

Не так давно React позиционировал себя как "V in MVC". После этого коммита маркетинговый текст изменился, но суть осталась той же: React отвечает за отображение, разработчик — за все остальное, то есть, говоря в терминах MVC, за Model и Controller.


Одним из решений для управления Model (состоянием) вашего приложения стал Redux. Его появление мотивировано возросшей сложностью frontend-приложений, с которой не способен справиться MVC.


Главный Технический Императив Разработки ПО — управление сложностью

Совершенный код

Redux предлагает управлять сложностью с помощью предсказуемых изменений состояния. Предсказуемость достигается за счет трех фундаментальных принципов:


  • состояние всего приложения хранится в одном месте
  • единственный способ изменить состояние — отправка Action'ов
  • все изменения происходят с помощью чистых функций

Смог ли Redux побороть возросшую сложность и было ли с чем бороться?

Читать дальше →
Всего голосов 42: ↑40 и ↓2 +38
Просмотры47K
Комментарии 632

Как работает JS: WebSocket и HTTP/2+SSE. Что выбрать?

Блог компании RUVDS.comРазработка веб-сайтовJavaScript
Перевод
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы

Перед вами — перевод пятого материала из серии, посвящённой особенностям JS-разработки. В предыдущих статьях мы рассматривали основные элементы экосистемы JavaScript, возможностями которых пользуются разработчики серверного и клиентского кода. В этих материалах, после изложения основ тех или иных аспектов JS, даются рекомендации по их использованию. Автор статьи говорит, что эти принципы применяются в ходе разработки приложения SessionStack. Современный пользователь библиотек и фреймворков может выбирать из множества возможностей, поэтому любому проекту, для того, чтобы достойно смотреться в конкурентной борьбе, приходится выжимать из технологий, на которых он построен, всё, что можно.
Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры78.7K
Комментарии 10

Приемы неявного вызова php кода, применяемые во вредоносных скриптах

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

Данный подход популярен среди разработчиков вредоносного кода, так как с одной стороны значительно усложняет анализ исходного кода, а с другой позволяет хранить код в текстовых данных. Например, часть вредоносного кода может загружаться со стороннего сайта, из базы данных, мета-данных jpeg/png/gif или передаваться в запросе к скрипту. Кроме того, часть кода, представленная в виде обычной текстовой строки, может быть легко зашифрована.

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

Несмотря на все многообразие вредоносного кода, существует не так много вариантов объявления и косвенного вызова функций. Ниже представлены примеры различных техник скрытого вызова кода. Для простоты и наглядности пусть «вредоносный код» представлен вызовом

echo "Test"


который выводит слово «Test» на странице. Естественно, в реальных шеллах и бэкдорах имена переменных и функций, а также исполняемый код не хранятся в открытом виде и в большинстве случаев обфусцированы.

Читать дальше →
Всего голосов 95: ↑73 и ↓22 +51
Просмотры32.6K
Комментарии 35

Как и зачем «ломают» интернет-магазины

Информационная безопасностьРазработка под e-commerce


Вы владелец интернет магазина, жизнь прекрасна и замечательна – вы договариваетесь с поставщиками или налаживаете собственное производство. Специально обученные люди или Вы сами занимаетесь продвижением, контекстной рекламой.
Магазин мало-помалу начинает приносить доход и занимать свою нишу в расширяющемся рынке интернет торговли. И становится мишенью.
Читать дальше →
Всего голосов 80: ↑50 и ↓30 +20
Просмотры56.8K
Комментарии 23

Как не терять деньги при оплате через PayPal

Платежные системы
Часто платите через PayPal и хотите быть уверенным что не переплачиваете 1-2% от суммы платежей? Тогда загляните под кат. Пользователям PayPal «со стажем», возможно, это будет не интересно, но кто знает…
Все равно читать...
Всего голосов 92: ↑80 и ↓12 +68
Просмотры441.8K
Комментарии 58

Комплексный твик реестра для Windows 7 + бонус: Перенос пользовательских данных

Системное администрирование
Из песочницы

Быстрая настройка Windows


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

Можно долго и нудно настраивать различные параметры системы по разным аплетам Панели управления и др., ставя и снимая галочки, прописывая нужные параметры. Но есть и более быстрый путь — применить все необходимые настройки «в два клика» — через готовый файл настроек реестра. Про твики реестра Windows системные администраторы должны знать. Наверняка у многих есть свой набор настроек, собранных в *.reg файле. С помощью твиков можно не только быстро настроить «чистую» операционную систему, но и переиначить параметры рабочей машины без переустановки ОС.
Читать дальше →
Всего голосов 20: ↑10 и ↓10 0
Просмотры84.1K
Комментарии 24

Как убеждать людей в сети: семнадцать малоизвестных джедайских трюков

Управление проектами
Перевод
Recovery mode


Хотите узнать, как на просторах интернета убеждать людей и получать от них желаемое?

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

В этой статье не будет ни слова о взаимном обмене, дефиците, социальном доказательстве и прочих широко известных принципах убеждения. Вы наверняка и так все о них знаете
Читать дальше →
Всего голосов 149: ↑108 и ↓41 +67
Просмотры148.9K
Комментарии 78

URL.js или дружим JavaScript с обработкой ссылок

JavaScript
Из песочницы
image

Доброго времени суток, уважаемые хабравчане!

Возникла передо мной сегодня задача генерации GET-параметров и всего URL в целом, на стороне клиента, прям вот щас, без возможности «поговорить» с сервером. Сразу оговорюсь, про этот пост я узнал вот прям перед написанием данной статьи ибо сначала закончил писать, а потом уже прибег к поиску, да и пост тот — не со всем про то же самое, что у меня.

Итак, к делу.

Задача и проблемы


Проблемы — те же что и в посте, который я привел выше:
  • Невозможность использовать window.location для «приготовления» URL;
  • Нельзя работать сразу с несколькими window.location в силу политики безопасности браузеров;
  • Отсутствие известных готовых решений ( да и сейчас, уже апосля, я не нашел подобного кода )

Задачи которые я поставил перед собой:
  • Удобный синтаксис
  • Возможность как читать части URL так и изменять их
  • Работа с GET-параметрами
  • Кроссбраузерность и универсальность


Писал я на чистейшем JavaScript, причем без использования prototype.__defineGetter__ или prototype.__defineSetter__ в угоду кроссбраузерности ибо IE < 9 такого не умеет. Более подробно про getters/setters написано в этом посте.

Для тех кому интересно — сядем разберем, а кому надо готовое решение — милости прошу в конец поста, ссылки на скачивание — там.

Приступим! Раньше сядем — раньше выйдем.
Читать дальше →
Всего голосов 60: ↑47 и ↓13 +34
Просмотры40K
Комментарии 60

Как писать парсеры на JavaScript

JavaScriptПрограммирование
… а именно как писать LL парсеры для не очень сложных структур при помощи конструирования сложного парсера из более простых. Изредка возникает необходимость распарсить что то несложное, скажем некую XML-подобную структуру или какой нибудь data URL, и тогда обычно возникает либо простыня хитрого трудно читаемого кода либо зависимость от какой то ещё более сложной и хитрой библиотеки для парсинга. Здесь я собираюсь совместить несколько известных идей (какие то из них попадались на Хабре) и показать как можно просто и лаконично написать довольно сложные парсеры уложившись при этом в совсем немного строчек кода. Для примера я буду писать парсер XML-подобной структуры. И да, я не буду вставлять сюда картинку для привлечения внимания. В статье вообще картинок нет, поэтому читать будет трудно.

Читать дальше →
Всего голосов 60: ↑56 и ↓4 +52
Просмотры89.1K
Комментарии 53
1

Информация

В рейтинге
5,840-й
Откуда
Кишинев, Молдова, Молдова
Зарегистрирован
Активность