Size: a a a

2019 December 31

КГ

Константин Грачев in PHP
Вчера был на собесе, опять услышал прекрасное. У нас, говорят, есть отдел девопсов, и где то между девом и девопсом ещё 2 релиз инженера на фултайме..
Девопс он такой
источник

SS

Serge Shpak in PHP
источник

EY

Eugene Yurkevich in PHP
Почитал сообщения сверху...
А вы используете ключевое слово final в своих проектах?
источник

SS

Serge Shpak in PHP
Почти везде
источник

BP

Borys Poletayev in PHP
Практически нигде
источник

EY

Eugene Yurkevich in PHP
Я чего спрашиваю, просто ни разу не делал свой класс final😭  
1. Какие плюсы final дает?
Не дает унаследовать класс - ок. Но, в чем реальный плюс? Дает понять что "у тебя не должно быть мысли наследовать этот класс"? Так-то следующим коммитом я могу снести final, если оно не в vendor.
2. как с phpunit тестировать классы зависящие от final класса?  Я вижу следующие варианты:
- а. мокать интерфейс если final класс его имеет.
- b. Передавать весь сервис-контейнер в конструктор и в тесте мокать контейнер get(). - но, это хрень на мой вгзляд, нафига передавать весь контейнер если намного наглядней передать конкретные зависимости.
Так, все таки, как тестировать код зависящий от final класса? Или не должно быть такой ситуации когда код зависит от конкретного final класса, а должен зависеть только от интерфейса (пункт а)
источник

КГ

Константин Грачев in PHP
Eugene Yurkevich
Я чего спрашиваю, просто ни разу не делал свой класс final😭  
1. Какие плюсы final дает?
Не дает унаследовать класс - ок. Но, в чем реальный плюс? Дает понять что "у тебя не должно быть мысли наследовать этот класс"? Так-то следующим коммитом я могу снести final, если оно не в vendor.
2. как с phpunit тестировать классы зависящие от final класса?  Я вижу следующие варианты:
- а. мокать интерфейс если final класс его имеет.
- b. Передавать весь сервис-контейнер в конструктор и в тесте мокать контейнер get(). - но, это хрень на мой вгзляд, нафига передавать весь контейнер если намного наглядней передать конкретные зависимости.
Так, все таки, как тестировать код зависящий от final класса? Или не должно быть такой ситуации когда код зависит от конкретного final класса, а должен зависеть только от интерфейса (пункт а)
fesor же отвечал. Либо делаешь интерфейс, либо не ставишь final
источник

EY

Eugene Yurkevich in PHP
тогда норм.
источник

BT

Bohdan Turchyk in PHP
final имхо имеет смысл использовать в тех ситуациях, когда ты явно хочешь ограничить возможности тех, кто будет работать с твоим кодом
источник

BT

Bohdan Turchyk in PHP
а насчет "снести final" - для этого есть код-ревью и линейка для битья по рукам
источник

MM

Maksim Masiukevich in PHP
Final  всегда и везде - залог успеха
источник

КГ

Константин Грачев in PHP
Bohdan Turchyk
final имхо имеет смысл использовать в тех ситуациях, когда ты явно хочешь ограничить возможности тех, кто будет работать с твоим кодом
имхо ставишь final в шаблоне создания класса в phpstorm, убираешь его только 3 раза подумав
источник

k

knopkod4v in PHP
Eugene Yurkevich
Я чего спрашиваю, просто ни разу не делал свой класс final😭  
1. Какие плюсы final дает?
Не дает унаследовать класс - ок. Но, в чем реальный плюс? Дает понять что "у тебя не должно быть мысли наследовать этот класс"? Так-то следующим коммитом я могу снести final, если оно не в vendor.
2. как с phpunit тестировать классы зависящие от final класса?  Я вижу следующие варианты:
- а. мокать интерфейс если final класс его имеет.
- b. Передавать весь сервис-контейнер в конструктор и в тесте мокать контейнер get(). - но, это хрень на мой вгзляд, нафига передавать весь контейнер если намного наглядней передать конкретные зависимости.
Так, все таки, как тестировать код зависящий от final класса? Или не должно быть такой ситуации когда код зависит от конкретного final класса, а должен зависеть только от интерфейса (пункт а)
1. Самоконтроль. Ты доверяешь себе? А всем коллегам?
2. Как на счёт классицизма?
источник

BT

Bohdan Turchyk in PHP
Константин Грачев
имхо ставишь final в шаблоне создания класса в phpstorm, убираешь его только 3 раза подумав
а потом интерфейсы на каждый класс, да)
источник

КГ

Константин Грачев in PHP
Bohdan Turchyk
а потом интерфейсы на каждый класс, да)
не обязательно
источник

k

knopkod4v in PHP
Maksim Masiukevich
Final  всегда и везде - залог успеха
А стал бы ты наследоваться, если б файнала не было? 🤔
источник

EY

Eugene Yurkevich in PHP
как по-другому, если все классы final?
источник

MM

Maksim Masiukevich in PHP
knopkod4v
А стал бы ты наследоваться, если б файнала не было? 🤔
Неа
источник

k

knopkod4v in PHP
тогда получается, что для тебя final бесполезен
источник

k

knopkod4v in PHP
или нет? 🤔
источник