Search
Write a publication
Pull to refresh
10
0
Руслан @Sect0R

PHP, Angular, VueJS

Send message

PWA — это просто. Hello Habr

Reading time6 min
Views23K
Продолжаем знакомство с Progressive Web Applications. После теоретической прошлой части самое время перейти к практике.

Сегодня мы построим простое, но полноценное PWA «Hello Habr».




Приложение доступно по адресу https://altrusl.github.io/habr-pwa/hello-habr/. При открытии в браузере на мобильном устройстве возможно добавление ярлыка на домашний экран и запуск в полноэкранном режиме.
Читать дальше →

Используем AMP как библиотеку общего назначения для создания быстрых динамических сайтов

Reading time18 min
Views22K

Изменить первое впечатление очень трудно. И я говорю не только о людях. Технологии также часто становятся заложниками первого впечатления — своей первой версии. И потом несмотря на годы развития, новые возможности и устранение старых недостатков, в массовом сознании технология остается той самой несовершенной, своей первой версией. Тем, кто не пытается бороться с такого рода когнитивными искажениями, остаётся только смотреть на успехи конкурентов, использующих знакомые технологии в новых сценариях, с немым вопросом: "А что, так можно было!?".



Наиболее ярким примером технологии, которая шагнула далеко вперёд по сравнению с тем, чем она была в самом начале, на мой взгляд является AMP — Accelerated Mobile Pages. Многие разработчики воспринимают AMP как способ положить статический контент своего сайта (статьи, новости, заметки и т.д.) в кэш Google, чтобы при открытии из поиска этот контент загружался мгновенно (о высокой скорости загрузки AMP страниц свидетельствует иконка молнии в результатах поиска :)). Естественно, если вам нужно добиться именно такого результата, то с AMP это сделать будет очень легко. Но AMP — это гораздо больше чем просто технология для работы со статическим контентом или кэшем Google. AMP уже давно используется как библиотека общего назначения, основанная на web компонентах, для создания быстрых динамических страниц и даже сайтов целиком, на которые пользователи попадают как из поиска, так и из других источников, включая прямые заходы. С этой точки зрения AMP можно поставить в один ряд с Polymer, React или Angular. Естественно с оглядкой на то, что AMP предназначена для простых (чтобы это не значило) сайтов, где основной упор делается на контент, а динамическая составляющая ограничена.


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

Анонс RamblerFront& #5

Reading time1 min
Views2.1K


28 июня на Мансарде Rambler&Co состоится пятый внешний RamblerFront& meetup, на котором наши сотрудники и друзья поделятся прикладными знаниями в области frontend-разработки.
Читать дальше →

Дюжина советов – как научить ребенка шахматам. И не только

Reading time9 min
Views86K
Вступление для цикла статей – «Как научить своего ребенка шахматам».

Некоторое время назад мною была написана статья «Бойтесь шахмат, Вам навязываемых». Некоторые заинтересовавшиеся хабрахабровцы попросили более подробно рассказать о методике по которой я преподаю шахматы детям. Ну вот собственно – время подошло.

Данный текст служит своеобразным вступлением для последующего цикла статей. В нем я опишу особенности с которыми Вам придется столкнуться при загрузке в мозг ребенка шахматных знаний.
Читать дальше →

Самодельный Dynamic DNS

Reading time2 min
Views35K
Статья о том, как за несколько минут своими руками сделать Dynamic DNS с помощью Perl, Yandex DNS API и роутера D-Link.

Многие роутеры D-Link поддерживают встроенную функцию Dynamic DNS.
К сожалению, бесплатно доступны лишь домены вида example.dlinkddns.com.

Есть также очень удобное DNS API от Яндекса.

Этим сочетанием мы и воспользуемся.
Читать дальше →

Простой failover для вебсайта (мониторинг + динамический DNS)

