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

Вурдалак

Продвинутый новичок
Так что мне кажется не дадут нормальных примеров по final-у
А что ты лично хочешь увидеть? Тебе не достаточно
value objects и классами, у которых есть интерфейсы
? Ты не знаешь что такое value objects или интерфейсы?
 

Yoskaldyr

"Спамер"
Партнер клуба
А что ты лично хочешь увидеть? Тебе не достаточно
Я ничего не хочу :) Я хотел увидеть в других темах, где вопросы рассматривались значительно более приземленные и даже там не было примеров
Я написал что примеров кода не будет, т.к. это норма здесь :)
 

Вурдалак

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

fixxxer

К.О.
Партнер клуба
Вот, кстати, да, показывать бессмысленно. Приходит новый человек в команду, ему весь код доступен, вот, пожалуйста, куча примеров - но первые его PR-ы все равно полная хрень.

По вопросу с final-ами я вообще не понимаю, чего тут показать. final class FooImpl implements Foo? DIC? Мок на интерфейс? Что, не видели, что ли?
 

Yoskaldyr

"Спамер"
Партнер клуба
Он используется повсеместно, это так же красиво, как метод __construct()
Опять классическое передергивание фактов. В теме было написано что везде используются сервис локаторы, а не депенденси инжекторы. Что нет примеров готового кода на том же гитхабе. Но @Вурдалак как всегда граф Монтекристо...
 

fixxxer

К.О.
Партнер клуба
Слушай, если бы я знал хорошие примеры кода на гитхабе, я бы показал. Сам я их делать не буду, меня на это ничто не мотивирует.
 

Yoskaldyr

"Спамер"
Партнер клуба
@fixxxer Я же никого не обвиняю, я просто говорю что это текущая реальность и свершившийся факт, что никто не покажет код (по разным причинам, и NDA одна из них).
 

whirlwind

TDD infected, paranoid
Самое смешное, что мы заочно знаем друг друга по 15-20 лет и за весь этот период у вас не нашлось времени ни на один хобби проект, который не стыдно показать. Я хотел про это написать в предыдущем посте, что, мол когда просишь показать код, вечно находятся какие то обстоятельства непреодолимой силы, которые не позволяют оппоненту продемонстрировать. Но это и так очевидно. Но тогда стоит наверное поумерить категоричность.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@Adelf говорил, что над книгой работает, может, у него примеры есть.
что касается того текста, на который недавно где-то тут была ссылка, я бы поспорил с идеями и примерами
 
Последнее редактирование:

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@grigori Я не преувеличиваю.
вот я задавал вопрос насчет примеров кода не раз (в разных контекстах примеров)
Начиная отсюда я задавал вопрос о коде не один раз, учитывая что тема в разы проще чем текущее обсуждение final-а
не надо набрасывать :) ты ж не спрашиваешь, ты эмоционируешь, а fixxxer для начала должен хотя бы захотеть,

есть притча на эту тему: "освободи чашку"
 
Последнее редактирование:

grigori

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

Пример надо приводить с объяснением бизнес-логики и планов развития. Можно взять конкретную задачу, на нее спроектировать низкоуровневую архитектуру и написать классы.
 

Adelf

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

Юнит тесты на домен. и Функциональные на приложение.
 

whirlwind

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

Юнит тесты на домен. и Функциональные на приложение.
Вот вообще не хочу ничего обсуждать и какие либо оценки давать. Но факт в том, что ни одного юнит теста (их еще называют модульными) там нет. И я сильно подозреваю, что у Вурдалака и Фиксера примерно такие же тесты - интеграционные, со слабой изоляцией или вообще без нее. Это не плохо, нет. Любой тест лучше чем никакой. Но это не позволяет увидеть проблему, о которой я говорю. Каждый тут успел написать, что один кейс всегда нерелевантен и это верный тезис. Но иногда надо не 1000 тестов написать, а 1000 раз поиметь геморой из за убитого разработчиком полиморфизма, что бы понять проблему и найти баланс.
 
Последнее редактирование:

Adelf

Administrator
Команда форума
Но факт в том, что ни одного юнит теста (их еще называют модульными) там нет.
ты вероятно имел ввиду тесты на эти классы? https://github.com/adelf/freelance-example/blob/master/app/Services/FreelancersService.php их можно написать, но там специально сделано так, что они просто оркестрируют работу, соединяя домен с инфраструктурой. никаких условий нет, поэтому один позитивныйтест... ну и можно один, когда чтото сфейлится с исключением. и всё.
 

Yoskaldyr

"Спамер"
Партнер клуба
@Вурдалак Вот не надо опять о том чем сервислокаторы от депенденсиинжекторов отличается, я то как раз прекрасно это понимаю.
И какие плюсы и минусы в обоих случаях.
У меня была претензия что в дикой природе, в реальных проектах второго просто нет. Было просто интересно как делают другие что-то отличное от сервислокаторов. Но примеров так никто и не привел. И это к тому что здесь на форуме любят рассуждать о теории, но когда доходит до реального кода у всех NDA.

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

Adelf

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
А еще ты написал,что мой код отстой :) я всё видел. давай поспорь. я с радостью кину ссылку на этот спор туда. если будет позитивно и полезно.
не отстой, просто не образец для изучения - код небольшого проекта, и образец для изучения, или open source, отработанный по большому кличеству кейсов - это разные вещи,
а туда - это куда?
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
15-20 лет и за весь этот период у вас не нашлось времени ни на один хобби проект,
То, что было 10 лет назад, мне показывать стыдно. :)

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

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