Обновить
433.78

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

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

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

Что нам даёт понимание спецификации языка ECMA Script? Разбираем стандарт ECMA262

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели1.9K

Привет, Хабр! Меня зовут Александр, я frontend-разработчик SimbirSoft. Я 7 лет занимаюсь разработкой, и могу утверждать, что в процессе получения опыта работа специалиста становится все более творческой. Мы не просто стремимся заставить ПО работать нужным заказчику образом, а стараемся сделать все его части элегантными, производительными и легко поддерживаемыми. 

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

Я расскажу о сообществе, которое занято развитием нашего языка JavaScript. В первую очередь это организация ECMA International, которая разрабатывает стандарт языка ECMA Script, диалектом которого является JavaScript.

Мы разберем основные движки, реализующие стандарт ECMA Script, его ключевые разделы, опишем содержание на примере фичи. Рассмотрим, для чего изучать стандарт и как его дополнить, внеся свой вклад в сообщество разработчиков.

Читать далее

Три способа оптимизировать работу с памятью на Go с помощью memory pools

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

Привет, Хабр! Меня зовут Александр Иванов, я разрабатываю средства управления сетевыми элементами сотовой связи и пишу на языке Go в YADRO. Однажды я работал над приложением, которое испытывало пиковые нагрузки каждые 10 минут, но выполнить обработку памяти быстро мешал Garbage Collector. Чтобы решить эту проблему, я изучил несколько способов реализации memory pool и провел испытания скорости работы. 

В этой статье расскажу, как уменьшить влияние GC на выполнение программы и покажу бенчмарки для разных memory pools. Объясню, какая из реализаций подойдет вашему проекту, а когда лучше не использовать memory pools и полагаться на встроенные механизмы рантайм-окружения Go.

Читать далее

ML-подход к заблаговременному предотвращению оттока рекламодателей

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели1.1K

В этом материале мы опишем систему для заблаговременного предотвращения оттока рекламодателей, основанную на машинном обучении (ML, Machine Learning). Прототип системы создан на основе данных организаций малого и среднего бизнеса (Small & Medium Business, SMB), с которыми работает Pinterest. Результаты изначального эксперимента говорят о том, что мы, с высокой вероятностью, можем обнаруживать возможный уход рекламодателей. Это, в свою очередь, способно помочь нашим торговым партнёрам. Система, подобная нашей, может достичь лучших результатов, чем обычный подход, когда пытаются вернуть уже ушедшего клиента.

Читать далее

Безопасность для небезопасников

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

Анастасия Важинская — инженер по информационной безопасности, а не фронтендер, но её доклад стал самым важным для главного зала конференции FrontendConf 2024. Почему так и как меняется фронтенд-разработка и программа конференции? Что драйвит докладчиков в этом году? И какие боли терзают? Поговорим с докладчицей и узнаем всё из первых рук.

Читать далее

Вышла в свет бета-версия Axure RP 11

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

А я, как обычно, сделал краткий обзор её новых функций и возможностей.

Если кратко: маловато нововведений для того, чтобы присваивать ей новый номер.

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

Под катом мой видеообзор и текстовый перечень основных нововведений.

Читать далее

Браузер для Web 3.0

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.6K

Время от времени я встречаю на страницах Хабра мысль, что современные браузеры не соответствуют современным требованиям, стали слишком сложными, делают всё не так и не туда, и вообще - ниша “забронзовела”, поделилась между игроками (Blink, WebKit, Gecko) и новичкам с новыми движками в неё стало невозможно попасть в принципе. В своей прошлой статье я коснулся основ работы с телеграм-ботами и в какой-то момент мне показалось, что я увидел прообраз “браузера будущего” - приложения, через которое люди будут подключаться к Сети совсем скоро (а некоторые подключаются уже сейчас).

Под катом я попытался формализовать словами свои субъективные ощущения (КДПВ не моя, это всё DALL-E).

Читать далее

Книга: «Безопасность веб-приложений. Разведка, защита, нападение. 2-е изд.»

Время на прочтение19 мин
Охват и читатели3.1K
image Привет, Хаброжители!

Поговорим немного о безопасности? О защите, нападении и об Эндрю Хоффмане. Тем более, что вышло второе издание его известной книге о безопасности веб-приложений! Обновлённое, дополненное, актуализированное!

Три столпа безопасности приложений — разведка, нападение и защита. Во втором издании Эндрю Хоффман рассматривает десятки смежных тем — от новейших типов атак и средств защиты до моделирования угроз, жизненного цикла безопасной разработки ПО (SSDL/SDLC) и архитектуры нулевого доверия.

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

Вышел TypeScript 5.6

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели2.7K

Сегодня мы рады объявить о выходе TypeScript 5.6!