Reading time6 min
Views11K
В этой статье я хочу показать, как легко и бесплатно можно сделать failover схему для веб-сайта (или любого другого интернет-сервиса) на комбинации мониторинга okerr и динамического DNS сервиса. То есть, в случае любых проблем с основным сайтом (начиная от проблемы с «PHP Error» на странице, и до нехватки места или просто подозрительно малом числе заказов в случае интернет-магазина), новые посетители будут направлены на второй (третий, и так далее) заведомо работающий сервер, или же на «Sorry» страничку, где им вежливо объяснят, что «есть проблема, мы уже в курсе и уже чиним, скоро починим» (а вы в этом случае на самом деле будете уже в курсе и сможете чинить).
Читать дальше →

Особенности разработки API: какой API является хорошим?

Reading time21 min
Views24K
Наверное, абсолютно все читатели используют API, работая с фрэймворками, библиотеками, виджетами, как некий язык общения между сущностью и основным приложением. И вы наверняка замечали, что некоторыми API удобнее пользоваться, а в некоторых есть явные проблемы. Всеволод Шмыров (@vsesh) в своем докладе на Frontend Conf, расшифровку которого вы найдете под катом, постарался ответить на вопрос, какой API является хорошим.

Рассказ опирается на опыт разработки АPI Яндекс.Карт, и хотя это и JavaScript-библиотека, многие принципы и особенности его разработки применимы и к другим типам АPI, к примеру, к серверным API и Standalone библиотекам. Все то, о чем пойдет речь, относится именно к публичному АPI. Если к API вашей библиотеки обращаются только ваши коллеги, которым вы можете легко рассказать, что где-то что-то надо поменять, то вы, скорее всего, не столкнетесь с теми проблемами, с которыми сталкиваются разработчики публичного АPI.

image

Однако, в докладе не будет ответа на вопрос, нужен ли вам свой API. Надеемся, после прочтения вы взвесите все «за» и «против» и сами поймете, нужен ли он вам. Всеволод просто расскажет, с какими сложностями приходится сталкиваться разработчикам API, какие проблемы решать и что еще делать, а именно про эти четыре важных пункта:


Анимация в Angular-приложениях

Reading time20 min
Views39K


Ни одно серьезное приложение не обходится без анимации в том или ином виде. Анимация делает приложения более современными, красивыми и зачастую — более понятными, улучшая пространственную ориентацию внутри приложения. Без обратной связи иногда трудно понять, что произошло, когда мы нажали на элемент. Раньше при необходимости добавить анимацию в приложение, я пользовался CSS-анимацией и в целом был почти доволен.


После перехода нашего продукта на Angular 2+ мы столкнулись с тем, что Ангуляр предоставляет свой механизм для описания анимации. Поскольку Ангуляр полностью владеет транзакциями DOM, то он может упростить описание анимации и мы решили попробовать отказаться от анимации на CSS. Да и в целом было интересно посмотреть, что из этого получится. За почти год разработки проекта мы так и не перешли обратно на CSS-анимацию, и я могу сказать, что можно вполне успешно жить с анимацией Ангуляра. В этой статье я расскажу, как использовать анимацию в проектах на Angular 2+ и о возможностях, которые до сих пор почему-то не описаны в официальном гайде.

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

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 3: добавляем авторизацию и обмен данными с API

Reading time17 min
Views62K

Пожалуйста, авторизуйтесь


Это третья и заключительная часть статьи про разработку изоморфного React.js приложения с нуля. Части первая и вторая.


В этой части мы:


  • добавим redux-dev-tools;
  • добавим запросы к API;
  • реализуем авторизацию;
  • реализуем выполнение запросов к API в процессе Server-Side Rendering.
Читать дальше →

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 2: добавляем bootstrap, страницы и роутинг

Reading time21 min
Views84K

Разработка изоморфного приложения глазами моей жены


Это продолжение статьи про разработку изоморфного приложения с нуля на React.js. В этой части мы добавим несколько страниц, bootstrap, роутинг, концепцию Flux и ее популярную реализацию Redux.

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

React.js: собираем с нуля изоморфное / универсальное приложение. Часть 1: собираем стек

Reading time22 min
Views196K
image

