@rubylang

Страница 223 из 1684
Roman
21.07.2016
11:42:11
qq all

Eugene
21.07.2016
11:44:33
привет

помню такое приветствие последнее было гдет года 3 назад, в кс так здоровались

Антон
21.07.2016
11:45:58
git grep -E '(if|unless) [a-zA-Z]* = ' | wc -l 4

Google
Антон
21.07.2016
11:46:43
но это не потому что рубокоп а потому что return unless

а еще if = мутирует часто - тестировать трудно

Aldar
21.07.2016
11:51:35
за assigment в кондишенах надо бить ногами
почему же, в сишечке часто while(*p++) или что-то подобное

Иван
21.07.2016
11:56:34
всем привет, тут недавно был разговор на тему solid и руби ну и там было сказано что не надо придерживаться d так как в рубях нет абстрактных классов. А я тут книжку по рубям почитываю и нашел в ней пример абстрактного классса в руби - http://pastebin.com/SKAChXbG

так это в рубях они какие то плохие не подходящие под принцип Dependency Invertion

или как это понимать?

Антон
21.07.2016
11:57:40
кумиров себе не нужно создавать и все не получается D - забить

Aldar
21.07.2016
12:01:44
окей, создам класс, и во всех методах буду исключения кидать - дескать сделай реализацию, вот и будет рубишный абстрактный классс

но по сути это обычный рубишный класс

Антон
21.07.2016
12:02:43
NotImplemented?

Google
ojab
21.07.2016
12:03:20
инстатсы абстрактного класса, м-м-м

хотя new тоже можно оверрайднуть, да

Stanislav
21.07.2016
12:04:08
а зачем вам абстрактные классы в руби то?

ojab
21.07.2016
12:04:36
присоединяюсь к вопросу

Rafkat
21.07.2016
12:05:18
патамушта в пхп есть, а в руби нету

Антон
21.07.2016
12:06:45
пусть приводит, в пхп вообще нет ооп

Иван
21.07.2016
12:07:09
дак я вообще начинающий я не смогу сейчас ответить почему и зачем, просто недавно была эта тема в чате и сейчас попалась в книжке, решил уточнить

Антон
21.07.2016
12:07:33
вброс, но в каждой шутке есть доля шутки

Aldar
21.07.2016
12:10:38
хотя new тоже можно оверрайднуть, да
да, в руби делай то хочешь

Nikolay
21.07.2016
12:11:33
return File.exist? path

идиоты0с

ojab
21.07.2016
12:12:34
а в руби нет функций и живут же как-то

Konstantin
21.07.2016
12:13:39
а вот и есть

авот отстутствие интерфейсов в рубях или аналогов это зашквар полный

Aldar
21.07.2016
12:14:01
в хаскеле есть штука помощнее - type class

Konstantin
21.07.2016
12:14:25
потому что ты вообще в либе не можешь заставить того, кто ее юзает поддержать твой интерфейс

в итоге все обмазываются метапрограммированием и всякими multi_json

и патчат Object

поубивал бы

https://github.com/ruby-grape/grape-entity/blob/v0.4.8/lib/grape_entity.rb#L2

Google
Konstantin
21.07.2016
12:15:38
как не№й делать

я про интерфейсы

Иван
21.07.2016
12:16:25
интерфейс это что то типо абстрактного класса у которого не может быть объектов класса?

Konstantin
21.07.2016
12:16:43
вон выше дали пример с хаскелем

Aldar
21.07.2016
12:16:50
я про интерфейсы
ну так создай класс, где new выкидывает исключения, и методы тоже

можешь считать что это абстрактный класс

или интерфейс

правда можно будет отнаследоваться только от 1 интерфейса)

Konstantin
21.07.2016
12:19:27
@hardliner ок, как мне заимплементить на Array #to_json таким образом?

Aldar
21.07.2016
12:21:30
в лиспе

Konstantin
21.07.2016
12:21:42
про ооп я ничего не могу сказать

саму идею ооп уже извратили так

Konstantin
21.07.2016
12:21:52
и трактуют как хотят

что я даже не уверен, что ты вкладываешь в это слово

ojab
21.07.2016
12:22:23
в лиспе
в каком из и почему это функциональный ЯП?

Konstantin
21.07.2016
12:22:37
наследование, полиморфизм инкапсуляция? объекты? посылку сообщений?

вот erlang более ооп чем ваши эти руби кек

Admin
ERROR: S client not available

Aldar
21.07.2016
12:24:34
функциональный язык это язык, поддерживающий лямбда калькулус

Google
Aldar
21.07.2016
12:24:51
где есть функция это объект первого класса

js - функциональный язык

Антон
21.07.2016
12:26:21
а можно я опять вброшу: зачем js-у ооп, зачем php ооп, если это функциональные языки

Konstantin
21.07.2016
12:26:29
руби тоже функциональный )

дисфункциональный

Иван
21.07.2016
12:27:01
я походу своим вопросом какую то больную тему затронул, извиняюсь

Aldar
21.07.2016
12:27:34
а можно я опять вброшу: зачем js-у ооп, зачем php ооп, если это функциональные языки
язык может поддерживать несколько парадигм программирования

ojab
21.07.2016
12:27:40
руби тоже функциональный )
но там же вообще нет функций

Aldar
21.07.2016
12:28:08
есть проки и лямбды

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

Nikolay
21.07.2016
12:30:24
я хнаю несколько мега годных програмеров на РНР и Питоне

Pavel
21.07.2016
12:30:31
Очень очень сильно. Код с ними более наглядный и статичный, легче навигация, леге понять что делает код и в каких границах.

Легче отладка, легче статический анализ, больше контроля ошибок.

Nikolay
21.07.2016
12:31:01
так вот, когда ты знаешь оренительно язык и его плюсы минусы и особенности с самых его первых версий, ты сделаешь конфетку

Aldar
21.07.2016
12:32:32
Как насчёт модулей, методы которых только и делают что бросают исключения?

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

Pavel
21.07.2016
12:36:27
1) Отладка проще, т.к. в процессе ты сразу видишь по тайпхинтам, какие объекты куда передаются и какую структуру имеют. 2) Статический анализ проще т.к. анализатор сразу видит объект какого интерфейса передается в аргументы метода, и может много выводов из этого сделать 3) Больше контроля ошибок, так как из-за тайпхинтинга можно отловить практически все ошибки, когда в аргументы передается что-то не того класса или null например.

ojab
21.07.2016
12:37:20
статический анализ в рубях посасывает, да

Aldar
21.07.2016
12:37:29
лол, го тогда на хаскель

там по сигнатуре функци можно делать вывод о том есть ли сайд эффекты при её выполнении

Google
Антон
21.07.2016
12:38:25
статический анализ в рубях посасывает, да
имхо, а он не нужен в рубях в том виде, в котором он бы не посасывал

ojab
21.07.2016
12:38:47
имхо, а он не нужен в рубях в том виде, в котором он бы не посасывал
ну тот же mutant взять, он мутации на send проводит не зная типов

это отсос

Aldar
21.07.2016
12:39:36
таким образом можно понять делает ли тот или иной код операции ввода вывода даже не смотря его реализацию

Антон
21.07.2016
12:39:40
ну тот же mutant взять, он мутации на send проводит не зная типов
не вижу проблемы а где-то еще есть что-то подобное мутанту?

Страница 223 из 1684