@proRuby

Страница 344 из 1594
Dima
23.12.2016
10:14:12
ну или джава
или TypeScript челвоек использует.

Igor
23.12.2016
10:14:18
Dima
23.12.2016
10:14:19
что очень полезно

Alex
23.12.2016
10:14:31
при том что я не пишу на пхп и java
никогда не поздно начать

Google
Igor
23.12.2016
10:14:39
вот в рубях не хватает интерефейсов очень сильно

по мне так

abc
23.12.2016
10:14:50
https://bugs.ruby-lang.org/issues/9999

Alex
23.12.2016
10:14:52
Наверное соглашусь.

Dima
23.12.2016
10:14:58
вот в рубях не хватает интерефейсов очень сильно
дак ведь duck typing есть набор метовд и уже интерфейс.

или я чего-то не понимаю?

Igor
23.12.2016
10:15:14
мне нужно удостоверится на уровне языка что класс реализует все методы

Dima
23.12.2016
10:15:38
тут утко-типизация не причем
как не причем? интерфейс указывает нам набор методов класа, в c++ он называется абстрактный класс

Alex
23.12.2016
10:15:42
У тебя есть интерфейс который класс должен соблюдать

Igor
23.12.2016
10:15:43
сейчас это нужно делать тщательным тестированием

Alex
23.12.2016
10:15:56
нужно убедиться что у тебя те минимальные методы которые нужны в твоем классе реализованы.

Google
Alex
23.12.2016
10:16:12
Это можно и сейчас сделать но не полностью и с костылями.

Igor
23.12.2016
10:16:17
именно

Alex
23.12.2016
10:16:26
плюс аргументы не проверишь

возможно и можно, но я лично не знаю как.

Igor
23.12.2016
10:16:45
можно

Alex
23.12.2016
10:16:51
Я вот не против интерфейсов был бы, удобная абстракция имхо.

Alexander
23.12.2016
10:16:59
стоп-стоп

Igor
23.12.2016
10:17:00
как минимум сравнив arity

Alexander
23.12.2016
10:17:38
я много где видел интерфейсы, но очень интересно: зачем они в руби? т.е. я услышал доводы, но появиляется более конкретный вопрос: чем не хватает классов и модулей?

Alex
23.12.2016
10:17:53
т.е ты не понимаешь плюшек интерфейсов?

Alexander
23.12.2016
10:17:56
наследуешься или инклюдишь «интерфейс» и is_a? даёт тебе гарантию, есть он или нет

Alex
23.12.2016
10:18:11
def send_message(MessageType: message)

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

Alexander
23.12.2016
10:18:30
def send_message(MessageType: message)
это типы аргументов, а не интерфейсы

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

Igor
23.12.2016
10:18:37
def send_message(MessageType: message)
не надо так делать )

Alex
23.12.2016
10:18:38
MessageType это интерфейс

твой класс может от него мм наследоваться и реализовать все методы которые требует интерфейс

Nikita
23.12.2016
10:19:08
это типы аргументов, а не интерфейсы
здесь всё, что имплементит этот интерфейс подойдет

Google
Alex
23.12.2016
10:19:09
Alexander
23.12.2016
10:19:10
MessageType это интерфейс
return unless message.is_a? MessageType # или raise

Максим
23.12.2016
10:19:15
ым

что нефертити была царицей, а не секс символом

бля

не туда

Igor
23.12.2016
10:19:22
MessageType это интерфейс
это надо делать через паттерн-матчинг

Максим
23.12.2016
10:19:23
сори

Igor
23.12.2016
10:19:35
он кстати в рубях тоже убогий

Alex
23.12.2016
10:19:35
это надо делать через паттерн-матчинг
тогда не нужна поддержка на уровне языка

Alexander
23.12.2016
10:19:50
твой класс может от него мм наследоваться и реализовать все методы которые требует интерфейс
будет так работать с is_a? и с промежуточными классами, и с модулями

Alex
23.12.2016
10:19:55
это надо делать через паттерн-матчинг
приведи пример пожалуйста причем здесь паттерн матчинг, я просто не очень понимаю.

Igor
23.12.2016
10:19:56
тогда не нужна поддержка на уровне языка
мне нужно просто удостоверится что все классы в рамках стратегии реализуют одинаковый интерфейс

abc
23.12.2016
10:20:18
мац хочет сделать soft typing, чтобы вроде бы и как duck typing и static. в обще мечты

Alex
23.12.2016
10:20:19
ты это уже и сейчас можешь проверить через is_a?

Igor
23.12.2016
10:20:19
и я бы мог делать object === Interface

Alex
23.12.2016
10:20:35
ты это уже и сейчас можешь проверить через is_a?

Igor
23.12.2016
10:20:46
сейчас это костыльно

Alex
23.12.2016
10:20:49
он вроде родителей проверяет

Alexander
23.12.2016
10:20:57
сейчас это костыльно
как посмотреть. ёмко просто, не?

Google
Igor
23.12.2016
10:21:01
мне нужна валидация методов

Alexander
23.12.2016
10:21:03
тип одна строчка, а не символ + слово

Alex
23.12.2016
10:21:08
Ну так чтобы не костыльно было тебе надо прям в аргументе указать какой у него интерфейс

Igor
23.12.2016
10:21:12
плюс самая главная проблема - когда делать валидацию

Alexander
23.12.2016
10:21:14
это скорее будет сахаром

Igor
23.12.2016
10:21:19
при инстанцировании объекта?

Alexander
23.12.2016
10:21:19
и это не совсем интерфейсы

интерфейсы — это отдельные типы данных

как я понимаю

Admin
ERROR: S client not available

Igor
23.12.2016
10:21:38
вот в скале круто сделано

но она компилируемая

Alex
23.12.2016
10:21:42
при инстанцировании объекта?
не важно. Любой метод который принимает аргумент с интерфейсом.

Alexander
23.12.2016
10:21:45
типа класс, но не класс. и подобное уже вполне покрывается в руби модулями

abc
23.12.2016
10:21:56
вот в скале круто сделано
скала ужасна более чем полностью

abc
23.12.2016
10:22:02
ее уже переписывают

Igor
23.12.2016
10:22:25
скала ужасна более чем полностью
на вкус и цвет все фломастеры разные

Aldar
23.12.2016
10:22:37
в эликсире протоколы

Igor
23.12.2016
10:22:41
после жабы - просто праздник

Google
Aldar
23.12.2016
10:22:46
но там и классов нет

Alex
23.12.2016
10:22:54
Aldar
23.12.2016
10:23:03
только структуры

Igor
23.12.2016
10:23:07
например?
полиморфные методы )

аля жаба

Ivan
23.12.2016
10:23:20
после жабы - просто праздник
лучше их не сравнивать функциональный ЯП и объектно-ориентированный

Alex
23.12.2016
10:23:20
полиморфные методы? это что?

abc
23.12.2016
10:23:38
dotty это по сути исправленная scala будет

Alex
23.12.2016
10:23:51
языков развелось :D

Igor
23.12.2016
10:23:53
и функциональщина ортогональное понятие к ооп

у тебя лисп тоже объектно-ориентированный

и функциональный одновременно

ты имел ввиду императивный язык?

Ivan
23.12.2016
10:24:37
есть чистые функциональные

Igor
23.12.2016
10:24:56
ну так на в 8 жабе тоже есть немного функциональщины

Ivan
23.12.2016
10:25:16
в js тоже, но он же не функциональный)

Igor
23.12.2016
10:25:30
в руби тоже, и он тоже не функциональный

Ivan
23.12.2016
10:25:54
Ладно, согласен, ни о чем спор))

Просто видел, как в scala приходят java программисты и начинают строить то, что в java было

При этом смешивая с функциональщиной

ужасно выглядит

Страница 344 из 1594