
Siarhei
15.08.2017
06:33:08
понятно)

Vasily
15.08.2017
06:36:08
Я считаю, для энтерпрайза порядок файлов важен
Ибо заставляет думать и делает атата

Google

Evgeniy
15.08.2017
06:37:22
Тяжело продается. :)

Vasily
15.08.2017
06:41:30
Ну не каждому подходит,да
Организация кода становится очень важной при увеличении кодовой базы до определенного уровня
В пет проектах на это насрать,в общем-то
Равно как и в одноразовых задачах
А человеческий фактор из кодовой базы лучше вычищать по максимуму

Evgeniy
15.08.2017
07:05:46
@kirahvy @olegkovalov Привет! o/

Oleg
15.08.2017
07:05:53
привет \0

Andrew
15.08.2017
07:57:46
Если честно, я не совсем понимаю, почему соблюдение порядка следования файлов _упрощает_ код

Vasily
15.08.2017
07:58:10
Его проще читать
И проводить код ревью
И рефакторинг

Andrew
15.08.2017
07:58:36
Вспоминается C++, где чтобы два класса могли друг друга референсить требуется сначала делать предварительные объявления

Google

Andrew
15.08.2017
08:01:21
Кстати, как это в F# сделать? Только если оба объявления будут в одном файле?

Artemy
15.08.2017
08:04:53

Vasily
15.08.2017
08:04:56
Да, в одном через and

Evgeniy
15.08.2017
08:05:53
В F#4.1 еще добавили module rec и namespace rec, чтобы было проще группы ссылающихся друг на друга типов и модулей делать.
Тоже в рамках одного файла.

Andrew
15.08.2017
08:07:24
В целом понимаю, зачем это нужно - такой подход заставляет лучше продумывать иерархию в проекте

Vasily
15.08.2017
08:07:40

Andrew
15.08.2017
08:08:27
Хотя потенциального говнокодера может, наоборот, подтолкнуть к идее god object

Artemy
15.08.2017
08:09:04

Andrew
15.08.2017
08:09:50
Точку входа всегда можно по атрибуту найти, а с тулингом и того проще

Evgeniy
15.08.2017
08:10:05
Жесть какая
Это удобно. Например, теперь можно описывать mutually-referential типы и модули.
Жесть какая
https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md#motivation
Мотивация за module rec и namespace rec мне нравится.
Упрощает жизнь, но не ломает file order.

Dmitry
15.08.2017
08:19:12
У меня постоянно вопрос и непонятки с тем, как организовывать разбиение на много строк сложных конструкций типа
let config = {
defaultConfig with bindings =
[ HttpBinding.createSimple HTTP "127.0.0.1" port ]
}
и
choose
[ GET >=> choose
[ path "/" >=> OK "index"
path "/otherget" >=> OK "other GET"
]
POST >=> choose
[ path "/new" >=> OK "new post here"
]
]
А именно писать ли код сразу после открывающей скобки или переносить ещё на строку вниз, отодвигать нижнюю строку за знак = выше и т.п.
В гайдлайне на fsharp.org такого не рассматривают, а хотелось бы одного правильного решения типа go fmt

Evgeniy
15.08.2017
08:20:11
Пользуйся вот этим стайл гайдом.

Dmitry
15.08.2017
08:22:07

Friedrich
15.08.2017
08:22:18
Нет.

Dmitry
15.08.2017
09:30:05
https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstart - это в Ажуре теперь можно запускать контейнеры прям сразу, не разворачивая свою виртуалку. Вот это круто.
А апдейт VS на макоси пробовал кто? Там такие же проблемы с F#+Core 2.0?

Google

Evgeniy
15.08.2017
09:33:15
@Dolfik Ты же специалист по Dapper? :) Там на хабре спрашивают про ORM для F#, можешь поделиться опытом.

Nikolay
15.08.2017
09:34:18
Я ридонли)

Evgeniy
15.08.2017
09:36:33
Я тоже.
Но модератор может одобрить комментарий.

MrErsh
15.08.2017
09:47:31
sql тайппровайдеры только на чтение же работают?

