MrPi

Рейтинг
20
Регистрация
05.05.2025
Александр Воробьев #:
Т.е., например, я точно не собираюсь создавать аналоги ларавелевской коллекции где реализовано 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, кто-то чистый ООП в угоду простоте. По каким критериям оценка будет?

Sherkhan #:
Разламываешь круассан, а там тесто непропеченное, сыроватое. 
либо расстойку пропустили, либо некачественные жиры в слоях
and2005 #:
У Спара нет фабрики, они  пекут сами.
Есть. Если учесть два вида тортов - одни с фабрики своей везут, другие по месту выпекают. В целом это полезная опция любого магазина. Есть излишки, продукт подходит к концу срока - в печь его. Издержки уменьшаются и на просроке делается х3-х4
Юлия #:
Я беру качественную выпечку с дорогой начинкой, которая равномерно распределяется по всему объёму теста. Вы, как я поняла, о "Спаре" только слышали, а комментарий написали по принципу: "Не в курсе, но осуждаю". ОК.
Ох уж эта женская логика. Нет, бываю в Спаре. Нравятся торты именно которые в магазине пекут, например наполеон или медовик. Последнее время не беру, после новости об отравлениях.
Апну тему. Что сделали с авторизацией через сторонние сервисы? Пользователь сейчас ленив и почта + 2 пароля + несколько галочек согласия с куками, правилами отпугивает их. Через сторонние учетки удобно. И каких сайтов коснется закон? Как определить принадлежность сайта? Если он не нацелен на аудиторию одной страны?
Александр Попов #:
Ну недавно помню продавали Соккер.ру, например

Еще продавали где посылка, ресторан. Но не видел, что бы купили. Цена права 15млн+. С чего такие парйсы, непонятно

Lastwarrior #:
Этот проект до сих продают за 24,4 млн. рублей

24млн за 120 тыщ просмотров в день это норм цена? 200 руб за 1 просмотр. Если монетизировать рекламой, то окупаемость через сколько наступит?

И как он генерит 942т.р. дохода при такой посещаемости? 3.8 рубля просмотр, или 1,9р на посетителя. Интересно.

Всего: 412