{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/4798164747","result":{"data":{"markdownRemark":{"id":"3bb85176-c82d-56c0-ab14-9c2639cb09bc","html":"<p>昨日発売された『<a href=\"https://amzn.to/3zdPwTp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">動かして学ぶ! Slackアプリ開発入門</a>』を読んだので感想を書きました。</p>\n<p><a href=\"https://www.amazon.co.jp/dp/B08KDNPT2B/ref=as_li_ss_il?ie=UTF8&linkCode=li3&tag=oshimayuki0d-22&linkId=76ff3208b6d3a1a2b6646ffa802bb9c4&language=ja_JP\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B08KDNPT2B&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li3&amp;o=9&amp;a=B08KDNPT2B\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<h2 id=\"概要\" style=\"position:relative;\"><a href=\"#%E6%A6%82%E8%A6%81\" aria-label=\"概要 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>概要</h2>\n<p>この書籍は、Slack アプリの開発の概要やフレームワーク等を解説したものです。</p>\n<p>そもそも Slack に登場する概念の整理に始まり、Slack の API の解説、ngrok や Bolt といった開発ツール・フレームワークの解説、サンプルアプリの実装やいくつかの環境へのデプロイ方法まで書かれています。</p>\n<h2 id=\"対象読者\" style=\"position:relative;\"><a href=\"#%E5%AF%BE%E8%B1%A1%E8%AA%AD%E8%80%85\" aria-label=\"対象読者 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>対象読者</h2>\n<p>Slack Bot の開発はプログラミング初心者に題材として出されることも少なくないですが、この本の対象者はプログラミング初心者ではありません。</p>\n<p>JavaScript (Node.js) や Web の基礎知識を持っている方が Slack アプリの開発について知りたい、という際に読むような本になっています。</p>\n<h2 id=\"slack-アプリ開発の解説\" style=\"position:relative;\"><a href=\"#slack-%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E3%81%AE%E8%A7%A3%E8%AA%AC\" aria-label=\"slack アプリ開発の解説 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Slack アプリ開発の解説</h2>\n<p>Slack アプリ開発の解説としては、Slack の API がどのように構成されているかから書かれています。\n実際に開発しようとすると API の全体像をつかむのに苦労することもあるので、書籍の中で整理されているのは非常に助かります。</p>\n<p>権限 (Scope) やテスト機能 (Tester) などについても分かりやすく書かれており、実際に Slack アプリを開発する際に役立てやすいのではないかと思います。</p>\n<h2 id=\"bolt\" style=\"position:relative;\"><a href=\"#bolt\" aria-label=\"bolt permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Bolt</h2>\n<p>書籍の中ではサンプルアプリの実装がいくつか紹介されていますが、それらは Bolt という Slack 公式のフレームワークを使って書かれています。</p>\n<p>全体的にコードや画面キャプチャが豊富であり、コードを読める方がであればすらすら理解できるのではないかと思います。</p>\n<p>私は Slack アプリの開発に関わったことはなかったため Bolt というフレームワークのことは知らなかったのですが、非常に簡単に Slack アプリが作れることが分かりました。</p>\n<p>また、これは Bolt 利用時に限った話ではないですが、UI についてもただチャット画面上に文字を整形して表示するだけでなく、モーダルなどを使って表示する方法も解説されています。\n想像していたよりも Slack アプリでリッチなことができることが分かり、驚きました。</p>\n<h2 id=\"アプリの公開\" style=\"position:relative;\"><a href=\"#%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E5%85%AC%E9%96%8B\" aria-label=\"アプリの公開 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>アプリの公開</h2>\n<p>Slack アプリを実際にストア提供する場合には、OAuth の利用やデプロイ周りも検討する必要があります。\nこの本では OAuth やいくつかの環境へのデプロイについても解説されています。</p>\n<p>デプロイ先としては Heroku、AWS Lambda、Google Cloud Run の 3 つについて解説されているのですが、特に Lambda へのデプロイについての解説が手厚いです。</p>\n<p>実は自分はこの本を読む中で、Bolt は Lambda 上で動かそうと思うと結構工夫しないといけないのかな ? と思っていました。\nですが、Express を Lambda 上で動かす aws-serverless-express と組み合わせることで、Lambda 上で Bolt が簡単に使えることが解説されており、非常に参考になりました。</p>\n<p>Slack アプリはサーバレス環境と相性が良い場合が少なくないと思うので、Lambda で動かしたいという需要は多いはずです。\n個人的にはこの解説が一番嬉しかったところです。\n(ネット上にも類似の情報はありますが、そもそも知らないとその情報にたどり着けないかもしれません)</p>\n<h2 id=\"その他\" style=\"position:relative;\"><a href=\"#%E3%81%9D%E3%81%AE%E4%BB%96\" aria-label=\"その他 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>その他</h2>\n<p>この書籍は Slack の基本的な概念から説明が始まっているのですが、途中では標準で提供されているスラッシュコマンド (例えば /invite) などについても書かれています。\n普段から Slack を使っていても知らないような便利なコマンド等も載っており、普通に役立つなと思いました。</p>\n<p>また、コラムとしてはソケットモードなどのリリース予定の機能についても書かれており、今後の Slack アプリの発展についても情報を拾いたくなりました。</p>\n<h2 id=\"おわりに\" style=\"position:relative;\"><a href=\"#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB\" aria-label=\"おわりに permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>おわりに</h2>\n<p>もともと簡単に作れそうだと思っていた Slack アプリですが、Bolt などを使えば想像していた以上に気軽に作れることが分かりました。\nこちらの本の内容をもとに、何か試しに作ってみたい気持ちになりました。</p>\n<p>また、実際にすぐ Slack アプリを作るわけではなくても、その雰囲気を知っておけば何かの際に生かせる場合もあります。\nSlack アプリでどんなことができるかを知っておくためにも、一度手にとってみるといいかもしれません。</p>","fields":{"slug":"/posts/4798164747","tagSlugs":["/tag/slack/"],"autoRecommendPosts":["udemy-web-application-development-with-javascript","udemy-langchain-apps","4297138395","books-about-how-web-and-web-applications-works"]},"frontmatter":{"date":"2020-12-15T11:22:00.651Z","description":"昨日発売された『動かして学ぶ! Slackアプリ開発入門』を読んだので感想を書きました。\nこの書籍は、Slack アプリの開発の概要やフレームワーク等を解説したものです。\nそもそも Slack に登場する概念の整理に始まり、Slack の API の解説、ngrok や Bolt といった開発ツール・フレームワークの解説、サンプルアプリの実装やいくつかの環境へのデプロイ方法まで書かれています。","tags":["slack"],"title":"【読書速報】『動かして学ぶ! Slackアプリ開発入門』の感想","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/4798164747"}},"staticQueryHashes":["251939775","3942705351","401334301"]}