Обновить
512K+

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

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

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

Рендеринг на клиенте, на сервере и генерация статических сайтов

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

Приветствую всех профессионалов и любителей сайтостроения! Предлагаю вашему вниманию перевод статьи "Client-Side Rendering vs Server-Side Rendering vs Static-Site Generation" от Malcolm Laing.


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

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

Делаем поиск в веб-приложении с нуля

Время на прочтение26 мин
Охват и читатели24K
В статье «Делаем современное веб-приложение с нуля» я рассказал в общих чертах, как выглядит архитектура современных высоконагруженных веб-приложений, и собрал для демонстрации простейшую реализацию такой архитектуры на стеке из нескольких предельно популярных и простых технологий и фреймворков. Мы построили single page application с server side rendering, поддерживающее просмотр неких «карточек», набранных в Markdown, и навигацию между ними.

В этой статье я затрону чуть более сложную и интересную (как минимум мне, разработчику команды поиска) тему: полнотекстовый поиск. Мы добавим в наш контейнерный рай ноду Elasticsearch, научимся строить индекс и делать поиск по контенту, взяв в качестве тестовых данных описания пяти тысяч фильмов из TMDB 5000 Movie Dataset. Также мы научимся делать поисковые фильтры и копнём совсем немножко в сторону ранжирования.

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

Забываете передавать аргументы в функцию? Вам поможет contextvars

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


Мы в Яндекс.Такси любим писать логи. Ещё больше мы любим, когда логи помогают нам расследовать проблемы в продакшене. При нагрузке в десятки тысяч RPS просто набора лог-записей мало. Хочется уметь фильтровать логи по пользователю, видеть последовательность вызовов клиентского API, а также углубляться в логи запроса.


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

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

Единый интерфейс Blazor UI в Mobile Blazor Bindings (Preview 5)

Время на прочтение3 мин
Охват и читатели5.2K
Рад сообщить, что мы выпустили обновление Mobile Blazor Bindings Preview 5, которое добавляет поддержку совместного использования пользовательского интерфейса между веб-приложениями и мобильными/настольными приложениями. Теперь вы можете использовать библиотеку классов Razor (RCL) для создания пользовательского интерфейса и логики приложения один раз и переиспользовать ее в веб-приложении Blazor и в приложении Mobile Blazor Bindings. Этот выпуск также включает в себя множество других улучшений, таких как поддержка Shell с маршрутизацией Blazor @page, SkiaSharp для крутой графики, распознаватели жестов и многое другое!

Вы можете создать один пользовательский интерфейс с помощью Blazor Web и разместить его в приложении Blazor Server или Blazor Web Assembly, а также в гибридном приложении Mobile Blazor Bindings для Android, iOS, macOS и Windows:

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

Теперь я не могу сделать даже маленький сайт

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


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

Это был сайт про события моего родного города. На одной странице выводились все мероприятия на грядущую неделю.

Я сделал страничку с мероприятиями, и небольшую админку, где они редактировались. У меня была книжка по PHP, поэтому сайт я написал на PHP, подключил MySQL-базу, сверстал на HTML и CSS, и залил на виртуальный хостинг. Сайтом пользовались, а я усердно добавлял мероприятия каждое утро, пока не ушёл в армию, не оставив никого на поддержку. Так сайт и почил.

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

Я решил взяться за дело и стал думать.
Читать дальше →

Как сделать CI на Github для современного фронтенда

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

Совсем скоро, 6 и 18 ноября, у нас стартуют новые потоки курса по JavaScript и
курса «Профессия Веб-разработчик», специально к их старту делимся с вами полезным туториалом, как настроить Github Actions для реальных проектов в области фронтенда со множеством линтеров и тестированием UI, а также уведомлениями о рабочем процессе в Slack. Подробности и репозиторий под катом.
Приятного чтения!

Веб-разработка с нуля: руководство для молодых команд по созданию инфраструктуры CI/CD и процесса разработки

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

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


  • Проверка каждой ветки проходила локально. Приходилось откатывать базу от изменений с предыдущей проверки, билдить фронт. Когда несколько разработчиков вот-вот закончат работы и осталось проверить каждую по мелочи — это превращалось в ад;
  • Различались окружения на проде и между разработчиками, что приводило к ошибкам: “у меня всё работает”.

Внутренний перфекционист жаждал организовать всё правильно. Делюсь результатами поисков ответа на вопрос: «а как, собственно, “правильно”»?


Мы добились


  • Легкого и быстрого деплоя в production (ради эксперимента выводили каждый день две недели подряд);
  • Гарантию защищённости от ошибок из-за различий в окружении приложения;
  • Можем организовать эффективное взаимодействие с заказчиком:
    • демонстрировать каждую feature-ветку;
    • давать гостевой доступ для создания задач и наблюдения над ходом работ.

Данная статья будет полезна, если вы:


  • начинающая IT-компания или в первый раз столкнулись с работой в команде над большим проектом;
  • хотите обновить свой устаревший процесс разработки (workflow);
  • ищете лучшие практики и хотите посмотреть, как у других;
  • часто натыкаетесь на статьи про DevOps, CI/CD, облака и хотите, чтобы у вас одним нажатием кнопки создавались тестовые окружения, а очередное обновление прода не было рулеткой.

Под катом вы найдёте


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

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

Заметка о перебираемых объектах

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


Доброго времени суток, друзья!

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

Руководство по стилю JavaScript от Google советует отдавать предпочтение циклу for-of там, где это возможно.

Руководство по стилю JavaScript от Airbnb не рекомендует использовать итераторы. Вместо циклов for-in и for-of следует использовать функции высшего порядка, такие как map(), every(), filter(), find(), findIndex(), reduce(), some() для итерации по массивам и Object.keys(), Object.values(), Object.entries() для итерации по массивам из объектов. Об этом позже.
Читать дальше →

