Обновить
512K+

Веб-разработка *

Делаем веб лучше

325,02
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Клиент: — Сколько стоит копия Facebook?

Время на прочтение3 мин
Охват и читатели27K


«Сколько стоит сделать копию Facebook (Avito, Яндекс.Такси, fl.ru...)?» — один из самых популярных вопросов клиентов, на который мы сегодня дадим развернутый ответ и расскажем, как это выглядит со стороны людей, которым предстоит это делать.
Читать дальше →

API IntersectionObserver и ленивая загрузка изображений

Время на прочтение9 мин
Охват и читатели23K
Использование ленивой загрузки изображений для улучшения производительности веб-проектов — востребованная техника оптимизации. Всё дело в том, что изображения — это «тяжёлые» ресурсы, которыми переполнены современные веб-сайты. Мы уже кое-что об этом публиковали. Здесь можно почитать о том, что дала ленивая загрузка сайту Walmart, и узнать о том, как пользоваться IntersectionObserver в React-проектах. Вот статья об оптимизация статических сайтов. Вот недавний материал о реализации ленивой загрузки средствами браузера.



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

Удалённая разработка в VS Code: ваша жизнь никогда не будет прежней

Время на прочтение3 мин
Охват и читатели79K

У нас в TestMace Visual Studio Code является одним из самых популярных инструментов. И тем более отрадно, что он развивается семимильными шагами. Вашему вниманию предлагается перевод статьи об еще одной вкусной фиче, которая доступна пока только в VS Code Insiders.


Согласен, немного переборщил с заголовком, просто меня переполняют эмоции. Я решил поделиться своими первыми впечатлениями от удалённой разработки в VS Code, на момент написания статьи доступной в VS Code Insiders.

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

Uibook — инструмент для визуального тестирования React-компонентов с медиа-запросами

Время на прочтение6 мин
Охват и читатели7.5K


Всем привет! Меня зовут Виталий Ризо, я фронтенд-разработчик в «Амплифере». Мы сделали Uibook — простой инструмент для визуального тестирования React-компонентов с реальными медиа-запросами. Расскажу, как он работает и чем может быть полезен вам.

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

10 июня, Deworkacy — QAчественное общение

Время на прочтение1 мин
Охват и читатели1.6K


Привет!

В понедельник, 10 июня, мы проведем очередной митап для QA-специалистов. Локально там же, где и ранее — Москва, Deworkacy. Начинаем в 19.00.

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

Зарисовки с PHP Russia 2019: чистый код, тёмная магия

Время на прочтение10 мин
Охват и читатели7.9K


17 мая в московском «Инфопространстве» прошла первая профессиональная конференция для PHP-разработчиков PHP Russia 2019. После долгой паузы они получили полностью заточенную под них площадку; в анонсе мы сравнили её со стадионом, какого у пиэйчпишников, одной из команд «высшего IT-дивизиона», не было. И первый свой сезон «стадион» встретил как минимум достойно, с тем отличием от футбольного прообраза, что тут сложно провести строгое разделение между игроками и фанатами.
Читать дальше →

Как в Яндекс.Практикуме побеждали рассинхрон на фронтенде: акробатический номер с Redux-Saga, postMessage и Jupyter

Время на прочтение12 мин
Охват и читатели7.3K
Меня зовут Артём Несмиянов, я фулстек-разработчик в Яндекс.Практикуме, занимаюсь в основном фронтендом. Мы верим в то, что учиться программированию, дата-аналитике и другим цифровым ремёслам можно и нужно с удовольствием. И начинать учиться, и продолжать. Любой не махнувший на себя рукой разработчик — всегда «продолжающий». Мы тоже. Поэтому рабочие задачи воспринимаем в том числе как формат учёбы. И одна из недавних помогла мне и ребятам лучше понять, в какую сторону развивать наш фронтенд-стек.



Кем и из чего сделан Практикум


Команда разработки у нас предельно компактная. На бэкенде вообще всего два человека, на фронтенде — четыре, считая меня, фулстека. Периодически к нам в усиление присоединяются ребята из Яндекс.Учебника. Работаем мы по Scrum с двухнедельными спринтами.
Читать дальше →

