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
今日話すこと / debut-sushi_haneda
Search
Cybozu
PRO
September 16, 2021
Technology
0
340
今日話すこと / debut-sushi_haneda
Cybozu
PRO
September 16, 2021
Tweet
Share
More Decks by Cybozu
See All by Cybozu
不具合の先にある面白さ~配属3か月目の新卒QAのいま~
cybozuinsideout
PRO
0
42
kintone開発チームの紹介
cybozuinsideout
PRO
1
77k
kintone開発のプラットフォームエンジニアの紹介
cybozuinsideout
PRO
0
140
AIツール開発ワークショップ(Dify)【サイボウズ新人研修2025】
cybozuinsideout
PRO
20
24k
モバイル【サイボウズ新人研修2025】
cybozuinsideout
PRO
3
3.9k
Git/GitHub を使う上で知っておくと嬉しいかも Tips【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
11k
GitHub Copilot活用【サイボウズ新人研修2025】
cybozuinsideout
PRO
15
15k
ソフトウェアライセンス【サイボウズ新人研修2025】
cybozuinsideout
PRO
14
8.5k
エンジニアのためのアウトプット講座 〜知識をシェアするはじめの一歩〜【サイボウズ新人研修2025】
cybozuinsideout
PRO
7
4.8k
Other Decks in Technology
See All in Technology
事業開発におけるDify活用事例
kentarofujii
1
260
Railsの話をしよう
yahonda
0
160
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
12
81k
LLMプロダクトの信頼性を上げるには?LLM Observabilityによる、対話型音声AIアプリケーションの安定運用
ivry_presentationmaterials
0
540
ソフトウェアエンジニアの生成AI活用と、これから
lycorptech_jp
PRO
0
510
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
340
dbtとBigQuery MLで実現する リクルートの営業支援基盤のモデル開発と保守運用
recruitengineers
PRO
3
120
速習AGENTS.md:5分で精度を上げる "3ブロック" テンプレ
ismk
6
1.8k
AI Agent Dojo #2 watsonx Orchestrateフローの作成
oniak3ibm
PRO
0
130
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
900
Zephyr(RTOS)にEdge AIを組み込んでみた話
iotengineer22
0
170
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
45
7.7k
How GitHub (no longer) Works
holman
315
140k
Designing for Performance
lara
610
69k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Embracing the Ebb and Flow
colly
88
4.9k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Why Our Code Smells
bkeepers
PRO
340
57k
How STYLIGHT went responsive
nonsquared
100
5.8k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
A designer walks into a library…
pauljervisheath
209
24k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Transcript
今日話すこと 21新卒 Garoon開発の羽田です。 Garoon配属後にやったことと、そこで感じたことについて話します。
名前 羽田 智史 (はねだ ともふみ) 出身大学 会津大学 大学時代 SI企業で4年間アルバイト Java/SpringでWEB業務システムを開発
趣味 筋トレ サイクリング ゲーム カメラ 最近ハマっていたこと 自作キーボード mint60 つくりました、ついでに無線化しました
配属 7月からGaroon Odangoチームに所属 改善や技術のタスクのハンドリングをするチーム 配属を希望した理由 新規開発はアルバイトで経験してきたので、経験したことのない改善系や大きめの タスクをやってみたいと思った
配属後にやったこと Garoonチュートリアル (7月上旬~中旬) 簡単な画面を作る オンプレ版のインストール, アップデート Garoonの機能を触る はじめてのおつかい (7月中旬~8月末) 同期メンバーとモブでタスクを行い、一通りの開発プロセスを学ぶ
バグ修正3つ, +α UnitTestの副作用修正(後述)
はじめてのおつかいの所感
バグ改修
レガシーなコードが残っているために、問題のコードを探すのが大変な場合がある 1メソッド, 1ファイルがとにかく長い 変数に何の値が入っているか分からない 変数の生成先がめっちゃ深い メソッドを呼んでいる -> 200行くらいのメソッド -> さらに入れ子でメソ
ッドを呼んでいる -> 以下ループ コードは読まずに、デバッグして実際の値, 動作を見た方が早い 既存のコードがテスタブルではないため、UnitTestが書きづらい global変数, static変数, コードが長い など 小さなバグを一つ直すのでさえ、Garoonだと数日かかる場合がある
UnitTestの副作用修正
CI上では問題ないが、ローカルでは失敗するUnitTestが存在した ローカルでUnitTestを全体実行した時、同じプロセスで実行するため、あるテストの副 作用が別のテストに影響を与えてた 副作用が起きるケース: あるテストでグローバル変数がモックに置き換えられていた。 継続して実行される次のテストではモックではないグローバル変数であること を前提としている。 だが、前のテストでモックに変わっているために後続のテストが失敗した。
CIでテストを全体実行しているが、独立したプロセスで実行されるため問題は起きてい ない 独立したプロセスで一つ一つ実行するため時間がかかる もし副作用による問題を修正できれば、CIでも同一プロセスで実行できるため、実 行時間が大幅に減る 副作用を起こすようなコードはよくない クラス, インスタンスが状態を保持する, グローバル変数を使う 副作用が起きてしまう場合は、後処理をする
テスト用に値を変更したのであれば、元に戻すことが大事
結果どうだったか 数日かけて副作用を治して、ローカルでUnitTestが動くようになった CI上ですべてのテストを同一プロセスで動くように設定を変えたところ、テストが 動かなかったため、実行時間の短縮はできなかった 期限も来ていたので諦めた Garoonは甘くない
まとめ Garoonで開発をするのは大変 その分やりがいがある 大変だからこそ、Garoonをもっと良くしていくためには?ということを常に考えるよう になった 良いコードの書き方, レガシーコードの改善について探求していきたい プロダクト全体で改善に対する意識が高く、先輩たちのテクニックや考え方が勉強 になる
これからもGaroonで頑張っていきます!!! 終わり