Skip to content

Latest commit

 

History

History
57 lines (38 loc) · 3.97 KB

CONTRIBUTING.md

File metadata and controls

57 lines (38 loc) · 3.97 KB

Contributing

Основные рекомендации

Используйте IDE.

В частности, IntelliJ IDEA. Загрузите (бесплатную) Community Edition здесь. Некоторые используют другие инструменты, например VS Code, но мы лично не рекомендуем их для разработки на Java и Kotlin.

Всегда тестируйте свои изменения.

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

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

Если вы хотите добавить новую механику/функцию или изменить большое количество кода, сначала свяжитесь с командой разработчиков. Мы просто хотим знать, что именно вы делаете, чтобы дать совет и/или убедиться, что вы не тратите свое время впустую.

Используйте наш стиль для написания для код

Установите prettier и prettier-java и используйте их для реформата кода. Конфигурация уже существует в проекте.

Не делайте бессмысленные PR.

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

Используйте коллекции и классы arc, когда это возможно.

Вместо использования java.util.List, java.util.HashMap и других стандартных коллекций Java, используйте Seq, ObjectMap и другие эквиваленты из arc.struct. Почему? Потому что это то, что использует остальная часть кодовой базы, а стандартные коллекции имеют много мусора и проблем с удобством использования, связанных с ними.

Что обычно нужно изменять:

  • HashSet -> ObjectSet
  • HashMap -> ObjectMap
  • List / ArrayList / Stack -> Seq
  • java.util.Queue -> arc.struct.Queue
  • java.util.Timer -> arc.util.Timer
  • И многое другое

Избегайте примитивных типов (Integer, Boolean) в коллекциях

Никогда не создавайте переменные или коллекции с примитивными типами: Seq<Integer> или ObjectMap<Integer, ...>. Используйте специализированные для этой задачи коллекции, например, IntSeq и IntMap.

Не создавайте методы без необходимости.

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