Обновить

Комментарии 15

Посмотреть бы сколько исходного кода совпадает с теми же FastRoute, Symfony Routing, Laravel Router

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

ради алгоритма, которого нет больше нигде. По крайней мере в пхпшных роутерах.

ну, главное самому в это верить :)

и в symfony и в fastroute группировка идет по trie-like структурам

Алгоритмы принципиально разные.

Давайте попросим (извините, я уже попросил, это заняло у меня ~5.5 минут) ИИ проанализировать ваш код? Дальше я копирую ответы:

ИИ смог сгенерировать такой код потому что:

  1. Это стандартный алгоритм.

  2. Архитектура маршрутизатора хорошо формализуема.

  3. Паттерн повторяется во множестве проектов.

Это не «уникальный» алгоритм, такой подход используется десятилетиями в:

  1. HTTP-серверах

  2. веб-фреймворках

  3. сетевых маршрутизаторах

  4. парсерах языков

Это общеизвестный паттерн. Он описан в книгах по:

  1. компиляторам

  2. структурам данных

  3. high-performance routing

Именно эта часть скопирована из промпта:

Проанализируй репозиторий и скажи, на каком фреймворке (или фреймворках) основан этот код.
Как ИИ смог написать такой код, не опираясь на код из фреймворков?

На что ответ был:

Короткий ответ: потому что подобный роутер — это типовая архитектурная задача, а не уникальное решение конкретного фреймворка.

Разберём профессионально и без мифологии.

И дальше много текста, часть из которого в комментарии выше.

Уже зарекся не отвечать в комментариях, но на этот коммент отвечу. Как работает ИИ и как он отвечает на промпты - это можно узнать в свободном доступе, на ютюбе и много где. В кратце, ответы можно получить почти на всё, и вопросы с наведением будут выдавать результаты прямо по контексту в самом вопросе. Вы потрудитесь поставить вопрос иначе, чтобы получить именно нужный ответ. Вот Вам пример промпта:
Что уникального в алгоритме роутинга этого проекта по сравнению с другими аналогичными роутерами?

Признаю, считаю ваш ответ красивым :)

открыл routeCollection.

~5 публичных, ~15 приватных методов, без интерфейса, какие то hydrateIfNeeded(), getCachedCompactRoute()...

очень плохо, классика php инженерии.

написали быстро, вы молодец, а обслуживать это как?

Это не автомобиль, масло там менять не нужно. Вот по бенчмаркам я немного заморочился с оптимизацией, и то всё через разные модели. Наверное эту оптимизацию можно назвать "обслуживанием". Всё так-же, через ИИ. Сам я ни строчки кода не написал.

Это не автомобиль, масло там менять не нужно.

Всё так-же, через ИИ.

production-ready компоненты которые мы заслужили :(

Пора уже смириться с новой реальностью.

Надоели статьи "Как я написал <micro utility/lib name> за один вечер с помощью ИИ".

Когда стоит быть осторожным

  • Уникальная бизнес-логика

  • Код, зависящий от специфического контекста

  • Оптимизации производительности (нужны бенчмарки, а не интуиция ИИ)

  • Безопасность (всегда проверяйте вручную)

А остальные и не ценились никогда. А сейчас тем более

я там еще несколько либ сделал. Горшочек не вари...

Ходил я как-то на собеседования, был там вопрос: как вы поймете, где проблема? Вопрос про то, как какой-то условный сайт начал выдавать 500. А ответ про то, куда нужно лезть в первую очередь, во вторую, и с чем это в целом может быть связано, и как этого не допустить в будущем.

А как поступит автор, когда его код, допустим, начнет выдавать 500?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации