Челендж на 2026

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#81
В общем на гитхаб "рабочие" ветки крайне редко залетают,  в плане проекта с фреймворком - все мержи локально
S3
На сайте с 29.03.2012
Offline
370
#82
Александр Воробьев #:
В общем на гитхаб "рабочие" ветки крайне редко залетают,  в плане проекта с фреймворком - все мержи локально

А можешь рассказать свой флоу? Я даже свои проекты всегда веду в дев-ветке, обычно именую ее по названию фичи. Она тоже всегда в рабочем состоянии. Если есть желание - раскатываю дев-энв на хостинге(редко) После того как протестирую - создаю пулл-реквест на гитхабе. После ревью и аппрува - на гитхабе мержу в мэйн и он уже автоматически релизится и раскатывается на сервере. Сервер настраиваю обычно с помощью terraform, деплоить предпочитаю  через докер-контейнеры. То есть локально собирается готовый docker image. Потом он с помощью CodeBuild и AWS Pipeline раскатывается на сервере. С обычными хостингами уже лет 5 как не имею дел, только облака.

Для релизов, тестов использую github/workflows. Плюсом у меня к репо сразу подключены линтеры и пре-коммиты, которые не дадут даже запушить грязный код на гитхаб. Доку писать пока забросил, но вообще  это тоже все автоматом через Сфинкс

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#83
Ну у меня сразу - без докера. Есть ряд причин. В общем на данном этапе это до нагрузка мне будет и расширение зоны обязанностей (а мне это точно не надо).

Далее. Мастер. И две "типовых» ветки. Dev - это ветка которую показываю заказчику, с ней там работают тестировщики, или еще кто-то.   Hotfix. Через нее все попадает в мастер. Далее в зависимости от проекта. Где-то как я описывал выше, где-то мастер через гитлаб.

По тестированию. Тут все упирается в Битрикс. В прошлом году как раз делал инструмент для для мокирования какого либо Легаси и расширение к нему под Битрикс. В этом году буду внедрять. 

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

Ну а далее разработка в фича ветках, с тестами, потом сливаю все в мастер. Прогоняю окончательно тесты, анализ.... Выполняю автомнкремент версии и уже пушу на гитхаб. Т.е. пока у меня не высокая степень автоматизации. :) но я работаю в этом плане.
S3
На сайте с 29.03.2012
Offline
370
#84
Александр Воробьев #:
Ну у меня сразу - без докера. Есть ряд причин. В общем на данном этапе это до нагрузка мне будет и расширение зоны обязанностей (а мне это точно не надо).

Далее. Мастер. И две "типовых» ветки. Dev - это ветка которую показываю заказчику, с ней там работают тестировщики, или еще кто-то.   Hotfix. Через нее все попадает в мастер. Далее в зависимости от проекта. Где-то как я описывал выше, где-то мастер через гитлаб.

По тестированию. Тут все упирается в Битрикс. В прошлом году как раз делал инструмент для для мокирования какого либо Легаси и расширение к нему под Битрикс. В этом году буду внедрять. 

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

Ну а далее разработка в фича ветках, с тестами, потом сливаю все в мастер. Прогоняю окончательно тесты, анализ.... Выполняю автомнкремент версии и уже пушу на гитхаб. Т.е. пока у меня не высокая степень автоматизации. :) но я работаю в этом плане.
Вполне себе нормальный, правильный флоу, заточенный под твои нужды. Он конечно отличается от нашего, но там вообще не идеал, например на хотфиксы забили и вообще не знают что это такое, зато есть 4 энва перед продом, куда последовательно деплоится приложение. И все равно баги проскакивают
Александр Воробьев
На сайте с 03.02.2020
Offline
56
#85

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

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

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

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

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

Фреймворк

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

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

Снял видео, хотел сделать не просто видео абы было, а более-менее полезное: с разработкой по TDD. Но не успел смонтировать (в рабочее время писал - звонки и т.п.), да еще и звук паршивый, а мне камеру подарили с микрофоном - и там звук лучше. вот думаю может переписать. подумаю. но видео будет в любом случае

Так же принял решение, что подключу статанализ и следовать стилю кода PER CS 2.0 (а может и 3.0). Это dev зависимости проекта

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

Для тех кто не совсем  в курсе что такое compsoer и "dev зависимости".  dev-зависимости тянутся только для режима разработки фреймворка, т.е. если пользователь просто установит через композер мой фреймворк - эти зависимости ему не будут устанавливаться.


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


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


MP
На сайте с 05.05.2025
Offline
17
#86
Александр Воробьев #:

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

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

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

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

Релиза пока нет, актуальное состояние модуля на момент этого сообщения на 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, кто-то чистый ООП в угоду простоте. По каким критериям оценка будет?

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#87
MrPi #:
$definition не проверяется?

нет.

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

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

MP
На сайте с 05.05.2025
Offline
17
#88
Александр Воробьев #:

нет.

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

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

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

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#89
MrPi #:
ак, а критерии оценки какие? Я чуть посматриваю на ваш челлендж, но не пойму, как оценивать будут.

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

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

MrPi #:
антипаттерн - это Ларавель. Из всех крупных - мне ближе CI4

Мне в ларе не очень нравится, что там есть желание "обернуть" вообще все что есть в php :) в остальном (Если не использовать его в таком объеме) мне как раз таки он приглянулся (хотя больше вообще работаю с Битрикс и его фреймворком). помимо ларавель я только с симфони еще работал.  Посмотрю на cl4 - что там интересного.

А избыточность - цена расширяемости (конечно в удобном виде в моем понимании :) ).

Вообще сайд эффект этого проекта который очень хочется получить (но не очень сильно на это надеюсь), что кто то интереса для выполнит что то вроде частичного (ну по мере собственного  интереса) кодревью - не важно хоть отдельного метода, хоть целого класса, а может архитектуры...

Я все же работаю один, а не в команде - и у меня нет такого, чтобы кто то сказал, что "все что ты пишешь отстой - лучше это делать так" :)  в общем очень надеюсь на любой фидбек. если это будет выливаться в какие то более конкретные обсуждения вообще топчик.

Александр Воробьев
На сайте с 03.02.2020
Offline
56
#90
MrPi #:
Для меня антипаттерн - это Ларавель

в двух словах можете описать причины?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий