@scala_ru

Страница 126 из 1499
D
27.09.2016
20:56:30
Vladislav
27.09.2016
20:56:49
о, на гомоиконность набрасывают

приятно

раз набрасывают, значит знают

Google
Vladislav
27.09.2016
20:57:17
ну или хотя бы слышали

D
27.09.2016
20:57:30
Я активный открытый гомоиконист!

Vladislav
27.09.2016
20:57:48
а бывают пасивные?

и закрытые?

D
27.09.2016
20:58:03
бывают латентные

Nick
27.09.2016
21:18:20
Что эт за слово такое

Alexey
28.09.2016
01:48:40
можно же не читать 500+ сообщений?

Nikolay
28.09.2016
01:49:35
По вкусу, там мини срач

Alexey
28.09.2016
01:50:22
я пролистал. опять доказывали что типы это хорошо и про то почему скалистам не нравится json как мапа :)

Aleksei
28.09.2016
04:09:16
ну и чота там про груви всплывало

Nick
28.09.2016
06:26:09
Жаль тут Баруха нет, а то бы про груви было больше

Andrey
28.09.2016
06:27:26
достаточно про груви

Alexey
28.09.2016
06:36:37
Более чем?

Google
Alexey
28.09.2016
06:36:51
Без "?"

Andrey
28.09.2016
06:37:11
давайте снова про скалу и церковь

Aleksey
28.09.2016
06:55:47
Ох.

Denis
28.09.2016
07:21:27
Две вещи греют меня в этом мире, горящая церковь и успешная компиляция.

Так?

Aleksei
28.09.2016
07:22:01
(б)Ох!

Anatoly
28.09.2016
07:38:11
* успешное прохождение тестов

Ivan
28.09.2016
07:38:37
которых нет, как и бога ?

Anatoly
28.09.2016
07:38:54
Как же без тестов

Denis
28.09.2016
07:39:24
Ivan
28.09.2016
07:40:10
лет?

Anatoly
28.09.2016
07:41:29
Это если коду нет 18ти

Aleksey
28.09.2016
07:58:01
16ти

Anatoly
28.09.2016
08:08:49
что то мне подсказывает из названия чата, что мы сейчас непринципиальную разницу ищем)

Aleksei
28.09.2016
08:27:50
уровень шуточек опускается до лепрочки =)

Aleksey
28.09.2016
08:30:30
главное что бы до груп из вконтактика не опустился.

хотя конечно шутки про варга и церковь никогда не надоедают.

Viacheslav
28.09.2016
08:43:36
Друзья, важно ваше мнение, вот есть код, хочется ли вам в нём что-то улучшить, что именно, в каком месте, что в текущем коде режет глаз?https://gist.github.com/xnull/bbcf46bfa72e3e403654e3fdf13545e6

Google
Viacheslav
28.09.2016
08:44:34
хочется поговорить за дизайн кода в Фу стиле )

Sovent
28.09.2016
08:45:32
в этом коде мне режет глаз класс Business Logic

Ivan
28.09.2016
08:45:45
val dao = createDaoImpl() dependency injection надо вместо

Viacheslav
28.09.2016
08:46:03
ну это да, само собой

Aleksey
28.09.2016
08:46:30
Публичные методы должны должны иметь указанный тип возврата, как мне кажется. А в остальном код как код.

Viacheslav
28.09.2016
08:46:51
Aleksei
28.09.2016
08:46:58
плюсую за публичные методы

Sovent
28.09.2016
08:47:05
Business Logic - это вообще что с точки зрения предметной области? В ООП важна абстракция, какую сущность олицетворяет класс BusinessLogic?

Viacheslav
28.09.2016
08:47:21
то есть имя класса?

Sovent
28.09.2016
08:47:24
да

Aleksey
28.09.2016
08:47:44
val dao = createDaoImpl() dependency injection надо вместо
В скале до сих пор нет нормального идеоматичного DI. Боль и страдание.

Sovent
28.09.2016
08:47:49
ну неверное имя класса - это чаще всего неверная модель, а не просто лингвистические затыки

Viacheslav
28.09.2016
08:48:00
ну в данном случае я подразумеваю что класс назван как надо, просто для простоты так назвал для примера

Sovent
28.09.2016
08:49:07
ну тогда норм, всё слишком утрировано, непонятно, что оценивать

Viacheslav
28.09.2016
08:49:52
метод foo не хочется его как-то переделать?

да и вообще класс BusinessLogic

Aleksei
28.09.2016
08:50:38
ну кстати волне себе нормальный код. кому то надо не функторы хуюнкторы, а ехать =)

Viacheslav
28.09.2016
08:50:51
))

Ivan
28.09.2016
08:52:09
В скале до сих пор нет нормального идеоматичного DI. Боль и страдание.
Не знаю; у нас play, то что там внутри есть то и используем. и не страдаем :)

