Делаем продукт
127 subscribers
40 photos
2 files
14 links
Леонид Черненко, PHP программист.

Делаю свои продукты и рассказываю об этом.

Чат: https://t.me/leonidchernenko

Сайт: https://leonidchernenko.ru/
Download Telegram
Model Maker Yii2

Сегодня сделал утилиту для генерации моделей в Yii2.

Когда пишешь много нового кода, то требуется создавать много таблиц. У меня процесс такой что для таблицы я описываю сначала поля в формате команды SQL "create table", так как он и короткий и наглядный и является полной копией того что окажется в проде, что удобно, а потом я создаю модель и миграцию по этому набору полей.

Это просто большое количество рутинной и неприятной работы, которую хочется избежать. Все эти копирования полей, сопоставить названия, типы, выписать всё. Не хочу. Пусть одной кнопкой генерируется!

Для этого мне потребовалось написать утилиту, которая берёт SQL файл, извлекает из него всю полезную информацию и строит модель с миграцией. Это я и сделал.

Почему же не генерировать и то и другое и третье через нейросеть?

Нейросеть хоть и умная, но всё ещё является генератором текста, что не исключает ошибок и галлюцинаций. Придётся либо проверять за ней, что потратит моё время и нервы, либо довериться "на авось", что не потратит время но потратит ещё больше нервов.

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

Дополнительные плюшки

Так как цель в том, чтобы сделать утилиту подходящей для ежедневного использования, я добавил все удобства которые мне пришли в голову:
- автоматическое сканирование папки проекта на SQL файлы, чтобы не вбивать имя файла, а просто выбрать из списка "стрелочками"
- отображение имени модели
- поиск в списке по введённым символам
- индикатор статуса (файл модели отсутствует, совпадает с генерацией по SQL или требует обновления)
- автоматическая запись и модели и миграции в нужные папки (а не просто в текущую)

Опыт с Claude Code

На этот раз CC показал себя хорошо. Иногда всё же ошибался, но по итогу исправлял ошибки когда я ему на них указывал.

Приятным сюрпризом стало, что CC в последнем обновлении приобрёл привычку проверять за собой: не сломал ли он старое и решает ли его изменение кода на самом деле поставленную ему задачу.

Процесс кодирования стал быстрее а результат в разы лучше.

Итоги

Я доволен. Когда мне потребовалось автоматизировать рутину, с помощью Claude Code я справился очень быстро и моё усилие окупится стократно в дальнейшем.

Let's Build 👨‍💻
👍4👎1💅1
Папа, а что такое Context Driven разработка?

Ну смотри, сынок, я говорю: уберись в комнате. Ты отвечаешь: нет, не буду. Я говорю: а если по жопе?

Убраться – это задача, а по жопе – это контекст.
😁9
ИИ усиливает?

Пока что не наблюдаю чтобы ИИ хоть кого-нибудь из известных мне людей усилил как специалиста.

Ускоряет? Однозначно. Снимает рутину? Да. Помогает разобраться в новых темах? Как правило, да. Позволяет сделать то на что раньше времени не хватало? Само собой.

Но усиливает ли ИИ человека как специалиста? Чтобы, не знаю, джун + ИИ работал как мидл?

Нет, я такого не вижу. Понимание задачи и навыки не растут с внедрением ИИ в работу.

Где был джун, там и остался джун, только теперь он скоростной. Раньше он делал хрень, а теперь делает хрень в пять раз быстрее.

Попытки переложить «подумать» на ИИ приводят только к обратному эффекту: сотрудник быстро тупеет. Он уже не знает что делается и зачем, он надеется что ИИ подумает за него.

Но ИИ сам себе задачу не поставит. А хреново понявший суть задачи сотрудник точно так же хреново поставит её ИИ.

И получим “Garbage In, Garbage Out”.
👍10
Forwarded from Павел
😁2
Две причины, по которым ИИ не заменит программистов

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

Вокруг меня растёт тревога, что "ИИ нас заменит, что же делать". Я так не думаю.

Причина 1. Новые бизнесы.

Благодаря ИИ агентам кодить стало возможно и без программистов. Те кто раньше не имел возможностей нанять программиста чтобы исполнить свою заветную мечту и создать себе приложение (а потом и продавать его), наконец-то могут это сделать. Дёшево, быстро, за пару дней или неделю.

Уронило ли это ценность программистов? Нет! Как так?

Упал барьер входа на создание продукта -> Стало запускаться больше продуктов, в десятки раз -> Успешных продуктов также стало в 10x раз больше -> Вырос спрос на программистов которые нужны чтобы поддерживать успешный продукт

