タグ

rustとtipsに関するslay-tのブックマーク (3)

  • 「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる

    とりあえず、よく言われてるやつから埋めていこうと思う。 構造体にライフタイムを持たせない 構造体にライフタイムを持たせるのは「基的に」避けよ、というのが重要なのは間違いないのだけど、これをもう少し実践的な内容にしたい。ちょっと考えてみたけど、こういうのはどうだろうか。 ある関数呼び出しの中でしか絶対に使わない。returnするまでにその構造体のデータは全て破棄される。static変数に退避させることもできない。アロケーションもその関数が面倒を見る。そういう一蓮托生できる関数呼び出しに心当たりはあるか? ある→ 構造体にライフタイムを持たせてもよい。 ない→ ライフタイム禁止。 そう考えてみると、DIとかReduxとかとも通じるところがあるかもしれない。「つべこべ言ってないで全部の責務を一番外側に持っていく」という決断ができるときは構造体ライフタイムが選択肢に入る。

    「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる
  • Rust初心者殺しの文法10選 - Qiita

    概要 この記事ではRust初心者が驚いたり混乱させられたりするようなRustの文法を10項目集めてみました。 これらの項目は知らないと理解できなかったりコンパイルエラーに悩まされたりする一見厄介なものたちなのですが、そのような直感的でない挙動を敢えてさせているところには重要な意味が込められていることが多いです。 そのため、これらの項目を通してRustが目指しているものや実現したい機能の一部を垣間見ることができると思います。 1. デフォルトの代入がムーブ Rustの最大の特徴が所有権の概念であることは有名ですが、それでもなお初心者殺しになるのがムーブです。 以下のコードがコンパイルエラーになるメジャーな言語は現状Rustくらいしか無いでしょう。 let mut a = vec![1, 2, 3]; let mut b = a; // ここでaの持つベクタの所有権がbにムーブされ、aは無効に

    Rust初心者殺しの文法10選 - Qiita
  • Rust本番投入における「新しい言語ゆえの難しさ」を乗り越えるためのTips

    2018年7月3日、D-Cubeが主催するイベント「Running Rust in Production」が開催されました。近年徐々に注目を集めつつあるプログラミング言語Rustを、実際に業務で使っているエンジニアが一堂に会して、自らの知見と取り組みを共有するイベント。初の開催となる今回は、6名のエンジニアRustにまつわる知識と経験を語りました。プレゼンテーション「番投入をあきらめるためのガイドライン」に登場したのはクックパッド株式会社インフラストラクチャー部の小林秀和氏。講演資料はこちら Rust番投入におけるハードルの超え方 小林秀和氏(以下、小林):おはようございます。走ってきて心拍数がバグバグです。KOBA789と言います。 一番最初に質問なんですが、ふだんスクリプト言語を書いてるという方はどれぐらいいらっしゃいます? (会場挙手) よかった。まぁまぁいた。逆にCない

    Rust本番投入における「新しい言語ゆえの難しさ」を乗り越えるためのTips
  • 1