@oop_ru

Страница 157 из 785
Igor
21.03.2017
10:09:03
Paul
21.03.2017
10:09:08
Развиваешься только когда встречаешься с чем-то новым

В си-подобных имхо всё это гораздо удобнее, хотя питон и считается простым языком
Что удобнее? Ты объяснить можешь в чём у тебя претензия?

Google
Ivan
21.03.2017
10:11:00
а кто то не переваривает си. а только жс

Aleh
21.03.2017
10:11:20
А какие в сишке интерфейсы? О.о

Ivan
21.03.2017
10:11:31
я с руби тоже толго мучался

Paul
21.03.2017
10:11:43
Ладно, очередной разговор ни о чём

Ilya
21.03.2017
10:12:18
Что удобнее? Ты объяснить можешь в чём у тебя претензия?
Так, глобально, нет. Но чуть ли не каждую штуку сложнее print() которую я привык делать на яве/пхп приходится делать совершенно по другому, как будто изучаю программирование с нуля.

Это не претензия, просто несколько неприятно ощущать себя снова тупым новичком

Igor
21.03.2017
10:14:56
Зачем делать синглтоны :/
Вот хороший вопрос я тоже иногда об этом думаю. На вскидку мне приходит идея с логированием и общими настройками для всего приложения.

Paul
21.03.2017
10:15:32
В самом приложении регистрируется уже конкретный логгер

Sergey
21.03.2017
10:19:15
если нужен синглтон значит что-то делаешь не так

Google
tony
21.03.2017
10:31:22
Синглтон нужен, кто бы чего не говорил. Для того же хранения неких настроек в небольших приложениях.

Вы конечно палками сейчас будете кидать и бить, но всё же)

Vlad
21.03.2017
10:33:53
Я пропустил, чем плох синглтон?

tony
21.03.2017
10:39:17
Ну как сказать плох. Просто его применять необходимо в нужном месте в нужное время.

Vlad
21.03.2017
10:43:04
Не понял, какая связь между модулем и синглтоном?

Paul
21.03.2017
10:44:01
Если тебе нужен синглтон, то на самом деле тебе нужен модуль

Vlad
21.03.2017
10:44:14
Модуль же про инкапсуляцию, а синглтон про то, что всего один экземпляр. И уж какой интерфейс этот синглтон выставляет - наплевать. Скрыть в модуле единое хранилище - да, оно будет похоже на синглтон, но все равно про другое паттерн...

Посыл понял

Paul
21.03.2017
10:44:41
Эм. Чтоа

Ты с синглтоном общаешься через его интерфейс, как и с модулем

Ты рассчитываешь на то, что это единый объект. Как и с модулем

Хер ты от него унаследуешься, лол. Как и с модулем

Vlad
21.03.2017
10:47:11
Я о том, что концептуально паттерны про разное, хотя и с подобной реализацией.

Paul
21.03.2017
10:47:29
Модуль не паттерн, а механизм языка

И там где его нет и нужны синглтоны (java, если что)

Vlad
21.03.2017
10:48:26
А, вот о чем речь.

Aleh
21.03.2017
11:21:21
Ну в общем да, синглтон эт костылек такой

Igor
21.03.2017
11:26:22
Зачем это делать синглтонами?
А почему нет? Эти вещи точно нужны в 1 единственном экземпляре причем они могут иметь свой внутренний стейт который может меняться в процессе работы приложения.

Google
Aleh
21.03.2017
11:33:54
И еще лучше, пускай от них мало кто зависит

Чем сложнее к ним достучаться тем лучше

Igor
21.03.2017
11:35:00
Чем сложнее к ним достучаться тем лучше
чем сложнее достучаться до системы логирования тем лучше?

Aleh
21.03.2017
11:35:12
Да

И до конфигов

Igor
21.03.2017
11:36:50
я хотелбы покрыть логированием максимум кода поскольку логи очень сильно могут помочь при возникновении проблемы к примеру гдето далеко у клиента

Sergey
21.03.2017
11:38:09
Сервислокатор - форма DI

Вот его и надо юзать, вместо древнего стандартного синглтона

Aleh
21.03.2017
11:40:30
Сервис локатор это форма IoC

Sergey
21.03.2017
11:40:46
одно и тоже

Aleh
21.03.2017
11:41:07
Думаю, что плохой

Sergey
21.03.2017
11:41:16
Само собой не захордкоженый локатор, а нормальный гибкий локатор - для высокопроизводительных приложений не подходит

Igor
21.03.2017
11:42:10
Если передовать локатор в виде параметра конструктора оно смотрится както не очень

Sergey
21.03.2017
11:42:34
не обязательно передавать

