Lemmy Lemmy 7 грудня 2023, 00:46

Чергова реструктуризація UJournal

Вітаю, я обмір­ко­вую пото­чний стан речей на сай­ті, і розу­мію, що бага­то чого не пра­цює. Деякі части­ни систе­ми недо­ро­бле­ні, а деякі я не роблю усві­дом­ле­но. Хочу напи­са­ти про причину.


Я про­гра­міст, і в мене зав­жди є бажа­н­ня ство­ри­ти іде­аль­ну вер­сію. Коли я допи­сую до яко­гось момен­ту одну вер­сію – я вже размір­ко­вую над її недо­лі­ка­ми і пла­ную писа­ти насту­пну. Тому у коле­кти­ві зазви­чай є мене­джер, який обме­жує такі схильності.

У мене нема мене­дже­ра, тому я є тим ким я є – роблю нові вер­сії. Зараз я почав це визна­ва­ти, але все ще не при­йшов до усві­дом­ле­н­ня що це тре­ба обмежувати.

Я напи­сав пото­чну вер­сію UJ і усві­до­мив в яких місцях ця вер­сія має слаб­ко­сті. Поділюся.

Код роз­ріс­ся і бага­то речей мають спіль­ні зале­жно­сті, що ускла­днює дода­ва­н­ня нових речей. Це про­бле­ма росту, коли в одно­му кодо­во­му про­сто­рі є і код від­по­від­аль­ний за ран­жу­ва­н­ня стрі­чки, код для ство­ре­н­ня поста, валі­да­ція, купа пере­лін­ко­ва­них моде­лей. Все це ство­рює вели­ке когне­тив­не наван­та­же­н­ня і при­зво­дить до виго­ра­н­ня. Тому кожна нова змі­на про­во­кує купу багів, демо­ти­ва­цію та ваші недо­во­ле­ні відгуки.

І не все обме­жу­є­ться кодом. Дизайн теж не є при­сто­со­ва­ним до змін. В дизай­ні UJ все ще від­чу­ва­є­ться спад­щи­на TJournal/​VC. Ці про­є­кти роз­ро­бля­ли­ся геть з інши­ми дум­ка­ми, ніж UJ та зна­чно біль­шою коман­дою. Так як я пра­цюю один, мені вкрай важ­ко ство­рю­ва­ти і під­три­му­ва­ти купу еле­мен­тів які мають скла­дну структуру.

Тому я від­но­вив пошу­ки ком­бі­на­ції дизай­ну та стру­кту­ри коду, щоб я міг з ними пра­цю­ва­ти один і це не викли­ка­ло зна­чних вигорань.

Зда­є­ться я зна­йшов дизайн і стру­кту­ру які буде про­сті­ше підримувати.

Якщо назва­ти змі­ни, то це буде «твіт­те­рі­за­ція» UJournal. В ново­му дизай­ні біль­ше Твіт­те­ра ніж TJournal.

Пост. Пост буде малень­ко­го роз­мі­ру. Пост має:

  • неве­ли­кий об’єм текс­ту без фор­ма­ту­ва­н­ня (до 1000 символів)
  • дода­тко­во може мати декіль­ка зображень
  • або декіль­ка відео
  • або лон­грід
  • або опи­ту­ва­н­ня

Чому так? Фор­ма­ту­ва­н­ня текс­ту моя боль. Я дуже бага­то часу про­во­джу виправ­ля­ю­чи баги фор­ма­ту­ва­н­ня. Тому хочу зве­сти фор­ма­ту­ва­н­ня до міні­му­му. Але заби­ра­ти пото­чні можли­во­сті реда­кто­ра не хоче­ться – буде можли­вість, як і зараз, писа­ти лон­грі­ди, але в окре­мій вкладці.

Боль обра­н­ня зобра­же­н­ня для тай­тлу. З кори­сту­ва­цької точки зору тут нема ніяких про­блем, але з точки зору коду є ад – тре­ба пар­си­ти HTML, тре­ба заван­та­жу­ва­ти зобра­же­н­ня на CDN. Ще тре­ба вра­хо­ву­ва­ти щоб воно пра­цю­ва­ло швид­ко. Дуже скла­дний під­хід, який хоче­ться спростити.

