LINUX.ORG.RU

Elm - стиль кодирования

 , ,


0

1

В нашей фирме вебщики стали фанатеть по сабжу. За обедом только и речей, какой он чистый, функциональный и перфекционистический, в отличие от ванилла-жабоскрипта. Неужто, думаю, спасение пришло в веб-болото? Решил потыкать вечерком. Читаю такой ихний style guide:

Do not be a maniac with indentation. Simplicity will be better in the long run.

Good

type alias Circle =
    { x : Float
    , y : Float
    , radius : Float
    }

Bad

type alias Circle = {
    x      : Float,
    y      : Float,
    radius : Float
}

У меня только один вопрос: он поехавший уже, всё?



Последнее исправление: HeipaVai1o (всего исправлений: 2)

Косплеит что-то. Хаскель, наверное.

tailgunner ★★★★★
()

На запятые спереди уже успели перейти и забить. Как и на «константы до переменных» внутри if. Потому что если проверки можно автоматизировать, то напрягать людей извращениями глупо.

Так что coding style точно из чулана.

Vit ★★★★★
()

спасибо за ссылку. интересный подход, я не знал раньше.

он обосновывает тем, что такой ровный код приведёт к проблеме: если добавить переменную с названием длиннее чем radius, то придётся редаткировать несолько строк, вместо одной, что порождает две проблемы

1) банально больше работы
2) дифф будет непонятный

при этом никакого конкретного выигрыша не видно.

Как то на первый взгляд я полностью согласен. Подумаю ещё, но вероятно возьму на вооружение.

Уродливые дифы - это неудобно. Каждый раз подравнивать - неудобно. А читается оно и так норм.

АПД. Посмотрел ещё раз как читается - конечно перфекционист сразу плачет «ай-ай, как же так, было так красиво». Не знаю, надо попробовать что ли.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от AndreyKl

если добавить переменную с названием длиннее чем radius

А если не придется добавлять? Это ж типичная преждевременная оптимизация. И тут претензия в основном к запятым и скобочкам, а выравнивание - фигня. Можно делать, можно нет, это сделает редактор если надо. Если вы руками выравниваете, ну тогда у вас проблемы с инструментами.

bread
()
Ответ на: комментарий от AndreyKl

Потому что психически здоровые люди делают так:

type alias Circle = {
    x: Float,
    y: Float,
    radius: Float,
}

И только в хаскель-мирке заново открывают для себя велосипед с квадратными колёсами.

Мимоходом заглянул в багтрекер - опциональная запятая перед закрывающей скобкой реквестируется чуть ли не с момента появления языка. Все реквесты закрываются с резолюцией «а мне норм».

HeipaVai1o
() автор топика
Ответ на: комментарий от bread

Если вы руками выравниваете, ну тогда у вас проблемы с инструментами.

У меня - к выравниванию в первую очередь, во вторую к запятым.

20 полей, если добавил одно, что бывает надо часто - дифф вылез на 21 строку. ревьювить такое не очень удобно.

С запятой та же история, только попроще, можно забить, можно ставить впереди. Да опциональная спасла бы, но в хаскеле она с чем то кажется конфликтует, к примеру. Может и в эльме тоже, я не в курсе.

По скобкам кстати мне пофиг, но я бы так не писал, да.

АПД.

HeipaVai1o, я бы тоже написал так, но без запятой в конце.

Для меня в первую очередь смысл в коротких дифах. да и выравнивать нудно (или действительно надо настроить редактор, но я таким стилем не уверен что хочу пользоваться)

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)

Не понимаю, почему запятая до сих пор не стала такой же необязательной, как точка с запятой.

anonymous
()
Ответ на: комментарий от AndreyKl

Так и не надо выравнивать, это педики придумали. Нормальные мужики никогда не выравнивают и отступы не ставят.

bread
()

PureScript моднее.

anonymous
()

Очередной костыль этот elm. Лучше на ванильке писать. Тем более, современный js уже вполне неплох из коробки. И развивается дальше.

th3m3 ★★★★★
()
Ответ на: комментарий от th3m3

Очередной костыль этот elm. Лучше на ванильке писать.

Выглядит весьма пристойно. Ванилька - это ES5, а иначе все одно транслировать.

bread
()
Ответ на: комментарий от bread

Зато пока другие прыгают с костыля на костыль, ты пишешь себе спокойно на ванильке и не паришься.

th3m3 ★★★★★
()
Ответ на: комментарий от bread

Не пишу. Пытаюсь начать писать на idris. Если не выйдет, то на хаскель, потом либо скала либо ельм.

В общем очередь до использования эльма вряд ли дойдёт (я искренне надеюсь), но разобраться всё равно с ним надо, интересная модель, а я собираюсь фреймворк на идрисе писать. Прежде чем писать, надо таки ознакомиться с хорошими решениями.

А Денису ведь надо было побыстрее начать. Я ему посоветовал самую распространённую технологию — выучи и иди работать. А там сам разберётся. Мне кажется правильно посоветовал. Хотя эльм и не так сложен (как скажем хаскель или идрис), но он не так распространён как вуй, ангуляр или реакт. А у Дениса ведь опыта нет в вебдеве. Проще будет взять что то пораспространённее и влиться в команду. Но он решил пойти другим путём, так что может и эльм был бы в тему. Хотя всё таки надежнее для новичка ангуляр/вуй/реакт, пмсм.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от nikolnik

До какого конца? Открываю дев сонсольку в последних хроме и фф — классы есть, стрелки есть, деструктурищация есть, консты и леты есть, промисы есть, итераторная функциональщина есть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.