TGViewer
Channel Public Channel
Илья Зыкин. Pro Жизнь

Илья Зыкин. Pro Жизнь

@prostocoding

IT коуч, GitHub.com/the-teacher
Subscribers
137
Photos
1.1K
Videos
45
Links
95

Showing posts older than #852 · Back to latest

Older Posts 11 shown
Post #850 82
AI и UI ❤️

С помощью AI можно легко, непринужденно и даже немного весело создавать свои UI-киты.

☑️ Story book как площадка для разработки элементов

☑️ SCSS как удобный инструмент написания CSS и работы с переменными.

☑️ CSS переменные, для жонглирования темами и стилями.

☑️ AI массово пишет примеры в storybook. Выполняет рутинную работу и позволяет мгновенно получать результат.

Создание и поддержание UI кита это обычно занятие скучное, рутинное и подверженное бесконечным неточностям.

AI позволяет радикально, драматически улучшить этот процесс.
Post #849 69
Как фильтровать bullshit

Твиттер уже не так сильно, но все еще полыхает.

Чувак сделал майнкрафт на 5 часов на Клауди!

Лидер мнений в AI сфере сделал приложение-будильник за 3 запроса!

Все это — собачья чушь.

20 лет назад автор фреймворка Ruby on Rails заявлял, что теперь каждый может сделать за 15 минут блог на его гениальном фреймворке.

20 лет спустя ни одна CMS на Rails ни занимает ни одного процента рынка.

WordPress занимает 40-70%.

AI открывает нереальные просторы для создания сервисов и приложений!!!!

Ну и где? Где где эта лавина коммерческих продуктов и сервисов?

Нигде. И не будет этой лавины.

Ровно потому, что из 1.000.000 самых талантливых программистов, которыми заполнен наш мир, только единицы смогли создать свой продукт и стать коммерчески успешными.

Создание продукта это не просто кодинг. Это совершенно другая деятельность, где никакой AI никогда не поможет.

AI это хороший помощник. Но творческих и морально-волевых качеств он не прибавит.

Инструмент это всего лишь инструмент.
  • 👍 1
Post #846 67
Mercy

Я надеюсь, что это последнее изобретение, которое мне пришлось сделать и я наконец смогу сфокусироваться на проекте, как на продукте, а не как на площадке, на которой я собираю свой JavaScript фреймворк, реализующий c нуля и переосмысливая многие идеи экосистем Ruby и Ruby on Rails.
Post #845 66
Локализация (ч 2)

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

Раньше (при синхронной загрузке) правильно инициализировались валидации, тк валидации хочется тоже показывать на языке пользователя.

Однако при асинхронном способе загрузке локалей теперь в момент инициализации схемы валидации не известно какой язык текущий. И идет фолбек на дефольтный.

И получается, что какой бы язык не выбрал пользователь — ошибки валиадции на дефолтном языке. Те на английском (в моем случае)

Исправить поведение можно передачей функции трансляции в момент инициализации компонент и схемы валидации. При использовании разных языков компонеты будут перерисовываться с учетом языка и инициализировать схему валидаций под текущий язык;

Поймать и понять и скорректировать такое поведение с учетом новых требований — это ресурс нескольких дней/недель в рамках работы в компании.

AI тут не помогает, тк он

1) не знает всех деталей желаемого
2) передача этих деталей невозможна в разовом формате, тк недостаточно информации о поведении системы
3) AI не знает особенностей поведения инструментов в разных окружениях
4) AI начинает зацикливаться и не может полностью "почувствовать задачу"

Итого:
1) чтобы получить итоговый результат, надо сформулировать задачу.
2) Чтобы сформулировать задачу — надо провести исследование.
3) Исследование для формулирования задачи приводит к фактическому решению задачи.

AI в таком процессе фактически бесполезен.
  • 🔥 1
Post #844 60
Локализация (ч 1)

Допустим, мы взяли популярную библиотеку, чтобы в React приложении менять языки (локали)

Для простоты грузим все языки при загрузке приложения.

Так же можно поступать и в storybook, и в тестах.

В какой-то момент локалей становится больше и ты хочешь грузить их по необходимости. Переключил пользователь язык — загрузил условный китайский и приложение мгновенно его начало использовать.

