invariance
есть
Co(n)stantine👨🔬
незнаю кому верить, Сергею или Кириллу
Co(n)stantine👨🔬
Может и есть, но ему никто не следует
Co(n)stantine👨🔬
И Сегей говорит, что сеттеры и геттеры это плохо, а на самом деле все не так плохо видимо, много кто их юзает в том числе и симфони
Ale
Ale
Ну и в большинстве случаев они не нужны
Co(n)stantine👨🔬
А на счет публичных методов, согласен полностью с Сергеем
Dumitru
Тенпеннай
человек спросил про ООП, я написал про ООП
Dumitru
Ну так я не против
Co(n)stantine👨🔬
@x3medima17 что там про контракты?
Dumitru
Мейер в свое время ввел такую штуку как Design by Contract
Co(n)stantine👨🔬
так а где почитать, в эой же книге написано?
Denis
и там и в почувствуй класс)
Denis
дима после его курса ооп так проникся эйфелем, что втирал его всем подрят)
Dumitru
@x3medima17 что там про контракты?
И сделал новый ЯП
Контракты состоят из 3 частей
- preconditions: условия которые должны выполняться в самом начале метода
- посткондишн: условия которые должны выполняться после окончания метода
- инварианты: условия класса которые должны всегда выполняться
Co(n)stantine👨🔬
Dumitru
Это если в двух словах
Dumitru
Co(n)stantine👨🔬
хорошо, посмотрю
invariance
Dumitru
Denis
Dumitru
Denis
хотя не, прочесть книгу полезно) эйфель главное не ставить
Dumitru
На самом деле поставить эйфель еще надо уметь
Co(n)stantine👨🔬
Dumitru
invariance
охренеть, 1.2к страниц
Dumitru
Прикольная книжка, но затянутая
Dumitru
Denis
Тенпеннай
кстати, пагни
Тенпеннай
а что за Вирта сткажете?
Тенпеннай
хотя это и оффтоп в ооп чате :3
Denis
книга по алгоритмам?
Denis
тяжело читается)
Тенпеннай
ну, про ценность его книг в 2017 году
Co(n)stantine👨🔬
Sergei
Из статического метода класса вызывать, создавая ту самую "единственную сущность"?
Sergey
Sergey
стыдно потому что времени на подготовку я потратил в разы меньше чем хотел
Sergey
ну и из общения с людьми на курилке - никто ничего не понял
Sergey
эдакий моноид
Sergey
а не, не моноид
Ale
просто последовательность действий задается монадой
Sergey
не спойлири, я сейчас в процессе изучения
Ale
а моноид это множество с единицей
Sergey
я его даже не пишу. Я сразу пишу хэндлер
Sergey
его нет смысла покрывать юнит тестами
Ale
ну, если я сразу напишу хендлер, то он будет куском говна
Ale
он мне там и обход графа сделает
Ale
и из консольки спросит через /dev/stdin
Ale
а такой тест, во всяком случае пока, помогает думать про интерфейсы и взаимодействия
Sergey
эм... ну я ж себя ограничиваю)
Sergey
можно начать например с такого:
public function __invoke()
{
// get user
// verify sequrity questions
// deactivate account
// send confirmation email
}
Sergey
но через тесты норм
Sergey
просто я ленивый
Sergey
этот тест будет просто набором моков
Ale
ну я стабами пользуюсь
Sergey
тупо проверка последовательности
Ale
так я в данном случае
Ale
продумал интерфейс стабов
Ale
и контракт слегка
Ale
и понятно что дальше делать
Sergey
ну через моки тоже можно)
Ale
одон и тоже
Ale
в данном случае
Sergey
согласен
Ale
вот, я здесь про тест именно как инструмент проектирования
Ale
самым логичным решением потом будет выпилить его просто
Sergey
ну юнит тесты с большего именно в этом ценность и несут
Sergey
возможность проектировать "юниты"