Обновить
415.36

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

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

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

Как вырасти из джуна в мидлы во фронтенде

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

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

Меня зовут Лёша Руденко, во фронтенде уже более семи лет, сейчас работаю в финтехе. А ещё я ментор на курсе «Мидл фронтенд-разработчик» в Яндекс Практикуме. Как наставник я помогаю студентам совершить карьерный переход из джуниор-разработчика в мидлы. Точнее так: моя задача в том, чтобы начинающий разработчик не утонул в огромном количестве советов, рекомендаций, статей и видео и сам пришёл к заветной цели.

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

Дорогу осилит идущий

Шпаргалка по структурам данных в Java

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

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

Читать далее

Разбираем HTTP/2 по байтам

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

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

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

Как автоматизировать переводы во Frontend приложении

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

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

Моя идея была в том, чтобы написать функцию, в которую можно было бы передать языковой код и json объект с текстом на исходном языке, а на выходе получить переведенный json/js file. С помощью этой функции я мог бы в ci/cd Pipeline переводить все текста на проекте, в исходных текстах которых были изменения, либо же следить за текстами в рантайме и на лету переводить текста.

И я нашел два относительно простых и бесплатных метода, для того чтобы это сделать.

Читать далее

Внедрение зависимостей в Angular простыми словами

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

Всем привет? Я Данила, фронтенд разработчик в ПСБ. Angular я начал изучать не так давно, а поэтому часто встречаются сложные темы, которые непонятны и их нужно разобрать. Одной из таких тем и стало внедрение зависимостей (DI). Что ж, давайте разбираться :)

Читать далее

Делай так, и твой адаптив болеть не будет

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

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

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

Читать далее

Чем отличается реализация non-keyed от keyed в javascript фреймворках?

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

Часто, при разработке сайтов на фреймворках, не придаётся особого внимания деталям, которые в данный фреймворк включены. И это нормально, ведь главная задача фреймворка - чтобы удобно было сайт делать и чтобы он был быстрым и функциональным. Но, эти детали тем и интересны, что узнав некоторые моменты, взгляд на javascript разработку чуть дополняется.

Читать далее

Холодная и горячая последовательность RxJS

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

Доброго времени суток, дорогие читатели!
В данной статье я буду рассказывать про холодную и горячую последовательность на примере такой задачи:
Пользователь заходит на сайт и начинается внутренняя прослушка (какой либо запрос на сервер с получением данных, в нашем же случае будет обычный sleepAsync - функция с таймаутом и остается только его подхватить и обработать). Режимов прослушки два - оптимизированный (будем называть горячим) и константный (будем называть холодным). При условии активности пользователя на вкладке, включаем оптимизированный метод, если же пользователь покинул вкладку, включаем константный. Также нужно показывать количество времени, которое занимала прослушка.

Просвятиться

Как работает Zustand

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


Hello world!


Zustand (читается как "цуштанд", что переводится с немецкого как "состояние") — это, на мой взгляд, один из лучших на сегодняшний день инструментов для управления состоянием приложений, написанных на React.


В этой статье я немного расскажу о том, как он работает.


Давайте начнем с примера использования zustand для реализации функционала отображения/скрытия модального окна.

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

Прекратите превращать программирование в религию (восклицательный знак)

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

Как вы меня задолбали, священники, святые отцы и монахи с кадилами. Сколько можно это терпеть? Я учился в университете, чтобы получить диплом по специальности, но вместо этого я получил пропуск в какую-то конспирологическую теоретическую секту.

Не верите?

Давайте я покажу вам.

Я бы пересмотрел вообще всё

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

В программировании нет вообще никаких непреложных истин. Даже самые очевидные правила могут иметь контекст, в которых их применять нельзя. К сожалению в 99% организаций есть прям заповеди, обязательные к исполнению. И есть правила, которые считаются правилами хорошего тона (как не сморкаться в занавеску). Однако всегда бывают ситуации, когда лучше все-таки сморкаться.


Вот примеры.


1) Например, DRY — don’t repeat yourself. Хорошее полезное правило, но его можно довести до маразма. Из того что я встречал на практике: есть два разных по бизнес-смыслу раздела, которые начинались с простого CRUD, и многие части (и фронта и бека) выглядели во многом абсолютно одинаково. Если их объединить с помощью общей высосанной из пальца абстракции и тем самым избавиться от небольшого дублирования кода, то потом (очень скоро) можно будет сойти с ума, потому что эти две вещи скоро разъедутся, обрастая кастомными фичами, и абстракция будет только вредить. Нельзя абстрагировать неабстрагуемое, даже если DRY нарушен.


