Как стать автором
Обновить

Пробелы победили. Перевод документации Kotlin Coding Conventions от JetBrains

Время на прочтение18 мин
Количество просмотров13K

Привет, Хабр! Предлагаю вашему вниманию авторский перевод страницы документации Kotlin Coding Conventions от JetBrains.


Оригинал документации

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии5

Качество кода

Время на прочтение19 мин
Количество просмотров37K
Качество кода — тема, которая родилась вместе с программированием. Для оценки и контроля качества менеджмента предприятий применяется ISO 9000, для продуктов — ГОСТ и тот же ISO, а вот для оценки качества кода ГОСТа нет. Точного определения и стандарта для качества кода тоже нет.



Каждый разработчик понимает качество по-своему, исходя из опыта. Представления джунов и лидов различаются, и это приводит к разногласиям. Каждая команда для отдельных проектов оценивает код по-своему. Команда обновляется, разработчики уходят, тимлиды сменяются — определение качества меняется. Эту проблему попробует помочь решить Иван Ботанов (StressoID) из Tinkoff.ru — Frontend-developer, преподаватель онлайн-курса по Angular, спикер на митапах и конференциях, ведущий уроков на YouTube и, иногда, тренер команд в компаниях.

В расшифровке доклада Ивана на Frontend Conf поговорим о читаемости, нейминге, декларативности, Code style, и косвенно коснемся отношений джунов и лидов: ошибки, грабли и «сгорание» тимлидов.

Disclaimer: Подготовьтесь морально, в тексте будет много плохого кода, взятого с «особенного» сайта.

Всего голосов 54: ↑48 и ↓6+42
Комментарии40

Prettier в крупных проектах: тратим 20 минут на настройку, забываем о форматировании навсегда

Время на прочтение3 мин
Количество просмотров39K
Разработчики часто не могут договориться о форматировании кода, и типичный рабочий день для многих начинает выглядеть так: кофе, кодинг, всё мирно и хорошо, — а потом, бац, и наступает код-ревью, на котором выясняется, что ты где-то поставил скобочки не так или не перенес что-то на новую строчку.



Год назад одна из команд в Skyeng сталкивалась с такими холиварами почти на каждом ревью. Но затем человек, у которого больше всех болело, сказал: «Теперь живем на Prettier'e, согласны?» За следующие месяцы ребята ни разу не поднимали вопрос о форматировании, а теперь эта штука стоит на всем монорепозитории фронтенда — и его использует каждая команда, которая туда заезжает.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии32

Prettier is a Must-Have for Large-Scale Projects: Spent 20 Minutes Setting It Up and Forgot About Formatting for a Year

Время на прочтение3 мин
Количество просмотров4.2K
Many dev teams get split over formatting. And their typical day looks like this: you come to work, have some coffee, write some code, everything’s fine — then bam! Code review where you’re told you put a brace in the wrong place.

image

It was an everyday reality for one of Skyeng dev teams a year ago. Then someone had enough and said, “Guys, from now on we use Prettier. Is everyone ok with that?” And then there were no more debates about formatting. We’ve installed Prettier in the frontend repo and all the teams use it.
Read more →
Всего голосов 10: ↑9 и ↓1+8
Комментарии0

Новый взгляд на code style

Время на прочтение7 мин
Количество просмотров8K


Как знания нейропсихологии могут помочь программисту в стилизации кода? До того, как заняться программированием, я очень долго и глубоко изучал нейропсихологию. Впоследствии эти знания помогли мне добиться высоких результатов в разработке за короткий промежуток времени.


В этой статье я хочу поделиться своим опытом и подходом к стилизации кода. Мы рассмотрим стилизацию со стороны программирования, а затем немного коснемся нейропсихологии для более глубокого понимания самого процесса и степени его важности для разработчика. Последний год я работаю в компании Secreate, где занимаюсь разработкой мобильных приложений на фреймворке React Native, поэтому примеры кода, приведенные в этой статье, будут на языке Javascript. Знания, полученные из этой статьи, можно будет легко применить к любому языку программирования. В конце статьи вас ждут полезные примеры стилизации кода. Приятного чтения!


