Pull to refresh
0
0
Send message

Безопасность клиентских приложений: практические советы для Front-end разработчика

Reading time11 min
Views18K

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


На примере моего проекта я расскажу о том, как сегодня атакуют клиентские приложения и как вам избежать этих угроз.

Читать
Total votes 15: ↑13 and ↓2+11
Comments2

Chrome Audit на 500: Часть 1. Лендинг

Reading time16 min
Views22K
В инструментах разработчика браузера хром есть вкладка «Audit». На ней расположился инструмент который называется Lighthouse, служит он для анализа насколько хорошо сделано веб приложение.

image

Недавно я решил протестировать одно приложение и ужаснулся результатам. Сразу по нескольким разделам оценка находилась в красной зоне. Я принялся изучать что же с моим приложением не то. И нашел в результатах анализа большой список очень полезных рекомендаций, выполнил их и получил 500 баллов. В результате приложение стало запускаться значительно быстрее, а я пересмотрел несколько концепций относительно метода построения приложений. А в этой статье я хочу поделиться самыми интересными решениями к которым я пришел.
Читать дальше →
Total votes 48: ↑43 and ↓5+38
Comments39

Анализ и оптимизация React-приложений

Reading time22 min
Views39K
Люди, вроде меня, которые борются за высокую производительность сайтов, часто тратят на это много времени. Поэтому сейчас я собираюсь раз и навсегда решить проблему низкого быстродействий веб-ресурсов, интерфейс которых написан на React. А именно, я предлагаю всем, кто это читает, сегодня же прекратить пользоваться React.



Автор материала, перевод которого мы сегодня публикуем, конечно же, шутит. Здесь речь пойдёт о том, как оптимизировать производительность React-приложений. Кстати, прежде чем начать, подумаем о том, зачем вообще нужна оптимизация сайтов. Пожалуй, можно сказать, что нужна она для того, чтобы сайтом могло бы пользоваться больше людей, чем до оптимизации.
Total votes 34: ↑32 and ↓2+30
Comments4

Rollup: уже можно собирать приложения

Reading time9 min
Views36K
Rollup — это сборщик javascript приложений и библиотек нового поколения. Многим он давно знаком как перспективный сборщик, который хорошо подходит для сборки библиотек, но плохо подходит для сборки приложений. Однако время идет, продукт активно развивается.

Я впервые попробовал его в начале 2017 года. Он сразу понравился мне за поддержку компиляции в ES2015, treeshaking, отсутствием модулей в сборке и конечно простым конфигом. Но тогда это был сырой продукт, с небольшим числом плагинов и очень ограниченной функциональностью, и я решил оставить его на потом и продолжил собирать через browserify. Вторая попытка была в 2018 году, тогда он уже значительно оброс комьюнити, плагинами и функционалом, но все еще не хватало качества в некоторых функциях, включая watcher. И вот наконец в начале 2019 года можно смело сказать — с помощью Rollup можно просто и удобно собирать современные приложения.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments15

Качество кода

Reading time19 min
Views38K
Качество кода — тема, которая родилась вместе с программированием. Для оценки и контроля качества менеджмента предприятий применяется ISO 9000, для продуктов — ГОСТ и тот же ISO, а вот для оценки качества кода ГОСТа нет. Точного определения и стандарта для качества кода тоже нет.



Каждый разработчик понимает качество по-своему, исходя из опыта. Представления джунов и лидов различаются, и это приводит к разногласиям. Каждая команда для отдельных проектов оценивает код по-своему. Команда обновляется, разработчики уходят, тимлиды сменяются — определение качества меняется. Эту проблему попробует помочь решить Иван Ботанов (StressoID) из Tinkoff.ru — Frontend-developer, преподаватель онлайн-курса по Angular, спикер на митапах и конференциях, ведущий уроков на YouTube и, иногда, тренер команд в компаниях.

В расшифровке доклада Ивана на Frontend Conf поговорим о читаемости, нейминге, декларативности, Code style, и косвенно коснемся отношений джунов и лидов: ошибки, грабли и «сгорание» тимлидов.

