Расширение класса внешними методами и переменными

Так что мне кажется не дадут нормальных примеров по final-у
А что ты лично хочешь увидеть? Тебе не достаточно
value objects и классами, у которых есть интерфейсы
? Ты не знаешь что такое value objects или интерфейсы?
 
А что ты лично хочешь увидеть? Тебе не достаточно
Я ничего не хочу :) Я хотел увидеть в других темах, где вопросы рассматривались значительно более приземленные и даже там не было примеров
Я написал что примеров кода не будет, т.к. это норма здесь :)
 
Я хотел увидеть в других темах, где вопросы рассматривались значительно более приземленные и даже там не было примеров
Понимаешь, ты спрашивал что-то про «покажите примеры красивого DI»:
Тогда если кто знает пример кода где все сделано очень красиво в плане DI
Это очень бессмысленная для меня просьба.
Я ничего красивого в DI как таковом не вижу.
Он используется повсеместно, это так же красиво, как метод __construct() или как открывающая скобка <?php.
Речь же шла про нарушение SRP.
Чтобы это осознать, недостаточно показать один класс или два.
Нужно показывать и объяснять в каждом отдельном случае как можно что-то декомпозировать, а где не стоит этого делать.
Это приходит со временем, на это уходят месяцы и годы обсуждений и работы в команде.
Я считаю, что я не могу это для тебя сделать, извини.
 
Вот, кстати, да, показывать бессмысленно. Приходит новый человек в команду, ему весь код доступен, вот, пожалуйста, куча примеров - но первые его PR-ы все равно полная хрень.

По вопросу с final-ами я вообще не понимаю, чего тут показать. final class FooImpl implements Foo? DIC? Мок на интерфейс? Что, не видели, что ли?
 
Он используется повсеместно, это так же красиво, как метод __construct()
Опять классическое передергивание фактов. В теме было написано что везде используются сервис локаторы, а не депенденси инжекторы. Что нет примеров готового кода на том же гитхабе. Но @Вурдалак как всегда граф Монтекристо...
 
Слушай, если бы я знал хорошие примеры кода на гитхабе, я бы показал. Сам я их делать не буду, меня на это ничто не мотивирует.
 
@fixxxer Я же никого не обвиняю, я просто говорю что это текущая реальность и свершившийся факт, что никто не покажет код (по разным причинам, и NDA одна из них).
 
Самое смешное, что мы заочно знаем друг друга по 15-20 лет и за весь этот период у вас не нашлось времени ни на один хобби проект, который не стыдно показать. Я хотел про это написать в предыдущем посте, что, мол когда просишь показать код, вечно находятся какие то обстоятельства непреодолимой силы, которые не позволяют оппоненту продемонстрировать. Но это и так очевидно. Но тогда стоит наверное поумерить категоричность.
 
@Adelf говорил, что над книгой работает, может, у него примеры есть.
что касается того текста, на который недавно где-то тут была ссылка, я бы поспорил с идеями и примерами
 
Последнее редактирование:
@grigori Я не преувеличиваю.
вот я задавал вопрос насчет примеров кода не раз (в разных контекстах примеров)
Начиная отсюда я задавал вопрос о коде не один раз, учитывая что тема в разы проще чем текущее обсуждение final-а
не надо набрасывать :) ты ж не спрашиваешь, ты эмоционируешь, а fixxxer для начала должен хотя бы захотеть,

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

Пример надо приводить с объяснением бизнес-логики и планов развития. Можно взять конкретную задачу, на нее спроектировать низкоуровневую архитектуру и написать классы.
 
https://github.com/adelf/freelance-example/ вот синтетический пример, который я для книги делал. Просто показал возможное разбиение приложения на слои(с доменным) и CQRS еще. Пример не самый лучший. Домен там просто прикола ради :)

Юнит тесты на домен. и Функциональные на приложение.
 
