Обновить
389.99

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

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

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

Кто до сих пор использует PHP?

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

Свой путь в сфере разработки я начала с языка PHP, но позднее в индустрии программирования акцент сместился в сторону JavaScript. Отчасти причина в том, что фронтенд-составляющая веб-среды так или иначе работает именно на JS. В этой сфере я провела последние десять лет.

Недавно мне подвернулась кое-какая работа, связанная с PHP. Поначалу я была удивлена, ведь за этим языком закрепилась дурная слава – преимущественно из-за его ассоциирования с устаревшими проектами WordPress (и всеми вытекающими из этого уязвимостями). Но WordPress – это всё же не PHP.

В общем мне стало любопытно. Кто они – те люди, которые до сих пор используют PHP? Почему они это делают? И как этот опыт можно сравнить с моим скромным миром серверных проектов на JS?
Читать дальше →

Свой NPM репозитарий Verdaccio + GitLab + Docker

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

Требовалось кешировать используемые в разных проектах NPM пакеты (+ хранить свои пакеты) на отдельном сервере.

Было решено делать это с помощью репозитария Verdaccio (по нему есть достаточно хорошая офф. дока), крутится это все должно в Docker, а разворачиваться на отдельном сервере через GitLab CI/CD.

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

Читать далее

Как я очень захотел перейти из фронтенда в бэкенд — и перешёл

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

Павел Комаров, фронтендер с пятилетним стажем, рассказал, как прошлой осенью перешёл в бэкенд: почему захотел это сделать, какие ставил цели и как к ним шёл. Ну и о том, что получилось в результате :)

Читать далее

MariaDB, фрагментация, varchar и печалька

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

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

Читать далее

Книга «JavaScript с нуля до профи»

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

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

В «JavaScript с нуля до профи» основное внимание уделяется ключевым концепциям программирования и манипуляциям с объектной моделью документа для решения распространенных проблем в профессиональных веб-приложениях. К ним относятся проверка данных, управление внешним видом веб-страниц и работа с асинхронным и многопоточным кодом.

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

Для кого эта книга
Для комфортного знакомства с книгой не требуется никакого опыта в JavaScript. Конечно, упражнения дадутся немного легче, если вы хотя бы немного умеете программировать. Знакомство с основами HTML и CSS будет вашим преимуществом. Если вы начинающий программист, для нас большая честь поприветствовать вас в мире программирования. Вначале он может показаться сложным, но мы проведем вас через все трудности.
Читать дальше →

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 2

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

В предыдущей части мы частично разобрали шаблон для нашего блога, выбрали виртуальную машину и запустили на ней нативный веб-сервер Django. Однако он предназначен только для тестирования и запуска приложений во время разработки. Для обработки запросов в продакшене нужно настроить Nginx и WSGI Gunicorn. В этой статье показываем, как это сделать.
Читать дальше →

Магия превращений: клик на сайте в выполнение Powershell скрипта на сервере

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

Сегодня мы научимся создавать веб интерфейсы для администрирования. Будем запускать Powershell код по клику на сайте или при обращении к API. Для наглядности напишем три сервиса, взаимодействующих со службами, Active Directory и файловой системой.

Начать автоматизировать

Битва CLIs: почему мы отказались от Angular CLI в пользу Nx

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

Привет! Меня зовут Даниил, я фронтенд-разработчик в Тинькофф Бизнесе. Мы строим удобные интерфейсы, чтобы клиенты могли быстро зарегистрировать бизнес.

Сегодня я хочу рассказать, почему мы используем Nx для всех наших Angular-проектов, какие проблемы решает этот инструмент и чем он лучше Angular CLI.

Читать далее

Как упростить импорт JavaScript модулей с помощью Node.js Subpath Imports

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

Существует множество библиотек для настройки алиасов в Node.js, таких как alias-hq и tsconfig-paths. Однако однажды, изучая документацию Node.js, я обнаружил возможность настройки алиасов без использования сторонних библиотек. Более того, данный подход позволяет использовать алиасы без сборки кода. Знакомо ли вам поле imports в package.json? В этой статье мы рассмотрим, что такое Node.js Subpath Imports, узнаем о тонкостях настройки и разберемся с поддержкой в актуальных инструментах разработки.

Читать далее

ChatGPT во фронтенде: как его использовать и когда он заменит разработчиков

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

Что такое ChatGPT, чем он может помочь фронтенд-разработчику и стоит ли бояться, что нейросеть отнимет у вас работу?

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

