Что важнее: символы или типы?
От: varenikAA  
Дата: 09.12.20 04:20
Оценка:
var id = 1;

или
var clientId = 1;
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Что важнее: символы или типы?
От: scf  
Дата: 09.12.20 05:44
Оценка: +7
Здравствуйте, varenikAA, Вы писали:


AA>
AA>var id = 1;
AA>

AA>или
AA>
AA>var clientId = 1;
AA>


Не вижу в этих примерах ни символов, ни типов. Вопрос непонятен.
Re: Что важнее: символы или типы?
От: HFTMan  
Дата: 09.12.20 06:35
Оценка:
Здравствуйте, varenikAA, Вы писали:


AA>
AA>var id = 1;
AA>

AA>или
AA>
AA>var clientId = 1;
AA>


Тип конечно. Если F# выводит типы из всего, почему не воспользоваться?

module Client =

    open System
    
    [<Struct>]
    type Id = { Value: Guid }
    
    type T = { Id: Id; Name: string }

    let create id name = { Id = id; Name = name }
    
    let createId() = {Value = Guid.NewGuid()}


Функции create и createId без какой-то вообще аннотации типов имеют правильный тип. Разве не красота?
Отредактировано 09.12.2020 6:37 HFTMan . Предыдущая версия .
Re[2]: Что важнее: символы или типы?
От: varenikAA  
Дата: 09.12.20 07:49
Оценка:
Здравствуйте, HFTMan, Вы писали:


HFT>Функции create и createId без какой-то вообще аннотации типов имеют правильный тип. Разве не красота?


неплохо, хеллоуворды рулят)))
Я просто представляю сколько времени нужно, чтобы построить рабочее приложение на F# или там Elm,
достаточно взглянуть на примеры среднего масштаба.
А если нужно слегка изменить модель и логику, придется переделать практически всё.

редакторы F# поддерживают рефакторинг? например если удалить кейс из типа, то матчи подчистятся автоматом?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Что важнее: символы или типы?
От: HFTMan  
Дата: 09.12.20 09:10
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

AA>Здравствуйте, HFTMan, Вы писали:



HFT>>Функции create и createId без какой-то вообще аннотации типов имеют правильный тип. Разве не красота?


AA>неплохо, хеллоуворды рулят)))

AA>Я просто представляю сколько времени нужно, чтобы построить рабочее приложение на F# или там Elm,
AA>достаточно взглянуть на примеры среднего масштаба.
Судить о сложности проекта по размеру кодовой базе-неверно.
Какой-нибудь CRUD на несколько сотен форм может весить лям строк бойлер кода, а что нибудь вроде нахождения эквилибриума Нэша на вероятностных деревьях большой размерности, да еще с кодогенерацией под GPU для рекурсивного обхода дерева на GPU же-сильно меньше.
Только я гарантирую-что второе радикально сложнее и кривая обучения гораздо круче, несмотря на радикальное(разница в порядок и больше) меньшее количество кода
F# хорош для маленькой высокопрофессиональной команды(а уже для команды из одного человека и подавно-F# идеален), и для определенных предметных областей без требований к low latency. Хотя и в таком случае проще бывает прототип на функциональщине накидать для проверки гипотезы, а потом его тащить на императивщину, тратя часто бОльшее количество времени, чем написание самого прототипа(сужу по личному опыту).
AA>А если нужно слегка изменить модель и логику, придется переделать практически всё.

Да ну нафиг. Если делать в чистом функциональном стиле, без аннотации типов, то изменения буду только в определении типов, да в местах явного использования этих типов(где есть аннотации либо использование имени типа). Всё.
Пишешь на F#-используй автовывод типов по максимуму! Указал тип там, где это не нужно на F# для компиляции-это автоматом говнокод, бить по рукам указкой!

AA>редакторы F# поддерживают рефакторинг? например если удалить кейс из типа, то матчи подчистятся автоматом?


Не, такого в Rider вроде нет. Компиляция все покажет
Re: Что важнее: символы или типы?
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.12.20 10:27
Оценка: 8 (1) +6
Здравствуйте, varenikAA, Вы писали:


AA>
AA>var id = 1;
AA>

AA>или
AA>
AA>var clientId = 1;
AA>


Общее правило: чем меньше зона видимости, тем короче имя. Т.е., для локальной переменной в блоке сойдет и id, и даже просто i. А для глобальной переменной имя должно быть descriptive.
Re[4]: Что важнее: символы или типы?
От: IT Россия linq2db.com
Дата: 11.12.20 15:10
Оценка: +1
Здравствуйте, HFTMan, Вы писали:

HFT>Судить о сложности проекта по размеру кодовой базе-неверно.

HFT>Какой-нибудь CRUD на несколько сотен форм может весить лям строк бойлер кода, а что нибудь вроде нахождения эквилибриума Нэша на вероятностных деревьях большой размерности, да еще с кодогенерацией под GPU для рекурсивного обхода дерева на GPU же-сильно меньше.
HFT>Только я гарантирую-что второе радикально сложнее и кривая обучения гораздо круче, несмотря на радикальное(разница в порядок и больше) меньшее количество кода

Ты случайно не путаешь просто объёмный код со сложностью алгоритма? Это как-бы тёплое с мягким.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Что важнее: символы или типы?
От: mogadanez Чехия  
Дата: 09.02.21 15:05
Оценка: 1 (1)
Здравствуйте, Pzz, Вы писали:

Pzz>Общее правило: чем меньше зона видимости, тем короче имя. Т.е., для локальной переменной в блоке сойдет и id, и даже просто i. А для глобальной переменной имя должно быть descriptive.


i более привычно для индекса итератора, те если увижу i подсознательно буду вокруг искать цикл
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.