Поиск по сайту

Ищем материалы…

Что хотите найти?

Ищем по текстам, задачам, решениям, результатам, тегам, технологиям и комментариям.

Введите хотя бы 2 символа

Нет соединения. Поиск продолжится, когда связь восстановится.

Пост

Недельный дайджест 2026.41

5b883f92-1510-46c4-b453-340331816bab.webp

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

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

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

Немного навёл порядок в портфолио

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

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

screenshot-2026-10-09_09-00-19.webp

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

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

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

Ну и, конечно, не обошлось без исправления ошибок. Нашёл проблему, из-за которой проект нельзя было сохранить, если у него не указаны технологии. А ещё выяснилось, что неавторизованные посетители вообще не видели кнопку реакций. Оба момента поправил.

Личный кабинет стал немного полезнее

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

Теперь на ней собрана основная информация по сайту: сколько опубликовано постов и проектов, что лежит в черновиках, какие материалы требуют внимания и сколько просмотров они набрали.

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

screenshot-2026-10-09_08-58-55.png

Статистика: теперь можно посмотреть, кто и что читает

Пожалуй, одно из самых интересных изменений за эту неделю.

Раньше сайт учитывал просмотры постов и отдельных проектов, но само портфолио почему-то оставалось за пределами статистики. Исправил это упущение и заодно заметно расширил аналитическую часть.

Теперь можно посмотреть посещаемость с разбивкой по типам контента: посты, проекты, портфолио и обычные страницы. Добавил отдельные показатели по портфолио, графики и списки наиболее просматриваемых материалов.

Но больше всего мне хотелось сделать подробный журнал просмотров.

screenshot-2026-10-09_09-01-25.webp

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

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

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

Также можно нажать на запись или IP-адрес и сразу отфильтровать журнал по выбранному значению.

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

Перевод сайта: добрался наконец до проектов

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

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

На этой неделе решил довести начатое до конца.

screenshot-2026-10-09_09-03-14.webp
screenshot-2026-10-09_09-03-26.png

Теперь переводятся названия и описания проектов, категории, сроки, подписи к изображениям, содержимое портфолио и даже голосования.

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

Здесь обнаружился ещё один интересный нюанс.

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

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

Ещё немного изменений по мелочи

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

  • Обновил фавикон. Теперь у сайта собственная иконка с логотипом iD. Заодно подготовил иконки для ярлыков на iPhone и Android.

  • Подправил мобильную версию ленты. Фильтры «Все / Посты / Проекты» и сортировка теперь помещаются в одну строку, не занимая лишнее место на экране.

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

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

  • Привёл в порядок ответы 404. Раньше при обращении к несуществующей странице сайт мог показывать сообщение «Не найдено», но при этом возвращать HTTP 200. Теперь сервер отдаёт корректный статус 404.

  • Добавил страницы о конфиденциальности и удалении данных. Описал, какую информацию хранит сайт и как можно запросить её удаление. Ссылки разместил в подвале.

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

Немного о том, что осталось за кадром

Отдельно хочу упомянуть изменения, которые Вы в принципе не заметите, но для меня они оказались едва ли не самыми полезными.

Речь о тестировании и развёртывании приложения.

До этого автоматические тесты выполнялись преимущественно на SQLite, тогда как в рабочем окружении используется MariaDB.

В какой-то момент стало очевидно, что это не самая удачная схема. SQLite удобен для быстрых тестов, но его поведение не всегда совпадает с MariaDB, особенно когда дело касается миграций и ограничений базы данных.

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

Теперь новая версия приложения не должна разворачиваться, пока тесты не завершатся успешно.

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

Такие вещи особенно приятно обнаруживать до того, как они превращаются в реальные проблемы.

Что дальше?

На следующей неделе хочу вернуться к одной странности, связанной с Facebook.

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

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

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

Такая вот получилась неделя. Вроде ничего глобального не планировал, а изменений накопилось прилично. Зато постепенно сайт становится именно таким, каким мне самому хочется его видеть.

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

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

Cheers!

Комментарии (0)

Опыт применения 0

Попробовали решение в своей задаче? Расскажите, что получилось.

Применил у себя
Пока нет комментариев

Станьте первым, кто прокомментирует эту запись

Комментировать