
Paul
07.05.2017
08:05:58

Sergey
07.05.2017
08:06:39
по итогу у тебя 2 разных типа, поведение не меняет объект а создает новый с теми характеристиками которые есть. В итога у нас будет циклическая зависимость между квадратами и прямоугольниками
нет?

Paul
07.05.2017
08:07:10
Тип один, это твой квадрат

Google

Sergey
07.05.2017
08:07:25
но если у них стороны не равны то это же не квадрат
тогда что это?

Paul
07.05.2017
08:07:37
И минимум три типажа/интерфейса: квадрат, прямоугольник и ромб
Можно даже явно не декларировать

Sergey
07.05.2017
08:08:17

Paul
07.05.2017
08:08:36
Где я это утверждал?

Sergey
07.05.2017
08:09:28
мне может и квадрат не нужен)

Paul
07.05.2017
08:09:48
Я о том, что все модули работают с интерфейсом
А что там за тип - плевать

Sergey
07.05.2017
08:10:18
у интерфейса тоже тип есть

Google

Sergey
07.05.2017
08:10:28
и имплементация этого интерфейса - это таки тоже подтипы
(если в стремных языках типа java))

Paul
07.05.2017
08:10:42

Sergey
07.05.2017
08:10:53
ты сейчас конкретно про концепцию типажей

Paul
07.05.2017
08:10:55
Тип предполагает носитель

Sergey
07.05.2017
08:12:33
Давай например возьмем что-то попроще. Интерфейс FileSystem с поведением для чтения и записи файлов и реализации под разные файловые системы.
тут будет тип "FileSystem" или нет?

Paul
07.05.2017
08:14:03
Типов таких много будет: кому-то нужны кеши, кому-то нет и так далее. Работать же будешь с тиражом ФС
Собственно, в vfs тоже не конкретный тип лежит, ага

Sergey
07.05.2017
08:14:59
это понятно, меня как раз таки и интересует как ты предлагаешь пользоваться квадратами и прямоугольниками.
оно понятно что там где нужны прямоугольники об этом будет явно задекларировано, а там где и то и то можно - лишьбы углы были под 90% между гранями то просто другой тип нужен, нет?

Paul
07.05.2017
08:17:51
На практике же, очевидно, пока речь не о библиотеке, лучше даже не заморачиваться так
А в библиотеках обычно требований больше: физический движок хочет не квадрат, а что угодно, что отдаст нормали к поверхности, а будет оно для твоего квадрата реализовано или для чего другого ему должно быть плевать

F01134H
07.05.2017
08:21:40
а речь все про треугольники и квадраты)

Paul
07.05.2017
08:23:06
Ладно, я афк, по улице с телефоном сложно

F01134H
07.05.2017
10:56:09
Народ, а есть какой-нибудь словарь програмерской терминологии (и смежной)? Типо там DRY, SOLID, YAGNI и все в этом духе

Sergey
07.05.2017
10:56:42

F01134H
07.05.2017
10:56:50
ну я имею ввиду сборник
хотя бы со ссылками на вики

Google

F01134H
07.05.2017
10:57:00
надо же знать, что искать)

Like
07.05.2017
10:57:02

Sergey
07.05.2017
10:57:09
https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF%D1%8B_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F

F01134H
07.05.2017
10:57:17
Спасибо

Sergey
07.05.2017
10:57:20
https://en.wikipedia.org/wiki/Category:Programming_principles

F01134H
07.05.2017
10:58:50
Респект ??

Aleserche
07.05.2017
11:45:20
второй раз читаю Зандстру. Никак не могу понять, со мной что-то не так или в книге дело...

F01134H
07.05.2017
11:45:55
эм
а что там не так
все нормально

Sergey
07.05.2017
11:46:10

Aleserche
07.05.2017
11:46:51
я не понимают паттерны. Совсем. Я вроде не глупый человек, но понять не могу.

Sergey
07.05.2017
11:47:05

Like
07.05.2017
11:47:07
В Зандстре были паттерны ?

Sergey
07.05.2017
11:47:23
забей на паттерны, понимай принципы

Like
07.05.2017
11:47:40
(Паттерны можно спокойно подсмотреть)

F01134H
07.05.2017
11:47:41
https://refactoring.guru/ru/design-patterns/catalog

Like
07.05.2017
11:47:55
да
Видимо, я просто дропнул

Sergey
07.05.2017
11:47:59

Google

Like
07.05.2017
11:48:15

Aleserche
07.05.2017
11:48:56
Так вот, я пытаюсь уловить смысл и прикинуть, где бы мне могло пригодиться. Сколько пишу, ни разу проблем не было. Может есть какие-то практические задачки, курсы?

F01134H
07.05.2017
11:48:59
:D

Like
07.05.2017
11:49:11

Sergey
07.05.2017
11:49:13

F01134H
07.05.2017
11:49:24

Sergey
07.05.2017
11:49:36

F01134H
07.05.2017
11:49:46
по мне, самое классное изучать паттерны - какие-нибудь небольшие пакеты под композер писать

Admin
ERROR: S client not available

Like
07.05.2017
11:49:47

F01134H
07.05.2017
11:50:21

Sergey
07.05.2017
11:50:42
вместо жирного switch можно всякие стратегии юзать. Что бы разделение ответственности соблюдать - декораторы/адаптеры всякие

F01134H
07.05.2017
11:51:58
а я бы скорей выделил две другие группы:
паттерны для уменьшения зависимости отдельных сущностей, и паттерны для уменьшения дублирования кода

Like
07.05.2017
11:52:17
Для меня это штука, для простого понимания готовых проектов :D

Sergey
07.05.2017
11:52:17

Like
07.05.2017
11:52:48

Sergey
07.05.2017
11:52:59
ты поймешь по классу Bakery что это фабрика хлебобулочных изделий?

Like
07.05.2017
11:53:12

Google

F01134H
07.05.2017
11:53:19

Sergey
07.05.2017
11:53:23
а сам факт того что это "фабрика" - тебе погоду делает?)

Like
07.05.2017
11:53:35

Sergey
07.05.2017
11:53:37

F01134H
07.05.2017
11:53:47

Sergey
07.05.2017
11:54:18
Неа
вывод - знания паттернов не влияют на "изучение" чужого кода. Оно скорее позволяет тебе коротко и емко описать решение какое-то проблемы. Типа "Петька, жахни логирование в декоратор плиз"

Like
07.05.2017
11:54:57

f4rt~
07.05.2017
11:54:57

Sergey
07.05.2017
11:55:18
на самом деле, почти любые) стратегия например
статегии выполняют простую роль. Позволяют тебе масштабировать логику с соблюдением O/C принципа. То есть вместо жирного ифа который надо править на каждый чих можно добавлять еще одну стратегию как отдельный класс.

Evgeniy
07.05.2017
11:55:21

Andrey
07.05.2017
11:55:34
Где-то читал, что с паттернами лучше знакомиться по истории развития какого-нить проекта. Тогда можно посмотреть для чего он был добавлен. Т.е. открываем гитхаб и с первого коммита смотрим историю изменений, если грубо

Evgeniy
07.05.2017
11:55:35
у разных программистов принято по разному одно и тоже называть и спорить спорить

Sergey
07.05.2017
11:55:58

Like
07.05.2017
11:56:31

Evgeniy
07.05.2017
11:56:47

Sergey
07.05.2017
11:57:07

Evgeniy
07.05.2017
11:57:09
и завичит от обучения если преподователь использовал один термин то и ты его будешь скорей всего юзать
поэтому основная проблема это общий контекст