You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
RealWorld 業務 Rust 実際に Rust 1.0 の頃から業務で Rust を使ってコードを保守してきてハマった落とし穴についての 知見 恨み言です Rustが素晴らしい言語であるというあたりまえのことにはこの文書では触れません 気が向いたら追加します 開発環境編 ビルドマシンを買ってもらえ ノートパソコンのCPUとメモリでは限界がある CPU 二桁コアのマシンを何人かで共有して使え VSCode の Remote SSH でがんばれ vim でもいいぞ ストレージは可能な限りデカくしろ target はブラックホール 10GB 超はあたりまえ、中には 100GB 超も sccache、 cargo cache 、 cargo sweep などを駆使してがんばれ docker も使うので大容量ストレージだけが正義だ sccache 使用例
組込みRustや自作OSなどにおいて、従来言語より高い安全性があるとされているRustは注目される一方、Rustでも低レイヤー分野で頻発するメモリアクセスやインラインアセンブラなどでunsafeブロックが存在が多くなりがちです。 このunsafeブロックが多くなるので、結局Rustでこのような低レイヤー分野を触っても意味がないのでは?安全ではないのでは?という疑問が投げかけられることがしばしばあります。 筆者はTwitterや過去のブログで、組込みRustにおいてのunsafeとの付き合い方について触れていきましたが、内容としては分散していたので今一度この疑問に対するアンサーをまとめることにし、この論争に終止符を打とうと思います。 Rustにおけるunsafeとは そもそもunsafeとは何かというのはThe Rust Programming Languageのドキュメントにも詳しく書かれ
Haskeller の異常な愛情:または、生粋の Haskeller は転職して Rust を一ヶ月半書いて何を思うようになったか この記事は Jij Advent Calendar 2024、Haskell Advent Calendar 2024、およびRust Advent Calendar 2024シリーズ2 の18日目の記事です。 各カレンダーの前後の記事は以下の通りです: Haskell Advent Calendar 2024 前の記事: 次の記事:gotoki_no_joe さんの「集めるDPについて」 Rust Advent Calendar 2024 シリーズ2 前の記事:yasuo-ozu さんの「本物のSpecializationをStable Rustで!」 次の記事:hyumanase さんの「Rust.Tokyo 2024 に初参加した」 Jij Advent
これはなに? Rust が全然わからないフロントエンドエンジニアが、最近のフロントエンド領域への Rust の進出に影響を受け、まずは Rust を学んでみるために JSON フォーマッターを作ってみた記録です。 この記事は、Rust ビギナーが AI に頼りつつ雰囲気で実装したものであり、Rust を体系的に学ぶための内容ではありません。 同じように Rust に興味を持っている方々が、まず何から始めたら良いかの参考や刺激になれば幸いです。 前提 Rust 自体の学習は事前に行っており、その記録は以下のスクラップにまとめています。 よって、本記事では Rust のインストールであるとか、基礎文法については触れません。 作ったもの 標準入力から JSON 文字列を受け取り、それを字句解析(Lexer)、構文解析(Parser)し、整形(Formatter)したものを標準出力に出力する、N
概要 Rustに入門したいなと思って公式のThe Bookを11章まで読みました。 ちょっとゴツすぎてそこで一旦読むのをやめたのですが、、、(全部で21章まである) 学んだ文法で何か作ってみたいなと思い、掲題のツールを作成しました。 作ったものの動画は以下です。 非常に簡単なレベルで、データの形式についてバリデーションっぽいことをしてくれます。 よい書き方・美しい書き方で書いた自信は全くなく、またChatGPTの力も多分に借りたので、初心者が初心者なりにちょっとしたものを作ってみたんだな、くらいの目で見ていただけますと幸いです。 Cargo.toml Cargo.tomlは以下になります。 [package] name = "validation-tool" version = "0.1.0" edition = "2021" [dependencies] dialoguer = "0.1
前回[4]、同一アプリケーションをGo、Rust、C言語(+ Python)で実装し、各言語による実装効率と速度を評価しました。今回は、その経験をもとにRustの効率的な学習方法と導入についての見解をまとめてみます。 Rustの学習方法 Rustは生産性を実感するまでに学習期間が必要な言語とされています[5]。初期学習段階での離脱者が50%以上にのぼり、その多くが1ヶ月以内に挫折しているという統計[6]もあるため、まずは、効果的な初期学習が特に重要です。 STEP1: 学習準備期の克服 Rustコンパイラには(解決方法が明示されない)難解な解釈も多々あります[11]が、まずはRustコンパイラのエラー内容を理解し、対話できるまでの基礎力を身につけましょう。 Rustは初級者向けの書籍や資料は溢れている[5]ものの、実践的な中級以上を対象とした資料に乏しい状況[5]は、なかなか改善されていま
想定よりだいぶ大変でした。 hecto 成果物はこれ↓ 参考サイトはこれです↓ インスパイア元↓ 感想 Rustはこのチュートリアルが初体験 ずっと勉強したいとは思っていたので良い機会だった チュートリアルを進めていくなかで所有権とかライフタイムとかを少しずつ導入していき説明も挟んでくれるので助かった しかし3000行の経験を積んだ程度ではまだまだエラーの読み解きは難しいな〜という印象 https://bsky.app/profile/kawarimidoll.bsky.social/post/3l3znqvdbx42q パターンマッチ、ResultやOptionといった概念は先にGleamをやっていたおかげで問題なく理解できた 外部依存ナシのC言語版が1000行程度だったので外部ライブラリを使えるRust版は行数が少ないのかしらと思ったが結果的に3000行になった C版は1週間ほどで完成
RustのWebアプリケーション開発に関する書籍を共著で執筆しました。1年くらい執筆していましたが、出版時期などが定まってきたので内容の紹介を込めて告知の記事を書きます。9/26刊行予定です。予約よろしくお願いします。 RustによるWebアプリケーション開発 ↓AmazonのURL(アフィリエイトなし) www.amazon.co.jp 数年前に書籍を執筆した際に、「次はWebアプリケーションの実装に関する本を書きたい」と記事に書き残していたのを今見つけたのですが、有言実行できたようです。 どんな本か? Rustってバックエンド開発に向いてるの? 著者について 目次とトピックの簡単な紹介 はじめに 第1章 本書で開発するアプリケーション 第2章 開発環境の構築 第3章 最小構成アプリケーションの実装 第4章 蔵書管理サーバーアプリケーションの設計 第5章 蔵書管理サーバーの実装 第6章
Rust 版 Rails "Loco" Loco は Rails にインスパイアされた Rust の比較的新しい Web フレームワークです。 2024 年 9 月 1 日時点でバージョン 0.8.0 がリリースされています。 Loco の特徴 タイトルにもある通り、Loco is Rust on Rails. [1] を謳っており、 Ruby on Rails の開発体験の良さを Rust でも再現しようとしています。 また、小さいサービスや個人開発に適したフルスタックフレームワークとして開発されているようです。 内部実装では、コントローラーやルーティングは Axum で実装されていたり、 ActiveRecord は SeaORM で実装されていたりするそうです。[2] Axum や SeaORM については、別の記事で触れているので良ければご覧ください! Rust | Axum と
めまぐるしく変化するテックの世界。技術を身に着けるうえで学ぶべきポイントや学習環境なども年々変わっています。 そこで「もしもいまの環境で、テックのことをイチから学び直すことになったら、自分はどんな風に勉強したいか」というIFストーリーを通じて、技術との向き合い方を考え直してみる企画「テック転生」。 今回は『Rust実践プログラミング入門』共著者の松本健太郎(@matsu7874)さんに“自分だったらこう進めたい、Rustの学習ロードマップ”をご寄稿いただきました。 無理なく2ヶ月でWeb開発をRustで始めるロードマップ 株式会社estieでソフトウェアエンジニアをしているmatsu7874です。2024年8月の今、イチからRustを学び直すロードマップ(あるいはリソースガイド)を考えてみました。仕事の合間にやっていくとして数週間、長くとも2ヶ月くらいでRustで開発している会社に入っても
はじめに ウホウホ。 Rustを使い始めてちょうど2年くらい経って、すこしRustのことがわかってきたので、改めてGoとRustのそれぞれの違いを整理したいなと思いこの記事を書きました。 筆者はウェブ開発の経験しかないので、ウェブを中心にまとめています。 気づいたらかなりな量になってしまったのとGopher向けにRustを紹介するような記事になってしまいましたが、よければ読んでみてください。 筆者について Goを使い始めて7年ほど経っていて、これまでCLI/TUIツールをいくつか作ってきました。 スペシャリストではないですが、プロダクトでGoを書く分には特に問題ないレベルかなと思います。 Rustは2022年夏ころから使い始めてちょうど2年ほど経ちました。 なにかツールを作ったわけではないですが、勉強がてらにいくつか作ったもの・書いた本があります。 普通にRustを書く分には問題ないですが
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 個人で運営している賃貸物件の検索サービス Comfy のバックエンドを Rust でリプレースしました。この記事では、そのリプレースの背景と詳細をご紹介します。 まずは結果から 技術構成: Rust + Cloud Run1 へ移行 (Python + GCE2 から) 性能向上: 約 1.5 倍 開発期間: 1 ヶ月間 コード行数: 約 40 % インフラ費用: かなり減少 (多分3) 短い期間・少ないコードでかなり高速化できちゃった上に、開発体験もとてもよい Rust は本当に素晴らしいです…!! サービス概要 Comfy は 日本
こんにちは、加藤(@tomo_k09)です。 PharmaXではバックエンド・フロントエンド開発やスクラムマスターなどをやっています。 PharmaXが提供しているサービスでは、バックエンド開発に主にRuby on Railsが使われていますが、一部の機能はRustで開発されています。 このような理由からRustの経験が浅かった私もコツコツとRustの勉強をしており、 少しずつ学習方法に関する知見が溜まってきました。 そこでこの記事では、Rustをこれから学びたいという方向けに、おすすめの書籍や教材について紹介します。 新しいプログラミング言語はどのように学ぶと良いか 私は新しい言語を学ぶとき、まず基本的な文法やどんな特徴を持った言語なのかをひと通り勉強しています。 そしてその言語の概要をつかんだあと、実際に簡単なアプリケーションの実装をはじめて、分からないことがあったらリファレンスを読ん
はじめに この記事では、個人プロジェクトとしてRust言語でリレーショナルデータベースを開発した経験(もう五ヶ月も前...)について、その成果と反省、得た学びを共有します。 DBMSを自作した理由 自分がDBMSの自作に着手したのは、『Designing Data-Intensive Applications』という本の内容を深く理解するためでした。 この本は、データシステムの設計と運用において最も大切な「信頼性」、「拡張性」、「保守性」を保証する方法論を、豊富な文献を引用しつつ、理論と実践の橋渡しを巧みに行いながら、丁寧に説明している名著です。読んだことがない人は速攻購入してくだい。本当にいい本です。 この本は、データベースの内部構造に関する話も豊富に含まれていたので、「データベース自作してみようか...」という気持ちになりました。 Rustを採用した理由 データベースの実装のついでに、
Rustのトレイト(以降Rustトレイトとつなげて呼ぶことにする)は一体何なのか、様々な他言語の概念を通して調べていたが、やっと(「やはり」でもあるのだが)結論が出たので書いていこうと思う。 また、Rustトレイトはインターフェースなのか、MixInなのか、はたまたトレイトなのかということについて書き直したかったのでそれもついでに書く。 Rustのトレイトにおける否定 前置き Rustのトレイトはインターフェースではない RustのトレイトはJavaのインターフェースではない RustのトレイトはC#のインターフェースではない RustのトレイトはMixInではない Rustのトレイトはトレイトではない Rustのトレイトは「高カインド多相のない型クラス」だった 根拠1: 型クラスと用法が同じである 根拠2: 重複する関数があった際の挙動も同じ Rustのトレイトでは高カインド多相ができな
昨年買っていたんですが、年末年始の時間を使って少し読めました。 著者はRustコンパイラにコントリビューションをしたことがあれば誰でも知っているかもしれない、Mara Bos氏です。 ちなみにですが、原著は下記サイトで無料でも読むことができます。 marabos.nl 書籍は下記です。 詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング 作者:Mara Bosオーム社Amazon なおこの記事内で「本書」と明記する場合、それは『詳解Rustアトミック操作とロック』を指します。また、「筆者」は私自身のことであり、「著者」はMara Bos氏のことです。 内容のメモ 1章 2章 3章 4章、5章 6章 Miri Loom 7章 8章 9章 10章 感想 日本語での別の資料 内容のメモ 読んだ内容のうち、印象に残ったり初見だったものをメモしておきます。 1章 1章
- はじめに - 最近、PythonのパッケージインストーラーであるpipをRustで書き直したripというツールが公開された。 github.com ripのREADME.mdには、flaskを題材に依存解決とインストールが1秒で終わるようなgifが貼られている。 この速さは一体どこから来ているのか調べた。 - はじめに - - 宣伝 - - ripの成り立ち - Anaconda mamba-org prefix.dev - condaがinstallで行うこと - - mambaでの速度改善 - - ripに応用されたこと - - おわりに - - 宣伝 - 来週開催の技術書典15で「エムスリーテックブック5」が出ます。 私の内容は「自作Python Package Manager入門」で、CLIツールの作り方から始まって40ページでPyPIの仕様やその背景となっている要素を把握しな
impl<T, E> Result<T, E> { /// ```should_panic /// let x: Result<u32, &str> = Err("emergency failure"); /// x.unwrap(); // panics with `emergency failure` /// ``` #[inline] #[track_caller] #[stable(feature = "rust1", since = "1.0.0")] pub fn unwrap(self) -> T where E: fmt::Debug, { match self { Ok(t) => t, Err(e) => unwrap_failed("called `Result::unwrap()` on an `Err` value", &e), } } prelude impor
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く