$30 off During Our Annual Pro Sale. View Details »
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
AR グラス + ミニ PC で実現する新しいモバイル環境
contour_gara
0
200
TDD 実践ミニトーク
contour_gara
1
340
Spring Boot と AWS S3 を使ったアプリケーションのテスト
contour_gara
0
74
ノート PC に Linux 入れてみたけど結構良かった
contour_gara
0
3.2k
JUnit5 から Kotest へ
contour_gara
0
190
社外での学びを社内に還元したい
contour_gara
1
480
Database Rider を用いたデータベーステスト
contour_gara
0
430
Other Decks in Programming
See All in Programming
関数実行の裏側では何が起きているのか?
minop1205
1
590
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
190
『実践MLOps』から学ぶ DevOps for ML
nsakki55
2
550
スタートアップを支える技術戦略と組織づくり
pospome
8
15k
All(?) About Point Sets
hole
0
270
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
18k
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
480
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
160
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
590
AIコーディングエージェント(skywork)
kondai24
0
120
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
410
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Being A Developer After 40
akosma
91
590k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
A designer walks into a library…
pauljervisheath
210
24k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
How to Ace a Technical Interview
jacobian
280
24k
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Done Done
chrislema
186
16k
Documentation Writing (for coders)
carmenintech
76
5.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
The Pragmatic Product Professional
lauravandoore
37
7.1k
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 をするというケツを設定することで、 なんとか作りきることができた。 技術選定で悩み、諦めたことを挑戦していきたい。 ライブラリをフォークして、テストしやすくしたい。 自分というユーザーがいる プロダクトを大切に開発を続けたい