Если продукт вырос, то вайбкодинг который был хорош на старте, уже не справляется. Нужно нанять программиста чтобы он продукт привёл в порядок или хотя бы поддерживал. А деньги на это уже есть потому что продукт выстрелил.

Рост рынка обеспечивает спрос на большее количество программистов.

Причина 2. Ускорение развития продуктов

В 2015 году нормальной скоростью было сделать сайт средней сложности с персональным дизайном и несколькими кастомными виджетами за 3-4 месяца.

С развитием веб-фреймворков и пакетными хранилищами как Packagist, NPM, развитием GitHub и всей инфраструктуры к 2020 году такой же сайт можно было сделать за пару недель.

Сегодня его можно сделать с агентами и способной командой за 2-3 дня если постараться.

Но разве в 2020 году спрос упал по сравнению с 2015? Нет, он только вырос. Потому что скорость выросла у всех. Когда тебе сайт делали за 3 месяца, то и конкуренту делали за 3 месяца. В 2020 у всех были фреймворки, библиотеки, GitHub. Скорость стала выше, но она стала выше у всех.

То, что разработка ускорилась в N раз, не значит что разработчик теперь отдыхает и его можно уволить. Нет, он просто стал приносить в N раз больше пользы.

Грубо говоря:

2015 - 1 фича в месяц/чел
2020 - 3 фичи в месяц/чел
2026 - 10 фич в месяц/чел

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

Сохраняем команду и развиваем продукт быстрее.

Как же большие увольнения в крупных компаниях X, Y, Z?

Крупные компании могут уволить до 80% сотрудников без потери эффективности, даже иногда с ростом эффективности. Твиттер тому яркий пример.

Потому что в крупной компании 80% сотрудников это балласт, который создаёт сам себе работу и только тормозит тех, кто доставляет ценность.

Так устроена система. Поэтому хорошо понимающие этот закон топ-менеджеры под шумок "ИИ трансформации" скинули балласт, тем самым во-первых сократив расходы, во-вторых повысив манёвренность компании на период бурных изменений.

Ценность программистов не изменилась для крупных компаний, найм всё так же идёт.

Задайте себе вопрос, а почему же тогда нет таких же сокращений в малых компаниях?

Ответ прост, у малых компаний нет балласта, все при деле а не занимаются бюрократией.

Но.. джуны не нужны теперь? Раз ИИ может делать то же самое?

Джун это не "набор знаний и навыков". Джун был и остаётся дешёвой рабочей силой, которую покупают дёшево потому что без опыта мало куда берут.

При этом требования к джуну росли всегда. Если в 2015 достаточно было знать язык и иметь любой практический опыт а-ля "фиксил плагины на домашнем форуме", то в 2020 пожалуйста расскажи за SOLID, покажи знание фреймворка и хотя бы домашние проекты.

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

Да, на некоторые вакансии по 100-200 откликов от джунов и им сложно найти работу.

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

Со стороны работодателей, джуны остаются нужны по двум причинам:

1) сеньоры и мидлы иногда банально заканчиваются, так что вариант "нанять джуна и обучить" вполне выгодный;

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

Так что найти работу джунам можно, если начать трезво смотреть на первую работу как на место получения опыта, а не источник денег.
👍5💯5❤2🔥2
croc — утилитка для копирования файлов между компьютерами

https://www.youtube.com/watch?v=TmYd4NfKoUE

Наткнулся на такую утилитку. Иногда нужно пару файлов или папку перекинуть с одного компа на другой, а с копированием по SSH разбираться муторно. С агентом легко, но нужно дождаться пока он сделает, а ещё выдать доступ, что не быстро и не всегда желательно.

Поэтому, всё как я люблю: простая команда и минимум действий.
🔥5
Я сделал обёртку команды "claude", называется "myclaude". Делает всё то же самое что обычная команда "claude" но перед запуском проверяет IP.

Если IP попадает под санкции - Россия, Украина, Беларусь - то не даёт запустить клод и тем самым защищает от случайного запуска без впн и от бана аккаунта.

Проверил, работает. Рекомендую тем кто пользуется Claude Code чтобы уменьшить риск бана аккаунта.

https://chatgpt.com/share/6a8567c9-8ffc-83eb-bb29-7d1b1319c85a

P.S. За идею спасибо @diab_ali
🔥9👍1🙏1
Готов душить таких разработчиков голыми руками 🤬
🤣6💯4👎1
Claude Code строка состояния

https://github.com/sirmalloc/ccstatusline

Полезная штуковина для терминала Claude Code.

Строка состояния с разными виджетами для быстрого понимания о текущем процессе работы.

Из коробки там отображается выбранная модель, количество токенов в контекстном окне, процент использованного лимита, ветка Git.

Всё настраивается через интерактивное меню, без ковыряния конфигов. Есть порядочное количество виджетов из коробки, плюс можно создать свои.

Мне больше всего нехватало информации о ветке Git, поэтому оставил только её. Стало удобнее.

Подключается в Claude Code на раз-два. Рекомендую.

Апдейт от 02.09.2026: при установке Git виджетов эта зараза насилует диск постоянным опросом Git, который из-за особенностей моста между WSL и Windows выполняется медленно, в итоге приводит к дичайшей нагрузке на диск и тормозам. Вайбкодинг во всей красе.

Удалил!
👍3❤1
ccstatusline — отстой!

После использования в течение нескольких дней начал замечать странности, а потом выяснилась и причина.

ccstatusline мне всё сломал :(

При установке Git виджетов эта зараза насилует диск постоянным опросом Git, который из-за особенностей моста между WSL и Windows выполняется медленно, в итоге приводит к дичайшей нагрузке на диск и тормозам. Вайбкодинг во всей красе.

Удалил! 🤬
😁3😢2💯1
7 стадий развития проекта

1. Это тебе не нужно.

2. Ладно, это тебе нужно, но никому другому это не нужно.

3. Твоё решение не сработает.

4. Твоё решение работает, но есть другие решения гораздо лучше.

5. Люди не будут за это платить.

6. Много на этом не заработаешь.

7. Клятый барыга, торгуешь воздухом!

На какой стадии ваш пет-проект?
🔥2❤1💯1
WSL Drive

Это мой новый проект. Пока он был в процессе разработки, я не анонсировал, чтобы не потерять запал.

Теперь приложение готово, и я смело могу его показать! И рассказать зачем это вообще)

Шок-спойлер: я решил проблему тормозов в WSL!

То, что не удалось сделать инженерам MicroSoft за 6 лет существования WSL2 😏

Часть 1. WSL — это что и зачем?

Я пользуюсь для работы связкой Windows + WSL.

Это удобно для веб-разработки: у меня есть десктопная винда и под рукой постоянно терминал в локальную убунту.

Без необходимости создавать и настраивать виртуальную машину через VirtualBox или VmWare.

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

Есть даже докер который работает на неплохом уровне + доступен через сеть на локалхост в винде.
🔥5👍3
Часть 2. Где подвох?

Есть единственный, но всё же жирный минус: на стыке виртуальных машин медленно работает файловая система.

Сложно объяснить этот момент. WSL и Windows быстро работают со "своими" файлами но медленно работают с "чужими" файлами.

То есть, WSL быстро работает с файлами WSL и медленно работает с файлами Windows.

Windows, наоборот, быстро работает с дисками Windows и медленно работает с файлами WSL.

Это происходит из-за того, что в обе стороны файлы примонтированы через протокол 9p, который по своей сути даёт "сетевой" диск - хоть и в рамках одной машины.

MicroSoft, вероятно, сделали это решение "на ходу" и с тех пор так и не представили других, более производительных решений. То ли не смогли, то ли пользователи мало жаловались.
Часть 3. Решение

Я несколько лет искал решение проблемы 9p, перепробовал все варианты, но так и не нашёл приемлемого по скорости, хотя бы сопоставимого с локальным диском.

Любое готовое решение либо работало всё ещё медленно либо синхронизация была кривая и неполноценная.

Пришлось написать свою, используя все свои знания операционных и файловых систем, навыки программирования и мощь ИИ.

Пока размышляю как монетизировать. Нужно ли ускорение кому-то так же как мне? Готовы ли люди за это платить и сколько?

Может выложить в OpenSource и смириться с тем что всю эту пользу от моих усилий люди получат нахаляву а я опять ничего не заработаю?

Пока не решил. Но время покажет)
👍2👎2🔥1
Ускорение в 7 раз

Реальная практическая задача. Проект с большим количеством файлов.

Объём проекта: 1,3 ГиБ
Файлов: 23 000
Папок: 26 000

На обычном 9p worktree для этого создаётся за 1 минуту 55 секунд.

На WSL Drive worktree создаётся за 16 секунд.

Ускорение в 7 раз!
🔥5👍3❤1