Что такое стилизация


Каждый программист имеет свое представление о code style. Для меня стилизация — это набор правил для оформления, таких как: отступы, пробелы, переносы, последовательность и так далее. Тем не менее, каждый программист оформляет свой код по-своему. Давайте рассмотрим несколько примеров такого оформления.


Импорты


Некоторые программисты пишут их так:


import {SomeClass} from ‘some/file’

Некоторые так:


import { SomeClass } from ‘some/file’

Еще можно встретить такое:


import {SomeClass, someFunction, someConst, AnotherClass и еще много чего в длинную строку} from ‘some/file’

Или такое:


import {
  SomeClass,
  somefunction,
  someConst,
  AnotherClass,
  и еще много чего в столбик
} from ‘some/file’

Объявление функций

Читать дальше →
Всего голосов 31: ↑14 и ↓17-3
Комментарии44

CI, кодстайл и TDD: обзор практик для повышения качества кода

Время на прочтение8 мин
Количество просмотров11K

Blade Runner 2049, Warner Bros. Pictures

Я видел не во сне, а наяву атакующие корабли, пылающие под четырьмя вложенными if-else, и лучи CI с кучей сканирований у ворот Тангейзера, вызывающие лютую боль разработчиков. Меня зовут Максим Морев, и я техлид в Газпромбанке.

То, что вы сейчас увидите, выросло из внутреннего стайлгайда, к которому мы пришли через тернии многочисленных код-ревью и разработанных сервисов. Я постарался собрать здесь все основные и просто интересные грабли, которые нам попадались, и показать решения с примерами и обзором возможных трудностей в процессе внедрения.

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии8

Самый быстрый форматер кода

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров6K

Самый быстрый форматер кода

В статье подробно поговорим о самом быстром форматере кода. Подробно покажем, как интегрировать форматер в любой проект, настроим форматирование по сохранению в редакторах кода и посоревнуемся в скорости форматирования.

Читать далее
Всего голосов 17: ↑14 и ↓3+11
Комментарии12

Опыт разработки плагина для Yasca

Время на прочтение4 мин
Количество просмотров2.4K
В этой статье я хочу поделиться опытом использования одной полезной утилиты, позволяющей автоматизировать сборку и анализ качества кода. Речь пойдет о Yasca — свободно распространяемом ПО, представляющем собой небольшой PHP движок и набор утилит для выполнения анализа Java, С++ или PHP кода, включающего в себя PMD, JLint и RATS. Сама интеграция выполнения этих утилит осуществляется путем разработки небольших плагинов, на языке PHP. О процессе разработки такого плагина и пойдет речь далее.
Читать дальше →
Всего голосов 8: ↑4 и ↓40
Комментарии4

Затерянный остров хорошего кода

Время на прочтение2 мин
Количество просмотров18K
Очередной спор о стиле, красоте и компактности кода занял слишком много времени, в связи с чем и был отправлен на разрешение широкой аудитории StackOverflow. Это помогло, и спор решился, но в комментариях мне намекнули, что я пришел не по адресу:
Stack Exchange's "codereview" site is the new hotness for this sort of question.


Оказывается, больше года назад в застенках Area 51 был рожден вопросник Code Review, призванный делать код лучше.

Да, я хочу сделать свой код лучше!
Всего голосов 53: ↑43 и ↓10+33
Комментарии9

Борьба за кодстайл или Bracket Wars

Время на прочтение8 мин
Количество просмотров5.9K
Привет хабровчанам! В этой статье мы попытаемся рассмотреть такой «скользкий» вопрос, как оформление кода и кодстайл, и предложить одно из решений, которое имеет успех в ежедневной практике.