Развёрнутый ответ — в этой статье. Мы последовательно объясним, почему нейросетей не стоит бояться, и на конкретных примерах покажем, как именно вы можете внедрить ChatGPT в свою работу уже сегодня.

Узнать дальше

Разработка быстрых и современных сайтов на базе Next.js, с использованием GraphQL & WordPress

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

Next.js - современный фреймворк на базе ReactJS, который значительно набирает обороты среди разработчиков и предоставляет инструменты для разных видов рендеринга страниц.

WordPress - популярная headless CMS, применяемая для различных проектов - от простых блогов до сложных приложений.

У нас был готовый сайт на WordPress, шило в коде и непреодолимое желание поэксперементировать с Next.js.

Получилось достаточно быстрое приложение с примерно небольшими трудозатратами.

Читать далее

ContentChild, ViewChild, template reference variables

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

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

Давайте!

Самые необычные правила паролей

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


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

Поскольку единых парольных правил нет, многие компании публикуют собственные рекомендации, которые сильно отличаются друг от друга. Иногда эти правила весьма экстравагантые.
Читать дальше →

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

Чем хорош и чем плох Tailwind CSS, или «Допустим, у вас стартап!»

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

Привет, Хабр! Меня зовут Александр Водолазских. Я живу в Новосибирске и я работаю Frontend Domain Lead в СберМаркете. Сегодня хочу немного поговорить об опыте работы с Tailwind CSS — utility-first CSS framework. Поделюсь болью и радостью, которые возникли при его эксплуатации.

Читать далее

Создание плагинов с учётом новой структуры Joomla 4

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

С момента выхода Joomla 4 прошло уже почти 2 года, поэтому слово "новой" будем понимать в контексте сравнения с Joomla 3. В Joomla 4 "под капотом" произошло немало изменений. Кодовая база движка постепенно отбрасывает legacy (старый код), встретившись с которым мы могли бы как на машине времени вернуться в середину 2000-х или начало 2010-х ?

В данной статье собран необходимый минимум для того, чтобы обновить старый плагин до структуры Joomla 4. Ну, или написать с нуля новый.

Читать далее

Обеспечение безопасности Frontend приложений

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

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

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

Читать далее

Рендеринг на сервере и HTMX — это будущее

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

Современная ситуация с разработкой веб-приложений


Сегодня пользователи ожидают от веб-приложений плавной работы без перезагрузок страниц. К сожалению, эти ожидания обычно реализуются в виде одностраничных приложений (single-page application, SPA), использующих библиотеки и фреймворки наподобие React и Angular. Эти фреймворки очень специализированы и с ними может быть трудно работать.

Новый подход заключается в том, чтобы вернуть возможность реализации этого UX в руки инженеров, разрабатывавших веб-сайты до возникновения безумия SPA, используя готовые наборы инструментов и знания. HTMX — лучший пример такого подхода из тех, что я видел.
Читать дальше →

Особенности асинхронности в Python

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

Привет, Хабр! Меня зовут Николай Нагорный, я работаю в Росбанке над платформой Advisors’ Axiom. В этом посте я подробно расскажу о важной фиче, которая появилась в Python 3.5 — асинхронности. Затрону основные концепции и инструменты, приведу примеры кода. Пост будет полезен новичкам для понимания основ асинхронности и, может, даже опытным разработчикам в поиске новых идей и подходов.

Читать далее

Детокс для i18n

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

NPM библиотека для интернационализации и локализации i18n очень популярна, однако за последние годы она сильно располнела. В ней много возможностей для локализации дат, чисел, установки нужных склонений, поддержки RTL языков, загрузки локалей с сервера и кучи еще чего. На сайте i18next она называется уже даже "интернационализационным фреймворком".

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

Читать далее

Хорошая замена Celery для асинхрощины

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

Речь пойдет о библиотеки для работы с AMPQ - aio-pika. Она имеет всего в районе 1К звёзд на GitHub (по сравнению с 20К+ у Celery). Я рассмотрел абсолютно все популярные (500+ звёзд) решения и остановился именно на этом из-за активной (на текущий момент) разработке и соответствии всем моим требованиям.

Стек, который вы увидите в статье: FastAPI, RabbitMQ, aio_pika и docker. Статья будет полезна тем кто использует Celery в своих проектах, а так же тем, кто только слышал о том, что такое очереди и RabbitMQ.

Читать далее

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