💡

[読書感想]Rustの学習の為にLINEのbotを作る本を買ってみた話

に公開

お盆休みで時間があったので、何かRustの本を買って軽い学習をしたいと思っていました。ネットで検索したらLINEbotを作ることができる良さそうなものが見つかったので買って読んでみました。その時に読んだ本の紹介&学習の記録として本記事を執筆しました。
本記事の内容としては、個人的に書籍の良かったと思った点、LINEbot制作セクションの簡単な手順紹介をしていきたいと思います。

今回購入した本

本を選ぶ際に気にした点としては、2~3日で読み切れるように比較的軽い本を選んだこと。
Rustの言語を使ってハンズオン形式のもので最終的に何かを作る体験ができるようなもの。

上記二点を抑えてネットでいろいろ見ていたら良さそうな本が目に留まったので買ってみました。
https://nextpublishing.jp/book/18712.html

買った本の良かったと思った点

  • LINEbotが作れること。
    • ハンズオン形式のものになっているので基礎的な部分は本をかみ砕いてなぞれば動けるものができるものとなっています。
  • Rust言語の文法についての記載がないので書籍がコンパクトなところ。
    • 自分は過去に別の書籍でRustの基礎の文法などは学習していたので厚い書籍を買わずに済みました。
  • ソストウェアアーキテクチャスタイルについての読み物が掲載されていたこと
    • ヘキサゴナルアーキテクチャについての読み物的なセクションもありました。

LINEbot作成セクションの紹介

ここではどのような処理シーケンス、技術選定でLINEbotを作っていくかの紹介をしていきたいと思います。

処理シーケンス、技術選定など

本書では以下の画像のように設計します。

シーケンス図

以下は、メインで使っているスキルの紹介です。

  • MySQL
    • お馴染みのRDB。Botを追加した際のユーザーの情報やユーザーのトークルームの情報を管理するために使います。
  • Firestore
    • Google社が提供しているNoSQL DB。メッセージ情報を管理する際はこのFirestoreを使用します。MySQLのユーザー、トークルームを紐づけます。
  • ngrok
    • ローカルに構築しているアプリを一時的にインターネットに公開するトンネリングツールです。今回はローカルに構築したRustアプリをインターネットに公開する方法で開発を行っていきます。
  • SQLx
    • Rustで使用可能なSQLライブラリです。特徴は非同期に対応していることと生のSQLを書いてDBに問い合わせるところです。2024年11月当時のGitHubスターの数はORMのDieselを超えています。

各種サービスの登録

LINEbotを作るにあたって必要なLINE開発者向けアカウントやFirestoreに登録する必要があるので簡単にイメージ画像を張り付けておきます。


LINE Developerアカウント


LINE Official Account Managerアカウント


Firebaseアカウント

全体の感想

一通りなぞってみたり自分独自の改良を行ってみましたが、すでにRustを学習している人にとってはすごくいい本に感じました。ほかの本でRustの基礎を学んだあとにこの本でブラッシュアップするのもよさそうに思いました。ページ数も100ちょっとだったので連休に何か作って勉強したい人にはもってこいのものになっていると思います。自分はFirestoreというものを知らなかったので新しいスキルに触れることができたのでその点も嬉しかったです。こういった本を買って知見をアップデートすることは定期的に続けていきたいと思いました。

Discussion