Лон­грі­ди. Це новий тип кон­тен­ту, для яко­го буде роз­ро­блен окре­мий сайт. Щось накшталт:

Telegraph telegra.ph

Можли­во, там буде ще дода­тко­вий фун­кціо­нал пере­гля­да­н­ня ста­ти­сти­ки по переглядам.

Як і Telegraph, цей сайт можно буде вико­ри­сто­ву­ва­ти неза­ле­жно від UJournal. Цей сайт буде інте­гро­ва­но в UJ при дода­ван­ні поста кно­пка «Лон­грід» буде від­кри­ва­ти вікно з редактором.

Комен­та­рі ста­нуть пові­дом­ле­н­ня­ми. Все що можно роби­ти з пові­дом­ле­н­ням – можно буде роби­ти і у від­по­віді на повідомлення.

Це наре­шті дасть змо­гу дода­ва­ти кар­тин­ки, відео, кра­си­ві поси­ла­н­ня як реа­кцію на повідомлення.

Кра­ща мобіль­на вер­сія. Пото­чну мобіль­ну вер­сію навряд можно назва­ти іде­аль­ною. При­чи­на – я був біль­ше зайня­тий дескто­пом і робив мобіль­ну на оста­нок. Після збо­ру ста­ти­сти­ки я зро­зу­мів, що тре­ба спо­ча­тку пере­йма­ти­ся за мобіль­ну вер­сію, тому що пере­ва­жна біль­шість від­ві­ду­вань над­хо­дить з мобіль­них девайсів.

API та боти. Вели­ким недо­лі­ком пото­чної вер­сії є від­су­тність API та ботів. Я хочу зро­би­ти API та дода­ти бота яко­го можно буде кон­фі­гу­ру­ва­ти на пар­сінг Твіт­те­ра, Теле­гра­ма, Юту­ба. В цьо­го бота можно буде кида­ти поси­ла­н­ня на кана­ли які він пови­нен пар­си­ти. Пости від бота будуть потра­пля­ти в безо­дню. Звід­ти їх можно буде доста­ва­ти через під­ня­т­тя рей­тин­гу та пере­во­ду їх у Попу­ляр­не. Можно буде ство­рю­ва­ти вла­сних ботів, API буде досту­пним кожному.

Що ста­ло триг­ге­ром до цих змін? Я бачу, що мене не виста­чає на ство­ре­н­ня кон­тен­ту та про­гра­му­ва­н­ня. Або пер­ше, або дру­ге. Лон­грі­ди в мене тра­пля­ю­ться не дуже часто, а той кон­тент який я зда­тен роби­ти щодня – це репо­сти з сай­тів 9GAG, Reddit, Telegram. Коли захо­джу на UJ і бачу ста­рий кон­тент – моти­ва­ція зга­сає. Я поду­мав, що подня­ти моти­ва­цію можно коли кон­тент буде регу­ляр­но понов­лю­ва­ти­ся. Новий кон­тент можно напар­си­ти. Може про­сто публі­ку­ва­ти в стрі­чку Сві­жі пости з 9GAG?

Сві­жі. Стрі­чка постів, від­сор­то­ва­на за датою (остан­ні пости вго­рі). Існує спе­ці­аль­но для того щоб зали­ша­лась можли­вість під­ня­ти пост з нульо­вим рейтингом.

Стрі­чка. Хочу повер­ну­ти­ся до стрі­чки UJ, коли пере­ход до посту був не обо­в’яз­ко­вим. Всеж, бачу, що пере­ход в пост додає дода­тко­ві незру­чно­сті. При­бе­ру незру­чно­сті при пере­гля­ді відео. Пере­ход у сере­де­ну посту буде тіль­ки задля чита­н­ня гіл­ки відповідей.

Під­су­мую

Для себе я виді­лив насту­пні пріорітети:

  1. Спро­сти­ти реда­ктор, нада­ти йому ста­біль­но­сті і передбачуваності
  2. Силь­но покра­щи­ти мобіль­ну версію
  3. Дода­ти API та бота для пар­сін­гу новин з інших сайтів
  4. Дода­ти гене­ра­цію стрі­чки Google News та RSS