Чем запомнился РИТ++ 2019

Время на прочтение2 мин
Охват и читатели2.2K


27-28 мая в Москве прошла отраслевая выставка и целый ряд профессиональных тематических конференций «Российские интернет-технологии 2019». Selectel традиционно поддержал мероприятие и выступил его партнером. Сегодня мы кратко расскажем, что именно запомнилось гостям и участникам.

Компания Онтико, организатор фестиваля, приложила максимум усилий для того, чтобы создать комфортное и удобное пространство как для гостей, так и для организации стендов компаний. На два дня фестиваля кампус Московской школы управления «Сколково» стал прекрасным пространством для обмена опытом и коммуникации.
Читать дальше →

И-н-в-о-й-с. Как продавать в интернете без сайта

Время на прочтение4 мин
Охват и читатели10K

— Пожалуйста, вышлите нам инвойс!
— Не слышу!
— Вышлите инвойс!
— Что выслать???
— Инвойс. Говорю по буквам: Инна! Наталия! Валерий! Ольга! Ирина! Сергей!
— Кто эти люди????


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

Во-первых, нет сайта. Это хлопотно, а вкладываться в него знакомый не хочет. Во-вторых, уже сейчас у заказчиков может не оказаться карты нужного банка, и они уходят к другим — ведь конкуренция высока. Опять же, налоговая и 54-ФЗ — с ними иметь проблем не хочется никому, и мой товарищ не исключение. В итоге я рассказал ему про Яндекс.Кассу и о том, что можно принимать платежи и без сайта, просто скидывая ссылку в личных сообщениях, — при этом для клиента процесс оплаты будет как в любом приличном интернет-магазине.
Читать дальше →

Разрабатываем игру на Svelte 3

Время на прочтение20 мин
Охват и читатели13K

Чуть больше месяца назад вышел релиз Svelte 3. Хороший момент для знакомства, — подумал я и пробежался по отличному туториалу, который еще и переведен на русский.


Для закрепления пройденного я сделал небольшой проект и делюсь результатами с вами. Это не one-more-todo-list, а игра, в которой нужно отстреливаться от черных квадратов.


image

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

Микрофреймворк slim

Время на прочтение21 мин
Охват и читатели38K

25 апреля 2019 года свет увидела новая мажорная alpha-версия микрофреймворка Slim, а 18 мая она выросла до beta. Предлагаю по этому поводу ознакомиться с новой версией.


Под катом:


  • О новшествах фреймворка
  • Написание простого приложения на Slim-4
  • О дружбе Slim и PhpStorm
Читать дальше →

Запрос к API c React Hooks, HOC или Render Prop

Время на прочтение8 мин
Охват и читатели41K


Рассмотрим реализацию запроса данных к API c помощью нового друга React Hooks и старых добрых товарищей Render Prop и HOC (Higher Order Component). Выясним, действительно ли новый друг лучше старых двух.

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

Memcached plugin: NoSQL в MySQL

Время на прочтение10 мин
Охват и читатели11K


Здравствуйте! Меня зовут Максим Матюхин, я PHP-программист Badoo. В своей работе мы активно используем MySQL. Но иногда нам не хватает её производительности, поэтому мы постоянно ищем возможности ускорить её работу.

В 2010 году Yoshinori Matsunobu представил NoSQL-плагин для MySQL под названием HandlerSocket. Заявлялось, что этот плагин позволяет выполнять более 750 000 запросов в секунду. Нам стало любопытно, и мы почти сразу же стали использовать это решение. Результат нам настолько понравился, что мы начали выступать с докладами и писать статьи, рекламируя HandlerSocket.

По-видимому, мы были одними из немногих пользователей этого плагина — начиная с версии MySQL 5.7 он перестал работать. Зато в этой версии появился другой плагин от Oracle — InnoDB memcached plugin, который обещал похожий функционал.

Несмотря на то, что memcached-плагин появился ещё в MySQL 5.6 в 2013 году, статей о нём не так много и в большинстве своём они повторяют документацию: создаётся простая табличка, и к ней делаются запросы через memcached-клиент.