Aleh
21.03.2017
11:42:46
Передавайте сразу нужнве зависимости, зачем локатор-то?

Sergey
21.03.2017
11:42:59
просто юзай как древний синглтон его

Google
Igor
21.03.2017
11:43:23
Тогда он от сингелтона не будет отличаться ))

Sergey
21.03.2017
11:47:01
будет за счет DI функционала

Igor
21.03.2017
11:55:58
https://ideone.com/obc4fz

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

Aleh
21.03.2017
11:57:54
Если у вас от чего-то зависит любой класс в системе, то вы проиграли)

Igor
21.03.2017
12:13:40
Передавайте сразу нужнве зависимости, зачем локатор-то?
В таком случае я буду вынужден пробрасывать указатели на класс логирования по всему стеку вызовов. Что усложнит как написание так и понимание кода.

Aleh
21.03.2017
12:18:28
так я ж и говорю, что не надо пробрасывать, не надо каждому классу знать про логирование

Igor
21.03.2017
12:27:15
так я ж и говорю, что не надо пробрасывать, не надо каждому классу знать про логирование
не могли бы вы кодом прокомментировать свою позицию. К сожелению пока у меня сложилось впечатление что предлагаеться подобный подход https://ideone.com/t9DISm . Думаю тут я заблуждаюсь и просто неверно вас понял.

Admin
ERROR: S client not available

Aleh
21.03.2017
12:30:23
в контексте питона решение супер простое - модули, а вообще https://gist.github.com/mkusher/97f6ff29f73b536c5b7f31c6a3f407c2 ни B, ни C не знают ни про какой log и знать про него не должны

Paul
21.03.2017
12:30:51
так я ж и говорю, что не надо пробрасывать, не надо каждому классу знать про логирование
Логгер доступен каждому, это нормально, включая third party модули. И уже в конечном приложении определяется кто и как логируется конкреным логгером (каким-нибудь env-специфичным для разработки и стримовым в файл для прода). Пробрасывать его не надо, ибо к логике работы модуля он отношения не имеет

Aleh
21.03.2017
12:32:54
есть декораторы, которые гоняют домен и могут логировать вокруг вызова, есть эффекты и евенты, на основе которых может быть лог

Paul
21.03.2017
12:33:43
Aleh
21.03.2017
12:33:48
пробрасывать не надо, если есть такая возможность и надо, если такой возможности нет

есть модули - не надо, нет модулей - надо)

Логирование это не какая-то особая прерогатива
такая же особая, как рендерить хтмл

Paul
21.03.2017
12:34:40
Рендерить хтмл это часть бизнес-процесса

И код описывает бизнес-логику

Aleh
21.03.2017
12:34:54
которая не находится среди домена

Google
Aleh
21.03.2017
12:34:58
а находится где-то в ui

Paul
21.03.2017
12:35:01
Логирование это средство инспектирования и к задаче отношения не имеет

а находится где-то в ui
Это конечная цель.

Aleh
21.03.2017
12:35:39
может да, может нет

Paul
21.03.2017
12:35:42
То, что в логи в итоге будет попадать только нужные нам модули это понятно

Aleh
21.03.2017
12:36:43
окей, возьмем хаскель, где у нас есть что-нибудь хорошее, типа вычисления скидки, как ты будешь туда логи прокидывать?

а главное зачем?

а если мы хотим из одних модулей писать логи в базу с транзакциями, а в другом в stdout?

Paul
21.03.2017
12:38:36
Как бы есть подход и для чистых языков: когда возвращается всегда тип аля Result<T>, который на самом деле пара результат и строка (сообщене) и протаскивается через систему.

Вот только одна тонкость

Это нахуй не нужно никому

И знаешь почему?

Aleh
21.03.2017
12:39:24
ну конкретно с логами был бы Log a или Writer a String

Paul
21.03.2017
12:39:52
Поэтому хаскель и не станет мейнстримом

Aleh
21.03.2017
12:40:08
потому что нельзя логи пропихнуть туда, где им не место?)

Paul
21.03.2017
12:40:21
Потому что код должен выполнять конкретную бизнес задачу, либо быть утилитарным для кода, который будет выполнять бизнес задачу. И код это должен быстро писаться и быстро читаться. А для этого он должен быстро дебажиться. А для этого он должен быть обложен логированием, ассертами и так далее

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

Sergey
21.03.2017
12:41:43
а еще всякие штуки типа AOP профайлинга

Paul
21.03.2017
12:41:52
Подход с максимальным логгированием всего полезного — отлично зарекомендовавший себя подход, используемый везде, от всяких нод до хромиумов

а еще всякие штуки типа AOP профайлинга
Ну, аспектку не видел, чтобы применяли, хотя идея когда нравилась

Страница 157 из 785