Это значит, что для одного из окружений надо сделать асинхнонную подгрузку. Поменять конфиг, поменять подход загрузки приложения, чтобы оно вовремя знало что и как показывать.

В этот момент начинаются разногласия в окружениях, потому-что тебе не надо делать тоже самое для тестов. Там достаточно одной локали. В крайнем случае 2 если надо проверить переключение языков.

В этот момент оказывается, что при разных подходах загрузки, конфигурация странно влияет на хелперы трансляции и надо изобретать обертки, чтобы с этим справится.

Ну ладно. Это еще пол беды.
  • 🔥 1
Post #840 74
Прорабатываю интерфейсы.

— Обкатываю UI-kit.
— Готовлю материалы для будущей интеграции.
— Растаскиваю код на части, рефакторю, организую структуру проекта
  • 🔥 2
Post #839 69
Алгоритм работы с AI (Vibe coding PRO)

— Сохраняюсь в Git, чтобы видеть и контролировать все новые правки
— Прошу реализовать форму с нужными полями + прикладываю пример уже готовой формы
— Проверяю базовую работоспособность
— Внимательное ревью
— Прошу раскидать большой массив кода на части
— Проверяю базовую работоспособность
— Прохожу по каждой детали и прошу внести правки
— Проверяю базовую работоспособность
— Запускаю тесты
— Пытаюсь понять что идет не так на не работающих кейсах
— Прошу исправить и Запускаю тесты, пока не станут зелеными
— Проверка сторибука
— Запуск, отладка существующих тестов / Исключение регрессии
— Рефекторинг и формирование общих решений
— Запуск, отладка существующих тестов / Исключение регрессии
— Сохраняю в Git текущую порцию результата

На что обращаю внимание:
— декомпозиция
— валидация данных
— локализация
— нейминг
— консистентность
— типизация
— отсутствие случайных и ненужных деталей
— присутствие важных деталей
  • 👍 1
Post #836 62
Logo variants
  • 🔥 1
Post #835 61
  • 🔥 2
Post #833 61
Строчка, взорвавшая мозг 🤯

Вчера я вычистил первый Business Action до состояния, когда я стал им доволен.

Все на своих местах. Все так, как я хочу видеть.

Я подключаю необходимые типы, запросы, валидации, респонсеры и фокусируюсь только на логике действия.

Если пришли не валидные параметры запроса — возврат ошибки.

Если валидные — получаем переменные.

Проверяем пользователя на существование в Базе данных.

Возвращает результат.

Но самый блеск в этом коде — это валидатор, который жестко требует строго соответствия параметров, которые приходят от пользователя.

Привет Rails Strong Parameters!

Одна лишь эта строчка тут так удивила своей простой, силой и удобством, что у меня натурально случился взрыв мозга.

Благодаря тому, что у меня полный JavaScript/TypeScript стек — я могу практически все писать в едином стиле и на фронте и на бэке и держать жесткий контракт в разных частях системы и делать DRY решения по всему проекту.

Друзья рельсовики смотрят на меня с осуждением. 🙈
Post #826 67
20 лет Ruby on Rails за 3 недели

Если взять в совокупности, ну, недели 3 я развлекался над бекендом.

Это все, конечно, размазано на несколько месяцев в перерывах между созвонами, консультациями, рутинным кодом и личными делами.

За это время я реализовал

✅ Коннектор к БД с транзакциями
✅ Миграции + database cleaner
✅ Довольно мощный роутер
✅ Подготовил окружение для тестов
✅ Strong Params в рельсовом стиле на Zod
✅ Архитектуру на основе Business Actions.
✅ Довольно хорошая типизация на TypeScript

У меня нет ORM. На JavaScript они все откровенное 💩 Славься Ruby on Rails! 👑

В этот раз я отказался от ORM. Вышел за границы личных ментальных искажений и принял факт, что лучше SQL ничего не придумано. (Спасибо проекту из Пенсильванского Университета, для которого я писал много SQL и познал дзен)

Я чертовски доволен результатом.

Я в одно лицо переработал под себя и кучу идей Rails. Взял все лучшее из обоих экосистем. Заставил работать и планирую развивать успех.

"Боже как я хорош. Как мощны мои лапищи" 🤣
  • 🔥 5
  • 👍 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →