アプリ開発したことない人がRustで冷蔵庫管理Webアプリ開発に挑戦した話
はじめに
私は現在,機械系の大学生です。大学でC言語を学び,picやarduinoで簡単な組み込みを行っていました。その途中でWeb関係に興味を持ち,何かアプリ開発をしてみたく,Rustでアプリ開発をしてみました。
この記事では詳しいコードのことは書かず,学んだことや感想を書いていきたいと思います。
作成したもの
作ったリポジトリは以下のものです。
コードが汚いですが,ご容赦ください。(リファクタリングしたい)
冷蔵庫管理アプリ
冷蔵庫の中身にある食品と賞味期限を管理するアプリケーションです。
フロントエンドはReact(typescript),バックエンドはRustでAxumというフレームワークを使っています。
セッション管理ライブラリ
さらに認証関連の実装として,セッション管理をするクレートも開発しました。
こちらはcrates.io にもアップしており,利用することができます。
別途記事にしてまとめたいと思います。
実際に作って感じたこと
実際に作って、以下のことを感じました。
・プログラミング言語の理解は,実際に何かを使うことで理解が深まる
・公式ドキュメントを読むことの重要性
・エラーの内容をしっかり読み、理解することの重要性
苦労したこと
最初に苦労したことはRust言語の理解です。最初のころは所有権やライフタイム,トレイト境界に苦労していました。実際に使っていくことで理解を深めることができました。
二つ目はドキュメントの少なさです。Rustは人気な言語ではありますが、日本語で書かれている記事などは少なめです。ましてや,自分のやりたいことを実装しようとなると,ジャストフィットする記事はほとんどありません。基本的にはライブラリのドキュメントを読み,どのような実装なのかを本質的に理解するようにしていました。
勉強になったこと
勉強になったことは,Rust言語では特にトレイトの知識が深まりました。また非同期処理についてもある程度理解することができました。
これから勉強したいこと
非同期処理についてはさらに理解を深めたいと思います。また,可読性,柔軟性のあるコードを書くためにどのようにすればいいのかも学んでいきたいと思います。
まとめ
アプリを作ってみて特に感じたことは,結局のところ実践を通して言語やデータベースの扱いなどを学んだほうが,意欲的にも,理解度的にも勉強になることでした。
新しく学ぶことを恐れずに,気楽に触れて,実践を通して考えて,ライブラリやアプリを作っていこうと感じました。
Discussion