- PVSM.RU - https://www.pvsm.ru -

Какие стили оформления кода предпочитает аудитория Гитхаба?

Пробелы или табуляция? Двойные или одинарные кавычки? Открывать фигурную скобку с новой строки или в «египетском» стиле? Вокруг этих соглашений оформления исходников постоянно бурлят священные войны. Впрочем, мало кто решается спорить с тем, что если работаешь в команде, то писать надо так, как в этой команде принято, или хотя бы переформатировать свой код в принятом стиле перед коммитом. В конце концов, если бы у какого-то стиля было абсолютно решающее преимущество перед другим, то и споров бы не возникало, так что, возможно, самое мудрое решение — делать как все.

Какие стили оформления кода предпочитает аудитория Гитхаба?

А как делают все? На сайте sideeffect.kr [1] собрана статистика коммитов Гитхаба за несколько месяцев для языков JavaScript, Ruby, Scala, C#, Java и Python. Для каждого языка выделены несколько типичных разногласий в оформлении кода, и подсчитано, к какому варианту склоняется сообщество.

В самом популярном холиваре «пробелы против табуляции» решительную победу одержали пробелы. Больше всего любителей табуляции остаётся в лагере Java — 24,6%. Меньше всего — среди программистов Scala — 3,3%. Зато в некоторых других вопросах единодушия нет и в помине. Так, любителей использовать верхний регистр для именования констант в Java лишь на 3% больше половины, а пишущие на C# используют три разных стиля оформления констант (капсом, в паскалевском стиле и как попало) с почти равной частотой. Почти поровну разделились и сторонники двойных и одинарных кавычек в JavaScript.

Некоторые соглашения противоположны для разных языков. Так, подавляющее большинство (86%) программистов C# открывают фигурную скобку на новой строке. В Java всё наоборот — лишь 19,8% придерживаются такого соглашения. Остальные используют «египетский» стиль.

Этот проект был создан для конкурса GitHub Data Challenge II [2] по анализу и визуализации открытых данных GitHub, его код опубликован [3] на Гитхабе под лицензией MIT, так что туда можно добавлять новые языки и новые соглашения по оформлению кода.

Автор: ilya42

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/47952

Ссылки в тексте:

[1] sideeffect.kr: http://sideeffect.kr/popularconvention

[2] GitHub Data Challenge II: https://github.com/blog/1450-the-github-data-challenge-ii

[3] опубликован: https://github.com/outsideris/popularconvention

[4] Источник: http://habrahabr.ru/post/201544/