если бы другие люди соблюдали SOLID, или хотя бы не проповедовали с уверенностью, что это правильно.
Гриша, так об том и речь. Я же и первый, кто за то, что бы SOLID соблюдали ибо без него никуда. Но в данном кейсе товарищи увидели косой взгляд в сторону SRP и набычились. Без переосмысления. Почему-то считают, что SRP должен быть кровь из носа на файналах, даже если по башке получают OCP, LSP и DIP. И в добавок еще DRY и KISS.

Юнит тесты на домен. и Функциональные на приложение.
Вот вообще не хочу ничего обсуждать и какие либо оценки давать. Но факт в том, что ни одного юнит теста (их еще называют модульными) там нет. И я сильно подозреваю, что у Вурдалака и Фиксера примерно такие же тесты - интеграционные, со слабой изоляцией или вообще без нее. Это не плохо, нет. Любой тест лучше чем никакой. Но это не позволяет увидеть проблему, о которой я говорю. Каждый тут успел написать, что один кейс всегда нерелевантен и это верный тезис. Но иногда надо не 1000 тестов написать, а 1000 раз поиметь геморой из за убитого разработчиком полиморфизма, что бы понять проблему и найти баланс.
 
Последнее редактирование:
Но факт в том, что ни одного юнит теста (их еще называют модульными) там нет.
ты вероятно имел ввиду тесты на эти классы? https://github.com/adelf/freelance-example/blob/master/app/Services/FreelancersService.php их можно написать, но там специально сделано так, что они просто оркестрируют работу, соединяя домен с инфраструктурой. никаких условий нет, поэтому один позитивныйтест... ну и можно один, когда чтото сфейлится с исключением. и всё.
 
@Вурдалак Вот не надо опять о том чем сервислокаторы от депенденсиинжекторов отличается, я то как раз прекрасно это понимаю.
И какие плюсы и минусы в обоих случаях.
У меня была претензия что в дикой природе, в реальных проектах второго просто нет. Было просто интересно как делают другие что-то отличное от сервислокаторов. Но примеров так никто и не привел. И это к тому что здесь на форуме любят рассуждать о теории, но когда доходит до реального кода у всех NDA.

P.S. И меня реально бомбит что везде только сервис локаторы, но к данной теме это уже вообще не имеет отношения. Тема топика уже второй раз уходит от названия.
 
что касается того текста, на который недавно где-то тут была ссылка, я бы поспорил с идеями и примерами
А еще ты написал,что мой код отстой :) я всё видел. давай поспорь. я с радостью кину ссылку на этот спор туда. если будет позитивно и полезно.
 
А еще ты написал,что мой код отстой :) я всё видел. давай поспорь. я с радостью кину ссылку на этот спор туда. если будет позитивно и полезно.
не отстой, просто не образец для изучения - код небольшого проекта, и образец для изучения, или open source, отработанный по большому кличеству кейсов - это разные вещи,
а туда - это куда?
 
Последнее редактирование:
15-20 лет и за весь этот период у вас не нашлось времени ни на один хобби проект,
То, что было 10 лет назад, мне показывать стыдно. :)

И я сильно подозреваю, что у Вурдалака и Фиксера примерно такие же тесты - интеграционные, со слабой изоляцией или вообще без нее.
Не знаю насчет Вурдалака, у меня и такие, и такие, в зависимости от. Раз ты уж так привязался к show me the code, ну вот такая фигня на гитхабе валяется. Там, конечно, все далеко не идеально, но поскольку оно мне уже не надо и поддерживается только для легаси, а все правки последних лет вообще по issues на гитхабе для каких-то странных чуваков, которые этим пользуются, сойдет. Там вполне себе юнит-тесты на все, кроме "фасада". Final-ы, кстати, тоже не везде. :) Но это очень скучный пример, не особо интересно обсуждать даже.

А все интересное, да, под NDA, что поделать.
не надо набрасывать
Эээ, а мы вообще зачем сюда ходим, по-твоему? :)
 
Последнее редактирование:
Сверху