@oop_ru

Страница 289 из 785
Evgeniy
09.07.2017
17:05:00
или в php 7.0

не помню в каком точно

Evgeniy
09.07.2017
17:05:31
https://wiki.php.net/rfc/traits-with-interfaces

Google
F01134H
09.07.2017
17:06:14
https://wiki.php.net/rfc/traits-with-interfaces
Женя, его не приняли)

Сергей
09.07.2017
17:06:24
но если в пхп интерфейсы норм работают и есть мулти-implements, то даже норм

Evgeniy
09.07.2017
17:06:34
хзхз rust на этом построен
то что в расте трейт зовется это не тоже самое что и в пхп

там нормальная система типов

и там тоже есть отличия в том что там зовется и чем обычно являтеся

F01134H
09.07.2017
17:07:49
PHP traits == JS mixins

Сергей
09.07.2017
17:07:53
Evgeniy
09.07.2017
17:08:35
да мне там они больше нравятся

и язык rust в целом мне очень нравится

Google
Evgeniy
09.07.2017
17:08:53
но реальность такова что мне платят за работу в пхп

вот например взять java (SE) и php (5 или 7) и попоробывать сравнить объективно, по всем параметрам выигрывает java

Сергей
09.07.2017
17:09:46
Evgeniy
09.07.2017
17:09:55
но нахуярить портотип на php намного быстрей

Сергей
09.07.2017
17:09:56
Evgeniy
09.07.2017
17:10:09
мне тоже
я был бы очень рад если бы раст стал популярней

но реальность такова что гугл двигает go

Сергей
09.07.2017
17:10:22
если сюда добавить ruby (on rails), то все остальные по скорости прототипирования сосут

Evgeniy
09.07.2017
17:10:48
хз мне руби не нравится чисто субьетивно и по синтаксису

я уж лучше боль и страдания в виде многословности java приму

но это имхо, каждому нравится что то свое

Сергей
09.07.2017
17:11:23
ну субъективное, спорить не буду Но рельсы это самое мощное что есть

F01134H
09.07.2017
17:11:36
Сергей
09.07.2017
17:11:50
сам писал Руби знаю плохо, рельсы тоже Но прототип проекта сделал за месяц И зараза он работал

Evgeniy
09.07.2017
17:11:53
где то так

Сергей
09.07.2017
17:12:00
и сейчас)

действительно мощных альтернатив нет

на всё нужно много человекочасов, чтобы ускорить дальнейшую разработку

Андрэ
09.07.2017
17:12:31
а мне за работу в мире жс))
именно js пишешь, или таки какой-нибудь truescript?

Google
Сергей
09.07.2017
17:13:16
именно js пишешь, или таки какой-нибудь truescript?
много разного пишу Прямо сейчас на typescript Есть соседний проект, в который коммичу, он на flow Все личные пишу на чистом жс (es6-7)

Андрэ
09.07.2017
17:14:06
ой, да, typescript имел ввиду. Ну es6-7 тоже ок, да.

Сергей
09.07.2017
17:14:39
Так пишешь, как будто flow - это не чистый js)
неа Тоже куча абстракций сверху) хоть и сильно меньше чем в ts

Котяй Негодяй
09.07.2017
17:55:23
Andrey
09.07.2017
17:55:39
Котяй Негодяй
09.07.2017
18:00:59
Flow не добавляет в язык новых рантайм конструкций. По сути, код без Flow и код с Flow — это одно и то же с точки зрения рантайма. В то же время, Flow добавляет абстрактные языковые конструкции, что позволяет нам утверждать, что это другой язык.

Сергей
09.07.2017
20:55:29
каких абстракций, извини? где ты их нашел?
которые нужны для нормальной типизации

Sergey
09.07.2017
20:56:08
Flow тут выигрывает только за счет того что кое где больше чего умеет. Ну и в целом дальше начинается чистая вкусовщина и религия

которые нужны для нормальной типизации
еще раз. Что ты подразумеваешь под словом "абстракция" и че они там сверху делают

для нормальной типизации нужна нормальная информация о типах в компайл тайм

никаких "абстракций"

