Все потоки
Поиск
Написать публикацию
Обновить
341.17

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

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

Дайджест канала opensource_findings за август 2024

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

Привет!

Под катом множество сложных технических тем внутри питона: от генерации стратегий hypothesis до устройства тайпчекера MyPy.

В качестве тестового формата решил сделать подборку сложных технических тем, про которые писал в августе у себя в тг канале: https://t.me/opensource_findings со ссылками на полные посты.

Посмотрим, насколько такой формат работает, напишите свои мысли в комментарии! Буду благодарен обратной связи, поехали!

Читать далее

Бесплатный аналог Notion на своем сервере за 10 минут. Локальный запуск, настройка и деплой Wiki.JS

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

Привет, друзья!

Как вы, возможно, уже знаете, 9 сентября Notion покидает рынок РФ, и, по слухам, это может сопровождаться удалением всех аккаунтов из России. В связи с этим, нам всем стоит задуматься о том, какую альтернативу выбрать.

После тщательного анализа различных опций, я нашел, на мой взгляд, отличную и полностью бесплатный аналог Notion — Wiki.JS.

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

Для освоения материала вам не понадобятся никакие навыки программирования. Следуйте моим инструкциям, и к концу статьи у вас будет свой собственный экземпляр Notion, работающий на удаленном хостинге.

Для деплоя я буду использовать сервис Amvera Cloud. Я выбрал его за простоту развертывания и предоставление бесплатного доменного имени с HTTPS-протоколом, которое будет выделено вам сразу после создания проекта.

Для деплоя нам понадобится создать Dockerfile (этот файл будет использоваться как для локального запуска, так и для развертывания). Технически, вам достаточно будет скопировать настройки с этой статьи и все у вас заработает. Затем, просто загрузите этот файл через консоль на сайте Amvera Cloud, и ваш проект соберется и запустится автоматически!

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

Читать далее

Апи версионирование по-взрослому

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

Мы все любим пробовать новые инструменты, но ненавидим их поддерживать и обновлять. Это касается всего: операционных систем, приложений, API, пакетов Linux. Больно, когда наш код перестает работать из-за обновления, и вдвойне больно, когда обновление было инициировано не нами.

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

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

Я расскажу на нашем примере, насколько глубока кроличья нора и как сильно можно упороться на пути к идеальному версионированию.

Читать далее

Метём метлой. Рефакторим дизайн-систему, чтобы верстать макеты без боли

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

Привет! Меня зовут Денис, я продуктовый дизайнер в X5 Tech. Последние несколько месяцев мы, вместе с коллегами приводили в порядок, рефакторили, чистили и доводили до ума дизайн-систему внутреннего бэк-офиса X5 для личного кабинета сотрудника. Расскажу, на какие подводные камни мы наткнулись, к чему готовиться и зачем вообще заниматься рефакторингом в дизайне.

Читать далее

Favicon и где они обитают

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

Привет! Меня зовут Анна, я JS-разработчик в компании SimbirSoft. Сегодня расскажу об интересном кейсе на одном из наших проектов, а именно, речь пойдет об отображении favicon сторонних сайтов в нашем приложении. 

Читать далее ⚡

Вышел Vue 3.5

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

Сегодня мы рады сообщить о выходе Vue 3.5 "Tengen Toppa Gurren Lagann"!

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

Читать далее

Первый питерский митап по Go в этом сезоне: построим PaaS без хардкода и научимся отлаживать приложение в проде

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

25 сентября в 19:00 инженеры из YADRO и AvitoTech расскажут, как подготовить CEL в конфиге, тестировать с Ginkgo/Gomega и аккуратно отлаживать сервис в проде.

Если придете на митап офлайн, сможете полюбоваться «железом» для ЦОД и телеком-операторов, код для которого пишут Go-разработчики YADRO, и посетить выставку open source-инструментов из сообщества Go SPB. Регистрируйтесь, чтобы попасть на митап в Питере или получить ссылку на трансляцию, где можно будет задавать вопросы спикерам.

Читать далее

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

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

Всем привет!

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

Читать далее

Книга: «Рецепты PHP. Для профессиональных разработчиков»

Время на прочтение12 мин
Количество просмотров8.4K
image Привет, Хаброжители!

Важнейшая книга на кухне разработчиков на PHP!
В ней нет ни слова о том, как разделывать фазана, зачем солить воду и сколько в минутах будет «до готовности». Лишь практическое руководство, как использовать современную версию PHP для задач, встречающихся в современной практике программистов.

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

