MrPi

Рейтинг
18
Регистрация
05.05.2025
Александр Попов #:

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

То, что он падает и давно нуждается в модернизации — бесспорно, но считать, что там 8 уников... Там икс только 7800

Там рекламой всё захламлено. Мобильную версию смотреть невозможно. Не удивлюсь если реально 8 уников 

Sly32 #:
Я давно уже не пишу на ПХП, но наверное будет интересно попробовать научить моего агента создавать сайты на основе твоего фреймворка

На typescript? Агенты могут полноценные приложения писать? Не лендинги, а полнофункциональные? У меня с ними никак не заходит. Даже с контекстным окном в млн токенов, он начинает править свой же код. Даже если ему в инструкциях через .md задать придерживаться определенных паттернов, структуру приложения, он всегда самодурит. Он может тебе оптимизировать один класс, следом ты ему кормишь его же и он правит свой же опять, и так до бесконечности. Не было ни разу, что бы скормил код и он не стал его же дебажить с ответом, что этот код идеален(утрирую)

Александр Воробьев #:
Ну, а что значит реально интересный? В первую очередь он должен быть интересен автору.

Согласен. НУжен компромисс. Но, что такое фреймворк и как его оценить? Это прям совсем вусовщина. Вам удобно тесты во всё, а мне в половине они не нужны. Вам удобны экземпляры классов, а мне статические методы. Вы создаете DI контейнеры, абстракции, интерфейсы, а мне они вообще не нужны. Мне важно, что бы полученную ошибку я мог идентифицировать и отдебажить в максимально короткое время. Желательно, что бы в dev режиме прям указывало на строку в файле с фейлом, типом ошибки и откуда пришло. 

Александр Воробьев #:
По большому счету то, что моим оппонентом вынесено как результат сравнения количество пользователей через год, вызывает тоже у меня большой скепсис :)  

Ну а какая оценка тогда? Просто кто судить будет? Ваше написание кода - это ваше понимание. Я отношусь к коду, как к ниге. Если читаю и понимаю, значит код хороший. Если надо лезть в другую книгу (доки), что бы прочесть вашу, то это даже за код не буду считать. А другим наоборот. 

Александр Воробьев #:
создавать движок форуме это вообще в кубе бесполезно

Смотря какой. Может создадите настолько удобный, что вместо ТГ каналов, начнут поднимать на вашем приложении сайты.  Лучше, чем VC, Habr, Pikabu. Взять лучшее и сделать прекрасное

Devstory #:
По 2 часа бегать  в пале это уж совсем не жалеть надо свои ноги.

Это просто бред. Все ткани +- одинаковые. Адики давно синтетику используют. Покупаешь гелевые удобные стельки и разницы не заметишь (а иногда и адики будут хуже)

ellienoise #:
Я пробовала экономить, но когда к концу дня ноги гудят так,
Я носил адики и найк всегда. После один раз одел скетчерсы и понял, какое дно все эти адики, рибоки и прочие распиаренные бренды.
Александр Воробьев #:
Повторюсь. У меня нет цели ни кому ни чего доказывать, мне просто интересно, что то копнуть, во что то углубится.

Так можно же реально интересный проект. Очередной фреймворк никому не нужен просто. Это не мое мнение - это реалии, которые легко проверяются на гите. 

Александр Воробьев #:
Участие в челендже лишь как дополнительный стимул, плюс возможность получить фидбек.

Тогда полезное. Вот Sly32 хочет написать сервис для СЕО. Отличная задача. Попытаться систематизировать СЕО. Либо полезную веб утилиту, по типу защиты от ботов, или подобие клаудфлар (очень актуально).

Александр Воробьев #:
Среди вас ни кто там гитарой не увлекается? Иные хобби?  Для чего вы это делаете? Что бы доказать кому то что то?

Есть. Но челлендж это не увлечение, а соревнование. Если бы Вы сказали, что в свободное время кодите - никто и слова бы не сказал. Но здесь дух соревнования.

Александр Воробьев #:
Уже писал, и вот пост выше. Для проектов рабочих я знаю, что взять и почему.

Так можно же написать полезную фичу. 

Стас Рахимов #:
Только доказать что-то кому-то.
Репутацию заработать может. Заказчиков привлечь. Но лучшее портфолио - конечный продукт. Создай устойчивый, высоконагруженный, работающий сервис. Пусть узкой направленности. Обговори сроки и начни. После тест - DDOSим или тестируем UI, отлавливаем баги. Если всё ок - победитель. Забрал работы проигравших с передачей прав на домены, предоплаченный сервер на год. Есть награда, есть цель, есть реальное соревнование.
Александр Воробьев #:
Т.е., например, я точно не собираюсь создавать аналоги ларавелевской коллекции где реализовано 100500 функций, включая, напрмиер, статистические - которые я за всю свою карьеру ни разу не использовал (ну или ничтожно мало использовал)
Я просто не понимаю смысла затеи. Есть микрофреймворки, которых десятки и даже сотни. Они просты. Остальное можно навесить. есть же репозитории с модулями. Через composer установить любые зависимости. Сейчас писать фреймворк, даже в челлендже - это странная затея. Пользы ноль. Есть комплексные решения - Лара, CI, Симфони, есть микро решения - slim тот же самый. Есть композитор и десятки тысяч репо, где прочитав issue или коммиты, в течении нескольких минут можно понять стоит внедрять или нет. А решений вагон. Лучше, соревнование в прод решении. Выбрали тематику, развили. Результат в конце срока - сравнили те же самые метрики - скорость, нагрузка, устойчивость к атакам. Вот здесь можно реально оценить уровень, а не в чистоте кода, который не имеет никакого отношения к работоспособности и никак не характеризует уровень программиста. Можно на чистом коде сделать ГС, а можно на говнокоде функциональный, быстрый. Да, не масштабируется, но задачу выполняет и безопасен. РАсширение, масштабирование - это про команды, а не единичных разработчиков. Те же популярные фреймворки ведут команды разработчиков
Александр Воробьев #:
Я все же работаю один, а не в команде - и у меня нет такого, чтобы кто то сказал, что "все что ты пишешь отстой - лучше это делать так"

Так каждая команда работает по своему. У всех разные задачи. Кому-то CLI нужен, а на 80% сайтов - это мертвый код. Подход зависит от задачи. Реализация - от тимлида. Тим лид - человек, следовательно будет основываться на своем опыте, видении. Я же и пишу, что не понимаю критериев оценки. Есть много разных паттернов программирования. Что ближе, то и используют. Код может быть красивым, но терять на запросе или выполнении 2-3мс, что в итоге выльется в задержки, которые придется дебажить при увеличении нагрузки.

Александр Воробьев #:
в двух словах можете описать причины?

Магия, фасады, абстракция. Я выше писал, мой подход - DRY, KISS. Для меня лучшее решение - очевидное. Если любой дурак, увидев ошибку сможет её пофиксить - это идеальный код.

Вот Вы, к примеру строите фреймворк с подключением к разным БД. Вопрос: если по итогу будете использовать MySQL подобные (MariaDB например, через PDO) , зачем вам коннект с PostgreSQL? На будущее? А если оно не наступит? Мертвый код уже сейчас. Используете ORM? Для меня оптимален Query builder и нативный SQL в сложных запросах.

Александр Воробьев #:

нет.

Вообще я в начале и местами поспешил, местами пока нет четкой картинки "что хочу".

Да run понимаю, тут в планах наводить чистоту точно.  собственно в нем todo для этого и висит

Так, а критерии оценки какие? Я чуть посматриваю на ваш челлендж, но не пойму, как оценивать будут. У всех разные подходы в программировании. Кто-то жертвует простотой статичных методов в угоду тестам, т.к. статику сложно мокать. Кто-то пишет спаггети код в угоду ООП, не следуя принципам DRY. Для меня ваш код избыточен и сложен по структуре. Не НЕ пониманию код, а по структуре самого фреймворка. Для меня антипаттерн - это Ларавель. Из всех крупных - мне ближе CI4. 

Александр Воробьев #:

Итак очередной спринт завершился.

В этот раз движения более скромные (очень  насыщенные были две недели)

Шаблонизатор

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

Релиза пока нет, актуальное состояние модуля на момент этого сообщения на gtihub

Фреймворк

  • Готов механизм работы с окружением, 
  • Почти завершен механизм работы с конфигурационными файлами
  • Мелкие правки

Так же релиза пока нет, актуальное состояние на github в ветке next (на момент сообщения: здесь)

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


PS Надеюсь ArbNet  завтра хоть, что то расскажет о подвижках


**
     * @inheritDoc
     */
    public function getParameterResolver(): ResolverInterface
    {
        if (isset($this->singletons[ResolverInterface::class])) {
            /** @var ResolverInterface $resolver */
            $resolver = $this->singletons[ResolverInterface::class];
            return $resolver;
        }
        $definition = $this->singletonsRegistry[ResolverInterface::class] ?? ResolverInterface::class;
        $this->singletons[ResolverInterface::class] = new $definition($this);
        return $this->singletons[ResolverInterface::class];
    }

$definition не проверяется?

Route::run() не соответствует принципам DRY. Слишком много повторений (и не только здесь). Конечно понятно, что это учебный материал, но, к примеру, я сторонник DRY, KISS, а другие только SOLID, кто-то чистый ООП в угоду простоте. По каким критериям оценка будет?

Всего: 318