Шось про айтішку – Telegram
Шось про айтішку
1.47K subscribers
447 photos
163 videos
2 files
599 links
Фронтенд, ШІ, 3D друк, FPV, історії з життя та роботи
Download Telegram
Ладно, напишу шо думаю. Як на мене, то це все виглядає так, що більшості проєктам треба HTML і трохи JS. Але тому шо за роки досягнень та маркетингу всі пересіли на React, плюс Vercel пушить непотрібну складність, то є запит на щось модернове і просте.

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

Тому повертаючись до React. Keep calm і продовжуйте робити на ньому те, для чого він був створений — виключно клієнтські високо-інтерактивні застосунки. Саме в таких проєктах декларативність UI допомагає не загрузнути у складності. А для лендосів і конструкторів з формочками воно не треба.

В моїй роботі мало що змінилось за роки використання реакту, хіба що хуки прийшли, але і ними я мало користуюсь, бо для нетривіальних проєктів краще підходить стейт менеджер. З усіх апішок доданих за останні роки я майже нічого не використовую. І це не заважає будувати такі апки як https://pitch.com/ та https://whimsical.com/

Найкраще що дав реакт — це декларативний UI
👍162
Давайте розкажу вам про всілякі performance штуки.

Нещодавно дивився як в ClojureScript прискорити деякі операції в іммутабельних векторах. Вектор це типу масив, але усі операції на ньому створюють новий вектор і під капотом він імплементований як дерево з 32 нодами в кожній гілці. Отут можна більш детально почитати про імплементацію векторів https://hypirion.com/musings/understanding-persistent-vector-pt-1

Як порівняти два таких вектори? Типу зробити [1 2 3] == [1 2 3]. По класиці — це пройтись по кожному елементу і порівняти їх. Це реалізовано через ітератор, порівнюємо кожні наступні значення поки не знайдемо пару відмінних значень it1.next() == it2.next(). Аллокація ітератору і виклик його методів займає час і пам'ять. Але є інший спосіб.

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

Таким чином worst case виграш по швидкості виходить близько 30%, що дуже непогано.

Ще одна штука. Є в нас вектор [1 2 3 4 5 6 7 8], і ми робимо йому (drop v 4) щоб видалити перші 4 значення. Під капотом насправді оригінальний вектор не змінюється, а огортається в тип даних ChunkedSeq (послідовність значень розбита на групи) і трекає позицію з якою ця послідовність починається. Якщо ми дропнули перші 4 значення у векторі, то chunked seq буде починати вичитувати значення з індексу 4 у оригінальному векторі.

У реальному коді конвертація векторів у chunked seq відбувається доволі часто. Я помітив, що порівняння вектору з chunked seq повільніше ніж порівняння двох векторів між собою. Виявилось що як і у випадку з векторами, порівняння відбувається лінійниим перебором. А так як chunked seq тримає в собі оригінальний вектор, то задача оптимізації цього випадку по суті зводиться знов до порівняння двох векторів через спеціалізацію коду під цей випадок.

Тут результати бенчмарку показали приріст у швидкості операції від 300% до 500%.

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

Також це хороший приклад того, як на перших порах можна зробити працююче рішення на абстракціях і пізніше покращити конкретні кейси через спеціалізацію алгоритму на більш низькому рівні. В таких випадках точкове ускладнення коду цілком виправдане.
👍21🤯2
Прийшов час збирати ваші донати на пластик для друку бімб для ЗСУ. За останні три місяці ми надрукували виробів на 750кг

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

Тому як завжди, буду вдячний за допомогу та поширення 👉 https://send.monobank.ua/jar/8TTMjgaRFy
🔥204👏1
Хтось шукає роботу розробником (веб та/або мобайл)? Знайомим у медичний стартап треба людина для розробки mvp. Пишіть в коментах, передам контакт.
«Ми технологічна мілтек компанія»

тим часом та сама технологічна компанія
😁22💯10👏31
Людина в ОККО яка придумала міні-хотдоги — геній. Це не реклама Окко, просто зручна їжа за кермом.
👏20💯7🤮1
доречі класна штука за кермом — це включити chatgpt у голосовому режимі і обговорювати свої штуки з ним поки кудись їдеш, працює дуже класно в дорозі

я іноді використовую його як туристичний гайд, питаю про населені пункти які проїзжаю

кльово було б інтегрувати в нього геолокацію та камеру переднього/заднього виду )
18🔥14👍6
Шо ви знаєте про секуріті в селі
👍18😁5
З села на конфу 🫡
🔥18👍41
FWDays React 2025.pdf
3.8 MB
Хто не був, отут слайди
👍22
Поки вигорівші міленіали вкладають всі гроші світу у відновлення закинутих хат, зумерам нічого не залишиться і вони собі побудують нормальні нові будинки)
😁22💯5🔥1
я так розумію увесь інтернет разом з AWS приліг, можна пити каву
😁241
Записав вам відосік про хату в селі і роботи за перший місяць після придбання. Поки шо там все на етапі розгрібання наслідків житя минулих власників за останні 50 років.

https://www.youtube.com/watch?v=fVyLALBLuUc
🔥26👍7👏1
Так, а кого ви по будівництву дивитесь? Я поки шо вивчаю відоси оцього пана https://www.youtube.com/@TerekhovO
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Нагадую вам про збір на корча Т5 для мого товариша та його побратимів з fpv підрозділу в 1 бригаді ТРО

Маємо 200 тис з 420. Буду вдячний за допомогу донатом та поширенням 👉 https://send.monobank.ua/jar/8czBpeXpDu
9
в мене є невеличкий англомовний канал де я в основному викладаю відоси по кложурі

на конфі я розказував як в кложурі за допомогою макросів можна робити програми які самі себе компілюють, в оцьому відосі розказую про щось подібне https://www.youtube.com/watch?v=OVBmq7fmBrI
🔥21👍3
сижу я значить нарешті збираю акум з комірок lifepo4
😁301
хто з вас
😁46
класний допис про SSA (single static assignment) — техніка прдеставлення коду в оптимізуючих компіляторах

https://mcyoung.xyz/2025/10/21/ssa-1/
👍2