@proRuby

Страница 1482 из 1594
Mike
26.09.2018
13:21:57
а я снова тут и напоминаю обывателям что если есть сеньорчик готовый на релокейт в Севастополь - обсудим. Деньги: 180-250k на руки

Максим
26.09.2018
13:22:08
если книжная полка то поставить в квартиру

если рюкзак то надеть на ребёнка

Google
Vasiliy
26.09.2018
13:22:21
ну потому что руби не про это же

Максим
26.09.2018
13:22:28
ну задача то может быть и про это

Tim
26.09.2018
13:22:40
ахуенно наверное в рубях с DuckTyping думать классами и проверять классы
лолд если у тебя будет аррей после вызова какого-то метода то ты методы книжной полки не сможешь юзануть

при чем тут про что руби

Vasiliy
26.09.2018
13:23:01
часто у тебя задача возвращать элемент определённого типа?

Tim
26.09.2018
13:23:14
ты методы теряешь

и всё остальное тоже

Vasiliy
26.09.2018
13:23:56
ну так проверяй методы, как в любой книжке по рубям сказано с утиной типизацией

нахуя тащить в язык с динамической типизацией вот это всё из явы или приходить и писать статью мол глядите ка как тут

Tim
26.09.2018
13:24:39
и че, я буду делать l = List.new(...) l.reverse.try(:do_something)?

на случай если метод изменит класс

Vasiliy
26.09.2018
13:25:26
ты приведи реальный пример, а не вот ту хуйню что он накалякал

Tim
26.09.2018
13:26:12
динамическая типизация это означает что тебе не надо писать Kukarek<kokoko> kukarek = new Kukarek<kokoko>() И что kukarek может быть объектом другого класса и т.д.

Google
Tim
26.09.2018
13:26:29
а не то, что бабочки порхают и пони радугой срут и не надо тащить все вот это джавовское

реальный пример - я привёл. в List есть метод do_something Ты переворачиваешь список, потом пытаешься юзануть метод do_something, но не тут то было, потому что это уже массив а не List

и этого метода нет

это раз

приколы с to_s и стрингой это два

наследоваться от Array, String, Hash и т.д. только имеет смысл если нужно взять их контракт

Vasiliy
26.09.2018
13:28:21
и это всё хуйня придуманая стивом клабником

Tim
26.09.2018
13:28:24
в абсолютном большинстве случаев это не надо

то есть не надо Name < String

а надо class Name и определить #to_s

Максим
26.09.2018
13:29:20
простите что такое контракт?

Tim
26.09.2018
13:29:27
по-моему это слабый контраргумент

Vasiliy
26.09.2018
13:29:30
ну потому что примеры его, которые он там нафантазировал себе

Tim
26.09.2018
13:29:41
простите что такое контракт?
условно, публичный интерфейс

Максим
26.09.2018
13:29:44
а

спасиб

Vasiliy
26.09.2018
13:29:59
под любую хуйню можно придумать пример который будет показывать что вот оно какое гавно

Tim
26.09.2018
13:30:04
ну вот я тебе реальные примеры привёл где мотыгой по яйцам может это ударить

Google
Vasiliy
26.09.2018
13:30:11
хотя на деле так никто нихуя не делает

Tim
26.09.2018
13:30:59
l.reverse.do_something не сделают?

s.concat 'asd' не сделают?

и главное, нехуй тащить контракт тех классов в свой

если это не SuperArray какой-нибудь

Vasiliy
26.09.2018
13:32:36
l.reverse.do_something не сделают?
ну тут ты можешь проверить доступность метода, и в том же наследовании переопределить метод reverse(что собственно типок из статьи и делает в предложении решения)

Tim
26.09.2018
13:34:00
то, что сменится класс вообще не очевидно если проверять после каждого метода "а отвечает ли результат на такойто метод", то это чокнуться можно. и код засрётся моментально

