
Andrey
25.01.2017
13:30:31

Митко Соловец?
25.01.2017
13:30:35
был бы благодарен, если бы ты на микропримере привел пример такой рутины

KrivdaTheTriewe
25.01.2017
13:31:15

Andrey
25.01.2017
13:31:23
На самом деле, достаточно поработать с достаточно развесистым проект на динамических языках без типов, что бы понять какой это аод.

Google

Митко Соловец?
25.01.2017
13:31:27

Alexey
25.01.2017
13:31:56

Andrey
25.01.2017
13:32:06

Митко Соловец?
25.01.2017
13:32:51

Mikhail
25.01.2017
13:32:52

Митко Соловец?
25.01.2017
13:33:38

Andrey
25.01.2017
13:33:45
я видел большой бэкенд на ноджс
А я не просто видел, а плотно участвовал в таких проектах. И прекрасно видел, как в какой-то момент уже никто не знает как проект живет в рантайме. Там ад реально с ошибками.

Alexey
25.01.2017
13:33:52
что-то я выгоды не увидел
то что тебя заставляют проверить нашелся ли результат это и есть выгода. ты просил микропример ты его получил. теперь замени мапу на опердень, а строчку на финдок и получишь выгоду в предметной области

Mikhail
25.01.2017
13:35:01

Alexey
25.01.2017
13:35:16

Oleksandr
25.01.2017
13:35:33
@dmsol типы -- это как тесты
можно и без них, но с ними проще и надежнее

Google

Mikhail
25.01.2017
13:35:35
это у тебя сейчас пример был уровня Mariano Gappa

Alexey
25.01.2017
13:35:56

Mikhail
25.01.2017
13:36:14
https://movio.co/blog/migrate-Scala-to-Go/

Митко Соловец?
25.01.2017
13:36:17

Oleksandr
25.01.2017
13:37:50

Митко Соловец?
25.01.2017
13:38:32
снимая эту нагрузку с программиста, за счет чего мы получаем выгоду?
и получается в этом примере компилятор ругнется?
val m = Map.empty[String, Int]
m.get("asdf") // тут может не быть значения по ключу. хотя ты думаешь что обязательно будет

Nikolay
25.01.2017
13:39:27
get вернет Option

Oleksandr
25.01.2017
13:39:32

Alexey
25.01.2017
13:39:40

Oleksandr
25.01.2017
13:40:20

Alexey
25.01.2017
13:40:57
дело же не в написании кода. дело в чтении и модификации. ты видишь мапу. там сверху ктото проверил что ключ есть. достал. работает.
потом ктото рефакторнул и проверку убрал выше. потом код уехал в другую функцию. ее позвали без проверки. и все сломалось.

Митко Соловец?
25.01.2017
13:41:24
да, действительно такая строгость нужна

Oleksandr
25.01.2017
13:42:14

Alexey
25.01.2017
13:42:30
т.е. добавляю проверку и компилятор замолчит?
это не просто проверка. вместе с тем, что в языке не принято бросать исклоючения это заставит тебя изменить сигнатуру функции чтобы показать, что может быть еще и негативный сценарий
это в свою очередь заставит вызывающую сторону задать бизнес вопрос - что будет если мы не найдем нужные данные.

Google

Alexey
25.01.2017
13:43:31
даже в такой банальной ситуации типы помогут тебе найти те граничные случаи которые не нашел аналитик.

Nikolay
25.01.2017
13:43:41
а в продакшене всегда баги править дороже, чем на этапе разработки

Alexey
25.01.2017
13:44:14
конечно это имеет смысле в проекте который живет хоть сколько-то продолжительный срок и не перекладывает байтики гзипуя по дороге и проверяя токен.

Andrey
25.01.2017
13:44:14

Mikhail
25.01.2017
13:44:18
Димасик конечно знатный трололо, но аргументы скала сообщества на 99% обычно ничем не лучше аргументов Mariano & Isaac, это конечно пичаль бида. И проблема даже не в самих аргументах, а в том что их пытаются приплести везде и всюду, не важно какова суть дискуссии.

Nikolay
25.01.2017
13:44:28

Oleksandr
25.01.2017
13:44:44

Mikhail
25.01.2017
13:44:46
Чтобы уменьшить кол-во рантайм ошибок - в первую очередь надо научиться писать мало кода для решения больших задач

Alexey
25.01.2017
13:44:58

