Привіт всім! Давно від мене не було апдейтів, бо зараз реалізую на бекенді по суті те саме, що вже є і з візуальної точки зору недуже багато чого міняється, тому і показувати якось не було чого. Але всеж таки накопичелося те що можно продемонструвати наживо.
Перш за все це сторінка логіна, котрою доведеться дуже часто користуватися. Вирішив зробити її інтрегуючею і додав зображення українських міст. Також зʼявилася функція входу через Гугл аккаунт.
І традиційний вхід:
Що змінилося під капотом? Я відмовився від Pocketbase і Astro. Pocketbase тому що я не впевнений у її масштубуванні та там дуже прямітивний інтерфейс доступу до БД. Замінив його на ExpressJS з Prisma. Astro замінив на той самий ExpressJS та epress-tsx-views. Тобто так, на бекенді я рендерю вьюхи на реакті, а на фронтенді використовую Hotwire Turbo. Цей вибір обумовлений тим, що ця звʼязка це майже теж саме що і Astro, але гнучкіша. Ціль: зробити type safe views (щоб знизити кількість багів при розробці та рефакторінгу) та рендерити все на бекенді, тому що пошукові машини все ще не дуже добре індексують SPA.
Далі хочу продемонструвати вигляд поста у останній версії:
Хочу звернути увагу на те що тепер картинки автоматично групуються у галерею. Якщо це одина картинка, то зберігаються її пропорції.
Можно побачити, що багато чого в останній версії відключено. Це зроблено для того щоб поступово наращувати функціонал та не відволікатися на те, що просто зверстано, але не працює.
Також зробив алгорітм для сортування стрічки “Популярного”. Взяв за основу алгорітм Редіта з цієї статі: Reddit Hotness Algorithm in SQL.
Наступне що буду дороблювати:
- Голосування за пост (так у нас буде звичайна система з кнопок вгору/вниз, але можливо дислайки будуть трошки по-іншому відображатися);
- Посторінковий вивід стрічки;
- Коментарі;
- Спільноти;
- Налаштування.
Пока це мінімальний функціонал який я хочу реалізувати щоб почати тестування на сервері.
Що можу сказати про те, як йде розробка. Бекенд для мене виявився нетривіальною штукую, вчуся майже кожен день. Доводиться приймати багато рішень про які раніше не замислювався. Тому (для мене) простіше писати фронт. Вкупі з беком це йде довше, але результат мені подобається набагато більше. Особливо гнучкість, яка зʼявилася - дуже подобається.
Я націлений замінити поточну версію на нову до Нового року, але це такі плани, можно мовити, наполіонівські. Просто хочу показати на якій стадії розробка.
21 коментар