«[Немного] дублирования обходится гораздо дешевле, чем неправильная абстракция» — Сэнди Мец

Т.е. DRY — хороший принцип, но бывают исключения.

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

Web Services в Joomla 4

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

Этот текст - перевод статьи из нового портала документации для разработчиков Joomla, раздел "Основные концепции". Ранее уже был опубликован перевод раздела, описывающего принципы Dependency Injection Containers в Joomla 4.

В тексте даны примеры PHP-кода по работе с Joomla 4 REST API. Примеры даны как с использованием API Joomla (HttpFactory), так и для non-Joomla сайтов - на чистом cURL.

Читать далее

Как React 18 улучшает производительность приложения

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


React 18 представил конкурентные (concurrent) возможности, которые радикально меняют способ рендеринга приложений. В этой статье мы рассмотрим, как эти возможности улучшают производительность приложения.


Начнем с повторения основ "долгих (долго выполняющихся) задач" (long tasks) и соответствующих метрик производительности.

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

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

Поиск по произвольным параметрам

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

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

Давайте

Пятеро в танке: зачем фронтендерам в 2023 году делать игру из 90-х

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

5 незнакомых людей за три месяца запилили ремейк культовой игры 90-х «Танчики». В этой статье они расскажут:

— Как построить командную работу, чтобы всё успеть и не поубивать друг друга?

— Как создать движок игры, который потянул бы даже старый iPhone?

— Как втащить в проект самописный Server Side Rendering так, чтобы игра и окружающее его React-приложение не сыпали ошибками?

— Как сделать браузерную игру, работающую даже без интернета?

Эти и другие проблемы парни решили в рамках курса «Мидл фронтенд-разработчик» в Яндекс Практикуме. Подготовка состояла из двух модулей по три месяца: сначала был индивидуальный трек, а затем — командный, в рамках которого надо было впятером разработать совместный проект.

Как им удалось это сделать

5 интеграций в React: Контент + Дизайн + Разработка

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

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

В статье я продемонстрирую, как решить три задачи, связанные с интеграциями в React приложении:

1. Изменять контент страницы на React без необходимости привлечения разработчика;

2. Расширять функционал React приложения с помощью сторонних сервисов;

3. Создавать страницы с минимальными затратами на разработку.

Читать далее

Как сделать редизайн сервиса: рассказываем на примере средневекового замка

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

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

Читать далее

Неразрешимые проблемы разработки

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


Сроки


В разработке ПО существует неразрешимое противоречие — это оценка сроков.


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


С другой стороны, разработка порою в душе не е... вообще не знает, сколько надо времени, особенно если


  • новая функциональность нетипична
  • есть зависимости на другие команды
  • будет задействована новая технология
  • ТЗ надо сильно уточнять
  • надо разобраться в логике легаси-кода

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

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

Компонентный подход в вёрстке: подробный разбор для джунов и сочувствующих

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

Зачем использовать в вёрстке компонентный подход? Разбираемся, как и зачем верстать интерфейсы, используя этот подход, какие параметры и проблемы важно учесть. Разберём азы, забежим вперёд и подробно погрузимся в тему. Кстати, эта статья написана на основе одного из уроков курса «Профессиональная вёрстка на HTML и CSS» Яндекс Практикума. 

Читать далее

Онбординг пользователей, революция у аналитиков, веб-доступность: как сотрудники МТС Банка идеи до прода довели

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

Очень часто крутые идеи рождаются не у продактов или руководителей, а у линейных сотрудников. Среди разработчиков нередко встречаются интроверты, особенно когда речь идет о новых участниках команд — именно они вынашивают свежие идеи, но не высказывают их. И если эти идеи развивать, то, например, простая задача с уровня «А давайте-ка зашьем на бэк несколько экранов для онбординга пользователей» переедет на гораздо более системный «Давайте сразу запилим полноценную платформу».

Многим ребятам в IT хочется быть не абстрактным «юнитом» из какой-нибудь пошаговой стратегии с набором характеристик и конкретной «функцией», а проявлять творческий потенциал, реализовывать свои идеи. И для компании важно это учитывать. Поддерживая подобные инициативы, помогая им доходить до продажи, компания может не только получать огромный прирост к business value, но и снизить текучку кадров, потому что специалисты будут чувствовать себя оценёнными по достоинству. 

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

Читать далее

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