Обновить
256K+

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

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

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

Готовим полнотекстовый поиск в Postgres. Часть 1

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

UPD. Часть 2


Эта статья — первая из небольшой серии статей о том, как оптимально настроить полнотекстовый поиск в PostgreSQL. Мне пришлось недавно решать подобную задачу на работе — и я был очень удивлен отсутствию хоть сколько-нибудь вменяемых материалов по этому поводу. Мой опыт борьбы под катом.

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

Обновить панель управления для CPaaS: заново придумать UI/UX и внедрить IDE нормального человека

Время на прочтение3 мин
Охват и читатели3.3K
Возможно, вы уже успели попробовать новую панель, пока она была в открытой бете: в старой панели была специальная кнопка для переключения. Как бы то ни было, теперь новая панель доступна всем.

И это не просто релиз, а настоящее переосмысление UI/UX управления аккаунтами Voximplant. Приглашаю всех под кат – вас ждет обзор самых существенных нововведений.
На всякий случай: скриншоты кликабельны.

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

Post mortem: cледи за middleware или как мы сломали комментарии

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

Привет! У нас не очень приятная новость: мы допустили ошибку в мобильной версии, которая могла вас побеспокоить все праздничные дни.



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


По нашим данным, за выходные с мобильной версии было отправлено 774 комментария. Каждый из них мог пострадать.

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

Учебный курс по React, часть 21: второе занятие и практикум по условному рендерингу

Время на прочтение8 мин
Охват и читатели9.9K
Сегодня, в переводе следующей части учебного курса по React, мы предлагаем вашему вниманию второе занятие по условному рендерингу и практикум по этой теме.

image

Часть 1: обзор курса, причины популярности React, ReactDOM и JSX
Часть 2: функциональные компоненты
Часть 3: файлы компонентов, структура проектов
Часть 4: родительские и дочерние компоненты
Часть 5: начало работы над TODO-приложением, основы стилизации
Часть 6: о некоторых особенностях курса, JSX и JavaScript
Часть 7: встроенные стили
Часть 8: продолжение работы над TODO-приложением, знакомство со свойствами компонентов
Часть 9: свойства компонентов
Часть 10: практикум по работе со свойствами компонентов и стилизации
Часть 11: динамическое формирование разметки и метод массивов map
Часть 12: практикум, третий этап работы над TODO-приложением
Часть 13: компоненты, основанные на классах
Часть 14: практикум по компонентам, основанным на классах, состояние компонентов
Часть 15: практикумы по работе с состоянием компонентов
Часть 16: четвёртый этап работы над TODO-приложением, обработка событий
Часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов
Часть 18: шестой этап работы над TODO-приложением
Часть 19: методы жизненного цикла компонентов
Часть 20: первое занятие по условному рендерингу
Часть 21: второе занятие и практикум по условному рендерингу
Часть 22: седьмой этап работы над TODO-приложением, загрузка данных из внешних источников
Часть 23: первое занятие по работе с формами
Часть 24: второе занятие по работе с формами
Часть 25: практикум по работе с формами
Часть 26: архитектура приложений, паттерн Container/Component
Часть 27: курсовой проект
Читать дальше →

