Жабаскрипт (веде Віктор Турський) | Gemini CLI та Claude Code написані на React 🤯Gemini CLI та Claude Code...

Logotipo de la comunidad de telegram - Жабаскрипт (веде Віктор Турський)
2021-07-06

Жабаскрипт (веде Віктор Турський)

Número de suscriptores:
4638
Fotos:
23 
Videos:
Enlaces:
288 
Categoría:
Tecnologías
Descripción:
Авторський контент для JavaScript розробників, але не завжди про JS:). Пишу про архітектуру, best practices, продуктивність, безпеку, інструментарій. Viktor Turskyi (@koorchik), Cofounder at Webbylab, SWE at Google Рекламу не розміщую!

Canal Жабаскрипт (веде Віктор Турський) - @jabascript - №357

Gemini CLI та Claude Code написані на React 🤯Gemini CLI та Claude Code - це інструменти, які працюють у командному рядку, але водночас вони написані на React. Як це можливо? Власні рендерериReact надає зручну абстракцію для побудови інтерфейсів. Netflix була однією з компаній, яка почала використовувати React для рендерингу своїх інтерфейсів не для браузера, а для телевізорів. У той час їм ще доводилося патчити React (пам'ятаю, як мене вразила їхня доповідь). Сьогодні ж рендерери React абстраговані, що надає значну гнучкість. Наприклад, ми маємо окремий рендерер для браузера - ReactDOM, а також рендерер для мобільних платформ - React Native. Але їх значно більше https://github.com/chentsulin/awesome-react-renderer InkОскільки рендерери тепер абстраговані, можна створити рендерер і під CLI. Існує чудовий проєкт від українського інженера - Ink (https://github.com/vadimdemedes/ink) , який дозволяє писати CLI-інтерфейси на React. Саме його використовують Google, Anthropic, OpenAI та багато інших великих компаній. Але це ще не все: Ink створює адаптивні CLI-інтерфейси й підтримує Flexbox. Але як це працює? YogaКоли Facebook створював React Native, вони хотіли, щоб розробка мобільних застосунків була схожою на створення вебдодатків. Проблема полягала в тому, що візуальні компоненти в iOS та Android за замовчуванням позиціюються абсолютно (position: absolute). Хоча для вирішення цієї проблеми існують різні підходи, у браузері є така зручна річ, як CSS Flexbox, що дозволяє описувати адаптивну верстку в CSS, а браузер уже сам усе робить. Інженери Facebook, а точніше Крістофер Шедо (vjeux), вирішили створити рушій для верстки на C++, який би отримував на вхід Flexbox-макет, а на виході видавав для кожного елемента абсолютну позицію та розміри. Так і з'явилася Yoga (https://yogalayout.dev/). Пам'ятаю доповідь vjeux про те, як вони писали автоматизовані тести для Yoga, порівнюючи результат роботи бібліотеки з тим, що рендерить браузер. Таким чином, Yoga працює під капотом як у React Native, так і в Ink.Я ніби за цим всім стежу дуже давно, але мене все одно вражає, як воно все збирається зі шматочків завдяки гарно спроектованим абстракціям. А як вам?
5580
25-07-07 16:45