Tim
26.09.2018
13:35:18
ну а если ты переопределяешь reverse, то что тебе мешает не наследоваться тупо от Array, а определить метод reverse (и делегировать его внутреннему аррею), который будет изначально твой класс возвращать?

я и не говорил что это правильно

что то хуйня что это, но проверка на респонс это ещё большая параша чем nil

Tim
26.09.2018
13:37:25
ну у тебя будет массив инкапсулировать. эти ахуилиард методов на него и делегируй и возвращай что он возвращает

ну не совсем так, там хитрость небольшая есть, но всё же

и если тебе извне нужно дёргать ахуилиард методов (в тем более от массива), то скорее всего у тебя класс слишком тупой

ну или жирный

ладно, хз, я погорячился немного

Vasiliy
26.09.2018
13:41:42
ну или например делать как-то так универсально gem_dir = methods.first.is_a?(String) ? "gem_dir" : :gem_dir

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

Dima
26.09.2018
18:32:12


Google
Dima
26.09.2018
18:32:26
https://app.codesignal.com/interview-practice/task/dYCH8sdnxGf5aGkez/description

Roman
26.09.2018
19:35:17
тут надо не регулярки, а конечные автоматы

верней я не удивлюсь, если это можно решить регуляркой, но не эффективно будет и сложно

v
26.09.2018
19:35:53
Dima
26.09.2018
19:36:25
Roman
26.09.2018
19:36:50
а это не одно и то же?
ну не совсем какбе

Dima
26.09.2018
19:37:13
динамическое программирвоание. Парсим строку. там где кватратные скобочки, переход на новый рекурсвный вызов.

Обход дерева в глубину DFS

Roman
26.09.2018
19:37:42
движок регулярных выражений тоже построен на конечных автоматах, но это не одно и то же

Roman
26.09.2018
19:38:43
скорей всего да

ты же подстроку передаешь, а не всю

по одному участку строки проходит только одна вложенность

там же они могут быть вложенными одни в другие

Dima
26.09.2018
19:41:30
ну подожди, а закрывающие скобки ты как высчитываешь?
при помощи счетчика вложенности level = 0 str.each{|x| if ?[ == x level +=1 end if ?]==x level -= 1 break if 0 == level end }

Roman
26.09.2018
19:45:07
ну это практически уже автоматы

проще полностью на них и избавиться от рекурсии

Dima
26.09.2018
19:46:12
ну это практически уже автоматы
а как эту задачу к автомату притянуть. К дереву - это понятно. А вот к а втомату не ясно как

Google
Roman
26.09.2018
19:47:52
в смысле как? идешь от первого символа к последнему, когда встречаешь управляющий символ - идешь дальше и запоминаешь в еще одну строку. когда встречаешь закрывающий управляющий символ - множишь запомненное и добавляешь к output

Roman
26.09.2018
19:48:56
я такой код часто вижу в парсерах

читать их невозможно

я такой код только писать могу :)

v
26.09.2018
19:59:31
есть анекдот. Заканчивается следующим образом "Шерлок курить так и не бросил. А вот Ватсон без трубки уже не мог"

Alex
26.09.2018
20:08:09
ммм арчик.

Dima
27.09.2018
04:38:26
Почему Arch? На сколько мне известно это на столько облегченный дистрибутив где всё нужно настраивать саомстоятельно в отличии от Ubuntu или Mint с Mangaro. По мимо основной работы придется еще углубленно разбераться в устройстве операционной системы.

ShadoWalkeR
27.09.2018
04:40:31
Они все простые. Пока чтото не сломается ?

Dima
27.09.2018
04:43:17
Для разобраться это лфс или гента. Арч простой как три копейки
В проекте Arch хорошая wiki там все изложенно исчерпывающе. В любом случает таке OS требуют планомерного изучения архитектуры. Полезно, но ресурсоемко.

Dima
27.09.2018
04:46:24
Раньше лучшая вики была у генты
Они wiki убрали в этом проекте?

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