Обновить
450.49

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

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

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

Реактивные формы во Flutter: как делать формы с меньшими трудозатратами

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

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

Читать далее

Мои первые шаги в создании браузерных 2D игр на чистом JavaScript + Canvas. Часть 1. Прототип

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

Всем привет!

Поделюсь с Вами моим первым опытом в создании двумерных браузерных игр на языке JavaScript.

Читать далее

Как мы перевезли на новый сайт 700 тысяч рецептов и 6 миллионов фото пирогов, сырников и овсяноблинов

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


На рынке частой историей является поглощение глобальными игроками локальных интернет-сервисов и ресурсов, которые дублируют их функции. Так произошло в 2017 году и с парой «Овкусе» и Cookpad, когда последний решил зайти в русскоязычный сегмент. Тогда слияние произошло успешно: российский проект был куплен и органично влился в инфраструктуру кулинарного ресурса японского происхождения, где активно развивался все эти годы. Ровно до момента, пока головной офис не принял решение уйти из региона, полностью удалив русскоязычную часть Cookpad вместе со всем имеющимся контентом.

Сегодня мы расскажем о том, как нашей команде пришлось переносить данные целого проекта на новую платформу и с чем нам пришлось столкнуться при переезде 6 миллионов фото блюд из 700 тысяч рецептов, которые создали пользователи платформы за 15 лет.
Читать дальше →

Сбер. Как некрасиво поступить на конкурсе красоты

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

Хабр - не жалобная книга, я знаю. Но тут история про код, с примерами, разбором антипаттернов и всё такое, поэтому я рискну.

Всё началось, когда я узнал про конкурс красоты кода от Сбера. Я как раз хотел поучаствовать в каком-нибудь эпичным конкурсе, а тут как раз он мне и подвернулся, тем более что я - тот человек, которому есть что рассказать про красивый код. Я даже целую статью запилил о том, как писать красивый и понятный код. Так что что я решил, что в данном случае мои шансы на победу - в отличие от остальных конкурсов - всё же больше 0%. Кроме того, я хотел выступить на конференции PiterPy (спойлер: хрен мне), чтобы рассказать там про красивый код и всё такое, поэтому участие в конкурсе и сравнение результатов было бы классным подспорьем.

Что же пошло не так?

Сделали библиотеку компонентов, но пришлось переделывать. Почему так вышло и чем дело кончилось

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

Привет, Хабр. Меня зовут Артем Арефьев, я руковожу Frontend-разработкой в направлении продукта для учеников в Учи.ру. Фронтендом занимаюсь уже 11 лет, шесть из которых работаю у нынешнего работодателя. Еще принимаю участие в проектах Open Source (например, внес вклад в проект Lerna), несколько лет был наставником в «Хекслет». Хочу рассказать о том, как у нас в Учи.ру возникла необходимость в создании библиотеки компонентов, почему первое решение не сработало, какие выводы мы сделали и чем закончился наш проект библиотеки.

Читать далее

Вышел Chrome 118

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

CSS @scope.

Правило @scope at-rule позволяет разработчикам распространять правила стилей на заданный корень описания и стилизовать элементы в соответствии с близостью к этому корню.

С помощью @scope можно отменять стили, основанные на близости, что отличается от обычных стилей CSS, которые применяются только на основе порядка и специфики источника. В следующем примере имеется две темы.

Читать далее

Swirl для анализа корпоративных данных: как мы использовали ИИ-поиск и что из этого вышло

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

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

В итоге мы решили попробовать Swirl - поисковую платформу с открытым исходным кодом, созданную на Python и Django, позволяющую объединить поиск в базах данных (SQL и NoSQL), облачных сервисах, поисковых провайдерах, хранилищах данных и таких инструментах, как Miro, Jira, GitHub и т.д., а на выходе получить результаты с аналитикой от ChatGPT.

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

Читать далее

REST API vs GraphQL: в чём между ними разница

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

Сегодня в среде разработчиков часто продвигают GraphQL в качестве замены REST, хотя обе технологии можно использовать одновременно. В этой статье Анастасия Иванова, технический писатель платформы МТС Exolve (входит в экосистему МТС), рассмотрит интерфейсы подробнее, чтобы понять, как выбрать подходящее решение под каждый конкретный проект. Подробности — под катом.

Читать далее

Прокачиваем вёрстку ARIA атрибутами. Атрибут aria-label

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


Cегодня я хочу рассказать про атрибут aria-label. В статье не будет заумных определений и бездумного копирования стандарта. Я хотел простым языком объяснить, какая польза от атрибута, а также передать свой практический опыт, чтобы вы могли его повторить. А получилось у меня или нет, решать вам.


Со вступительным словом всё. Давайте начнём!

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

Ключевые навыки для развития во frontend разработке

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

Привет! Я - Роман Батин, ведущий фронтенд разработчик. Уже несколько лет занимаюсь управлением командами разработки интерфейсов и обучением стажеров. За время своей работы я заметил, что у большинства начинающих (да и не только) программистов, встречаются одни и те же ошибки. Корни же этих ошибок лежат даже не столько в незнании языка или технологий, сколько в отсутствии определенных навыков разработки в целом.

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

