Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2 週間で Twitter Bot を作ってみた
Search
Daisuke Garaike
April 23, 2024
Programming
0
1.2k
2 週間で Twitter Bot を作ってみた
"TechBrew in 東京〜業務外で取り組む 個人開発での学び〜" での LT で用いたスライド。
https://findy.connpass.com/event/313271/
Daisuke Garaike
April 23, 2024
Tweet
Share
More Decks by Daisuke Garaike
See All by Daisuke Garaike
Spring Boot と AWS S3 を使ったアプリケーションのテスト
contour_gara
0
17
ノート PC に Linux 入れてみたけど結構良かった
contour_gara
0
2.8k
JUnit5 から Kotest へ
contour_gara
0
160
社外での学びを社内に還元したい
contour_gara
1
430
Database Rider を用いたデータベーステスト
contour_gara
0
390
Other Decks in Programming
See All in Programming
A2A プロトコルを試してみる
azukiazusa1
2
1.4k
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
320
「テストは愚直&&網羅的に書くほどよい」という誤解 / Test Smarter, Not Harder
munetoshi
0
170
効率的な開発手段として VRTを活用する
ishkawa
0
140
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
190
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.5k
PipeCDのプラグイン化で目指すところ
warashi
1
280
AIともっと楽するE2Eテスト
myohei
6
2.6k
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
14
5.2k
Hack Claude Code with Claude Code
choplin
4
2.1k
Code as Context 〜 1にコードで 2にリンタ 34がなくて 5にルール? 〜
yodakeisuke
0
130
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.3k
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Music & Morning Musume
bryan
46
6.6k
Docker and Python
trallard
44
3.5k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Scaling GitHub
holman
460
140k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Visualization
eitanlees
146
16k
GitHub's CSS Performance
jonrohan
1031
460k
Statistics for Hackers
jakevdp
799
220k
BBQ
matthewcrist
89
9.7k
Transcript
2 週間で Twitter Bot を作ってみた 2024-04-23 TechBrew in 東京 Daisuke
Garaike
自己紹介 gara Twitter: @contour_gara GitHub: contour-gara 大学院では大気海洋相互作用の研究 Python, Fortran 23
年に新卒で入社 Java でサーバーサイドの開発 業務外では Kotlin
写真を毎日投稿してくれる Bot 写真が趣味なので、 毎日写真を投稿したい。 投稿時間、文章は毎回同じなのに、 毎回設定するのは面倒。 決まった所に写真を置いておけば 投稿してくれる Bot があると助かる。
https://github.com/contour-gara/ gara-photo-spring-boot
実は...... Python で自動化コードを書いたものが動かなくなった。 https://x.com/XDevelopers/status/1641222782594990080 だらだら書くコーディングスタイルだったため、 リファクタリングできなかった。
技術選定で悩んだ • Kotlin • ライブラリに依存しない設計 • バージョン管理、自動化、テスト • Spring Boot,
Ktor • Mybatis, Expose • Docker, Kubernates 素早い価値提供 (LT) のためにも、 左の慣れている技術を採用した 必ずやりたかったこと 諦めたこと
アーキテクチャ? • 手続き型の書き方でスクリプトを書く • 決められた Path に写真を置いておく • cron で定時にプログラムを実行
これまで これから • オブジェクト指向で保守性の高いアプリケーション開発 • 自宅のサーバーでコンテナを起動 • Dropbox に写真を置いておく • cron で定時に Dropbox のファイルをコピー • cron で定時に API を叩く https://little-hands.hatenablog.com/entry/2 018/12/10/ddd-architecture
2 週間 → 2 日間 土日はサボってしまう。 テストで悩んでしまう。 https://github.com/contour-gara/gara- photo-spring-boot/commits/main/ 動くプロダクトを作るために
LT に申し込んだ。 旅行 検証 モデリング 資料 作成 クライアントの テストどうするん? 開発 開発 申込
Twitter クライアントのテスト Twitter4J と twitter4j-v2 を使用 https://github.com/Twitter4J/Twitter4J https://github.com/takke/twitter4j-v2 適切なリクエストと適切なレスポンスがある以上、 テストすべきではないだろうか?
ライブラリ API End Point Twitter4J: 変更可能 → モック可能 v2: ハードコーディング 既存のドメインに対してのリクエストを テストする方法はあるのだろうか...... リクエスト レスポンス
まとめと今後 2 週間後に LT をするというケツを設定することで、 なんとか作りきることができた。 技術選定で悩み、諦めたことを挑戦していきたい。 ライブラリをフォークして、テストしやすくしたい。 自分というユーザーがいる プロダクトを大切に開発を続けたい