Vadim
25.01.2017
13:45:15
Есть более интересные примеры для этого.
Например узлы дерева, или различные геометрические объекты, у которых св-ва совершненно разные

Nikolay
25.01.2017
13:45:38

Vyatcheslav
25.01.2017
13:45:41

Alexey
25.01.2017
13:46:19

KrivdaTheTriewe
25.01.2017
13:46:35
есть хороший пример, twitter finch

Alexey
25.01.2017
13:46:54

Andrey
25.01.2017
13:47:17

Oleg
25.01.2017
13:47:24
tg://join?invite=Ai4h2D9SWO_a-Kur_k51Rg

Vyatcheslav
25.01.2017
13:49:00
Ребят, о чем вы? Типы - это реально круто. Смотришь на сигнатуру метода - и сразу понятно, что может произойти, а что нет, без каких-либо сюрпризов. Это значительно снижает нагрузку с мозга. И чем сильнее система типов - тем более строгим можно сделать интерфейс и получить еще меньше сюрпризов.

Google

Митко Соловец?
25.01.2017
13:49:25
аргументы нормальные
по крайней мере я выгоду увидел

Oleksandr
25.01.2017
13:49:59

Vyatcheslav
25.01.2017
13:50:24
Другое дело, что смотришь на какие-нибудь фримонады и ничерта не врубаешься. Хотя идея в них элементарная

Daniel
25.01.2017
13:51:19

Митко Соловец?
25.01.2017
13:51:56

Alexey
25.01.2017
13:52:01
аргументы нормальные
тут нужно понимать, что мы же не сможем в чатике про свой опердень рассказать чтобы показать как на нем это нас спасает. поэтому только Map.get :)

Oleg
25.01.2017
13:52:31

Admin
ERROR: S client not available

Vladimir
25.01.2017
13:52:48
вопрос на засыпку, имеет смысл тащить ch.qos.logback.classic.AsyncAppender если сейчас все на синхронном сделано и логов немного?

KrivdaTheTriewe
25.01.2017
13:52:48
или просто Map("fff") match { }

Oleksandr
25.01.2017
13:53:52

Alexey
25.01.2017
13:55:21
почитал статью. вы правда хотите писать такой код? https://github.com/marianogappa/sql/blob/master/main.go

Митко Соловец?
25.01.2017
13:55:57

Nikolay
25.01.2017
13:56:35

Aleksey
25.01.2017
13:56:53
Ничего себе вы нафлудили. Надо будет написать статейку.

Oleksandr
25.01.2017
13:57:31

Alexey
25.01.2017
13:57:38

Митко Соловец?
25.01.2017
13:57:49
Олександру большой респект, просто пришел и пояснил за скалу

Google

Nikolay
25.01.2017
13:58:47
мне кажется он это последний месяц в jvm чатике делает на почти постоянной основе

Митко Соловец?
25.01.2017
13:59:16

Nikolay
25.01.2017
13:59:33
отнюдь

folex
25.01.2017
13:59:56
Господа,а у вас в последней идее осталась возможность запускать один тест/одну спеку? У меня пропала кнопка Run на спеках, осталась только на директории со спеками.

Oleksandr
25.01.2017
14:00:10

Митко Соловец?
25.01.2017
14:00:44

Aleksey
25.01.2017
14:01:52

Oleksandr
25.01.2017
14:02:18

folex
25.01.2017
14:02:25
Макбук про 13" 2013 года, жду 2-3 минуты, ноутом пользоваться невозможно во время компиляции

Митко Соловец?
25.01.2017
14:02:58
ну норм

Alexey
25.01.2017
14:02:59
вы так говорите, как будто по 100 строк за 5 минут пишете. меня вообще не парит скорость компиляции. все равно думаешь дольше.
мак про 2013

Aleksey
25.01.2017
14:03:31

folex
25.01.2017
14:03:31
во время написания кода время компиляции не особо парит, а вот когда надо много раз скомпилить код, чтобы что-то попробовать то так, то эдак, вот тогда парит

Alexey
25.01.2017
14:03:34
и вообще большую часть читаешь код, а не пишешь

Митко Соловец?
25.01.2017
14:03:38

folex
25.01.2017
14:04:03
ну например да, но не только

Alexey
25.01.2017
14:04:05

Aleksey
25.01.2017
14:04:24
У всех блин мак бук про 2013. Удивительно.

Митко Соловец?
25.01.2017
14:04:27
Алексей, ты кстати прикрутил ребель к королеву?