Disclaimer: Подготовьтесь морально, в тексте будет много плохого кода, взятого с «особенного» сайта.

Total votes 54: ↑48 and ↓6+42
Comments40

Две стороны WebView: о быстром запуске проектов и краже персональных данных

Reading time8 min
Views47K
Привет, Хабр!

Меня зовут Евгений, я Full Stack JS разработчик, текущий стек Node.js + React + React Native. В разработке я более 10 лет. В мобильной разработке пробовал разные инструменты от Cordova до React Native. Получив опыт работы с Cardova, я понял, что мне хотелось бы создавать нативные интерфейсы, на мой взгляд WebView не должно быть всем приложением. Но это не значит, что его не надо использовать вовсе.

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


Источник: srishta.com

Также немного расскажу о том, как вы можете использовать WebView и как его могут использовать против вас злоумышленники. Примеры в статье будут показаны с использованием фреймворка React Native, но те же идеи можно реализовать и без него.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments9

Google Drive как хранилище для веб-приложения

Reading time9 min
Views42K

Предисловие


Мое веб-приложение хранит данные в localStorage. Это было удобно, пока не захотелось, чтобы пользователь, заходя на сайт с разных устройств, видел одно и то же. То есть, понадобилось удаленное хранилище.

Но приложение «хостится» на GitHub Pages и не имеет серверной части. Я решил не делать сервер, а данные хранить у третьей стороны. Это дает существенные преимущества:

  1. Не нужно платить за сервер, не болит голова о его стабильности и доступности.
  2. Меньше кода, меньше ошибок.
  3. Пользователю не нужно регистрироваться в моем приложении (это многих раздражает).
  4. Приватность выше, и пользователь знает, что его данные хранятся в месте, которому он, скорее всего, доверяет больше, чем мне.

Сначала выбор пал на remoteStorage.js. Они предлагают открытый протокол обмена данными, достаточно приятное API, возможность интеграции с Google Drive и Dropbox, а также свои сервера. Но этот путь оказался тупиковым (почему — отдельная история).

В итоге решил использовать Google Drive напрямую, и Google API Client Library (далее GAPI) как библиотеку для доступа к нему.

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

Надеюсь, данная статья сэкономит вам время, если вы решите использовать Google Drive в вашем приложении.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments19

Практическое применение трансформации AST-деревьев на примере Putout

Reading time10 min
Views16K

Введение


Каждый день при работе над кодом, на пути к реализации полезного для пользователя функционала, становятся вынужденные (неизбежные, либо же просто желательные) изменения кода. Это может быть рефакторинг, обновление библиотеки или фреймворка до новой мажорной версии, обновление синтаксиса JavaScript (что в последнее время совсем не редкость). Даже если библиотека является частью рабочего проекта — изменения неизбежны. Большинство таких изменений — это рутина. В них нет ничего интересного для разработчика с одной стороны, с другой это не приносит ничего бизнесу, а с третьей, в процессе обновления нужно быть очень внимательным чтобы не наломать дров и не поломать функционал. Таким образом мы приходим к тому, что такую рутину лучше переложить на плечи программ, что бы они все делали сами, а человек, в свою очередь, контролировал все ли правильно сделано. Вот об этом и пойдет речь в сегодняшней статье.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments5

Новый взгляд на изучение и документирование исходного кода

Reading time3 min
Views27K
TL;DR Привет. Меня зовут Богдан и я изучаю проблемы чтения кода. Я только что закочнил первую рабочую версию «codecrumbs» — визуального инструмента для изучения исходного кода с помощью «хлебных крошек». Гитхаб репозиторий можно посмотреть тут.

image

Проблема


Недавно я проводил опрос о главных проблемах с которыми мы сталкиваемся когда начинаем изучать исходный код большого проекта (если вы ещё не участвовали, то пройти опрос всё ещё можно тут).
Читать дальше →
Total votes 74: ↑70 and ↓4+66
Comments35

Оверинжинирг 80 уровня или редьсюеры: путь от switch-case до классов

Reading time7 min
Views11K

image


О чем пойдет речь?


