Это основано на презентации, сделанной на ScalaBay.
Введение
Одна из причин, по которой я очарован Scala, — это сочетание передовых экспериментов, расчетов производительности и реактивности, а также широкое внедрение в растущем списке компаний 1.
Редко можно увидеть, как языки программирования пересекают пропасть принятия, но при этом остаются достаточно предприимчивыми, чтобы продвигать функции современных языков программирования.
Не случайно люди начали находить сходство между недавними крупными запусками языков программирования, такими как Swift 2. 345.
Spark в настоящее время переживает стремительный рост, что также способствует внедрению Scala.
Лично для меня наиболее интересными аспектами Scala являются стили кода.
Scala — мощный язык благодаря (и не только) обширному списку функций и гибкости.
Из-за этого очень важно определить согласованный стиль кода для каждого проекта/компании, чтобы люди могли работать вместе.
Я хотел изучить, как каждый стиль кода, который я нашел, отклонялся или добавлялся к официальному и основному стилю кода.
Стили кода
Без лишнего вступления, вот визуализация всех общедоступных на сегодняшний день стилей кода:
https://dl.dropboxusercontent.com/u/3509093/Vis/index.html
краткое пособие
Кружки в центре представляют стили кода.
Внешние предложения представляют их правила.
Кружки перед предложениями означают их использование: кружки большего размера =› больше использования
Я изучил каждый стиль кода, описанный ниже. Для каждого стиля кода мы извлекли все правила и перечислили их.
Затем мы приступили к сопоставлению этих правил и создали визуализацию, чтобы помочь понять, как они пересекаются и что общего у этих стилей кода.
Мы видим, что они в основном расширяют основное официальное руководство по стилю Scala.
Самый большой вклад в новые правила вносит «Эффективный Scala».
Официальный стиль кода Scala
Официальный стиль кода Scala был создан сообществом Scala и позже принят языковой документацией.
Первоначально он был создан Даниэлем Спиваком и Дэвидом Коуплендом (1, 2, 3).
Это допустимо и гибко. Существует не так много «вы не должны этого делать».
Несколько более твердых позиций включают в себя осторожность с постфиксными операциями, совет предпочесть стандартные (или номинальные) типы структурным типам, предложение избегать метода символических имен. среди других.
В целом, это отличное руководство для подражания. Очень подробный и полезный.
Не следует ожидать предпочтений в отношении API или какого-либо твердого мнения в отношении более функциональных вкусов Scala. Это чистый и сухой стиль для разумных отступов, именования, общего хорошего использования языка, документации и организации файлов.
Мне лично очень нравятся эти рекомендации, поскольку они служат основой для более конкретных и жестких правил.
Эффективный Scala от Twitter
Эффективный Scala — обширное руководство. Он следует особому вкусу Twitter к Scala, включая то, какие API использовать и функции, которые следует упускать из виду при написании кода Scala.
По сути, он начался с официального руководства по стилю scala и имеет очень мало противоречивых мнений.
Это было написано Мариус Эриксен
В целом, это отличное чтение. Он имеет принципы проектирования, применяемые к написанию кода Scala.
Очень вводная подборка руководства включает в себя:
Всегда отдавайте предпочтение удобочитаемости; писать общий код, но не за счет ясности; используйте преимущества простых языковых возможностей, которые дают большую мощь, но избегайте эзотерических (особенно в системе типов). Прежде всего, всегда помните о компромиссах, на которые вы идете.
… И получайте удовольствие.
Он не только служит руководством по правилам, которые разработчики Twitter используют для обеспечения согласованности своего кода, но также учит вас наиболее важным методам и функциям, которые можно использовать с примерами и примерами из практики.
Это идет дальше, чем просто объяснение стиля кода; на самом деле он представляет хорошие и плохие проектные решения, которые вы можете принять с помощью Scala. Он показывает стандартные библиотеки Twitter, которые вы можете использовать. В нем даже есть примеры (с фрагментами кода), которые вы можете использовать для своего понимания.
Он полон правил, по моему счету 116 правил, которые помогут вам структурировать ваш код, соблюдать лучшие практики и рекомендовать не использовать определенные функции.
Это, пожалуй, самое полное руководство по стилю Scala на сегодняшний день (из общедоступных).
Апач Спарк
Как было сказано выше, Spark становится все популярнее и популярнее.
Стиль кода лаконичен и точен, имеет много общего с основным официальным стилем кода программирования Scala.
Вот основные отличия:
- Не более 100 символов в строке
- Используйте 4 пробела для длинных списков аргументов
- Не используйте относительный импорт из других пакетов
- Всегда используйте фигурные скобки для if, за исключением поведения тернарного оператора.
- Не используйте инфиксную нотацию, если метод не является оператором (карта, фильтр, плоская карта)
Самая большая помощь в стиле кода — это просьба попытаться следовать стилю существующей кодовой базы.
Я полагаю, что со временем Spark будет иметь более подробные правила, поскольку он становится основой современной обработки больших данных.
Редактировать: мы только что опубликовали электронную книгу The Ultimate Guide to Code Review на основе опроса 680+ разработчиков. Наслаждаться!
Выводы
Мы видели анализ различных стилей кода, присутствующих сегодня в сообществе Scala. Поскольку мы видим, что язык растет, эта тема будет становиться все более актуальной. Полные данные
Полный набор данных вы можете найти здесь.
О кодировании
Codacy используется тысячами разработчиков для ежедневного анализа миллиардов строк кода!
Начать легко — и бесплатно! Просто используйте свою учетную запись GitHub, Bitbucket или Google для регистрации.
"НАЧАТЬ"
Первоначально опубликовано на https://www.codacy.com/blog/visualizing-scala-code-style/ 27 января 2015 г.