Всем приветули! Первым делом хочу поздравить с началом зимы и верю, что приближающиеся праздники будут полны магии и радости! А еще нужно рассказать о нововведениях на нашем блоге, над которыми мы работали в поте лица (нет)...
Самой главной фитчей стал тот момент, что к разработке снова подключился Денис (github)! В этот раз, как и в прошлый, его было легко триггернуть на какую-то интересную штуку, и он согласился работать за воздух. 🤡 Большая благодарность ему за помощь которая уже оказана, и надеюсь, мы продолжим поддерживать наш тотальный кринж, во всем за что возьмемся.
Я попробую донести описание обновлений, на понятном всем языке, и в развлекательной форме...
Денис идет кромсать в мясо кодовую базу проекта
1. Деплой проекта (автоматическая заливалка новых изменений)
Первое, что сделал Денис, после своего отпуска, в который он свалил без одобрения начальства! (Позор!) 🤡
Не самое интересное для читателей/пользователей, но очень важное для нас - разработчиков блога.
Прежде, приходилось после каждого обновления заниматься кринжом, когда ты, как офисный работник, перекладываешь бумажки, из одного места в другое, и все это приправлено сборкой проекта и конфигурацией... После какого-то момента я уже еле-еле справлялся с этим занятием, и ждал пока накопится какое-то количество изменений, а потом шел на каторгу. Звучит очень не по программистски...
Денис, смотря на это, испытывал испанский стыд, и решил, перед тем как делать интересную штуку (будет описана дальше), сделать автоматическую развертку.
А какие у вас звуки депрессии?
Одним из критериев его возвращения, было желание попробовать набор особенных технологий, но так как весь этот проект пропитан экспериментами, такое только приветствуется (только я вообще в душе не понимаю, даже половину того, что там сделал Денис 🤡).
Использовал он Ansible и мы создали отдельный репо для скриптов. Выглядит как оверхед, ведь можно все разрулить bash скриптами, но это для слабых, и дальше БУДЕТ ЕЩЕ БОЛЬШЕ ПЕРЕУСЛОЖНЕНИЯ.
Конкретно мне, сложно рассказать, что-то про разработку этого компонента, ведь я, как уже говорил, мало там понимаю, так что Денису на ревью отвечал как-то так:
Лид-Суньор-Архитектор-Евангелист-СЕО-Плейбой ревьювит код студента
Как итог, все делается одной командой, и заливать изменения стлало приятно. Было бы еще идеально по любому коммиту в главные бранчи репозитория, но тут нужно еще хорошо подумать.
2. Вход через Telegram
Новое окно авторизации с входом через телеграм
Авторизация Яндекса - глючный мусор.
Авторизация Яндекса - не для аудитории этого блога.
Авторизация Яндекса - яндекс? Серьезно?
Изначально, как возможно вы знаете, блог создавался совсем под другие цели, и другую аудиторию (для российского психолога). Там было логично взять авторизацию Яндекса, ведь у каждого в России есть Яндекс. Ну мне так кажется... Как только психолог отвалился, было решено сделать блог для себе и потренить выражение мыслей в тексте. А потом я как понял. Авторизация Яндекса?
Наш подход к работе над блогом после основной работы
Было решено закончить полностью свою авторизацию. Но и тут, как вы уже заметили, все случилось с одним НО.
Авторизацию свою не сделали, прикрутили телеграм...
На самом деле у этого выбора, был долгий бекраугд обсуждений и анализа:
- Телега есть у всех кого я знаю, и вероятнее всего у той аудитории которую я хочу покрывать.
- Регистрация в своем обычном понимании, как для меня, свое уже давно пережила, мало кто хочет вводить пароль, а потом еще подтверждать емейл.
- На основе предыдущего пункта, хотелось сделать даже первый вход, без каких либо швов в виде подтверждения чего-то и дополнительных вопросов, т.е. цель была: нажал кнопку - пользуйся.
- Уведомления - много ли из вас проверяют почту на которую регистрируют аккаунты? А вот про телегу мало кто забудет... Про это я расскажу в следующей секции.
- Авторизация Telegram со стороны, выглядела очень легковесной, в то время как яндекс устанавливал на сайт анальный зонд...
Работы было всего на пару часов, так как философия авторизации была схоже с авторизацией яндекса.
В процессе я подливал код который триггерил Дениса, а точнее плохие методы и их названия:
Денис покурил кальян, и теряет сознание
(в программировании, все должно быть просто и понятно, программы пишутся как для компьютера, так и для человека, который придет после тебя, ИЛИ НА МЕСТО ТЕБЯ)
Для новеньких, могу вас заверить, что авторизация через телеграм происходит полностью на стороне самого Telegram, и мы тут, не просим ввода ваших паролей и т.д.. На практике, вы только разрешаете боту отправлять вам сообщения, и передаете имя пользователя, имя, фамилию и фото (если это все указано и не скрыто).
В этом можно убедится по официальной документации и нашей реализации, ведь исходный код полностью открыт:
- Telegram Login Widget
- Реализация нашего клиента
- Реализация нашего сервера
X. Между работой
Хобби, чаще всего, ассоциируется с какой-то отдушиной, тем, что помогает забыть про работу, рутину и другие проблемы. Как же мне, у которого мое хобби, это и моя работа, и моя рутина, и мои проблемы?
Обсуждаем архитектуру
Когда тебе это интересно до глубины души и ты делаешь именно то, что хочешь, то каждый из страшных пунктов выше, будет доставлять тебе удовольствие... Если на основной работе я частично делаю, то что мне нравится, и там слышны отголоски какого-то дискомфорта, то с разработкой блога только сплошная медитация и гармония. Тут мы делаем, что хотим, как хотим, и когда хотим (кроме Дениса, ему еще нужно запилить фитчу в срок, заказчики ждут).
Все это еще разбавляется бесконечными рофлами и кайфовыми посиделками с обсуждением каких-то новых функций.
Мы хотели перенести все репозитории которых уже 4(!!!) в одну организацию, и начали думать название, и хотел придумать что-то, соответствующее нашему подходу:
Подходу ПОДПИВАСНЫХ разработчиков:
ChatGPT помогает нам придумать название
Наш выбор близок к "Пивной Пайплайн", но организацию нельзя назвать на русском...
Мы будем рады если вы поможете нам придумать название! В комментариях! Нужно же как-то заставить зарегаться хоть одного глиномеса?
3. Уведомления о публикациях (через телеграм бота)
Уведомление в Telegram
Вторая фитча Дениса, и эта та, которой мне удалось его завлечь обратно, а точнее выйти из отпуска!
Если говорить о сложности реализации, ЛУЧШЕ просто ПОМОЛЧАТЬ?!
Денис ожидает похвалу
Сервис с уведомлениями был отделен от основного монолита, так еще и написан НЕ на классическом для проекта блога языке - C#!
Между монолитом блога и сервисом уведомлений был протянут сервис очередей hrabbitmq. Это была вообще отдельная история, о том как Денис сидел день и пытался настроить все это на нашем сервере под линуксом, странно как он после этого не ушел в отпуск снова...
- Репозиторий сервиса уведомлений
Теперь, после регистрации, вы автоматически подписаны на рассылку уведомлений о новых публикациях, и с этим тоже была отдельная история и философские размышления, правильно ли автоматически подписывать на рассылку. Когда благородный Денис говорил, что это неправильно, Некит тем временем уверенно говорил, что бизнес решает, и нам нужна аудитория...
Пулл-реквест в котором мы удаляем код авто-подписки при каждом входе на сайт
Само собой мы хотели дать выбор пользователю, получать уведомления или нет, но оставили часть, где при первой авторизации мы автоматически подписываем на уведомления, ведь давайте будем честными, кроме того что мало кто тут зарегистрируется, так еще и разбираться как подписаться? Маловероятно...
Мы сделали большую кнопку которая говорит сама за себя, если человек хочет изменить состояние подписки-отписки:
Кнопка колокольчика рядом с этим красивым парнем
И делал ее Денис как часть своей единой фитчи! Ему было весело первый раз влезать в репо интерфейса...
4. Настройки аккаунта
Страница настроек
Так как статья уже затянулась, постараюсь коротко. Зная что некоторые не хотят светить данные Telegram, я добавил возможность полностью заменить данные на другие. Фитча кажется простой, но на нее ушло много времени, чтобы продумать все возможные варианты поведения интерфейса и сервера. Так что это еще один повод зарегистрироваться, мы не будем про вас ничего знать, если вы захотите, только ИД телеграм аккаунта. Чтобы отправлять уведомления...
Заключение
Кроме 4 больших фитч, которые указаны выше, было проведено много работы, которую никто никогда не увидит. Но она важна в той же мере.
Мы стараемся сделать этот блог интересным для всех и каждого, от программиста до жесткого работяги с завода.
Будем рады любой вашей помощи и поможем вам, если захотите открыть блог на нашей системе!
Спасибо всем кто помогал мне с блогом, а особенно благодарен:
- Денису
- Евгению
Кстати, Евгений в рамках своего обучения, делает приложение для сайта, возможно он захочет написать статью об этом!
Магия внутри нас
Зима - время воспоминаний о детстве, где мы еще верили в магию, но магией всегда были и будем, мы сами.
С Рождеством и Новым Годом!