fixxxer
Что бы всё знать времени нужно много, а сделать можно мало. Вот я и ищу людей который в каких то областях более компетентны. Долой самолюбие и самомнение.
dependency injection - почитал, интересно но не про меня, мне кажется я достаточно гибо предоставляю интерфейсы тем или иным модулям или классам системы используя API ядра. Мне будет куда лучше написать класс расширитель API который можно вызвать через любой пользовательский класс. Но может я чего не правильно понял, так как описание шаблона очень большое и я мог что то упустить.
Так же хочу напомнить, что код оооочень сырой и я не сомниваюсь, что во многих местах его можно облаять показав "свой пенис", но я предлагаю не швырятся ссылками на книги, статьи или ещё что то, я предлагаю сугубо конструктивный подход. Взять и показать как будет в данном месте лучше.
Например: inversion of control / dependency injection - стоит применить как управляющую часть ядра которая отвечает за связывание интерфейсов. Или что то типо этого.
Не хотелось бы видеть вот так:
А ты почитай про inversion of control / dependency injection может станешь как мы крутые программисты и мы позволим с нами общаться.
-~{}~ 10.02.10 02:11:
fixxxer
Спасибо за понимание. Я в первый раз решил обратится к общественности, понимал что будет критика и большая, но не думал что будут оскорбления, переходы на личности и "показ писек".
-~{}~ 10.02.10 02:21:
fixxxer
Не признаю тесты типа phpunit. Я вообще тестирование не признаю, это загоны под шаблоны в программировании. Шаблоны проектирования есть, да, но и их рано или поздно придётся отодвинуть назад. Я предпочитаю экспериментировать и общаться.
-~{}~ 10.02.10 02:32:
korchasa
1. IoC'а нет. Что будет если мне надо подменить объект запроса?
Объект запроса можно подменить через конфиг роутера. Я пока не реализовал вызов одного контроллера из другого. Но вопрос стоящий.
2. Цикл приложения захаркорен в Kernel::run(). Что будет если мне надо делать отлуп пользователям по IP, или тот же запрос, в зависимости от страны пользователя? Где и как это делать?
Да действительно я не подумал про хуки до после и во время. Спасибо записал.
3. Почему у приложения нет пространства имен? Почему Ui не в Kernel? Зачем ты вообще хочешь использовать пространства имен?
Я не хотел навязывать программисту определение конкретного пространства для своих классов. Я просто отделил системную часть и предоставил корневое всем остальным.
Почему Ui не в Kernel?
UI является мостом между пространством пользовательским и системным. А ядро только в системном.
Зачем ты вообще хочешь использовать пространства имен?
Пространство имём избавляет нас от вероятности пересечения имён системных и пользовательских классов:
MyController вместо Controller_MyController