Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2 週間で Twitter Bot を作ってみた

2 週間で Twitter Bot を作ってみた

"TechBrew in 東京〜業務外で取り組む 個人開発での学び〜" での LT で用いたスライド。
https://findy.connpass.com/event/313271/

Daisuke Garaike

April 23, 2024
Tweet

More Decks by Daisuke Garaike

Other Decks in Programming

Transcript

  1. 自己紹介 gara Twitter: @contour_gara GitHub: contour-gara 大学院では大気海洋相互作用の研究 Python, Fortran 23

    年に新卒で入社 Java でサーバーサイドの開発 業務外では Kotlin
  2. 技術選定で悩んだ • Kotlin • ライブラリに依存しない設計 • バージョン管理、自動化、テスト • Spring Boot,

    Ktor • Mybatis, Expose • Docker, Kubernates 素早い価値提供 (LT) のためにも、 左の慣れている技術を採用した 必ずやりたかったこと
 諦めたこと

  3. アーキテクチャ? • 手続き型の書き方でスクリプトを書く • 決められた Path に写真を置いておく • cron で定時にプログラムを実行

    これまで
 これから
 • オブジェクト指向で保守性の高いアプリケーション開発 • 自宅のサーバーでコンテナを起動 • Dropbox に写真を置いておく • cron で定時に Dropbox のファイルをコピー • cron で定時に API を叩く https://little-hands.hatenablog.com/entry/2 018/12/10/ddd-architecture 

  4. 2 週間 → 2 日間 土日はサボってしまう。 テストで悩んでしまう。 https://github.com/contour-gara/gara- photo-spring-boot/commits/main/ 動くプロダクトを作るために

    LT に申し込んだ。 旅行
 検証
 モデリング
 資料
 作成
 クライアントの
 テストどうするん?
 開発
 開発
 申込

  5. Twitter クライアントのテスト Twitter4J と twitter4j-v2 を使用 https://github.com/Twitter4J/Twitter4J https://github.com/takke/twitter4j-v2 適切なリクエストと適切なレスポンスがある以上、
 テストすべきではないだろうか?


    ライブラリ
 API
 End Point
 Twitter4J: 変更可能 → モック可能 v2: ハードコーディング 既存のドメインに対してのリクエストを
 テストする方法はあるのだろうか......
 リクエスト
 レスポンス