Посмотрим на метаморфозы редьюсеров в моих Redux/NGRX приложениях за последние пару лет. Начиная с дубового switch-case, продолжая выбором из объекта по ключу и заканчивая классами с декораторами, блекджеком и TypeScript. Постараемся обозреть не только историю этого пути, но и найти какую-нибудь причинно-следственную связь.

Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments10

Подкасты для хипстеров #2

Reading time2 min
Views2.9K
Согласно опросу, проведенному после написания первой статьи рубрики «Подкасты для хипстеров» токсичная своенравная публика Хабра приняла ее довольно положительно и захотела продолжения (на момент написания данной статьи, рейтинг предыдущей составляет +3, что несомненно можно считать грандиозным успехом).



Во втором выпуске этой наипопулярнейшей рубрики я решил рассказать про подкаст о web-разработке «uWebDesign (Суровый веб)».
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Comments10

Когда исчезнут JavaScript-фреймворки?

Reading time11 min
Views44K
Автор материала, перевод которого мы сегодня публикуем, веб-разработчик, говорит, что он старается регулярно пересматривать набор инструментов, которыми пользуется. Делает он это для того, чтобы понять, может ли он без некоторых из них обойтись, решая свои обычные задачи. Недавно он решил провести эксперимент и создать сложное фронтенд-приложение без использования JavaScript-фреймворков.
Читать дальше →
Total votes 63: ↑57 and ↓6+51
Comments171

Универсальный пульт на Arduino

Reading time4 min
Views137K
Есть много статей в интернете о том, как сделать свой пульт к телевизору на Arduino, но мне понадобился универсальный пульт для управления телевизором и медиа-плеером. Главное преимущество моего универсального пульта в том, что кнопки в приложении для андроид телефона двух-целевые, а впрочем, смотрите на видео.


Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments15

Sagи из жизни

Reading time10 min
Views14K

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


У вас тоже есть знакомый react-разработчик, который рассказывает восхитительные истории о сайд-эффектах в redux? Нет?! Могу я стать этим человеком?



Автор взял на себя смелость не писать вводную часть о том, что же из себя представляет библиотека redux saga. Он надеется, что в случае недостаточности данных великодушный читатель воспользуется поиском хабра или официальным туториалом. Приводимые примеры во многом упрощены для передачи сути.

Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments9

Как начать майнить для начинающих

Reading time4 min
Views661K
Идея и название статьи подсказано юзером Xao в комментарии к недавнему посту Что делать с Bitcoin нам, обычным людям, а также многочисленными вопросами на Тостере. Эта инструкция поможет начать майнинг на обыкновенных компьютерах и ноутбуках под управлением ОС Windows или Linux в составе пула совместной генерации криптовалюты.

Как верно заметил dzzh
Смысла нет сейчас биткоин майнить. Какие-то мелкие монетки генерировать и через биржи в биткоин выводить — еще да.

Поэтому начать майнинг придется с выбора криптовалюты. Данная инструкция состоит из 5 простых шагов:
  1. Выбор форка
  2. Выбор пула
  3. Выбор майнера
  4. Запуск майнинга
  5. Вывод на свой кошелек

Читать дальше →
Total votes 44: ↑18 and ↓26-8
Comments32

Биржа убийств — правильное использование Bitcoin

Reading time2 min
Views397K
image
Честно говоря, я давно ждал этого события. На днях оно случилось.
Открыт общественный краудфандинг-биржа, где принимаются ставки на убийство общественных деятелей.
Схема простая: кто-то вносит имя в блэк-лист, остальные люди, которым тоже не нравится сей деятель и которые желают от него быстрее избавиться, вносят пожертвования через биткоины. В один прекрасный момент, собранная сумма становится привлекательной для киллера-маньяка, он пишет авторам сайта сообщение (делает ставку), мол, тогда-то и тогда-то умрет такой-то человечек из вашего списочка. Если человек действительно умирает, убийца срывает банк и забирает все деньги. Все счастливы (почти все).
Конечно, к сервису два главных вопроса.
Читать дальше →
Total votes 235: ↑201 and ↓34+167
Comments306

Как я преодолевал предел 4Гб на Windows XP 32бит

