Вклад в Exonum
Exonum приветствует вклад от всех в виде [предложений], [отчётов об ошибках] или запросов на включение. Этот документ содержит некоторые рекомендации, если вы думаете о том, чтобы помочь нам.
[Обзор проекта] и [документация] могут помочь вам лучше понять текущее состояние проекта.
Вы всегда можете обратиться за помощью или советом в наш канал [gitter]. Также есть отдельный канал [gitter-ru] для русскоязычных пользователей.
Установите Rust и обязательные зависимости согласно нашему [руководству по установке], затем вы можете собрать проект и запустить тесты:
git clone https://github.com/exonum/exonum
cd exonum
cargo test --all
Метку [хороший первый выпуск ] можно использовать для поиска простых проблем.
Обратите внимание, что репозиторий использует набор линтеров для статического анализа:
clippy
]cargo-deadlinks
]rustfmt
]cspell
]markdownlint-cli
]Вы можете настроить и запустить эти инструменты локально (подробности см. в [скрипте Travis]).
Как правило, мы следуем общепринятым передовым практикам, установленным в сообществе Rust, но у нас есть несколько дополнительных соглашений:
Создавайте минимальные запросы на включение, насколько это возможно: их легче просматривать и интегрировать.
Кроме того, мы объединяем запросы на включение с использованием стратегии «сквош и объединение», поэтому не стесняйтесь объединять ветку master
, чтобы обновить её, вместо того чтобы перебазировать.
Не используйте уровень журнала debug!
.
Удобно использовать debug!
, когда вы разрабатываете какую-либо функцию и вас интересует только вывод журнала.
Не используйте _
в общедоступных API, вместо этого используйте полные имена переменных и #[allow(unused_variables)]
.
Общедоступные API должны быть документированы, но осмысленные имена параметров также полезны для лучшего понимания.
Используйте [редакцию Rust 2018].
— Избегайте extern crate
, если это не требуется.
— Используйте [анонимное время жизни].
Предпочитайте [вложенные импорты], когда это возможно.
Не пытайтесь минимизировать область видимости импорта (например, не помещайте его внутрь функции), размещайте их в начале файла.
Предпочтительно импортировать имя типа вместо использования полностью квалифицированных имён. Например, избегайте написания std::path::Path
в коде, вместо этого импортируйте тип и используйте более короткую форму:
// Импорт типа:
use std::path::Path;
// Использование:
let path = Path::new("...");
Модули и импорт (use
) должны располагаться в следующем порядке:
— extern crate
s (если они вам действительно нужны).
— Реэкспорт (pub use
).
— Публичные модули (pub mod
).
— Импорт (use
):
— Сторонние библиотеки.
— Стандартная библиотека.
— Внутренние.
— Внутренние модули (mod
).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )