@oop_ru

Страница 202 из 785
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
оно понятно что там где нужны прямоугольники об этом будет явно задекларировано, а там где и то и то можно - лишьбы углы были под 90% между гранями то просто другой тип нужен, нет?
Если тебе нужно больше, чем стороны и 90 градусов, то это больше, чем прямоугольник в математическом определении, вот и все

На практике же, очевидно, пока речь не о библиотеке, лучше даже не заморачиваться так

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

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

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

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

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
эм

а что там не так

все нормально

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

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

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

Admin
ERROR: S client not available

Like
07.05.2017
11:49:47
поверь, это очень нужная штука
#офтоп Я тебя с 8ым мартом через год поздравлю, жди :)

Sergey
07.05.2017
11:50:42
Так вот, я пытаюсь уловить смысл и прикинуть, где бы мне могло пригодиться. Сколько пишу, ни разу проблем не было. Может есть какие-то практические задачки, курсы?
проблемы же "абстрактно" следующие: - как избавиться от switch/if и упростить логику - как уменьшить вероятность все сломать путем уменьшения количества изменений (добавлять а не менять)

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

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

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

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
а сам факт того что это "фабрика" - тебе погоду делает?)

Sergey
07.05.2017
11:53:37
F01134H
07.05.2017
11:53:47
нет, они не для этого
и для этого тоже

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

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

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

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

Sergey
07.05.2017
11:55:58
у разных программистов принято по разному одно и тоже называть и спорить спорить
это чаще от безграмотности. Спроси среднестатистического ларавельщика что такое "фасад" и он тебе выдаст глупость

Sergey
07.05.2017
11:57:07
грамотность понятие относительное
субъективное скорее... а не относительное

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

поэтому основная проблема это общий контекст

Страница 202 из 785