Если вы не знакомы с TypeScript, то это язык, созданный на основе JavaScript и добавляющий синтаксис для типов. Типы описывают формы, которые мы ожидаем от наших переменных, параметров и функций, а программа проверки типов TypeScript помогает выявить такие проблемы, как опечатки, отсутствие свойств и неправильные вызовы функций еще до того, как мы запустим наш код. Типы также используются в редакторах TypeScript, таких как автозавершение, навигация по коду и рефакторинг, которые вы можете увидеть в таких редакторах, как Visual Studio и VS Code. На самом деле, если вы пишете JavaScript в любом из этих редакторов, этот опыт основан на TypeScript! Узнать больше можно на сайте TypeScript.

Читать далее

Магия CSS на практике: советы по вёрстке от гика. Часть 4

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.8K

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


Сегодня мы рассмотрим:

  • почему декоративные элементы, сделанные с помощью чистого CSS могут не отобразиться в режиме повышенной контрастности Windows;
  • чем можно заменить объявления свойства height со значением auto для изображений;
  • какой есть нюанс при установке максимальной ширины у группы элементов;
  • плавную прокрутку без неприятных ситуаций для пользователя;
  • чего не хватает при использовании фоновых изображений.

Давайте посмотрим, что я вам подготовил.

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

HTTP-серверы на Fiber в Golang

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели6.9K

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

Когда речь заходит о создании HTTP-серверов на Go, большинство сразу думают о привычных решениях, таких как net/http или Gin. Эти инструменты проверены временем, но что, если нужен сервер, который не просто стабилен, а работает очень быстро? Здесь помогает Fiber — лёгкий, но невероятно мощный HTTP-фреймворк, способный вывести производительность сервера на новый уровень.

С синтаксисом, знакомым всем юзерам Express.js, Fiber избавляет от лишней сложности и позволяет сосредоточиться на главном — максимальной скорости и эффективности.

Читать далее

Распаковывая Valkey или миллион RPS на BSD-клоне Redis

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.6K

В этот статье мы поделимся некоторыми результатами тестирования производительности Valkey (BSD-клон Redis). TL;DR: он действительно по ядрам скейлится лучше Redis и мы сделали миллион запросов с одного инстанаса.

В этом году Redis, “кеш с персистентностью”, мимкрирующий под СУБД и даже умеющий работать в режиме распределенного кластера – фантастически успешный проект, да и просто пример отличного продукта – сменил лицензию. Подробное рассмотрение лицензионной политики, включающее разбор лицензий Open Source и Source Available - выходит за рамки этой статьи. Скажем лишь, что это всё продолжение битвы “против облачных провайдеров”, которые “пользуются” результатами “настоящих” open source проектов, предоставляя услуги management service.

Итак, Redis cменил лицензию, и почти сразу же сотрудники AWS (Amazon Web Services, крупнейшего облачного провайдера) в сотрудничестве с другими облаками объявили о выпуске форка, Valkey: https://valkey.io/

Читать далее

Бесплатный домен с HTTPS для локальных приложений: универсальное руководство с примером на Flask

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели12K

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

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

Читать далее

Практика: фронтенд для начинающих

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.1K

Это простое руководство для тех кто хочет развернуть локально проект и начать уже писать код.

Стек: typescript, vue, vitejs, primevue

Полетели

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

Зачем нужны ключи в JavaScript фреймворках и библиотеках?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4.3K

Всем привет! В данной статье я бы хотел рассказать о таком понятии как "ключи" в JavaScript фреймворках и библиотеках; зачем они используются и как помогают при работе с DOM.

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

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

Читать далее

Как я создавал онлайн игру «нарды» (часть пятая). Сервер

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.2K

Всем привет!

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

Читать далее

Разработка и деплой Slack бота

Уровень сложностиСложный
Время на прочтение16 мин
Охват и читатели1.1K

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

Читать далее

В помощь разработчику: 6 полезных библиотек визуализации данных

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

Привет, жители Хабра! Я Саша Пиманов, ведущий iOS-разработчик в МТС Диджитал. В прошлый раз я рассказывал, что почитать начинающим разработчикам. А сегодня поделюсь подборкой из шести библиотек, которые помогут в ежедневной работе. Среди них простые и сложные, с возможностью глубокой кастомизации и без нее. Все они могут здорово облегчить работу программиста, когда нужно визуализировать какие-то данные. Подробности — под катом.

Читать далее

Как нейминг влияет на качество кода?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели3.9K

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

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

Читать далее

Влияние UX Writing на конверсию через A/B тестирование

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели424

Вы когда-нибудь задумывались, как одна маленькая фраза может изменить весь путь пользователя на вашем сайте? Представьте себе, что вместо «Купить сейчас» у вас на кнопке стоит «Оформить заказ». Разница, казалось бы, минимальная, но что если эта замена поднимет конверсию на 20%? В UX Writing слова — это не просто текст, а инструмент, который способен направить пользователя в нужное русло или, наоборот, отпугнуть его.

Читать далее

Применение систем позиционирования персонала на современных дискретных производствах

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели2.1K

Применение систем позиционирования персонала на современных дискретных производствах

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

Читать далее

Вклад авторов