Vasily
15.08.2017
09:47:40
На запись тоже

Evgeniy
15.08.2017
09:48:58

Fill
15.08.2017
10:17:06
Я понимаю, что вопрос идиотский. Но всё же поробую. Как в F# принять строку и конвертировать её в массив чисел?

Friedrich
15.08.2017
10:21:29
Вроде не ошибся :)

Fill
15.08.2017
10:23:06

Dmitry
15.08.2017
10:23:42
я тут обновил Visual Studio for Mac, поставил .NET Core 2.0 в макось и... Оно отлично работает с F# - по крайней мере базовое Suave-приложение

Evgeniy
15.08.2017
10:24:03

Nikolay
15.08.2017
10:24:04

Dmitry
15.08.2017
10:24:05
Как у команды VS на винде такая рукожопость выходит - ума не приложу

Nikolay
15.08.2017
10:24:09
А в VS не смогли)

Evgeniy
15.08.2017
10:24:31

Nikolay
15.08.2017
10:25:04

Evgeniy
15.08.2017
10:25:21
Я даже не знаю, кто там работает. Сотрудники Xamarin?

Google

Igor
15.08.2017
10:28:38
Я правильно понимаю что VSCode не поддерживает ссылки на проекты с NS2.0 ?
Problem reading assembly '/Users/alex/Projects/HelloWorld/core/bin/Debug/netstandard2.0/core.dll': Build was not evaluated, expected the results to be ready after 'Eval’.

Evgeniy
15.08.2017
10:30:21

Igor
15.08.2017
10:30:27
Да (из консольки)

Evgeniy
15.08.2017
10:34:06

Igor
15.08.2017
10:42:39
А кто нибудь это может подтвердить?
Создайте 2 прокта classlib + console и попробуйте вызвать метод из classlib проекта

Evgeniy
15.08.2017
10:43:31

Andrew
15.08.2017
10:53:25
У меня вопрос по поводу type providers в F#
Допустим, это SQL провайдер

Vasily
15.08.2017
10:53:46
Наружу не торчит
Если что
erasure

Vlad
15.08.2017
10:54:37

Andrew
15.08.2017
10:54:52
Пока я пишу код, он отправляет этот запрос на сервак

Vasily
15.08.2017
10:55:10
Да, отправляет

Andrew
15.08.2017
10:55:17
А если я напишу DELETE * FROM x, он тоже выполнит сам?

Vasily
15.08.2017
10:55:22
Нет
Хотя смотря как напишешь

Andrew
15.08.2017
10:55:56
Каким образом обеспечивается эта защита? Парсер запросов должен знать, какие действия идемпонетнтые?

Vasily
15.08.2017
10:56:02
Тут надо понимать, что type provider тянет с сервера информацию о типах данных

Google

Friedrich
15.08.2017
10:56:07
Вроде у SQL-сервера был специальный эндпоинт для получения метадаты запросов без их выполнения.

Vasily
15.08.2017
10:56:17
И есть хранимка

Friedrich
15.08.2017
10:56:23
Кажется, EF использовал это

Vasily
15.08.2017
10:56:27
Которая любой запрос проверит
На валидность
Это не выполнение запроса

Andrew
15.08.2017
10:57:32
то есть для SQL есть обходной путь, позволяющий не выполнять запрос на самом деле
мне интересен механизм безопасности в целом

Evgeniy
15.08.2017
10:58:09
А вы о каком провайдере?

Andrew
15.08.2017
10:58:28
например, если это провайдер, работающий с REST API удаленного сервака

Friedrich
15.08.2017
10:58:53
Ну тогда уже авторы провайдера должны заботиться о том, чтобы он ничего там не наломал.

Evgeniy
15.08.2017
10:59:06
Да, надо конкретный пример рассматривать.

Andrew
15.08.2017
10:59:09
ага, понял
т.е. кривой провайдер гипотетически может

Vasily
15.08.2017
11:00:12
Ну в теории может, конечно
Но он должен быть реально кривым

Evgeniy
15.08.2017
11:00:45
Это все, пожалуй.
А так провайдеры выполняют обычный F# код при генерации типов.