[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вернуться?
Страницы: 1, 2, 3, 4, 5
twin
Вот накидал для своих ребят талмудик по чистой архитектуре. Где что я накосячил, попинайте кто может. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
twin
Цитата
Первая контора зсучает рукава

Цитата
interface MathAdapterIntrface


То есть мораль "обращаться к стороннему через адаптеры"? =)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Спасибо за уточнение, но цель статьи - показать возможность разработки приложение "снизу вверх". Там естественно всё очень упрощенно, начиная от инклюдов, заканчивая использованием POST. Естественно тут и не пахнет ни сущностями, ни DTO, ни репозитариями, ни командами, ни контейнером... Я об это там написал в конце. Если бы я попытался описать все полностью, получилась бы не статья, а целая книга.

Цитата (Santehnick @ 6.07.2018 - 15:25)
Контроллеры и шаблоны это слой представления. Он как раз может быть сделан на фреймворке.
Не спорю, однако на мой взгляд этот слой должен быть ниже фреймворка.

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

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

Цитата (Santehnick @ 6.07.2018 - 15:25)
Сервис не использует post, get, session, cookie и т.п. Он принимает на вход набор аргументов или объект команды
Это так и есть, но команда инициализируется в контроллере, а окружение он получает из адаптера. Дальше сервисы и домен. В слое фреймворка остается только роутинг и некоторые плюшки инфраструктуры. Ну и библиотеки соответственно. Хоть встроенные, хоть сторонние. Можно легко его отпилить от приложения, как ты сам и говорил.

Цитата (Santehnick @ 6.07.2018 - 15:25)
Обрати внимание, ты пишешь "Исправим контроллер: CalculatorController.php" - это есть нарушение open/closed принципа из solid.
Это не боевая разработка, это эволюция. Просто показал, что так делать нежелательно, и исправил ошибку. Тут SOLID вообще не причем.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Arh @ 6.07.2018 - 12:45)
То есть мораль "обращаться к стороннему через адаптеры"? =)
Не к стороннему, а между слоями. А так то да. Основная мораль - синтаксису фреймворка нечего делать дальше слоя адаптеров. Тогда само по себе получится, что классический фреймворк станет не нужен.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
Цитата (twin @ 30.06.2018 - 02:03)
Да я почувствовал это на новой работе. Теперь все больше ценится простота (не скорость даже, а именно простота) разработки и унификация, чтобы с работой могло справляться как можно больше неквалифицированного персонала.


А ты им в виде альтернативы, вот эту что ли "простоту" предлагаешь?:

Цитата (twin @ 8.07.2018 - 17:24)
Если бы я попытался описать все полностью, получилась бы не статья, а целая книга.



_____________
There never was a struggle in the soul of a good man that was not hard
Michael
Цитата (twin @ 8.07.2018 - 18:18)
Тогда само по себе получится, что классический фреймворк станет не нужен.

Ты пришел к мнению что функционал например вот того ABC фреймворка, который ты сам и создавал - это абсолютно ненужный людям код?

_____________
There never was a struggle in the soul of a good man that was not hard
Arh
twin
Цитата
Не к стороннему, а между слоями.

Тогда у каждого приложения должны быть собственные адаптеры, собственные интерфейсы адаптеров под каждую библиотеку.
Если например в проекте 10 приложений, которые используют допустим symfony/cache, это будет 10 интерфейсов типа MyAppCacheAdapterInterface и 10 реализаций типа MyAppSymfonyCacheAdapter, MyAppVasyaCacheAdapter?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Цитата (Michael @ 9.07.2018 - 09:36)
А ты им в виде альтернативы, вот эту что ли "простоту" предлагаешь?:
Я наоборот всегда говорил, что лучше два крутых программиста, чем 10 бестолковых плюс фреймворк. Где я говорил о простоте моего подхода? smile.gif
Цитата (Michael @ 9.07.2018 - 09:38)
Ты пришел к мнению что функционал например вот того ABC фреймворка, который ты сам и создавал - это абсолютно ненужный людям код?
Я об этом говорил еще когда начинал его писать. И писал я его в основном из спортивного интереса и прокачки скилов.

Но тут маленький нюансик. По сути ABC - это микрофреймворк. Там в ядре только роутинг, PSR-7, мидлвары и дебаггер. Все остальное - отдельные сервисы, которые можно просто выкинуть. Только AR все спутала, не получилось отдельным сервисом сделать. Зато я теперь знаю, что это какашка. smile.gif

