最初から錆、貨物とプロジェクト管理


TLDR; this article covers how to work with Rust projects using Cargo. As soon as you are dealing with more than one file, it's a good idea to adopt Cargo.


シリーズ



  • 貨物と錆プロジェクト、あなたはここにいる
  • 制御フロー
  • コンソールからの読み取り、書き込み
  • エラー処理
  • ファイルの操作
    上級
  • 所有と借入
  • テスト

  • プロジェクト管理
    ソフトウェアを開発するときには、考慮する必要があるいくつかのことがあります.以下を追跡するのに必要な主要な事柄のいくつかがあります.

  • 多くのファイル.順序の理由で、コードを1つ以上のファイルを使用してすぐに成長します.多くのファイルのコードを分割すると、注文を作成するが、他の利点や他の利点とのコラボレーションが容易に構築しているものの明確な画像を得ることができます.

  • サードパーティライブラリ.あなたは間違いなくすべてのコードを自分で書くことができますが、特にあなたのプロジェクトが複雑なら、それはしばらくかかります.より良いアプローチは、ビジネス関連のコードを自分で書いて、標準のライブラリだけでなく、残りのコードのサードパーティ製のライブラリに依存することです.

  • プロジェクトの構築プロジェクトが成長するにつれて、ますます複雑になる.異なるオペレーティングシステムや開発vsプロダクションに対して、異なるビルドを行う必要があるかもしれません.

  • タスクを実行します.多くのファイルを持つ大きなプロジェクトを作成する一環として、プロジェクト、さまざまなタスクを実行したいと思うでしょう.

  • 資源
  • Cargo book
  • Learning path on Rust

  • Crates.io ここでは、あなたのプロジェクトのために使用できるパッケージ、すなわちパッケージを見つけることができます.また、コマンドラインを介してパッケージを検索することができます.どのようにそれを検索するための貨物帳を参照してください.
  • Rust path on Learn

  • 貨物
    さて、私たちがプロジェクトについてもう少し知っていることと、我々が管理することに期待していることは、どのように、Rustはプロジェクト管理にアプローチしますか?答えは貨物.カーゴは、あなたのさびがインストールされているようになります.

  • プロジェクトの作成.貨物は、プロジェクトを作成し、名前、バージョン、あなたの依存関係、およびその他の概念のようなものを追跡するのに役立ちます.

  • コードをビルドして実行します.貨物は、コードのコンパイルと実行に役立ちます.

  • 機能管理.また、機能のサブセットを支払ったクライアントを持っている場合は、機能のプロジェクトを分割することもできます.この場合、コードの一部をクライアントに出荷したいだけです.続きを読むfeature management

  • 依存性管理.あなたのプロジェクトは、あなたのアプリケーションを構築するために使用する依存関係、ライブラリまたはバイナリからなるでしょう.コードが既に存在しているコードがあるならば、あなたはコードを書きたくありません.

  • パッケージ管理.貨物でプロジェクトを作成すると、プロジェクトはパッケージになります.パッケージは他のユーザーと理論的に共有できるものです

  • 実行テスト貨物はテストできる.続きを読むrunning tests
  • 上記は、貨物の機能の一部ですが、うまくいけばたった今、あなたは貨物があなたの親友であることを知っています、そして、それが幻想的であるように、このようなツールがさびインストールで組み込まれています.
    貨物のトピックは非常に大きいので、それを専用の全体の本です.Cargo book

    あなたの最初のプロジェクト
    貨物を使用して最初のプロジェクトを作成するにはcargo 実行可能キーワードnew 最後に、このようなプロジェクトの名前を付けます.
    cargo new project-name
    
    プロジェクト名サブディレクトリを作成します.このディレクトリで次のファイルを取得します
    src/
      main.rs
    .gitignore
    Cargo.toml
    
    以下はファイルの意味です.

  • メイン.RS,主要RSは我々のプロジェクトのメインファイルは、我々のアプリのエントリです.メインです.RSが含まれます.
  •    fn main() {
        println!("Hello, world!");
       }
    

  • カーゴ.このプロジェクトのメタ情報を管理し、アプリケーションが機能する必要があるすべての依存関係を管理します.以下にファイルの内容を示します.
  •    [package]
       name = "project-name"
       version = "0.1.0"
       authors = ["email, inferred from Git"]
       edition = "2018"
    
       # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
    
       [dependencies]
    
    ご覧の通り、下記のプロジェクトに関する情報があります[package] 名前、バージョン、著者、およびエディションのような部分.別のセクションがあります[dependencies] あなたが外部の依存関係を持っていないので、それは今のところ空です.

    コードのビルドと実行
    プロジェクトをビルドして実行するにはcargo run プロジェクトディレクトリのルート
    cargo run
    
    出力はこのテキストに似ているはずです.
    Compiling project-name v0.1.0 (/<path>/project-name)
        Finished dev [unoptimized + debuginfo] target(s) in 21.51s
         Running `target/debug/project-name`
    Hello, world!
    
    あなたが見るものはカーゴビルです、そして、あなたのコードを走らせて、それはテキスト「Hello World」を示して終わります.

    運動をする
    我々は、素敵なCLI、コマンドラインアプリケーションを作成することを決めた.そのために、外部ライブラリを使用しますtermion それは私たちに色の出力を与えます.
  • 追加termion 貨物を開くことによって.tomlと[依存関係]セクションを置き、以下の変更を行います.
  •    [dependencies]
       termion = "*"
    
    グレート、今我々はライブラリをしたい貨物を教えているtermion , 次に、私たちのコードでそのライブラリを活用しましょう.
  • メインを開きます.rsを次のコードに変更します.
  •    extern crate termion;
    
       use termion::{color};
    
       fn main() {
         println!("{}Red", color::Fg(color::Red));
         println!("{}Blue", color::Fg(color::Blue));
         println!("Hello, world!");
       }
    
  • プロジェクトを実行するcargo run :
  •    cargo run
    
    あなたが今見ているものは、“Termion”パッケージが位置し、それをダウンロードしようとする
       Updating crates.io index
       Downloaded termion v1.5.6
       Downloaded numtoa v0.1.0
       Downloaded libc v0.2.108
       Downloaded 3 crates (591.2 KB) in 0.52s
       Compiling libc v0.2.108
       Compiling numtoa v0.1.0
       Compiling termion v1.5.6
       Compiling project-name v0.1.0 (/<path>/project-name)
    
    端末出力の最後に、色付き出力が表示されます.

    I read somewhere that this might not work on Windows, please let me know in the comments if you have issues getting this to work.



    概要
    この記事では、我々が「成長する」物語を見ましたrustc 我々のコードをコンパイルして、それと他の多くのもののために貨物を使い始めること.プロジェクト管理は、あなたが考慮する多くのものを持っていることを意味し、貨物はそれらの多くを処理します.貨物はあなたの新しい親友であり、うまくいけば、この記事のリソースセクションで提供されるリンクで貨物を使用することについての詳細を学ぶことができます.このシリーズのすべての将来の部品は、貨物を使います.