Обновить
512K+

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

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

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

Python и Ruby под нагрузкой: высокое искусство некромантии

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

Уже больше 20 лет я пишу код на разных языках программирования. Так как многие из этих языков считаются мертвыми, то сегодня я буду говорить о высоком искусстве некромантии — о том, как якобы мертвые языки используются в больших и иногда высоконагруженных проектах. Обрабатывая тысячи веб-запросов в секунду и не порождая необходимости писать свой компилятор PHP или переходить на Go или Rust.

Я расскажу про специфику Ruby и Python при высоких нагрузках, про их мейнстрим, который вы можете встретить в выживших проектах. Я не буду и не хочу говорить про спортивное программирование, где делают миллион запросов в секунду на одной ноде, выжигая из Python или Ruby всё и оставляя голый С. Python и Ruby действительно медленные, у них есть GIL, но при правильном использовании это не проблема, а статья расходов — и я расскажу, что мы можем получить за эти деньги.

Если вы предпочитаете слушать или смотреть (у меня там забавные крылья!) — видео моего выступления на конференции HighLoad++ Весна 2021.

Читать далее

Дайджест свежих материалов из мира фронтенда за последнюю неделю №484 (6 — 12 сентября 2021)

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

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

JavaScript: немного об интернационализации и локализации веб-приложений

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


Привет, друзья!


В данной статье я хочу рассказать вам об Internationalization API — интерфейсе, предоставляемом браузером, позволяющем выполнять интернационализацию и локализацию веб-приложений.


Статья состоит из 2 частей: теоретической и практической. В теоретической части мы кратко рассмотрим возможности, предоставляемые Internationalization API. В практической — создадим пример локализованного приложения с помощью разработанной мной утилиты.

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

Веб-безопасность 200

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

Почему стоит использовать пароли по умолчанию? Почему PreparedStatements только усложняют код, а возможность внедрения JavaScript-кода на сайте является фичей?

Эксперт по информационной безопасности и преподаватель Иван Юшкевич провел мастер-класс по безопасности на конференции РИТ++ на платформе hacktory.ai.

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

Теоретическую часть пришлось разбить на 3 части. Сегодня рассказ будет о том, что злоумышленник может сделать с найденными файлами и директориями. А также, как используются удаленное выполнение кода (инъекции), в том числе и в SQL.

Читать далее

Нетривиальная интеграция сайта с 1С на примере интернет-магазина канцтоваров

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

Нетривиальная интеграция сайта с 1С — это все что не укладывается в стандартный обмен данными.

Сперва давайте разберемся, что такое стандартный обмен.

В Битриксе есть встроенный функционал для обмена с 1С, благодаря чему любой обмен должен настраиваться в пару кликов :)

Читать далее

Релиз Centrifugo v3 – и да пребудет с вами Центробежная Сила

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

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

Напоминаем, что Centrifugo – это сервер сообщений в реальном времени (real-time). Сервер держит постоянные соединения от пользователей приложения и предоставляет API для моментальной рассылки какого-либо уведомления активным пользователям, подписанным на канал уведомления. Можно использовать для создания чатов, "живых" комментариев, multiplayer игр, стримить данные и метрики (например, быстро меняющиеся курсы валют).

Новая Центрифуга v3 нацелена упростить использование сервера в простых real-time приложениях. Улучшена производительность сервера, существующие фичи обросли новой функциональностью. Centrifugo v3 поддерживает однонаправленные (unidirectional) real-time транспорты, клиентский JSON протокол значительно ускорен. Появилась экспериментальная поддержка высокопроизводительного движка на основе Tarantool. Помимо HTTP теперь есть возможность проксировать клиентские события используя GRPC протокол. Добавлены новые методы и поля серверного API, а также анонсирована PRO версия сервера, нацеленная на бизнес-пользователей.

Читать далее

«Почему, если создание ПО настолько востребовано, так сложно найти работу инженером (SE)?»

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

Мой ответ на невероятно распространенный вопрос.

Заголовок этой статьи отсылает к популярному вопросу с Quora*, основные ответы на который сводились к следующему: «Это не так, уровень безработицы составляет 3,6%», «Слишком много разработчиков и недостаточно инженеров» и «Это естественное следствие микроэкономической теории». Возможно, было бы полезно подробнее остановиться на всех этих суждениях, но я подумал, что было бы интереснее взглянуть на самый популярный ответ.

Он и небольшое рассуждение о Software Engineering vs. Software Development под катом. А, ну и еще там подсказки по прохождению собеседований.

Читать далее

Вывод SEO мета тегов title и description в виде визуальной структуры для каждой веб-страницы за один раз

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

Давно существует куча инструментов от Ahrefs, Mooz, Semrush и т.д., которые показывают главные мета теги для каждой страницы отдельно, в лучшем случае списком.

Но кто-нибудь видел инструмент, который выводит сразу все title и description за раз и показывает это в виде удобной иерархической визуальной структуры для всего веб-сайта?

Давайте по порядку ...

Читать далее

Разработка форм обратной связи для магазинов на Joomla

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

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

Читать далее

Дайджест свежих материалов из мира фронтенда за последнюю неделю №483 (30 августа — 5 сентября 2021)

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

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

UiWebKit — Next Gen HTML. Подъём-переворот в мире веб-разработки

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