Читать далее

Почему код, который мы пишем — убивает людей?

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

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

Читать далее

Разбираем TLS по байтам. Где собаки зарыты?

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


Подключение к сайту бывает защищённым, а бывает нет — это надо знать всем детям. Только не все дети знают, что это значит и как работает. Кажется я это уже писал? Ах да, это же вторая часть статьи с разбором TLS.

В первой мы увидели, что такое «защищённое соединение», сколько и каких ключей для него нужно, кто кого шифрует и подписывает, и что такое «сертификат». Сейчас разберёмся, как всё это дело реализуется в протоколе TLS: как выглядит рукопожатие, как сделать ключ шифрования своими руками, в каком виде данные передаются по сети.
Читать дальше →

Как внедрить гайд по стилю кода в проект

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

Всем привет! Меня зовут Соня Гусева, я фронтенд-разработчик в Яндекс Практикуме (или фронтенд-капибара). Вместе с командой мы развиваем платформу practicum.yandex.ru. Например, сделали поиск по пройденным материалам — тот самый, где «найдётся всё». И тёмную тему — для комфортной учёбы даже ночью.

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

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

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

Читать далее

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

Создание шаблонов сайта в Joomla 4+

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

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

Читать далее

PHP и Laravel дайджест новостей за сентябрь 2023 года

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

Всем привет! Краткий обзор новостей из мира PHP и Laravel за сентябрь 2023 года  от Сергея Пантелеева и Данила Щуцкого.

Читать далее

От нуля до фронтендера (о своем пути простыми словами)

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

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

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

Теперь перейдем к основам. Вам понадобится язык гипертекстовой разметки HTML, чтобы создавать веб-страницы и их элементы. Он насчитывает около 100 тегов – названий элементов в угловых скобках, а также бесчисленное множество атрибутов для них. Однако, в этом языке нет логики программирования: циклов, условий, переменных и тому подобного. Поэтому освоить правила HTML не так сложно, как может показаться на первый взгляд. Но не стоит забывать про особенности последней версии языка (на данный момент – это HTML5). Нужно всегда быть в курсе последних нововведений: плагин Emmet и шаблонизатор Pug позволяют писать HTML код в сокращенном виде, ускоряя процесс разработки.

Читать далее

Зачем собирать номера телефонов клиентов и как сделать это экологично

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

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

Читать далее

Миграция с Webpack и react-scripts на Vite: Путь к Быстрому и Легковесному React

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

Я работаю фронтенд-разработчицей в IT-компании, и многие из моих проектов на протяжении долгого времени собирались с использованием Webpack. Настройка Webpack иногда бывала сложной, но в целом он справлялся с задачей сборки проектов. Однако в последнее время мои коллеги начали восторгаться новым инструментом - Vite. Они рассказывали о его легковесности, быстрой сборке и преимуществах для разработчиков React-приложений. В этой статье я поделюсь своим опытом миграции с Webpack и react-scripts на Vite. Я расскажу о причинах, по которым решила попробовать Vite, а также о том, с какими сложностями пришлось столкнуться и как они были решены.

Читать далее

Elementary Geometric Reduction

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

Проблема

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

Стандартное решение этой проблемы - изучение математики.

Есть прекрасные курсы, упрощающие эту задачу. Начиная с Khan Academy, и многие другие.

Однако всё равно процесс должен был бы занять годы, чтобы начать ориентироваться в этом уверенно.

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

И хочется посмотреть на проблему out of the box, и подумать, а нет ли возможности реализовать инструмент, который бы упрощал этот процесс и позволял сделать его комфортнее и быстрее.

Читать далее

Heretic: full stack фреймворк на основе Marko.js

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

В последнее время вышло так, что я по неведомой причине стал часто заниматься популяризацией Marko.js, декларативного и реактивного языка разметки, который разрабатывается eBay. С одной стороны, это связано с тем, что Marko незаслуженно часто обходят стороной, хотя он позволяет делать из коробки многое из того, что не получится сделать на мейнстримовых фреймворках. С другой стороны, это действительно классно, когда можно использовать обычный HTML, при необходимости расширяя его синтаксисом Marko (вроде условных операторов и циклов). Одним словом, если вы еще не видели, что это такое - посмотрите, возможно, вам это очень понравится.

Когда у меня возникла необходимость разработать несколько внутрикорпоративных ресурсов, которые облегчали бы повседневную менеджерскую работу, я решил взять за основу некоторые свои разработки, в том числе компоненты, написанные на Marko, и максимально переиспользовать их. Так на свет появился Heretic - фреймворк, основанный на Marko.js, Node.js, Fastify, Bulma, MongoDB и других продуктах. Он позволяет за минимальные сроки разворачивать сайты, панели управления, различные сервисы и (теоретически) вообще все, что угодно :-)

Читать далее

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