
Evgeniy
04.06.2017
14:57:27
и все методы что не использовались при записи действий
он писал там код типо throw new ....
и кидал исключение типо not implemented
я нашел автора этого адского "творения"

Google

Sergey
04.06.2017
14:58:23

Evgeniy
04.06.2017
14:58:23
пришел и сказал да что же вы делаете
да коле это будет продолжатся
да зачем такую штуку делал ты
не надо так
и потом разделил и сделал норм
я ему об этом и говорил только без умных слов виде lsp
потому что пиздец запилили где что то отпало не помню точно
и зажыли мы
теперь твоя очередь
где ты это применял и стало ли от этого лучше?)
могу потом не сэксес стори рассказать )

Google

Evgeniy
04.06.2017
15:01:21
но только там начало другое
а вот мы читали что есть solid и надо делать специализированные интерфейсы
давайте разделим один на чтение другой на изменения

Sergey
04.06.2017
15:02:00
похожие штуки. Был класс который читал и писал, мне надо было добавить кэш. методов было 8 штук. Кэш нужен был 2-м. Бойлерплейт

Evgeniy
04.06.2017
15:02:04
но все заебись но только так зарефакторили репозиторий

Sergey
04.06.2017
15:02:07
много бойлерплейта

Evgeniy
04.06.2017
15:02:21
и в итоге стал у нас репозиторий один Reader другой Writer
и страдали мы адски но решение было предпринято иновационным

Sergey
04.06.2017
15:03:06
интересно какой интерфейс у Reader был

Evgeniy
04.06.2017
15:03:08
interface Repository implements Reader, Writer
там абстракция над sql select

Sergey
04.06.2017
15:03:31

Evgeniy
04.06.2017
15:03:48
T get(int id)

Sergey
04.06.2017
15:05:19
ух)
хм....
а если поразмышлять над твоим примером
вместо того что бы сделать интерфейс ориентированный на клиента, ты как раз таки сделал маленький обобщенный интерфейс
ну мол суть ISP не в том что бы интерфейсы были просто маленькими, а что бы они как-то были в контексте как их используют

Evgeniy
04.06.2017
15:07:14
ога
вот последнее важное но приходит с опытом

Google

Evgeniy
04.06.2017
15:07:39
и объяснить другим мне не всегда удается
это пример оверинжиниринга
был второй мой пример

?
04.06.2017
15:10:06
https://www.youtube.com/watch?v=SEWa5_RW2BM

Evgeniy
04.06.2017
15:31:34
опять эти page object
как я рад что я больше не в ынтерпрайзе где их пруд пруди

Aleh
04.06.2017
15:58:36

Sergey
04.06.2017
16:02:00
это как если у тебя в контракте который ты как разработчик подписываешь бует еще "ну и там убраться надо будет на выходных... и мебель собирать"

Aleh
04.06.2017
16:02:45

Sergey
04.06.2017
16:03:01

Aleh
04.06.2017
16:03:02
И если он в это описание закинул то, что ему не надо, страдать он не будеи

Sergey
04.06.2017
16:03:09
ты описываешь те элементы поведения которые тебе нужны
а уже из этого появляются реализации
ну то есть сначала задача а реализация потом. И если задача слишком обобщенная то и на реализацию это негативно может повлиять

Aleh
04.06.2017
16:06:55
ну да

Sergey
04.06.2017
16:07:28
как бы это красиво сформулировать

Aleh
04.06.2017
16:07:41
просто бывает, что у тебя есть несколько реализаций, для которых некоторые методы лишние или вообще абсурдны, но клиенту все равно нужен жирный интерфейс

Sergey
04.06.2017
16:08:33
вот пример бы таких ситуаций, я не смог придумать

Google

Aleh
04.06.2017
16:08:47
и тогда для этих нескольких реализаций можно выделить их специализированный интерфейс, чтобы следующие не загонялись лишними методами

Like
04.06.2017
16:16:44
Насколько часто вы пишите тесты для веб проекта?

Sergey
04.06.2017
16:17:05

Like
04.06.2017
16:17:12
Не, хочу попробовать)
Хз что тестировать правда

Sergey
04.06.2017
16:17:29

Like
04.06.2017
16:17:35
Или бизнес логику, или все (включая клики на кнопочки)

Admin
ERROR: S client not available

Sergey
04.06.2017
16:17:40

Aleh
04.06.2017
16:17:52

Like
04.06.2017
16:17:55
я не сомневаюсь в себе и вордпрессе ! ?

Sergey
04.06.2017
16:18:19

Like
04.06.2017
16:19:27

Aleh
04.06.2017
16:20:17

Sergey
04.06.2017
16:22:19

Aleh
04.06.2017
16:22:44

Sergey
04.06.2017
16:23:42
а тип для chome не надо бутиться?

Google

Sergey
04.06.2017
16:23:44
или как?

Aleh
04.06.2017
16:24:47

Like
04.06.2017
16:26:23

Sergey
04.06.2017
16:29:04

Like
04.06.2017
16:29:06
Вы лучше скажите: это нормально, что я фигачу type hinting не в строго типизированных языках?
При этом, даже и не смотрю (смотрю) в сторону строго типизированного языка

Sergey
04.06.2017
16:29:08
пустой метод

Aleh
04.06.2017
16:29:35
пустой метод
даже не пустой, нельзя без запуска boot делать пару других вещей и чтобы сохранить контракт надо было делать фейковое поле)

Like
04.06.2017
16:30:12

Aleh
04.06.2017
16:30:48

Like
04.06.2017
16:31:17

Sergey
04.06.2017
16:31:41
Сложный вопрос
python язык со строгой динамической системой типов, все ок
но вообще смотри
тайпхинтинг он как бы для тебя
а в языках со статической системой типов - для компилятора еще
хотя не не так
тайпхинтинг он всегда для компилятора/рантайма что бы убедиться что все хорошо

Like
04.06.2017
16:32:24
Я понял о чем ты)
Без типов код не красивый, вот и все ?
Все просто

Евгений
05.06.2017
06:29:04
ну и зачем? )))))