Лицо моей жены, когда она вычитывала эту статью


Я решил написать цикл статей, который и сам был бы счастлив найти где-то полгода назад. Он будет интересен в первую очередь тем, кто хотел бы начать разрабатывать классные приложения на React.js, но не знает, как подступиться к зоопарку разных технологий и инструментов, которые необходимо знать для полноценной front-end разработки в наши дни.


Я хочу с нуля реализовать, пожалуй, наиболее востребованный сценарий: у нас есть серверная часть, которая предоставляет REST API. Часть его методов требует, чтобы пользователь веб-приложения был авторизован.

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

Разработка высоконагруженного WebSocket-сервиса

Reading time10 min
Views65K
Как создать веб-сервис, который будет взаимодействовать с пользователями в реальном времени, поддерживая при этом несколько сотен тысяч коннектов одновременно?

Всем привет, меня зовут Андрей Клюев, я разработчик. Недавно я столкнулся с такой задачей – создать интерактивный сервис, где пользователь может получать быстрые бонусы за свои действия. Дело осложнялось тем, что в проекте были довольно высокие требования по нагрузке, а сроки были крайне невелики.

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

В конце статьи приведены полезные ссылки на инструменты разработки, тестирования и мониторинга.

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

Руководство по SEO JavaScript-сайтов. Часть 1. Интернет глазами Google

Reading time15 min
Views33K
Представляем вашему вниманию перевод первой части материала, который посвящён поисковой оптимизации сайтов, построенных с использованием JavaScript. Речь пойдёт об особенностях сканирования, анализа и индексирования таких сайтов поисковыми роботами, о проблемах, сопутствующих этим процессам, и о подходах к решению этих проблем.

В частности, сегодня автор этого материала, Томаш Рудски из компании Elephate, расскажет о том, как сайты, которые используют современные JS-фреймворки, вроде Angular, React, Vue.js и Polymer, выглядят с точки зрения Google. А именно, речь пойдёт о том, как Google обрабатывает сайты, о технологиях, применяемых для анализа страниц, о том, как разработчик может проанализировать сайт для того, чтобы понять, сможет ли Google нормально этот сайт проиндексировать.

image

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

Опыт веб-разработки при создании игры «Составь слова»

Reading time7 min
Views9.6K
image

Хочу поделиться своим опытом работы над веб-проектом: реализацией игры «Составь слова». Игра представляет собой известную головоломку, в которой нужно составлять разные слова из одного длинного слова.

Суть статьи — в том, как именно и что конкретно пришлось сделать, чтобы довести всю задумку от идеи до реализации.
Читать дальше →

Чеклист фронтенд-разработчика

Reading time12 min
Views71K
Глеб Летушов, редактор-фрилансер, адаптировал для блога Нетологии чеклист с Github от David Dias. Этот чеклист уже переводили, но так как на Хабре его нет, мы решили, что он пригодится. В чеклисте собран полный список элементов, которые необходимо проверить перед запуском и публикацией сайта.



Список основан на многолетнем опыте фронтенд-разработчиков, а дополнения собраны из общедоступных источников.
Читать дальше →

Современный CSS для динозавров

Reading time20 min
Views71K

— Двигать пиксели в CSS и так было трудно! А теперь мне говорят, насколько круто использовать несемантические названия классов, встроенные стили в HTML и даже писать стили CSS на JavaScript!
[Вставь тут гифку из «Гриффинов»] — Ха!
Иллюстрации из Dinosaur Comics Райана Норта


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

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

Цель этой статьи — показать исторический контекст, как развивались техники и инструменты CSS до их нынешнего состояния в 2018 году. Поняв эту историю будет легче понять каждый подход и как с выгодой его использовать. Итак, начнём!
Читать дальше →

Надоевшая почта или как отправлять сообщения с сайта в Telegram через Node.js (Express)

Reading time5 min
Views49K
logicSchema

После нескольких писем, отправленных с сайта себе на почту, понял что это достаточно неудобно, не современно (возможно), как минимум не прикольно. Задался целью отказаться от использования smtp для формы в пользу api Телеграма.

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