Цитата (Arh @ 9.07.2018 - 10:01)
Если например в проекте 10 приложений, которые используют допустим symfony/cache, это будет 10 интерфейсов типа MyAppCacheAdapterInterface и 10 реализаций типа MyAppSymfonyCacheAdapter, MyAppVasyaCacheAdapter?
Зачем 10 реализаций? Сделай один слой адаптеров на всех. А интерфейсов - да, должно быть много. На то они и порты, чтобы показывать, как библиотеку (или сам фреймворк) адаптировать к приложению.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
twin
Цитата
Зачем 10 реализаций? Сделай один слой адаптеров на всех. А интерфейсов - да, должно быть много.

Ну если приложения оторваны от мира, у них есть свои интерфейсы для этого, тогда должны быть и свои реализации.
То есть приложение A требует интерфейс ACacheAdapterInterface, а приложение B требует BCacheInterface итд. Как сделать одну реализацию для всех интерфейсов? Придётся делать реализацию для каждого.


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
Делай для каждого)) Вообще то если приложения разные, значит и адаптеры разные. В том и печенька, что можно юзать доменную модель отдельно от приложения и приложение отдельно от фреймворка. А если у тебя одинаковые приложения, значит и адаптеры одинаковые будут.

Допустим как у нас, в нескольких разных проектах меняется только скин и база. На кой нужна куча адаптеров. И фреймворка и слоя адаптеров достаточно по одному. В приложении контроллер выбирает нужный репозиторий, модели и вьюшку. Роутер фреймворка подключает контроллер. Роуты прописаны в настройках приложения. Конфиги подключаются в индексах приложений. Все на своих местах.

Ну это так должно быть и будет попозже. Пока еще бардак, как у всех)))

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Прикольную штуку прислали по теме. Не по чистой архитектуре (это оффтоп на самом деле), а про депрессию. Может кому то покажется интересным. smile.gif


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
chee
Посмотрел, чувак вроде бы в начале правильные вещи говорит - адекватные (физкультура, остановка-медитация, выходить на солнышко), а потом начинается трэш и противоречия вещам сказанным в самом начале (на типа того, а подумайте чем вы вообще занимаетесь на работе в нерабочее время, хотя в начале говорил про остановки и медитацию). Короче его доклад можно смотреть до того как он начинает нести ахинею про аджаил, дальше - треш, угар и садомия.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Там философия начинается. Он хоть и корявенько, но говорит полезные вещи. Допустим про то, как просидеть целый день на стуле. Я много раз замечал, на сколько много у жизни резервов. Вот кажется все, не успел, все сейчас рухнет, всё развалится, нужно спасать ситуацию, скорей, быстрей! На самом деле это просто паника. Жизнь медленно течет мимо, совершенно не замечая твоих переживаний. И ничего не рушится, свет не переворачивается, даже если ты чего то не успел или не смог. В итоге все равно все встает на свои места.

Или отношения между людьми. Нужно любить опонента, иначе себе дороже выходит. Вот показательный пример - Вьетнам. Я там два раза был, не перестаю удивляться. Вьетнамцам вообще наплевать на то, что ты о них думаешь. И уж тем более нет смысла на них кричать или ругаться. Они устроены так, что вообще этого не замечают. Максимум могут впасть в ступор, но и то от того, что для них это непривычно - агрессия. Они просто не могут понять, как нужно реагировать. В итоге нервы портятся у того, кто ругается, а им вообще насрать.
При всём при этом Вьетнам уверенно держит второе место в мире по индексу счастья. Не смотря на ужасную бедность и недавние войны. Они абсолютно счастливы и никаких депрессий. Они просто любят друг друга.

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

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

Ну и много еще чего интересного он сказал. Посто это трудно воспринимать, пока сам не столкнулся. Так что слушать можно обе части. Первая - простые рекомендации, вторая - философия. smile.gif





_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Santehnick @ 10.07.2018 - 15:47)
Это больше развлечение. Не самое интересное.
Так и есть. Но интересное все равно, не соглашусь. Это не занудная лекция психотерапевта, которых кстати у нас и нет толковых, так как нет школы. Советскому человеку депрессия была чужда, как явление буржуазии. Это стендап по сути.

Этот чувак довольно весело и живо рассказывает о вещах, которые вроде как очевидны, но все боятся в них признаться. Даже самому себе. Чем не развлечение... Не Петросяна же смотреть. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Michael
Цитата (twin @ 10.07.2018 - 07:34)
Прикольную штуку прислали по теме.

Заметил что зал к нему обращается на "ты" ?

_____________
There never was a struggle in the soul of a good man that was not hard
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.