Как стать автором
Обновить
391.04

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

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

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

Шпаргалка по безопасной сборке Docker-образов

Время на прочтение17 мин
Количество просмотров4.1K

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

Привет, Хабр! Меня зовут Эллада, я специалист по информационной безопасности в Selectel. Продолжаю рассказывать о безопасности в Docker. Под катом расскажу, как настроить сборку образов, обеспечить безопасность и добавить сканирование в пайплайн.
Читать дальше →
Всего голосов 30: ↑32 и ↓-2+34
Комментарии5

Новости

Мегагайд: культура работы с Git

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров15K

Привет всем! Меня зовут Юля, я фронтенд-разработчик, наставник на курсах по JS и React и организатор профессионального сообщества Tbilisi JS. В Практикуме я помогаю студентам на курсе «React-разработчик».

За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

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

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии14

PHP и Laravel дайджест новостей за апрель 2024 года

Время на прочтение9 мин
Количество просмотров3.3K

Всем привет!

Это PHP Дайджест от CutCode. Давайте посмотрим, что произошло за прошедший месяц в мире PHP.

Читать далее
Всего голосов 16: ↑16.5 и ↓-0.5+17
Комментарии1

Кейс: как с помощью парсинга Авито и ЦИАН увеличить эффективность отдела развития крупной ритейл компании на ~27%

Время на прочтение3 мин
Количество просмотров980

Привет! В этом кейсе хочу описать процесс взаимодействие заказчика с поиском новых объявлений по определенным адресам (координатам) по всей России.

Суть: необходимо мониторить объявления объектов коммерческой недвижимости (аренда) на Авито и ЦИАН по заданным критериям. Необычность задачи - поиск объявлений в определенном радиусе от изначальной точки координаты.

Заказчик: крупнейшая сеть аптек (ввиду коммерческой тайны, раскрыть названия не могу), насчитывающая более 1000 оффлайн-точек по всей России.

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

Сложность: на 4 менеджеров по развитию внутри компании - приходилось отслеживать более 7000 определенных адресов по всей РФ на наличие новых объектов аренды недвижимости в определенном радиусе (и это только на одном ресурсе). На подобный поиск новых объявлений могло уходить от 2х недель до 3х месяцев. Выходило трудозатратно и неудобно (ну а помимо этого, есть же еще и другие бизнес-процессы). При этом, очень крутые, вкусные объявления, улетали за считанные дни, которые даже могли не попасть в обозрение заказчиком.

Читать кейс
Всего голосов 7: ↑4 и ↓3+1
Комментарии8

Истории

Основы программирования на примере исходного кода React

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров7.7K

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

Читать далее
Всего голосов 7: ↑8 и ↓-1+9
Комментарии2

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

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров220

Инклюзивный проект Everland провел исследование невизуальной доступности онлайн-аптек, чтобы понять, насколько они адаптированы для людей с нарушениями зрения и моторики.  В ходе исследования была протестирована 21 платформа (сайты и мобильные приложения для iOS и Android) 7-ми брендов. Оценку проводили тестировщики с инвалидностью по зрению в феврале 2024 года.

Читать далее
Всего голосов 4: ↑4.5 и ↓-0.5+5
Комментарии1

Мега-Учебник Flask Глава 7: Обработка ошибок (издание 2024)

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.3K

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

Начать изучение
Всего голосов 7: ↑9 и ↓-2+11
Комментарии0

Библиотека GopherJS в Golang

Время на прочтение5 мин
Количество просмотров2.8K

GopherJS позволяет переводить Go-код в JavaScript — он предоставляет полноценную совместимость с большинством пакетов стандартной библиотеки Go. Также Gopher поддерживает горутины и каналы!

В статье в общих деталях рассмотрим эту замечательную библиотеку.

Читать далее
Всего голосов 13: ↑8 и ↓5+3
Комментарии5

Контекст в Vue/Nuxt: осознать, не терять и беречь

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.3K

В процессе нашей миграции на Nuxt CAPI, а потом и Nuxt 3, я очень много переосмыслял работу с контекстом как в Vue, так и в Nuxt. Как он сохраняется, на что влияет, и как можем повлиять мы.

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

Что? Какой контекст? В setup нет this. Как его можно потерять? На что это влияет? Давайте про это поговорим.

Читать далее
Всего голосов 12: ↑13 и ↓-1+14
Комментарии1

Как мы в 4 раза ускорили мобильную версию ВКонтакте

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

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