Sovent
28.09.2016
08:52:25
метод foo не хочется его как-то переделать?
ну если придираться, то хочется. я, возможно, сильно впрягаю за DDD, но идентификатор сущности Long - не слишком Verbose, стоит выделить для этого отдельный ValueObject. достаёшь некую entity, а публикуешь её в EventBus. нормально только в случае, если твоя Entity это какой-то эвент, но это какой-то странный эвент сорсинг получается

Google
Aleksei
28.09.2016
08:55:32
мы когда то вот так делали https://github.com/unicorndevru/images/tree/master/src/main/scala/images

Sovent
28.09.2016
08:55:43
ну да, и Entity string, та же беда, в OOPStyle не место одержимости примитивами

Viacheslav
28.09.2016
09:00:23
Я к чему это про foo метод разговор завёл, вот в скале есть функторы хуюнкторы и в правильных книжках и мануалах нас учат, что надо пользоваться функциями везде и тогда жизнь наладится. В данном коде, если писать по каноничному в ФП (Фу - можно я буду называть это Фу стилем? ничего не могу с собой поделать), то должно на мой взгляд получиться как-то так (в псевдокоде): val findEntity = findEntityFunction(entityId) val publish = publishMessageFunction(message: String) def foo(entityId) = findEntity then publish ведь так?

Denis
28.09.2016
09:09:00
какой тип у findEntityFunction?

ну добавлять Function к названию функции это redundant

Admin
ERROR: S client not available

Viacheslav
28.09.2016
09:10:25
по идее это должно быть чтото типа def findEntityFunction(dao: Dao)(id: Long): String = dao.findById(id);

я добавил чтобы понятно было из названия

Denis
28.09.2016
09:12:14
а у publishMessageFunction какой тип?

Viacheslav
28.09.2016
09:13:16
def publishMessageFunction(eventBus: EventBus)(message: String): Unit = eventBus.publish(message)

Denis
28.09.2016
09:16:18
def findEntity: String => String = ??? def publishMessage: String => Unit = ??? def findAndPublish: String => Unit = findEntity andThen publishMessage

Viacheslav
28.09.2016
09:17:19
да, именно! но вот если я начну писать код в таком стиле боюсь.... просто боюсь)

слишком много косвенности на ровном месте получается

Denis
28.09.2016
09:17:57
ну в реальной жизни у тебя будет def findEntity: String => Future[Option[String]]

так что так ты писать все равно не будешь )

и def publishMessage: String => Future[Unit]

Ivan
28.09.2016
09:19:06
Вот такой вопрос кстати, кто в scala проектах, пользуется "паттерном" DAO, и если вы им не пользуетесь, то как у вас организован код работы с бд?

Aleksei
28.09.2016
09:20:01
выше найдите мою ссылку на гитхаб

прямо немножко выше

Viacheslav
28.09.2016
09:20:30
и там про дао или про Фу стиль?

Google
Denis
28.09.2016
09:20:55
что такое DAO и чем это отличается от трейта с методами или Free DSL ?

Aleksei
28.09.2016
09:21:02
про всякое там короче

просто как пример

Denis
28.09.2016
09:24:46
ад и погибель

это объект, который предоставляет абстрактный интерфейс

все :)

нужен интерфейс - сделай его

Viacheslav
28.09.2016
09:30:02
def findEntity: String => String = ??? def publishMessage: String => Unit = ??? def findAndPublish: String => Unit = findEntity andThen publishMessage
Дык вот я про чо собственно, findEntity в данном случае выглядит красиво до тех пор пока не встает вопрос - как туда подпихнуть dao объект? В общем случае это будет нагромождение кода в виде: publishMessageFunction(eventBus: EventBus)(message: String)то есть мне в каждую функцию надо передавать "инфраструктурные" штуки от которых она завистит или с помощью которых она общается с внешним миром

в данном случае eventBus и прочие дао и сервисы будут "путешествовать" по сигнатурам наших методов в системе

и половина методов будет карированными

в этом случае class x(infrastructureObj: SomeObj, infrastructureObj2: SomeObj) {def foo() = infrastructureObj.toDoSomething()}выглядит как выход

но мы опять скатываемся в ооп и оборачиваем наши функции объектами

вобщем для меня остается загадкой как писать без многих НО по настоящему в фу стиле

Vladimir
28.09.2016
09:38:42
вобщем для меня остается загадкой как писать без многих НО по настоящему в фу стиле
я думаю, не стоит натягивать сову на глобус :) фу стиль хорош в локализованной области (когда там цепочку монад перетрясти надо) внутри метода класса, а когда очевидна необходимость в каком-то DI и осознаешь, что от объектов все равно никуда не денешься, есть ли смысл пытаться внести сюда функциональщину?

Denis
28.09.2016
09:41:19
для начала не называть ФП фу стилем

реально слух режет

никто не заставляетй писать только на функциях

Страница 126 из 1499