Web プログラミングの入門として Bot 開発をオススメする理由

BotTech

この記事は、ボット (Bot) Advent Calendar 2017 の20日目です。

Web プログラミングの初心者や、何か作りたいときの開発ネタ、新しい言語を試す際の第一歩として Bot 開発 をオススメしています。
理由を簡単にまとめると「手軽に始められる」「幅広い知識が身につく」「他人に試してもらいやすい」となります。

Bot から始める理由について、個人的な考えをまとめてみました。

前提

対象として想定しているのは、次のような方です。

  • Web プログラミングを勉強したいけどネタがない
  • 新しい言語に一通り触れてみたい
  • 簡単なスクリプトであれば書ける(ググりながらでも OK)

Web プログラミングの入門として Bot 開発をオススメする理由

メリット1: 手軽に始められる

難易度が低めのため、手軽に始めることができます。
スクリプト系言語と、テキストエディタさえあれば始められます。スマートフォンのアプリや Web システム開発と比べると、最初のハードルが低いといえます。

最初は単純なオウム返し Bot がオススメです。Twitter や LINE でメッセージを送ると、同じ内容をそのまま返すように作ってみましょう。
その後は、発言内容によって返信を一部変えてみたり、外部の API と繋いでみたり、少しずつ拡張していくとモチベーションが続きやすいです。

メリット2: 幅広い知識が身につく

一つ開発するだけで多くのことを学べます。ざっくり5つに分けて紹介します。

開発アカウントの取得方法

Twitter にしても、LINE にしても、まずは開発用の登録作業が必要になります。
名称を決める、権限の種類を選ぶ、発行されるトークンをメモしておくなど、Web サービスの開発に必要な準備を知ることができます。

Web API の利用方法

Bot を作るためには各サービスの API を利用します。
「API を利用する」と言っても、エンドポイント・クエリパラメータ・リクエストヘッダ・リクエストボディ・認証関連など、様々な情報が必要です。

公開されているドキュメントを読み、Web サービスの仕様を知る・仕様に合わせた開発をする練習にもなります。

HTTP 通信の使いかた

初めて触る言語や、これまで Web を使った開発をしていない場合は、そもそも HTTP のリクエスト方法から調べる必要があります。
使用するライブラリ、リクエスト情報の作り方、レスポンスの受け取り方、エラーハンドリングなど……不安定な外的要因が絡むプログラムの作りを学べます。

JSON の取り扱い

API の利用や Bot の開発には、JSON の知識がほぼ必須と言えるかと思います。場合によっては、文字コードや Unicode エスケープの知識も求められます。
各言語でどのように JSON を取り扱うか、連想配列や入れ子のオブジェクトはどのように操作すればよいのか……など、一通り身につきます。

アプリケーションのデプロイ

作った Bot を動かすには、どこかしらのサーバに載せる必要があります。
Heroku や AWS Lambda といったサービスに載せてみたり、サーバから構築してみたり、サーバへプログラムを転送してみたり、余力があれば CI で自動化にチャレンジしたり、Bot を動かす基盤の知識も得られます。

メリット3: 他人に試してもらいやすい

さて、作り終えた後は自分で使う/他の方に使ってもらうことになります。
ここでアプリのダウンロードや、Web サービスに登録となると少し手間に感じてしまいますが、LINE や Twitter であれば気軽に試してもらうことができます。

先日話題になった記事ですが、こちらも利用者が多い LINE を活用することで導入のハードルを下げている点がポイントの一つですね。

また、何より 自分で作ったものが、使い慣れているサービス上で動く のは、成果が分かりやすく喜びも大きくなると思います。

まとめ

Bot 開発は入門におすすめです。
SIer 経験の長い友人から「Web 分野に興味があるので何か作りたい」と相談を受けたのがキッカケでしたが、書き出してみるとやはりメリットが多いように感じます。

BotTech