Развертывание интерактивных визуализаций данных в реальном времени на Flask и Bokeh

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

Сегодня, в преддверии старта нового потока курса «Python для веб-разработки», делимся с вами полезным переводом статьи о небольшой интерактивной визуализации, для исследований данных о фильмах. Автор использует не только Flask и Bokeh, но и задействуя бесплатную облачную платформу баз данных easybase.io. Все подробности и демонстрации вы найдёте под катом.
Приятного чтения!

Будет ли оплата труда привязана к местоположению в будущем

Время на прочтение10 мин
Охват и читатели9.2K
Привет, Хабр! Представляю вашему вниманию перевод статьи «Will Remote Compensation Be Tied To Location In The Future?» автора Phil Haack.

image

На днях в Твиттере Дэвид Энсон спросил:
Если кто-то работает на 100% удаленно, почему его зарплата должна быть привязана к тому, в каком городе он находится? Они производят точно такую ​​же работу, если они находятся в большом городе или в деревне. Корректировка «стоимости жизни» применяется, когда работа заставляет людей где-то работать; здесь это не актуально.
Это вызвало оживленную дискуссию.
Читать дальше →

Как мы создали вкладку WebAuthn в Chrome DevTools

Время на прочтение8 мин
Охват и читатели2.9K
Сегодня, в преддверии старта нового потока курса по JavaScript, делимся с вами полезным переводом статьи о том, как разрабатывалась вкладка WebAuthn в Chrome DevTools, какие решения принимались и почему, с какой проблемой столкнулись разработчики.

image

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

Как разобраться в API HTML?

Время на прочтение8 мин
Охват и читатели23K
Автор статьи, перевод которой мы сегодня публикуем, решил разобрать несколько HTML5-API  и поговорить об их возможностях, о том, для чего они созданы, об особенностях их использования и об их ограничениях.


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

Как обстоят дела с PHP в Краснодаре (и не только)

Время на прочтение3 мин
Охват и читатели2.8K
Год назад мы стали собирать список городских PHP-чатов. В этом феврале в него добавился Краснодар — ребята выделились из общегородского бэкенд-сообщества. А дальше наступил локдаун.

За его время в чат добавилось свыше 100 участников. А в эту субботу пройдет его первый митап в смешанном формате: можно прийти, если вы готовы соблюдать все меры предосторожности, а можно посмотреть онлайн — и при этом общаться с докладчиками голосом.


Эфир стартует в 11 по Москве/Киеву/Минску. Оценить, как выглядит включение из трансляции, можно на этом примере.

Накануне митапа мы поговорили с его докладчиками.

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

Quasar — швейцарский нож для Vue

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


Некоторое время назад (года два с половиной) чувак по имени Razvan Stoenescu собрал команду Vue-разрабов и начал пилить с ними свой фреймворк. Свечку не держал, но я твёрдо уверен что в первоначальном документе было что-то типа «Хотим свой фреймворк, чтобы в нём было вообще всё. Включая блэкджек и куртизанок». Довольно странно, что во многих материалах за прошедший год упоминается Quasar, но статья про него вышла всего одна и была приурочена к релизу 1.0, да ещё и оказалась переводом. Недавно я наконец распробовал этот чудесный фреймворк и с удовольствием поделюсь своими впечатлениями о нём.

PHP-Дайджест № 191 (19 октября – 2 ноября 2020)

Время на прочтение5 мин
Охват и читатели13K
Фото: Валерий Горбачев (PHP Krasnodar)

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 3 и видеообзоры новых возможностей, Composer 2, завершение разработки Faker (теперь в новой организации), два новых RFC для PHP 8.1, порция полезных инструментов, статьи, видео с прошедших митапов.

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


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

Зачем разработчику сертификат по Kubernetes и как успешно сдать экзамен

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


Занимаетесь разработкой, но еще не знаете, что такое Kubernetes? Не переживайте, мы расскажем:


  • Что такое Kubernetes.
  • Что за сертификаты такие и зачем они нужны.
  • Про выбор варианта сертификации.
  • Про экзамен.
  • Про подготовку к экзамену.
  • Разные тонкости.

Добро пожаловать под кат.

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

Разработка тем для портала Liferay 7

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

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

Читать далее

Laravel–Дайджест (26 октября – 1 ноября 2020)

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

Подборка свежих уроков, видео и пакетов по фреймворку Laravel за неделю.


Laravel Дайджест

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

Задавать Height и Width для изображений снова важно

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

Сторонники веб-оптимизаций часто советуют добавлять к изображениям атрибуты с размерами, что позволяет при отрисовке страницы оставлять нужное количество пространства ещё до загрузки самого изображения. Это позволяет избежать смещения раскладки страницы по мере загрузки изображений - что с недавних пор начал измерять Chrome в новой метрике Cumulative Layout Shift (CLS).

Секрет, не так хорошо известный разработчикам, не являющимся заядлыми сторонниками веб-производительности, заключается в том, что до недавнего времени, как мы увидим в статье, во многих случаях это фактически не имело особого смысла. Однако, недавние изменения в мире CSS и их быстрое внедрение в браузерах снова делает добавление атрибутов width и height к тегу <img> полезным.

Читать далее

PHP 8 — пробуем новые возможности

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

PHP 8 уже на этапе release candidate, версия RC 3 вышла 29 октября, а полноценный релиз назначен на 26 ноября. Так что пора взглянуть на новые возможности, которые нас ждут в PHP 8. График релизов можно посмотреть здесь. А официальное руководство по обновлению на новую версию лежит тут.
Читать дальше →