Меня зовут Тарас Иванов, уже семь лет я развиваю фронтенд ВКонтакте, а сейчас руковожу командой, которая занимается производительностью и инфраструктурой. В статье я расскажу, как мы с командой ускорили загрузку m.vk.com в 4 раза, на какие метрики обращали внимание и какие сервисы использовали для оценки эффективности. Описанные способы и инструменты помогут повысить производительность в любом проекте: от многостраничных платформ с большим количеством legacy до свежих лаконичных лендингов. Актуально как для мобильной, так и десктопной версий.  

Читать далее
Всего голосов 11: ↑14 и ↓-3+17
Комментарии9

Сколько денег приносит IT-подкаст? Андрей Смирнов, автор Frontend Weekend и руководитель клиентской разработки Х5 Tech

Время на прочтение12 мин
Количество просмотров1.1K

Я спросила у Андрея, как он совмещает карьеру и подкаст, почему не нанимает монтажера, влияет ли медийность на его зарплату, и стоит ли новичкам запускать очередной айтишный подкаст.

Читать далее
Всего голосов 13: ↑2 и ↓11-9
Комментарии3

Разбираемся с this в JavaScript раз и навсегда (но это не точно)

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

Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и то как фронтендеры пишут очередную статью про this.

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

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

Читать далее
Всего голосов 13: ↑13.5 и ↓-0.5+14
Комментарии5

Эволюция в мире UX: как мы создали паттерн проектирования и упростили прогулки пользователей по панели управления

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

Привет, Хабр! Меня зовут Витя, я проектировщик интерфейсов в Selectel. Так вышло, что мне поручили разработать интерфейс формы создания облачного сервера. Задача не из самых простых: конфигуратор достаточно функционален и гибок, но должен оставаться понятным.

Было сложно, но задачу я осилил. А после решил доработать ее и переложить наработанный опыт в паттерн, который смогут переиспользовать другие проектировщики. В этой статье расскажу, что из этого получилось и какие цели мы ставили перед собой при подготовке паттерна. Добро пожаловать под кат!
Читать дальше →
Всего голосов 34: ↑40 и ↓-6+46
Комментарии4

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Руководство по Next.js. 3/3

Уровень сложностиСредний
Время на прочтение45 мин
Количество просмотров2.6K


Hello world!


Представляю вашему вниманию третью и заключительную часть обновленного руководства по Next.js.



На мой взгляд, Next.js — это лучший на сегодняшний день инструмент для разработки веб-приложений.


Предполагается, что вы хорошо знаете JavaScript и React, а также хотя бы поверхностно знакомы с Node.js.


Обратите внимание: руководство актуально для Next.js версии 14.


При подготовке руководства я опирался в основном на официальную документацию, но в "отсебятине" мог и приврать (или просто очепятаться) 😁 При обнаружении подобного не стесняйтесь писать в личку 😉


Парочка полезных ссылок:


Читать дальше →
Всего голосов 12: ↑14.5 и ↓-2.5+17
Комментарии0

Безопасность веб-приложений для самых маленьких фронтов

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

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

Статья подготовлена по материалам внутреннего митапа по информационной безопасности.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии6

Как веб-технологии помогают искать золото

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

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

Читать далее
Всего голосов 11: ↑13 и ↓-2+15
Комментарии5

PHP/FI 1. Personal Home Page Tools/Forms Interpreter

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.2K

История зарождения PHP

История PHP начинается не с полноценного языка программирования, а с набора CGI-скриптов на C, известного как PHP/FI 1. В этой статье мы возвращаемся к истокам PHP, рассматривая его первую версию, её компиляцию и функциональность.

Читать далее
Всего голосов 19: ↑20.5 и ↓-1.5+22
Комментарии8

Используем паттерн Decorator в Bitrix

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

Применять паттерны программирования — хорошая практика. К сожалению, на проектах CMS Bitrix редко встречаются примеры использования. 

В статье я покажу на примере, как можно использовать паттерн Decorator.

А также рассмотрю этот паттерн в целом: его распространенные реализации в PHP, возможные альтернативы и ситуации, в которых лучше избегать его использования.

Читать далее!
Всего голосов 6: ↑6.5 и ↓-0.5+7
Комментарии0

Как Uber обслуживает более 40 миллионов чтений в секунду из онлайн-хранилища с помощью встроенного кэша

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

Привет, Хабр! Представляю вам перевод статьи "How Uber Serves Over 40 Million Reads Per Second from Online Storage Using an Integrated Cache" автора Preetham Narayanareddy. Из неё вы узнаете, как в Uber проектировалась система кэширования на основе Redis, с какими сложностями и тонкостями пришлось столкнуться разработчикам, и как в итоге им удалось создать действительно высокопроизводительное решение.

Читать далее
Всего голосов 6: ↑7 и ↓-1+8
Комментарии6

Рендерим таблицы с помощью Symbiote.js

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии6
1
23 ...

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