Мы имеем большой опыт работы с Memcached и привыкли к простоте взаимодействия с ним. От InnoDB memcached plugin мы ожидали такой же простоты. Но на деле оказалось, что если паттерны использования плагина хотя бы немного отличаются от описанных в документации и статьях, то всплывает масса нюансов и ограничений, которые определённо стоит учитывать, если вы собираетесь пользоваться плагином.
Читать дальше →

Ближайшие события

Двустороннее связывание Angular, чуть больше понимания

Время на прочтение7 мин
Охват и читатели32K
От переводчика
От переводчика: два года назад я начал свой первый проект на Angular(2+), имея большой и успешный бэкграунд AngularJS. Переход потребовал заметного форматирования мышления, поскольку слишком много на A1 и A2+ делается «чуть-чуть по другому». Болезненность перехода мне заметно снизил блог thoughtram. Я ещё год назад получил разрешение перевести эту статью «об элементарном и всем легко понятном». Но руки они такие руки (своих статей пачка недописанных). Что удивительно, статья неплохо переводится гугл транслейтом. Но некоторые нюансы в этом переводе терялись, не говоря об авторском стиле. Авторский стиль не сохранился в полной мере и в моей версии. Но, надеюсь, настроение и мысли статьи мне удалось передать.

Я понимаю, что Angular не самая востребованная тема на Хабре, но надеюсь, что перевод поможет кому-то, так же как исходная статья помогла когда-то мне.

Вот что вызывало вау-эффект в старом добром AngularJS, так это «двустороннее связывание». Эта магия мгновенно влюбляла в AngularJS, и ломала все представления о скучном программировании страниц и (о, ужас!) веб-форм. Изменения в данных мгновенно отображались на экране и наоборот. Те, кто раньше разрабатывал приложения на jQuery, воспринимали связывание, как попадание в сказку. А бородатые монстры, пилившие толстых клиентов ещё до jQuery, начинали судорожно пересчитывать бездарно потерянные человеко-месяцы.

И, более того, магия двустороннего связывания была доступна не только для специальных нотаций и избранных компонентов. Мы могли легко её использовать в наших собственных директивах и компонентах (просто установив параметр конфигурации).

В Angular2+ создатели отказались от встроенной двусторонней привязки данных (кроме как через ngModel). Но это не означает, что мы не можем использовать двустороннее связывание в собственных директивах… Просто халява кончилась и теперь нужно кое-что делать самостоятельно. И, желательно, c пониманием того, как оно устроено в Angular.
Читать дальше →

Тонкости Lambda Expressions в C#

Время на прочтение2 мин
Охват и читатели18K

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

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

Как eBay делал сканер штрих-кодов на WebAssembly

Время на прочтение8 мин
Охват и читатели7.9K
С момента своего анонса технология WebAssembly сразу привлекла внимание разработчиков фронтенда. Веб-сообщество с энтузиазмом восприняло идею запустить в браузере код, написанный на других языках, кроме JavaScript. Главное, что WebAssembly гарантирует скорость намного выше, чем JavaScript.

Наши инженеры внимательно следили за развитием стандарта. Как только поддержку WebAssembly 1.0 внедрили во всех основных браузерах, разработчики сразу захотели опробовать её.

Но тут возникла проблема. Хотя многие приложения выигрывают от WebAssembly, но область применения технологии в электронной коммерции всё ещё примитивна. Мы не смогли сразу найти правильный вариант её использования. Было несколько предложений, но во всех вариантах JavaScript подходил лучше. Когда мы в eBay оцениваем новые технологии, то первый вопрос: «Какова потенциальная выгода для наших клиентов?» Если здесь нет ясности, мы не переходим к следующему шагу. Очень легко увлечься новой модной технологией, даже если она не имеет никакого значения для клиентов и только усложняет существующий рабочий процесс. Пользовательский опыт всегда важнее опыта разработчика. Но с WebAssembly иначе. У этой технологии огромный потенциал, просто мы не могли найти правильный вариант использования. Впрочем, в итоге всё-таки нашли.
Читать дальше →

Your Own Personal SaaS

Время на прочтение5 мин
Охват и читатели2.2K

Немного исторических параллелей