Доброго времени суток, коллеги. Эта первая статья (вводная), далее будут подробные статьи по каждому из пакетов кастомных HTML элементов и веб-компонент. Разрабатывая веб интерфейсы на протяжении многих лет, мы заметили что веб разработка с каждым годом становится все сложнее и сложнее. В современных веб приложениях, императивный JavaScript занимает чуть ли не 100% всей кодовой базы, а декларативный HTML может вообще отсутствовать как таковой. Этот факт превращает любой такой веб проект в неподдерживаемого монстра всего за год-другой. Мы очень долго жили с этой болью и вот, наконец, мы решили это изменить, сделав нечто настолько простое и удобное, что способно в корне изменить разработку современных веб приложений. Хочется сказать, что данная статья и сам UiWebKit будут полезны преимущественно прогрессивным веб разработчикам, так что будьте готовы к нестандартным идеям.

Читать далее

Веб-технологии, которые могут работать не так, как ожидается

Время на прочтение9 мин
Охват и читатели14K
Веб-технологии постоянно развиваются, а у разработчиков появляется возможность создавать всё более качественные и совершенные онлайн-проекты. Правда, бывает так, что какие-то новые веб-возможности работают не так, как того можно было бы ожидать. Это может касаться сфер юзабилити, безопасности, приватности.



Я попадал в такие ситуации. Например, при использовании механизма ленивой загрузки в HTML. Соответствующий атрибут очень легко добавить в разметку, описывающую изображение, сделав это только для того, чтобы понять… что для работы ленивой загрузки нужно и кое-что ещё. Здесь мы поговорим и об этой проблеме, и ещё о некоторых возможностях, доступных веб-разработчику, которые могут работать не совсем так, как ожидается.
Читать дальше →

Без опыта в IT: как junior-программисту найти первую работу

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

Когда на рынке высокий спрос, разработчику без опыта трудоустроиться легче. Но надо понимать, что профессия требует постоянного развития и обучения. Руководители ожидают, что junior-специалист быстро дорастет до следующего грейда, иначе тратить на него время никто не захочет. В статье расскажем, как начинающему программисту найти первую работу. Советами поделились опытные разработчики.

Читать далее

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

Личный кабинет поставщика или на чем держится наша «бесконечная полка»

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


М.Видео-Эльдорадо продолжает развивать собственный маркетплейс бытовой техники и электроники, на котором уже представлено более 100 партнёров. Сегодня на онлайн-площадках и в магазинах 160 000+ товаров, что втрое больше, чем годом ранее. Быстрое расширение ассортимента, ИТ-поддержка, логистика, доставка, прием платежей и документация по всем процессам стали возможны благодаря проекту «Бесконечная полка» и созданию веб-платформы для поставщиков. По мере ее развития, мы будем рассказывать о ключевых технологических решениях.
Читать дальше →

Физика на вашей футболке: векторные поля и генеративное искусство

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

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

Мы уже писали о полях течений, а сегодня, к старту курса о визуальной части веб-разработки, делимся переводом статьи, где вы найдёте генератор абстрактных картин как на КДПВ и, конечно же, его код.

Читать далее

Декларативное описание структур данных в RDBMS

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

Лет 6 назад я задавался вопросом "Как правильно организовать распределенное проектирование БД?" Тогда ответа на свой вопрос я так и не получил, но за прошедшее с тех пор время я встретился с вариантом, наиболее близко подобравшимся к моему видению "прекрасного" — это декларативная схема описания данных в Magento 2.


Мне нравится философия таких программных систем, как Magento, Odoo, WordPress, Drupal — базовый функционал, расширяемый за счёт сторонних плагинов. Она значительно отличается от философии FAANG. Философия FAANG направлена на построение уникальных высокопроизводительных решений, а философия WordPress — на адаптируемость к требованиям бизнеса. Каждый из этих подходов имеет свои плюсы и минусы, но мне ближе второй и рассматривать вопрос, вынесенный в заголовок публикации, я буду именно в рамках WordPress-подхода (WP-подхода).


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

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

PHP Дайджест № 210 (16 – 30 августа 2021)

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

Фото: Peter Kokot.

Подборка свежих новостей и материалов из мира PHP. Вышла третья бета PHP 8.1, Swiftmailer больше не будет поддерживаться, PHP-FIG обсуждает обновляемые стандарты PER. Для PHP 8.2 предложены два новых RFC: про удаление динамических свойств и перегрузку операторов. Также в выпуске порция полезных инструментов, статьи и видео.


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


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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №482 (23 — 29 августа 2021)

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

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

JavaScript: 2 интересных примера практического использования Intersection Observer API

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


Привет, друзья!


На днях мне посчастливилось заниматься решением 2 несложных, но довольно интересных задач на чистом JavaScript (из-за React чуть не забыл, как это делается). В процессе решения этих задач никто не пострадал, напротив, все остались довольны. Поэтому я решил поделиться результатами с сообществом.


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


Введение


Итак, задачи были следующими:


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




  • Реализовать "ленивую" (отложенную, lazy) загрузку медиаресурсов (изображений, аудио и видео), поскольку те же изображения даже после сжатия с помощью gulp-imagemin весили (и весят, потому что они никуда не делись) неприличные 50 Мб и загружались при запуске приложения (больше они себя так не ведут).
Читать дальше →