@proRuby

Страница 355 из 1594
Alexander
27.12.2016
12:07:15
один гем патчит класс в одном файле — у тебя весь проект пропатчен

Alex
27.12.2016
12:07:20
…в обёртку свою
нет не проще

во первых лишняя нагрузка

Alexander
27.12.2016
12:07:27
если два гема по-разному патчат — начинается карусель

Google
Alex
27.12.2016
12:07:31
во вторых каждый раз оборачивать неудобно и смысла нет

когда все что тебе нужно расширить уже существующие классы чуть чуть

а не городить абстракции.

Расширил стринг чтобы он фильтровал символы и забыл.

Alexander
27.12.2016
12:07:55
а не городить абстракции.
абстракции зачастую полезны. но ок

Alex
27.12.2016
12:08:06
абстракции зачастую наоборот вредны

Ilya
27.12.2016
12:08:13
метод со своим названием заманкипатчить и все. зачем придумывать велосипед

Alexander
27.12.2016
12:08:21
абстракции зачастую наоборот вредны
так говорят те, кто не умеет в абстракции, по моему опыту

можно конечно наплести 100500 уровней и плеваться, а можно 2–3 необходимых и всё будет замечательно

Alex
27.12.2016
12:08:44
засунул абстракцию парсера в абстракцию обработчика парсера чтобы работать с абстракцией по форматированию документов, ага.

Ilya
27.12.2016
12:08:54
начинается)

Alex
27.12.2016
12:08:59
так говорят те, кто не умеет в абстракции, по моему опыту
Так говорят те кто знают цену абстракциями и не суют их во все дыры.

Лучший код - простой код.

Google
Alex
27.12.2016
12:09:22
абстракции нужны для контролирования сложности, и только.

Alexander
27.12.2016
12:09:24
метод со своим названием заманкипатчить и все. зачем придумывать велосипед
1. может совпадать с другим кодом 2. может появиться в core не стоит, не сильно лучше

Alex
27.12.2016
12:09:44
Ilya
27.12.2016
12:09:45
проверить, что такого метода нет, не судьба?)

Alex
27.12.2016
12:10:01
зачем расширять классы глобально?

чтобы потом кто то искал че это за метод в репле?

Alexander
27.12.2016
12:10:10
проверить, что такого метода нет, не судьба?)
усложняем код! а если есть, но поведение не то?

Лучший код - простой код.
чаще код проще с необходимым кол-вом абстракций

Alex
27.12.2016
12:10:46
как же они контролируют?
Они упрощают тебе сложные задачи, чтобы твой мозг мог легко этим оперировать

абстракции созданы для упрощения решения задач человеческим мозгом.

Ilya
27.12.2016
12:11:14
лол, а как вы тестируете это все? т.е. у вас будет один и тот же код по-разному вести себя в рамках одного проекта))

Alex
27.12.2016
12:11:15
чаще код проще с необходимым кол-вом абстракций
Код не проще если ты засунул туда три класса для парсинга одной строки

Alexander
27.12.2016
12:11:19
я не соглашусь, но мне сложно спорить сейчас

Ilya
27.12.2016
12:11:34
да

вот пришел новый разраб

на проект

и охуел)

Alex
27.12.2016
12:11:52
легко, подаешь классу какую то штуку которая дернет этот рефайнемент

Google
I
27.12.2016
12:12:05
так унижайте его, гнобите, сломайте его

Alex
27.12.2016
12:12:05
какая тебе разница какая у абстракции реализация если она делает то что нужно?

Alexander
27.12.2016
12:12:09
Код не проще если ты засунул туда три класса для парсинга одной строки
задай вопрос: это необходимое кол-во абстракций? может, можно меньше? или другие?

Ilya
27.12.2016
12:12:11
потому что 2 класса ведут себя по-разному

Alex
27.12.2016
12:12:16
и охуел)
увидел USING сверху класса и сразу все понял

в отличии от манкипатча который черти где в приложении может находиться

Alexander
27.12.2016
12:12:34
и охуел)
пусть идёт учит refinements

Alexander
27.12.2016
12:12:43
они круты. увидел using — знает поведение

Или без них?
без них код усложняется часто

Alex
27.12.2016
12:13:17
зачастую как раз абстракции пихают во всех дыры там где можно было обойтись парой методов.

Alex
27.12.2016
12:14:00
так суть в том что чаще чем меньше абстракций, тем легче поддерживать код и меньше уходит на его написание.

Alexander
27.12.2016
12:14:14
у меня примерно такое правило: если одинаковый аргумент (или даже несколько) тащится в 2–3 метода (один вызывает другой) — тут стоит подумать о классе

Alex
27.12.2016
12:14:27
преждевременная оптимизация

Alexander
27.12.2016
12:14:33
преждевременная оптимизация
а вот хер знает, что значит преждевременная?

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

Alex
27.12.2016
12:15:23
http://sam-koblenski.blogspot.ru/2014/07/the-cost-of-abstraction.html

Alexander
27.12.2016
12:15:32
± 5–10 LOC, вот же накладка

Google
Alex
27.12.2016
12:15:48
LOC вообще бесполезная величина

Alexander
27.12.2016
12:16:22
LOC вообще бесполезная величина
ну я просто показываю наглядно, что если даже «преждевременная» (относительно чего?), то ненакладная

Alex
27.12.2016
12:16:39
она накладная для тебя, она накладная для всех кто будет потом читать твой код

она накладная если один из методов изменит сови аргументы

Alexander
27.12.2016
12:16:50
омг ?

ты просто не смог как будто

Alex
27.12.2016
12:17:04
это цена абстракции, если она здорово экономит то нужна, иначе нет.

Alexander
27.12.2016
12:17:25
это цена абстракции, если она здорово экономит то нужна, иначе нет.
как «преждевременно» понять экономию? экономию чего?

ты недоговариваешь, даже не формулируешь толком мысли свои

Alex
27.12.2016
12:17:41
Экономию времени разработчика

Admin
ERROR: S client not available

Alexander
27.12.2016
12:17:57
Экономию времени разработчика
так. right now или sometime else?

Alex
27.12.2016
12:18:06
Оба случая.

Alexander
27.12.2016
12:18:14
второй ты как оценишь?

Alex
27.12.2016
12:18:18
Не, если ты пишешь прототип то там совсем другие правила.

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

Alexander
27.12.2016
12:18:31
ты даже вряд ли можешь дать гарантию, что вернёшься к этому куску кода

Alex
27.12.2016
12:18:38
дальше попросишь его написать что он думает написано в том классе который ты юзаешь

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

Дальше решаешь нужно оно тебе здесь или нет.

Google
Alex
27.12.2016
12:19:26
Один фиг не угадаешь.

Alexander
27.12.2016
12:21:33
так, стоп. вот пример достаточно неплохой. нужна была небольшая либа (или метод), которая принимала массив полигонов в виде строк (в строке через запятую точки из двух чисел) и разбивала полигон на два в случае его пересечения 180° долготы (вроде) как думаешь, сколько классов оптимально? 1?

Alex
27.12.2016
12:22:08
сколько классов оптимально? может тебе еще и реализацию написать?

Alexander
27.12.2016
12:22:20
она есть уже, спасибо

Alex
27.12.2016
12:22:26
вот именно

библиотеку не ты поддерживаешь

Alexander
27.12.2016
12:22:38
не «вот именно», ты не ответил на вопрос

Alex
27.12.2016
12:22:43
у библиотеки как правило свой автор со своим тестовым покрытием

Alexander
27.12.2016
12:22:43
я поддерживаю

Alex
27.12.2016
12:22:46
Твой вопрос не имеет смысла.

Alexander
27.12.2016
12:22:50
имеет

Alex
27.12.2016
12:23:03
Твой вопрос не имеет смысла, это как спрашивать сколько строчек кода там оптимально

а вопросы такого рода сначала решаются потом дается ответ.

Alexander
27.12.2016
12:23:36
сложно оценить абстракции, ок.

я почему-то сразу накидываю в голове логическое решение и разбиваю на сущности

Alex
27.12.2016
12:24:14
Абстракция экономит время разработчиков? относительно поддержки абстракции и траты времени на ее понимание?

Alexander
27.12.2016
12:24:18
жаль, что не все так делают. занимает несколько секунд, максимум минут

Ilya
27.12.2016
12:24:19
смотришь такой проект. о, строчка, интересно, что она значит? так, абстракция. но ничего, сча перейдем в этот класс и посмотрим, что там. хммм, еще одна абстранция. видимо, писал крутой программист. Сча посмотрим че там.... ..... БЛЯТЬ 20 ВКЛАДОК ОТКРЫЛ В САБЛАЙМЕ ОТКУДА Я ВООБЩЕ СЮДА ПРИШЕЛ????

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