Disclaimer: Для экономии времени TL;DR вариантом этой статьи является раздел "Потенциальный новый тренд".


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


Объект на КДПВ — Bugatti Type 57 — автомобиль компании Bugatti Automobiles класса Gran Turismo, единичный высококлассный автомобиль для богатых. Производился в 1934-1940 годах. Имеет две модификации: Type 57S и Atalante. Дизайн кузова машины был разработан Жаном Бугатти.
Читать дальше →

CardInfo — API для определения логотипа, цветов банка и прочего по номеру карты

Время на прочтение3 мин
Охват и читатели18K

UPD. CardInfo больше не работает. Используйте BinKing.


Гайд по использованию: habr.com/ru/post/527796
Сайт сервиса: binkng.io




Тут и демо, и документация: cardinfo.online — это API. Вы ему 6 первых цифр банковской карты, оно вам ссылку на логотип банка, его фирменные цвета, бренд (Visa, MasterCard, и т.д.) и прочее в формате JSON. CardInfo нужен тем, кто создаёт форму для приёма банковских карт у себя на сайте, чтобы улучшить UX (удобство, впечатления, чувство безопасности) пользователей. Принимать платежи прямо у себя на сайте позволяет cloudpayments.ru в России и странах СНГ, и stripe.com во всём остально мире.

Такие формы сделали все крупные компании. Живой пример можете увидеть при оплате чего угодно через Яндекс.Кассу или практически в любом мобильном приложении банка: когда вы начинаете вводить номер карты, форма перекрашивается в цвета этого банка, а рядом появляется логотип. Каждая из этих крупных компаний реализовала собственное решение для определения логотипа и цветов. Если это решение реализовали все крупные компании, значит в нём есть ценность. Если крупные уже сделали, а мелкие ещё нет, значит это похоже восходящий тренд, который резонно оседлать.

Однако, крупные компании уже давно сделали свои формы такими, а мелкие всё ещё нет. Почему? Создание такого решения для своей формы займёт около 7 дней работы программиста и ещё 7 работы дизайнера (логотипы выкачивать, обрабатывать, перерисовывать). Крупные компании могут себе позволить потратиться на создание такой формы. Мелкие компании считают ценность такой формы не достаточной, чтобы платить за неё столько.

CardInfo позволит превратить уже существующую форму для приёма банковских карт в такую же, как у Яндекс.Кассы, за пол дня работы программиста. Я предполагаю, что после выхода CardInfo определение логотипа банка и цветов банка для платёжных форм станет стандартом. Потому что такие формы лучше. Потому что теперь такие формы смогут позволить себе все.
Читать дальше →

Статический веб: возврат к истокам?

Время на прочтение6 мин
Охват и читатели20K
Мы обратимся к ранним годам интернета, чтобы понять нынешнюю популярность динамических сайтов. Затем рассмотрим преимущества статических сайтов с точки зрения производительности, скорости редактирования и поисковой оптимизации.

Сначала была статика.

В первые дни интернет был обществом энтузиастов, разработчиков и инженеров. Несмотря на частые сравнения между MySpace и Facebook, эти два сервиса принципиально отличаются. Они также хорошо демонстрируют разницу в «интернет-парадигме» соответствующего времени.

И то, и другое — социальные сети, но создание страницы на MySpace требовало базового понимания HTML и CSS. В конце концов, сайт открылся в 2003 году. С другой стороны, простой в использовании интерфейс Facebook помог расширить аудиторию до двух с лишним миллиардов пользователей.

За антагонизмом MySpace/Facebook лежит критическая точка напряжённости в интернете: как взаимодействовать с контентом, который мы редактируем? Тут есть два основных способа.
Читать дальше →

Готовьтесь: Angular 8 уже близко

Время на прочтение9 мин
Охват и читатели25K
Автор материала, перевод которого мы публикуем, предлагает поговорить об Angular 8. Здесь будут рассмотрены некоторые особенно горячие темы, поднятые на мероприятиях NgConf и Google I/O 2019. Поэтому, если вы интересуетесь Angular, но по каким-то причинам не видели докладов с этих мероприятий, полагаем, вам любопытно будет узнать о том, чего можно ждать от Angular 8.


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