Для JavaScript'а, который долгое время оставался «за бортом» большой разработки, настала золотая эра быстрого развития и появления все новых и новых технологий на его основе, а приложения становятся все комплекснее с каждым днем. Учитывая, что принятие ежегодных стандартов, появление нового синтаксического сахара и «плюшек» делают его очень привлекательным для большего числа разработчиков, данная тема будет актуальна не один год. Новички в JavaScript с энтузиазмом берутся за его изучение, пробуя все новые и новые фишки, однако в большинстве своем они забывают об оформлении кода и о такой вещи, как технический долг.
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии27

Создаём библиотеку по последнему слову техники

Время на прочтение3 мин
Количество просмотров10K

Привет, Хабр. Это статья о том как написать Hello world по последнему слову техники.


В конце мы получим hello world библиотеку которая:


  • Использует typescript
  • Заботится о codestyle
  • Генерирует доку
  • Проводит тесты
Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии8

Code style как стандарт разработки

Время на прочтение15 мин
Количество просмотров41K
Давайте сразу, это не про скобочки. Здесь речь пойдет о том, как работает наш мозг и почему code style помогает обеспечивать линейное развитие проекта, значительно ускоряет адаптацию новых сотрудников и, в целом, формирует и воспитывает культуру разработки. Я постарался собрать в одной статье несколько исследований и принципов, посвященных работе мозга разработчика, и тому, как программисты читают код, а также поделился результатами личного эксперимента.

Интересно? Добро пожаловать под кат.


Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии61

Go: передача значений VS передача указателей

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.1K

Go - один из немногих языков, в которых структуры можно передавать параметрами и возвращать из функций как по значению, так и по указателю. Это приводит к большей выразительности языка, но также разделяет общество разработчиков Go на два лагеря: сторонников указателей и сторонников значений.

В данной статье предлагается во многом субъективное сравнение обоих способов и делается попытка убедить читателей передавать и возвращать значения в тех случаях, где это возможно.

Читать далее
Всего голосов 14: ↑12 и ↓2+10
Комментарии20

Молниеносный инкрементальный линтинг Python-кода

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.9K

Линтинг кода бывает очень долгим, а в ситуациях наличия большого legacy‑проекта, который решили «причесать», линтинг может причинять боль и страдания разработчикам. В этой статье мы найдем решение, которое позволит без проблем линтить код с любого этапа разработки и делать это супер быстро и инкрементально!

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии2

C#. Сортировка членов типа с помощью ReSharper

Время на прочтение6 мин
Количество просмотров15K

Существуют некоторые соглашения касаемые структуры класса, и того, в каком порядке должны располагаться его члены.
Вот, например, правила которые использует StyleCop, возможно, в вашей компании есть свои собственные.
Поддерживать структуру вручную довольно тяжело, скучно и отнимает много времени, особенно когда в классе довольно большое количество свойств, полей, методов и.т.д.
В этом посте речь пойдет о том, как с помощью ReSharper автоматизировать этот процесс.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии11

JSCS: JavaScript Code Style

Время на прочтение3 мин
Количество просмотров59K
Когда девять месяцев назад я написал для себя маленькую консольную утилиту, я и не подозревал, что вскоре она превратится в серьёзный и единственный в своём роде инструмент, которым будут пользоваться даже такие известные всем команды, как jQuery, Bootstrap, Angular. Сейчас, когда я пишу эту статью, у моего проекта на гитхабе 1010 звёздочек, и мне очень радостно думать о том, что так много людей смогли с помощью моей придумки сделать свою работу удобнее.

История этого проекта началась с моей личной боли.

Незадолго до этого момента я перевёлся из одной команды Яндекс.Карт в другую и постепенно вливался в разработку нового для меня продукта. Все было хорошо, новый проект мне нравился, но кодстайл, в котором писали ребята из моей новой команды, очень уж сильно отличался от того стиля кодирования, в котором писал я и ребята из моей прежней команды. Однажды меня даже посетила нелепая мысль, что кодстайл в этой группе писался в противоположность кодстайлу в прежней группе специально, чтобы запутать меня.

Читать дальше →
Всего голосов 126: ↑121 и ↓5+116
Комментарии118