Но давайте обо всем по порядку.
Читать дальше →

Путеводитель по инструментам автотестирования мобильных приложений

Reading time15 min
Views49K


…несмотря на то, что он кое в чём неполон, содержит много сомнительного или,
во всяком случае, вопиюще неточного, он имеет два важных преимущества:
во-первых, он немного дешевле, [...], а во-вторых, на его обложке большими
и приятными для глаз буквами написаны два слова «Без паники!»
— The Hitchhiker's Guide to the Galaxy

Привет, Хабр!

Меня зовут Арсений Батыров, я работаю в отделе QA Badoo и занимаюсь в основном ручным тестированием веб-приложений. А ещё я веду курсы по ручному и автоматическому тестированию мобильных приложений.

Перед запуском нового курса я задумался, о каких инструментах стоит рассказать ученикам. Прошерстил Рунет и англоязычный Интернет в поисках сравнительных статей, но, как ни странно, не нашёл подходящего источника информации. И тогда я решил создать его сам.

Я преследовал три цели:

  1. Классифицировать инструменты в стеке автотестирования, чтобы стали понятны их иерархия и сочетаемость.
  2. Показать, какие инструменты популярны сегодня на рынке.
  3. Рассказать про самые популярные инструменты каждого типа и сравнить их по нескольким параметрам.

Результатом моих трудов стал этот путеводитель по наиболее популярным и простым в освоении инструментам автотестирования мобильных приложений.

Пользуйтесь!

  • Выбираете инструмент — посмотрите сравнение.
  • Хотите узнать, как устроена автоматизация на мобильных устройствах — загляните в классификацию.
  • Хотите добиться повышения зарплаты — освойте популярный инструмент.
Читать дальше →

Meeting Room Little Helper

Reading time6 min
Views11K
Сегодня я расскажу вам о приложении, которое создавалось в «Аркадии» для удобства бронирования переговорных комнат.



Есть два основных сценария использования этого приложения:

1. Поиск свободной комнаты
Ежедневно в компании проходит множество митингов, переговорки бронируют менеджеры, разработчики и сотрудники HR-отдела. Поиск комнаты для митинга может быть довольно долгим и рутинным занятием. Чтобы понять, какая из комнат свободна в данный момент, необходимо зайти в календарь Outlook (или открыть дверь, отвлекая внимание участников проходящего совещания), просмотреть полное расписание по комнатам, найти свободный слот времени и создать appointment. За это время кто-то из сотрудников может забронировать комнату, и тогда необходимо начинать поиск заново. Гораздо удобнее сделать бронирование нажатием одной кнопки при помощи приложения, заранее получив подсказки о статусе комнат.

2. Ad hoc бронирование
Довольно часто возникает ситуация, когда нужно собраться минут на 15, чтобы коротко обсудить текущие задачи по проекту. В этом случае нет смысла занимать комнату на целый час, да может и не быть свободных слотов на выбранное время. Но если остаётся хотя бы 10 минут до следующего митинга, приложение позволит забронировать комнату, и для короткого митинга этого может быть вполне достаточно. Также иногда возникает ситуация, когда комната была забронирована на долгий срок, например, 2 часа, но митинг завершился раньше. В этом случае по завершении митинга можно нажать на кнопку отмены и освободить комнату.
Читать дальше →

WSTester – JS библиотека для тестирования веб-сервисов с ВебСокетами

Reading time4 min
Views6.2K

Добрый день, Хабрасообщество! Как и большинству айтишников, мне нравится создавать что-то новое, классное, нечто способное как-то повлиять на мир или хотя бы принести небольшую пользу другим людям. Надеюсь, что описываемый далее инструмент для тестирования онлайн систем с ВебСокетами как раз такая вещь.


logo

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

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Database Architect
Lead
From 6,000 $
JavaScript
Vue.js
Node.js
PHP
Laravel
MySQL
Redis
Nginx
Docker
MongoDB