На що впли­нуть змі­ни? Я очі­кую, якщо ство­ре­н­ня постів буде про­сті­шим – то й постів буде біль­ше. Буде біль­ше постів з кар­тин­ка­ми та відео, так як фор­ма ство­ре­н­ня поста буде мати спе­ці­аль­ні кно­пки. Від­по­віді теж будуть мати зобра­же­н­ня та відео.

  • 1
  • 17
  • 359

17 коментарів

  • Сумні_Збочення Сумні_Збочення 2 роки тому

    Це жарт? Остан­ній мій пост був на май­же 2,5к зна­ків, без фор­ма­ту­ва­н­ня це нечи­та­бель­на каша. Таки поро­бле­но і макси­мум, що сві­тить це тг канали.

    • 1
    • Lemmy Lemmy 2 роки тому · Автор

      @sumni3bochennia Тро­шки поясню. Реда­ктор ніку­ди не діне­ться, про­сто він вине­се­ться в окре­мий сервіс.

      Логі­ка насту­пна: захо­диш в ство­ре­н­ня посту, нажи­ма­єш на кно­пку Лон­грід – від­кри­ва­є­ться нова вклад­ка зі ста­рим реда­ктром (трі­шки змі­не­ним, вра­хую твої поба­жа­н­ня щодо меню). Ти можеш в ньо­му ство­ри­ти кра­си­вий пост з фор­ма­ту­ва­н­ням. Нажа­ти Збе­рег­ти. Авто­ма­ти­чно вклад­ка закри­є­ться і ти повер­не­шся до основ­но­го реда­кто­ра в яко­му вже буде встав­ле­но Лон­грід-пост як Вставка.

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

      З моєї сто­ро­ни про­сті­ше те що код роз­ді­ле­ний на декіль­ка сай­тів і все не валя­є­ться в одно­му місці, ство­рю­ю­чи безлад.

      • 1
    • Lemmy Lemmy 2 роки тому · Автор

      @sumni3bochennia Сер­віс Логнг-рідів буде схо­жий на Доку­мен­ти гугл, тоб­то на окре­му сто­рін­ку де буде спи­сок Лонг-рідів. При пере­хо­ді з UJournal за спе­ці­аль­ним поси­ла­н­ням – ти авто­ма­ти­чно логі­не­шся в сер­ві­сі Лон­грі­дів і бачиш свої лон­грі­ди і ста­ти­сти­ку по переглядам.

      Ти можеш ство­ри­ти Лон­грід в сер­ві­сі лон­грі­дів і не публі­ку­ва­ти його на UJ. Таку можли­вість я теж передбачаю.

      План при­бли­зно такий.

      • 1
    • Lemmy Lemmy 2 роки тому · Автор

      @sumni3bochennia Тоб­то UJ буде дуже про­стим сай­том, накшталт Твіт­те­ра. А всі медіа та вели­кі текс­ти будуть вини­се­но в окре­мі сер­ві­си, які будуть без­шов­но від­кри­ва­ти­ся пря­мо на сайті.

      • 1
    • Lemmy Lemmy 2 роки тому · Автор

      @sumni3bochennia Кодо­ва база основ­но­го сай­ту ста­не зна­чно мень­шою. Кодо­ва база дру­го­го сай­ту буде мень­шою. Два про­стих сай­та про­сті­ше утри­му­ва­ти, аніж один складний.

      Тим паче можно буде про­сті­ше поясни­ти комусь як пра­цює сайт Лон­грі­дів, аніж поясни­ти як пра­цює Основ­ний сайт в яко­му є і код комен­та­рів і поряд код постів з фор­ма­ту­ва­н­ням. Баналь­но буде мень­ше голов­но­го болю.

      Можли­во хтось змо­же поча­ти комі­ти­ти змі­ни в сер­віс Лон­грі­дів, щоб можно було роз­ді­ли­ти роботу.

      Код основ­но­го сай­ту поки що не хоче­ться опен­со­ри­ти, тому що в мене нема впев­не­но­сті що в коді нема дірок.

      • 1
    • Lemmy Lemmy 2 роки тому · Автор

      @sumni3bochennia Пото­чні пости будуть скон­вер­то­ва­ні в Лон­грі­ди. Коне­тнт зали­ши­ться як є, з гра­фі­кою. Фун­кціл­наль­но нічо­го не змі­ни­ться – можно буде від­кри­ти і чита­ти. Комен­та­рі збережуться.

      Ці змі­ни хочу запро­ва­ди­ти посту­по­во впро­довж місяця.

      • 1
  • Lemmy Lemmy 2 роки тому · Автор

    Ідея для бота: Про­гноз погоди.

    В зада­ний час бот під­клю­ча­є­ться до sinoptik​.ua, отри­мує дан­ні для кон­кре­тно­го міста. Ство­рює пост з про­гно­зом погоди.

    Ще тре­ба про­ду­ма­ти як зро­би­ти так щоб кори­сту­ва­чі не бачи­ли про­гноз пого­ди для інших міст, а тіль­ки для сво­го. Один з варі­ан­тів гео-філь­тру­ва­н­ня, тоб­то яки­мось чином помі­ча­ти пост, щоб він був досту­пен тіль­ки для кон­кре­тної гео­гра­фі­чної точки. Можли­во буде добре мати гео-теги, які при­в’я­за­ні до гео­то­чки. Якщо пост помі­че­ний таким гео­те­гом та кори­сту­вач має схо­жі коор­ди­на­ти (вира­хо­ву­ва­ти по про­вай­де­ру) – пока­зу­ва­ти пост.

    • 2
  • Lemmy Lemmy 2 роки тому · Автор

    Кидай­те ідеї для бота. Бажа­но щоб на при­мі­ті у вас було дже­ре­ло нео­бме­же­них варі­ан­тів для ціка­во­го контента.

    При­клад:
    Бот який кожен день буде ство­рю­ва­ти опи­ту­ва­н­ня. Алго­ритм: бот під­єд­ну­є­ться до ChatGPT, постить промпт:

    Ство­ри ціка­ве уні­каль­не опи­ту­ва­н­ня на тему «Кіно та сері­а­ли». Фор­мат: пер­ша стро­чка – запи­та­н­ня. Дру­га стро­чка – від­по­відь № 1. Тре­тя стро­чка – від­по­відь № 2. Четвер­та стро­чка – від­по­відь № 3.

    У від­по­відь отримує:

    Який жанр кіно або серіалів вас найбільше привертає?
    
    Фантастика або фентезі – я люблю дивуватися новим світам і ідеям.
    Драма – захоплююсь глибокими історіями та емоційно завантаженими фільмами.
    Комедія – для мене важливо сміятися і відпочивати під час перегляду.

    Бот пар­сить від­по­відь та ство­рює опи­ту­ва­н­ня. Бот під­клю­ча­є­ться по API до UJournal і ство­рює пост з поси­ла­н­ням на опитування.

    • 1
  • HimarsTime HimarsTime 2 роки тому

    Я хоч і погро­міст за осві­тою, але шось саме веб мені вза­га­лі не дає­ться ніяк. Хоче­ться допо­мог­ти, але якось загля­нув у код на гітха­бі ще весною, зля­кав­сі і поду­мав шо ну нафіг.

    Але якшо тре­ба буде якась допо­мо­га, може там якусь таску нако­ду­ва­ти, то ти кажи, може якраз і сам шось підів­чу і з сай­том поможу

    • 1
    • Lemmy Lemmy 2 роки тому · Автор

      @himarstime Є код на PHP, там все силь­но спро­ще­но порів­ня­но з попе­ре­дньою вер­сі­єю. Попе­ре­дня була на реакті, дово­лі вели­кий порог вхо­ду. Пото­чна – PHP, HTML, CSS, AlpineJS.

      • 1
  • HimarsTime HimarsTime 2 роки тому

    Та не пере­жи­вай ти так, все буде ґуд. І я все ж напо­ля­гаю що для поча­тку таки тре­ба зайня­тись потра­пля­н­ням у реко­мен­да­ції стрі­чки новин Гугл, бо без цьо­го ніяк. Біль­шість новин­них сай­тів чи вза­га­лі всьо­го шо від­бу­ва­є­ться в сві­ті осо­би­сто я беру звід­ти. Там в стрі­чці іно­ді навіть сай­ти з пірат­ським кіном мені попа­да­ю­ться, тому думаю і цей сайт заслу­жив там бути

    • 2