23
12

More than 1 year has passed since last update.

ライバルがコーディングしていることを知らせてくれる「Sanpo」を作った

Last updated at Posted at 2023-04-15

main.jpg

はじめに

最近ChatGPTを見ない日はないほどネットで話が上がっています。
エンジニアもそろそろChatGPTを使いこなして何かを開発しないといけないのではと思ったので、今回は簡単なアプリを作りながらツールとして使ってみることにしました

今回はこちらのアプリケーションを作成しました

作成時間は5時間ほどで、ChatGPTを活用するために新しい技術を取り入れてみました

どんなアプリ?

このアプリでは、GitHubのコミット(通称:草)を確認して、今日コミットがされているかを1日1回定期実行で確認してLINEに通知してくれます

  1. コミットされているかを確認
    image.png

  2. コミットされていたらLINEに通知
    image.png

なぜ作ったのか

転職をして周りがかなりつよつよのエンジニアばかりの中で仕事をしています
周りのエンジニアは毎日のようにプライベートでコードを書いている中で、よわよわの私が毎日コードを書かないと差を埋めるどころか、差をつけられてしまうなと思いました

しかし、毎日コーディングを仕事とは別にやるのはなかなかモチベーション維持が難しいです
そこで会社の人やライバル視しているエンジニアが今日も勉強(コーディング)しているぞというのを通知してくれるLINEボットがあれば負けず嫌いの私は頑張れると思いました

また、自分のコミットを監視することで毎日コーディングする意識をつけることができます

アプリ名について

今回「Sanpo」と名付けました
なるべくリポジトリ名は自分が気にいるような名前にして、そのリポジトリがたくさん増えることでおしゃれなアカウントを目指しています

「Sanpo」にしたのは、他の人のコミット(草)を見に行くということから、公園に緑を見に歩くというイメージでつけました

使用技術

  • Deno
  • TypeScript
  • GitHub Actions
  • LINE API
  • ChatGPT (ツールとして)

今回はDenoを利用して開発を行いました
いままでNodeしか使ったことがなかったのですが、仕事で利用する機会があり良いなと感じたので挑戦します

開発について

それぞれの技術について開発して思ったことを書いていきます

Deno

Denoを今回初めて使ってみましたがかなり良いなと思いました
npm installのようなものがないのでリポジトリが膨れ上がることがありません
よく使うライブラリはDenoにも同じようなものが用意されているので困りませんでした

開発は基本的にTDDで行っており、TypeScriptの場合Jestを使っています。しかし、Denoの場合はDenoのテストライブラリが用意されているので、Jestと同じ感覚で使うことができていちいちインストールする必要もなく使えました

TypeScript

クリーンアーキテクチャでTDDで開発しました
いつもどおりの開発だったので特に困ったことなどはありませんでした
だんだんTypeScriptが好きになりました

GitHub Actions

パイプラインの中では

  1. テスト実行
  2. スクリプトの定期実行

を行っています

定期実行をどのようにするか迷っていた中でGitHub Actionsでできることを知ったので今回初めて試してみました

実行時間から5-10分ほど遅れて実行されてしまうので利用できるシーンは限られますが、今回は特に時間は気にしないので利用することにしました

ChatGPT

主にわからないことを聞くツールとして利用しました
課金しておりChatGPT-4です

Deno周り、Github Actionsの定期実行について聞いたところほとんど他に調べることなく実装することができました

いまのところかなり便利だなという印象です
エンジニアの仕事無くなりそうと思いました

こだわり

モチベーションをあげるためにこのアプリを作ったわけですが、これ以外にもモチベーションをあげるための取り組みをしています

それが「おしゃれなリポジトリ」を作ることです
リポジトリのバナー画像をみていただけるとわかるかと思いますが、いい感じです
この画像はStable Diffusionで作成しています。このようにリポジトリにバナー画像を用意するだけで愛着がわきます。そしてそのようなリポジトリをたくさん作ってシリーズ化していこうという気分になります。

アプリケーション自体も、規模が大きいものではなく小さいものにするようにしています。
そのアプリの中で試してみたい技術を使うようにしています

またアプリケーションは自分が使いたいものを作るのも意識しています

技術的なこだわりは今回はないです(笑)

またこの記事のように作ったアプリをまとておくのも継続のコツかなと思っています

おわりに

個人開発した記録として記事を書いてみました
今後は記事に出して終了として行こうかなと思います

このアプリにはまだまだ改善点は多くあります

  • コミット数も通知する
  • コミットしてないときも通知する
  • 定期実行の回数を増やす
    ...etc

今回はこれで終わりの予定ですが、内容としては初心者でも理解できるくらいのアプリケーションになっているのでプルリクお待ちしております!

参考

23
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
12