Java: улучшаем качество кода (предусловия, IDEA QAPlug, интерграция GitHub c Codacy)

Время на прочтение1 мин
Количество просмотров6.3K
Здравствуйте!
Продолжаю серию публикаций по учебному Java Enterprise проекту Topjava (Maven/Spring/Security/JPA(Hibernate)/Rest(Jackson)/ Bootstrap(CSS)/ jQuery+plugin).

Небольшая тема четвертого занятия: улучшаем качество кода


Полезные ссылки:

  1. Контрактное программирование, Программирование по контракту
  2. Comparison Preconditions in Java
  3. QAPlug vs FindBugs
  4. QAPlug tutorials
  5. Codacy Home
Читать дальше →
Всего голосов 6: ↑3 и ↓30
Комментарии11

Удобная вставка многострочных шаблонных литералов в код на JavaScript

Время на прочтение4 мин
Количество просмотров18K

Описание проблемы


Появившиеся в ES6 шаблонные литералы (или шаблонные строки — template literals, template strings) помимо долгожданной интерполяции переменных и выражений принесли возможность вставки многострочного текста без дополнительных ухищрений, усложняющих вид кода.

Однако то, что красиво смотрится в разнообразных примерах на эту тему, в реальном коде порой облекается в новый вид безобразия.

Впрочем, проблемы видны, даже если присмотреться к примерам. Возьмём замечательную статью об этом нововведении из известной серии «ES6 In Depth».

Видите досадные «оспинки»? Лёгкие перекосы в симметрии и стройности?

Маленький пример
var text = (
`foo
bar
baz`)

Большой пример
var html = `<article>
  <header>
    <h1>${title}</h1>
  </header>
  <section>
    <div>${teaser}</div>
    <div>${body}</div>
  </section>
  <footer>
    <ul>
      ${tags.map(tag => `<li>${tag}</li>`).join('\n      ')}
    </ul>
  </footer>
</article>`

Возьмём какой-нибудь простой случай и посмотрим на проблемы внимательнее.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии61

ES5 руководство по JavaScript

Время на прочтение25 мин
Количество просмотров91K

JavaScript quality guide


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

От переводчика


Всем привет, с вами Максим Иванов, и сегодня мы поговорим о правилах оформления кода на языке JavaScript. Николя Бэвакуа (Nicolás Bevacqua), автор книги «Дизайн JavaScript-приложений» (JavaScript Application Design), разработчик из Аргентины, опубликовал данное руководство достаточно давно, первая запись появилась еще в 2014 году, многое написано по стандарту ES5, однако, в наши дни это все равно актуально, сейчас, когда ES6 еще нигде полноценно не работает без babel и прочих транспайлеров. Хотя мы видим прогресс в топовых десктопных браузерах (Google Crhome, Firefox), где уже реализовано 70-90% задуманного, мы видим, что они стремятся поддерживать новый стандарт, но, к сожалению, ещё нет браузеров, которые полностью могли бы поддерживать ES6. К слову, я буду очень рад вашим комментариям. В общем, удачи и давайте начнем.
Читать дальше →
Всего голосов 29: ↑23 и ↓6+17
Комментарии35

Не пишите код на 45-й строке

Время на прочтение3 мин
Количество просмотров19K
КДПВ

Это перевод статьи блоггера Brian McKenna. Разрешение на перевод получено.

Прямо сейчас в сообществе DynamoDB собираются мнения. Должны ли вы писать код на 45-й строке или нет. Я твёрдо убеждён, что 45-я строка должна быть оставлена пустой. И вот почему.

45-я строка ниже края экрана


По умолчанию высота терминала — 24 строки. Если писать код на 45-й строке, то программисты не сразу заметят его. Если оставить 45-ю строку пустой, то программист ничего не пропустит. Код чаще читается, чем пишется, поэтому убедитесь, что он виден.
Читать дальше →
Всего голосов 105: ↑50 и ↓55-5
Комментарии42