Алексей
09.07.2017
21:01:23
Ivan
10.07.2017
09:24:00
ребята, подскажите, использование в юнит тестах shouldBeCalled/shouldNotBeCalled, это где-то хорошо, а где-то плохо

плохо, когда мы проверяем, как работают детали реализации?

а хорошо, когда мы проверяем, правильно ли объект работает с другим?

Google
Ivan
10.07.2017
09:26:42
стоит ли тут разделять понятия "зависимостей" и каких-нибудь "субъектов" действия?

как пример, кэширующий декоратор, зависимость - драйвер кэша, субъект - декорируемый объект

как эти понятия правильно называются?

Aleh
10.07.2017
10:06:07
вопрос тонкий, где кончается реализация и начинается взаимодействие с другими объектами это хороший вопрос

не в тему тестов: http://wiki.c2.com/?EncapsulationIsHierarchical

KPABE
10.07.2017
11:02:43
а как композиция может заменить наследование? есть маленький просто пример?

и агрегация этож похоже на dependency inject

F01134H
10.07.2017
11:04:33
так и есть

а вообще, это две разные вещи

иногда разумно юзать наследование, иногда композицию

а разница банальна вообще

вместо class Test { } class Some extends Test { } юзаешь class Test { } class Some { // тут через DI добавляешь Test }

ну или как то так

Aleh
10.07.2017
11:11:39
а как композиция может заменить наследование? есть маленький просто пример?
лучше покажи пример, где ты не знаешь, как заменить наследование

F01134H
10.07.2017
11:11:51
Существует два подвида этого отношения: если один объект создает другой объект и время жизни "части" зависит от времени жизни целого, то это называется "композиция", если же один объект получает ссылку (указатель) на другой объект в процессе конструирования, то это уже агрегация.

KPABE
10.07.2017
11:12:16
вместо class Test { } class Some extends Test { } юзаешь class Test { } class Some { // тут через DI добавляешь Test }
и как тут могут быть доступны родительские методы?в случае расширения(extends) нам доступны родительские методы в классе дочернем, а в случае композиции нэт

Nik
10.07.2017
11:12:44
Вызываешь методы через объект класса.

Aleh
10.07.2017
11:13:03
class Some { constructor(test: Test) { this.test = test } doSmth() { this.test.doSmth() } }

F01134H
10.07.2017
11:13:03
через DI

Google
KPABE
10.07.2017
11:27:05
https://repl.it/JUrG/8

не совсем пока понимаю в чем суть

Aleh
10.07.2017
11:28:47
я не понимаю пока вопроса

F01134H
10.07.2017
11:32:19
не то что бы вопрос был непонятен, просто он не имеет смысла

ты либо понимаешь, где юзать композицию, а где наследование, либо тебе это пока не нужно

KPABE
10.07.2017
11:36:54
ты либо понимаешь, где юзать композицию, а где наследование, либо тебе это пока не нужно
так не говорят что нужно предпочитать композицию наследованию https://repl.it/JUrG/11

как в первом где композиция вызвать родительский метод?

дочернему объекту вызвать родительский метод

Aleh
10.07.2017
11:38:01
так не говорят что нужно предпочитать композицию наследованию https://repl.it/JUrG/11
только сверху класс Some “расширяет” SomeOne, а снизу SomOne расширяет Som

KPABE
10.07.2017
11:39:14
Aleh
10.07.2017
11:39:44
это чтобы конфликтов не бьыло в проге
стрелки в разные стороны там, в одном случае от some к someone, в другом от somone к som

KPABE
10.07.2017
11:45:04
стрелки в разные стороны там, в одном случае от some к someone, в другом от somone к som
понял. не понял как мне объектом SomeOne вызвать parent_method? говорят не используйте наследование, используйте композицию, значит по логике функциональность должна отсаваться таже

Aleh
10.07.2017
11:46:01
у тебя есть два объекта, ты не знаешь как один может вызывать методы другого объекта?

Nik
10.07.2017
11:46:37
SomeOne.some.parent_method();

А, у тебя классы наоборот

KPABE
10.07.2017
11:50:52
Aleh
10.07.2017
11:51:49
опять ты неправильно вопрос задаешь

забудь про классы, думай про объекты

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