PHP-Дайджест № 151 (25 февраля – 11 марта 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое.

Приятного чтения!


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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №355 (4 — 10 марта 2019)

Время на прочтение3 мин
Охват и читатели13K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


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

Веб-компоненты в реальном мире

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

Photo by NeONBRAND


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


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

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

Механизмы выделения памяти в Go

Время на прочтение11 мин
Охват и читатели53K
Когда я впервые попытался понять то, как работают средства выделения памяти в Go, то, с чем я хотел разобраться, показалось мне таинственным чёрным ящиком. Как и в случае с любыми другими технологиями, самое важное здесь скрывается за множеством слоёв абстракций, сквозь которые нужно пробраться для того, чтобы что-то понять.



Автор материала, перевод которого мы публикуем, решил добраться до сути средств выделения памяти в Go и рассказать об этом.
Читать дальше →

Backend United 3: Холодец

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

Привет! Мы продолжаем Backend United, серию митапов для разработчиков серверной части. Третья встреча называется «Холодец», и посвящена она будет микросервисной архитектуре. Вместе с коллегами из Booking.com, Dodo Pizza и Авито поговорим о монолитах, распилах и обратной стороне сервис-ориентированной архитектуры.


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


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

Использование Fastify и Preact для быстрого прототипирования веб-приложений

Время на прочтение11 мин
Охват и читатели20K
Автор материала, перевод которого мы сегодня публикуем, хочет поделиться рассказом о том, какими технологиями он пользуется для быстрой разработки прототипов веб-приложений. В число этих технологий входят библиотеки Fastify и Preact. Он, кроме того, пользуется библиотекой htm. Она легко интегрируется с Preact и используется для описания элементов DOM с использованием понятных конструкций, напоминающих JSX. При этом для работы с ней не нужен транспилятор вроде Babel. Продемонстрировав инструментарий разработки прототипов и методику работы с ним, автор материала покажет как упаковывать такие приложения в контейнеры Docker. Это позволяет легко демонстрировать приложения всем, кому они интересны.


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

Разгоняем обработку событий до 1,6 миллионов в секунду

Время на прочтение17 мин
Охват и читатели29K
Когда участники HighLoad++ пришли на доклад Александра Крашенинникова, они надеялись услышать про обработку 1 600 000 событий в секунду. Ожидания не оправдались… Потому что во время подготовки к выступлению эта цифра улетела до 1 800 000 — так, на HighLoad++ реальность превосходит ожидания.

3 года назад Александр рассказывал, как в Badoo построили масштабируемую систему near-realtime обработки событий. С тех пор она эволюционировала, в процессе росли объёмы, приходилось решать задачи масштабирования и отказоустойчивости, а в определённый момент потребовались радикальные меры — смена технологического стека.



Из расшифровки вы узнаете, как в Badoo заменили связку Spark + Hadoop на ClickHouse, в 3 раза сэкономили железо и увеличили нагрузку в 6 раз, зачем и какими средствами собирать статистику в проекте, и что с этими данными потом делать.



О спикере: Александр Крашенинников (alexkrash) — Head of Data Engineering в Badoo. Занимается BI-инфраструктурой, масштабированием под нагрузки, руководит командами, которые строят инфраструктуру обработки данных. Обожает всё распределённое: Hadoop, Spark, ClickHouse. Уверен, что классные распределенные системы можно готовить из OpenSource.

Новый кодек AV1: ускоряем загрузку видео в браузере

Время на прочтение6 мин
Охват и читатели110K
В этом руководстве мы научимся использовать видео в Вебе, как это принято в 2019. Chrome и Firefox начали поддерживать новый кодек AV1 — для них видео можно сделать в два раза меньше.

Отдельно поговорим, как заменить GIF на видео в AV1 и H.264 — тогда его размер упадёт в 20-40 раз.

AV1 в браузере

YouTube уже использует его в TestTube. Netflix заявил, что AV1 будет «их основным кодеком следующего поколения».

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

Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет

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


Привет, Хабр! Несколько месяцев назад у меня остро встал вопрос смены профиля деятельности и я обнаружил, что для претендента на вакансию web-разработчика сейчас недостаточно навыков десятилетней давности (какая неожиданность!). Пришлось срочно актуализировать свои знания. Заодно я решил составить шпаргалку с описанием большинства современных технологий, чтобы в случае чего кидать жаждущим новых знаний линк на эту статью, да и самому не забывать.
Читать дальше →

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

Почему в «Тинькофф-журнале» выбирают Django

Время на прочтение13 мин
Охват и читатели11K
Мы в «Python Junior подкаст» — подкасте для тех, кто хочет лучше разбираться в Python — стараемся всячески способствовать стремлению учиться. Приглашаем экспертов, задаем каверзные вопросы, получаем советы, чему и как учиться начинающему Python-разработчику, или не начинающему, или не Python — всякое бывает.

Сегодня вашему вниманию предлагается текстовая версия нашей беседы с Арсением Габдуллиным, разработчиком Тинькофф-журнала, на тему его будущего доклада на Moscow Python Conf++, но без спойлеров.

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



В беседе участвуют:

  • Григорий Петров, евангелист MoscowPython, руководитель программного комитета Moscow Python Conf ++;
  • Арсений Габдуллин, разработчик Тинькофф-журнала, докладчик MoscowPython Conf++;
  • Злата Обуховская, тимлид Nvidia, евангелист MoscowPython, член программного комитета Moscow Python Conf++;
  • Валентин Домбровский, соорганизатор и сооснователь MoscowPython,

Валентин Домбровский: Арсений, твой доклад без спойлеров — о чем ты нам расскажешь на конференции?

Как сэкономить ресурсы в браузере и не сломать веб. Доклад Яндекса

Время на прочтение9 мин
Охват и читатели14K
Несмотря на рост производительности устройств, веб становится всё более требовательным к памяти и процессору. Правильный рендеринг и умное распределение ресурсов по вкладкам — важная часть решения этой проблемы. Константин Крамлих PurplePowder посвятил своё выступление на конференции «Я Frontend» алгоритмам, которые улучшают производительность и экономят ресурсы как в проекте Chromium, так и в Яндекс.Браузере.

Некоторые из них — например, технологию Hibernate — мы уже разбирали в отдельном посте. Доклад Кости освещает задачу более широко: не только с точки зрения переключения вкладок, но и с учетом методов отрисовки контента, тайлов и слоев страницы.

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


— Меня зовут Костя, я руководитель группы разработки внутренних компонентов в команде Яндекс.Браузера. В Браузере я чуть больше пяти лет, занимался разными вещами: от всего декодирования в браузере, всех HTML5-видео, до отрисовки, рендеринга и других подобных процессов.

Дайджест свежих материалов из мира фронтенда за последнюю неделю №354 (25 февраля — 3 марта 2019)

Время на прочтение4 мин
Охват и читатели13K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


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

NoVerify: линтер для PHP от Команды ВКонтакте теперь в открытом доступе

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


Расскажу, как нам удалось написать линтер, который получился достаточно быстрым, чтобы проверять изменения во время каждого git push и делать это за 5−10 секунд при кодовой базе в 5 миллионов строк на PHP. Мы назвали его NoVerify.

NoVerify поддерживает базовые вещи вроде перехода к определению и поиску использований и умеет работать в режиме Language Server. В первую очередь наш инструмент ориентирован на поиск потенциальных ошибок, но умеет проверять и стилистику. Сегодня его исходные коды появились в open-source на GitHub. Ищите ссылку в конце статьи.
Читать дальше →

React и Vue: сильные стороны

Время на прочтение8 мин
Охват и читатели13K
image Здравствуйте, коллеги. Мы возобновляем наши переводные публикации. Сегодняшний текст анонсирует давно назревшую новинку по веб-разработке, посвященную ультрасовременной библиотеке Vue.js. Учитывая, что у нас в ассортименте имеется сразу три отличные книги по React, а также книга по GraphQL, эта книга, несомненно, составит им хорошую компанию. О сильных сторонах Vue по сравнению с React – читайте под катом.

Многие разработчики любят сравнивать React и Vue. Кто-то останавливается на одном из этих фреймворков и упрямо придерживается его, даже не потрудившись познакомиться с другой библиотекой, которую когда-то отбраковал. Зачастую дело во времени: чтобы по-настоящему освоить все входы и выходы системы, с нею нужно работать, бороться и расти.

Конечно, неэффективно распыляться между схожими инструментами, но разве вам не любопытно? Мне – любопытно.
Читать дальше →

Дайджест Joomla за февраль 2019

Время на прочтение4 мин
Охват и читатели3.2K
Предлагаю вашему вниманию подборку ссылок на новые материалы по Joomla! CMS за февраль 2019. В дайджесте: новости о Joomla, подборка ссылок на инструменты для разработчиков и вебмастеров, обзор решений для e-commerce.


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

Как я решил защищать документы от подделки и «изобрел» электронную цифровую подпись

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

О чем это


На идею создать свой маленький интернет-проект по защите документов от подделки, меня натолкнула дискуссия на форуме дефектоскопистов, посвященная повальной подделке выданных ими заключений по контролю качества.

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

Актуальность задачи защиты от подделок


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