Django 5: асинхронный бекенд и эффектный фронтенд с минимальными затратами времени

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

Приветствую, друзья!

Уже давно у меня возникала мысль подробно, как в случае с FastAPI и Aiogram 3, разобрать «суровый» Django 5. Однако, из-за большого дефицита свободного времени и масштабности Django, руки до этого не доходили. Сегодня, как вы уже поняли, момент настал.

В процессе написания кода мы затронем следующие темы: маршрутизация, работа со статическими файлами, асинхронное использование Django 5, работа с базой данных SQLite через встроенное ORM и многое другое.

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

Читать далее

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

Flutter Web. Часть 1

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

Как работает Flutter Web, и есть ли особенности взаимодействия с платформой? Разбираемся с этим в серии статей. Эта — первая.

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

Наш опыт интеграции с Диадок — архитектура исходящего процесса

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

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

Читать далее

CORS — это тупо

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

Технология CORS и действующее в браузерах правило ограничения домена – те вещи, которые часто понимаются превратно. Ниже я объясню, что они собой представляют, и почему пора перестать волноваться по их поводу.

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

Прежде всего, отмечу, что CORS — это огромный костыль, помогающий снизить влияние ошибок, передающихся с унаследованным кодом. В этой системе защита предоставляется как по принципу отказа от участия (opt-out) в попытке частично купировать XSRF-атаки против незащищённых или немодифицированных сайтов, так и по принципу активного участия (opt-in), чтобы на сайте включалась активная самозащита. Но ни одной из этих мер не достаточно, чтобы решить целенаправленно созданную проблему. Если на вашем сайте используются куки, то вы обязаны деятельно позаботиться о его безопасности. (Ладно, это касается не любого сайта, но лучше перестрахуйтесь. Выделите время на тщательный аудит вашего сайта или выполните описанные ниже простые шаги. Даже придерживаясь самых разумных паттернов, вы всё равно можете подставиться под XSRF-уязвимости).

Читать далее

Изнанка электронных календарей: как работает спецификация iCalendar и как создавать .ics-файлы

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

Привет, Хабр! Меня зовут Денис Басковский. Я фронтенд-разработчик в билетном сервисе Ticketland.ru. В одном из пет-проектов мне понадобилось управлять календарными событиями: ставить время начала и окончания, добавлять комментарии и посылать оповещения. Обычно такая информация хранится и передается в .ics-файлах, описанных в спецификации iCalendar. Благодаря им сейчас синхронизируются все современные календарные приложения. 

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

Читать далее

Важность мобильной оптимизации сайта

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

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

Итак, что мы вообще знаем о том, что такое оптимизация? Это процесс, при котором frontend-разработчик и web-дизайнер адаптируют верстку сайта под размеры и функционал других устройств, помимо компьютера. Делается это для того, чтобы интерфейс сайта, а также текст и визуальные элементы отображались и функционировали корректно и на смартфоне, и на планшете, и на других устройствах, отличных от компьютера. 

Читать далее

Особенности Effector, которые почему-то никто не обсуждает: опыт ВКонтакте спустя год использования

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

Upd: Поиском по "Upd" можно найти все корректировки, внесенные в статью после публикации в результате жаркой дискуссии в чате Effector.

Меня зовут Андрес, я руководитель команды разработки внутреннего UI-кита ВКонтакте. А это ещё одна статья про инструменты управления состоянием. Сегодня мы не будем изобретать ничего нового, а поговорим про библиотеку Effector.

TL;DR

Почти год мы ВКонтакте пытались внедрить Effector, но пришли к выводу, что пока это достаточно сырая библиотека. Её недостатки зачастую проявляются сильно позже, чем хотелось бы, и, по нашему мнению, перевешивают достоинства… А последние местами преувеличены. Было больно осознавать количество потерянного времени, но, как говорится, лучше поздно, чем никогда.

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

(Внимание, под катом много картинок.)

Что там за особенности?

Как я сделал Notion 'у себя дома', есть фулл

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

Привет, хабровчане!

Давно не писал, потому что для меня Хабр изначально был DIY-тусовкой, в хорошем смысле этого слова, а у меня ничего DIYйного не было.

А сейчас вот появилось -- решил демонстрации ради запилить Notion из рельсов и шпалок.

К постановке вопроса зачем мы вернемся, как это принято тут и у всех айтишников -- в самом конце, а сейчас к конкретике и без воды.

И вот что из этого вышло

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