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
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2 週間で Twitter Bot を作ってみた
"TechBrew in 東京〜業務外で取り組む 個人開発での学び〜" での LT で用いたスライド。
https://findy.connpass.com/event/313271/
Daisuke Garaike
April 23, 2024
More Decks by Daisuke Garaike
See All by Daisuke Garaike
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
420
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
650
立川で超かぐや姫!について話したい / Talking Cosmic Princess Kaguya! in Tachikawa
contour_gara
1
410
AR グラス + ミニ PC で実現する新しいモバイル環境
contour_gara
0
370
TDD 実践ミニトーク
contour_gara
1
430
Spring Boot と AWS S3 を使ったアプリケーションのテスト
contour_gara
0
150
ノート PC に Linux 入れてみたけど結構良かった
contour_gara
0
3.6k
JUnit5 から Kotest へ
contour_gara
0
220
社外での学びを社内に還元したい
contour_gara
1
580
Other Decks in Programming
See All in Programming
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
Google Apps Script で Ruby を動かす
kawahara
0
140
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
100
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
260
React本体のコードリーディング
high_g_engineer
1
140
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
210
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
370
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.5k
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
210
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
510
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
360
Speed Design
sergeychernyshev
33
2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
Amusing Abliteration
ianozsvald
1
240
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Thoughts on Productivity
jonyablonski
76
5.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Ethics towards AI in product and experience design
skipperchong
2
340
What's in a price? How to price your products and services
michaelherold
247
13k
4 Signs Your Business is Dying
shpigford
187
22k
Everyday Curiosity
cassininazir
0
270
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 をするというケツを設定することで、 なんとか作りきることができた。 技術選定で悩み、諦めたことを挑戦していきたい。 ライブラリをフォークして、テストしやすくしたい。 自分というユーザーがいる プロダクトを大切に開発を続けたい