appendix-04-useful-development-tools
Ek D - Kullanışlı Geliştirme Araçları
Bu eki, Rust projesinin sağladığı bazı kullanışlı geliştirme araçlarından bahsedeceğiz. Otomatik biçimlendirme, uyarı düzeltme yöntemleri, bir linter ve IDE'lerle entegrasyonu inceleyeceğiz.
rustfmt
ile Otomatik Biçimlendirme
rustfmt
aracı, kodunuzu topluluk kod stiline göre yeniden biçimlendirir. Birçok işbirlikçi proje, Rust yazarken hangi stilin kullanılacağına dair tartışmaları önlemek için rustfmt
kullanır: herkes kodunu bu araçla biçimlendirir.
İpucu: rustfmt
ile kod stilinizi otomatik olarak düzenleyerek takım içindeki tutarlılığı artırabilirsiniz.
rustfmt
'yi yüklemek için aşağıdakileri yazın:
$ rustup component add rustfmt
Bu komut, Rust'ın hem rustc
hem de cargo
sağladığı gibi, size rustfmt
ve cargo-fmt
verir. Herhangi bir Cargo projesini biçimlendirmek için aşağıdakileri yazın:
$ cargo fmt
Bu komutu çalıştırmak, mevcut crate içindeki tüm Rust kodunu yeniden biçimlendirir. Bu sadece kod stilini değiştirmelidir, kodun anlamsal yapısını değil. rustfmt
hakkında daha fazla bilgi için belgelere bakın.
rustfix
ile Kodunuzu Düzeltin
rustfix
aracı, Rust kurulumları ile birlikte gelir ve net bir şekilde düzeltilecek şekilde hataları otomatik olarak düzeltebilir, bu da muhtemelen istediğiniz şeydir. Daha önce derleyici uyarıları gördüğünüz muhtemeldir. Örneğin, bu kodu düşünün:
Dosya Adı: src/main.rs
fn do_something() {}
fn main() {
for i in 0..100 {
do_something();
}
}
Burada, do_something
fonksiyonunu 100 kez çağırıyoruz, ancak for
döngüsünün gövdesinde i
değişkenini hiç kullanmıyoruz. Rust bu konuda bize uyarıda bulunur:
$ cargo build
Compiling myprogram v0.1.0 (file:///projects/myprogram)
warning: unused variable: `i`
--> src/main.rs:4:9
|
4 | for i in 0..100 {
| ^ help: consider using `_i` instead
|
= note: #[warn(unused_variables)] on by default
Finished dev [unoptimized + debuginfo] target(s) in 0.50s
Uyarı, _i
ismini kullanmamızı önermektedir: alt çizgi, bu değişkenin kullanılmasa da sorun olmayacağını belirtir. Bu öneriyi otomatik olarak uygulamak için rustfix
aracını kullanarak cargo fix
komutunu çalıştırabiliriz:
$ cargo fix
Checking myprogram v0.1.0 (file:///projects/myprogram)
Fixing src/main.rs (1 fix)
Finished dev [unoptimized + debuginfo] target(s) in 0.59s
src/main.rs dosyasına tekrar baktığımızda, cargo fix
'in kodu değiştirdiğini göreceğiz:
Dosya Adı: src/main.rs
fn do_something() {}
fn main() {
for _i in 0..100 {
do_something();
}
}
for
döngüsü değişkeninin adı artık _i
ve uyarı artık görünmüyor.
Not: Ayrıca, cargo fix
komutunu, kodunuzu farklı Rust sürümleri arasında geçiş yapmak için de kullanabilirsiniz. Sürümler Ek E bölümünde ele alınmaktadır.
Clippy ile Daha Fazla Lint
Clippy aracı, kötü kod yazım hatalarını yakalayıp Rust kodunuzu geliştirmenizi sağlayan bir lint koleksiyonudur.
Clippy'yi yüklemek için aşağıdakileri yazın:
$ rustup component add clippy
Clippy'nin lint'lerini herhangi bir Cargo projesinde çalıştırmak için şunları yazın:
$ cargo clippy
Örneğin, pi gibi matematiksel bir sabitin yaklaşık değerini kullanan bir program yazdığınızı düşünün, bu program şöyle olabilir:
Dosya Adı: src/main.rs
fn main() {
let x = 3.1415;
let r = 8.0;
println!("dairenin alanı {}", x * r * r);
}
Bu projede cargo clippy
çalıştırdığınızda bu hatayı alırsınız:
error: approximate value of `f{32, 64}::consts::PI` found
--> src/main.rs:2:13
|
2 | let x = 3.1415;
| ^^^^^^
|
= note: `#[deny(clippy::approx_constant)]` on by default
= help: consider using the constant directly
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#approx_constant
Bu hata, Rust'ın zaten daha doğru bir PI
sabiti tanımladığını ve programınızın bu sabiti kullanırsanız daha doğru olacağını sizi bilgilendirir. Kodunuzu PI
sabitini kullanacak şekilde değiştirirsiniz. Aşağıdaki kod, Clippy'den hiçbir hata veya uyarı almaz:
Dosya Adı: src/main.rs
fn main() {
let x = std::f64::consts::PI;
let r = 8.0;
println!("dairenin alanı {}", x * r * r);
}
Clippy hakkında daha fazla bilgi için belgelere bakın.
rust-analyzer
Kullanarak IDE Entegrasyonu
IDE entegrasyonu için Rust topluluğu, rust-analyzer
kullanmayı önermektedir. Bu araç, Dil Sunucusu Protokolü ile iletişim kuran derleyici merkezli araçların bir setidir. Farklı istemciler rust-analyzer
'ı kullanabilir, örneğin Visual Studio Code için Rust analizörü eklentisi.
rust-analyzer
projesinin ana sayfasını ziyaret edin kurulum talimatları için, ardından belirli IDE'nizde dil sunucusu desteği kurun. IDE'niz otomatik tamamlama, tanıma atlama ve satır içi hatalar gibi yetenekler kazanacaktır.