
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

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
я не соглашусь, но мне сложно спорить сейчас

Alex
27.12.2016
12:11:31

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

Alex
27.12.2016
12:12:39

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

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

Alexander
27.12.2016
12:13:39

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

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

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 ВКЛАДОК ОТКРЫЛ В САБЛАЙМЕ ОТКУДА Я ВООБЩЕ СЮДА ПРИШЕЛ????

Alex
27.12.2016
12:24:21
Значит она скорее всего нужна, иначе нет.
Городят абстракции где нужно и где не нужно
Давайте все засунем в сервисы, ага.