Reading time4 min
Views344K
Сразу оговорюсь, «преодолевал» в названии отражает только тот факт, что теперь моя XP видит всю память, установленную на системной плате. Не я придумал способ, я просто им воспользовался и теперь хочу поделиться.
Вопрос о четырёх гигабайтах памяти в Windows XP (здесь, и далее 32 бит) поднимался на просторах Интернет неоднократно. И так же неоднократно делался вывод, что более четырёх увидеть в принципе невозможно, а так как оборудование тоже требует адресного пространства, то и того меньше. Обычно 3.25 Гб, или около того. Очень подробно и убедительно история вопроса освещена здесь: Четыре гигабайта памяти — недостижимая цель?

Меня этот вопрос тоже волновал. Хотя, казалось бы, можно поставить 64 битную систему, или даже Windows Server (как известно он даже в 32-битной версии видит всю память), но я хотел пользоваться Windows XP. Два раза за последние 3 года я переходил на Windows 7, в первый раз на 64-битную, второй раз на 32-х битную, но в итоге оба раза вернулся назад на XP, которая живёт у меня без переустановки с 2007 года.
Последний раз я отказался от семёрки в пользу старушки буквально две недели назад. Притом, надо отметить, что семёрка была хоть и 32-х битная, но в ней была разблокирована возможность видеть всю доступную память. Способ разблокировки доступен в Интернет. И теперь мне с новой силой захотелось решить этот вопрос и в XP.
Читать дальше →
Total votes 151: ↑122 and ↓29+93
Comments170

Создание своего банка, или Как обеспечить себе безбедную старость

Reading time15 min
Views354K
Наблюдая за своими родителями-пенсионерами, а точнее за размерами их пенсий, я крепко задумываюсь о том, как обеспечить себе нечто оное в достойном меня размере. На государство в составе СНГ рассчитывать, похоже, не приходится. Значит, надо что-то делать самому! И начинать надо сейчас, пока мне 32 года, есть какой-никакой заработок и силы крутиться. Раньше были мысли, что я буду вечно молодым, вечно здоровым и все время что-то делать. Постепенно начинаю осознавать, что лет 20… 30 — и силы будут таять (или распыляться). Поэтому пару лет назад я начал понемногу что-то делать в этом направлении. Получил некоторый опыт, который может быть интересен уважаемому сообществу. Даже если для читателя вопрос пенсии сейчас звучит безумно абстрактно, то все равно рекомендую хотя бы пробежаться. Если бы я 5 лет назад почитал такой материал — я был бы уже существенно богаче!..
UPD: в статье добавил про смысл диверсификации, а то в комментариях много вопросов было…
В общем, рекомендую!
Total votes 222: ↑155 and ↓67+88
Comments345

GSM сигнализация для квартиры

Reading time3 min
Views96K
image
Доброго времени суток, Хабр!
Охрана квартиры, дачи, гаража, машины — эти вопросы всегда стояли особенно остро и это не только в нашем государстве, а вообще. Как говорится «есть спрос, есть и предложения», т.е. всегда будут кражи, так как есть те, кто скупает краденое. Таким образом, хочу представить Вам небольшой проект, который поможет Вам немного обезопасить дом, и если не поймать преступников (что в данном случае и не требуется), то хотя бы вспугнуть их и проинформировать Вас о том, что была попытка проникновения в ваше святая святых.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments70

Полезные материалы для мобильного разработчика #52 (5-11 мая)

Reading time2 min
Views12K
Поздравляю всех с прошедшим Праздником и предлагаю очередную сводку «мобильных» новостей! На этой неделе Fiksu выпустила очередной отчет с индексом конкурентоспособности и данными о CPI и CPAL за март, товарищ Mikhail_dev более подробно рассказал о работе с Dalvik Debug Monitor Server, сведен единый «Кодекс Фримиум», бывший менеджер App Store рассказал немного о том, как добиться фичеринга Apple.

Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments2

Information

Rating
Does not participate
Location
Радужный (Владимирская обл.), Владимирская обл., Россия
Date of birth
Registered
Activity