Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クリーンアーキテクチャとTDDの中でGitHub Copilotを使ってみた! - NIFTY...
Search
ニフティ株式会社
PRO
October 02, 2023
Video
Resources
Programming
0
1.4k
クリーンアーキテクチャとTDDの中でGitHub Copilotを使ってみた! - NIFTY Tech Talk #14
ニフティ株式会社
PRO
October 02, 2023
Tweet
Share
Video
Resources
GitHub Copilotの導入や活用 - NIFTY Tech Talk #14
https://nifty.connpass.com/event/295966/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
32
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
98
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
30
Maker Faire Tokyo 2025 出展うらばなし - NIFTY Tech Talk #25
niftycorp
PRO
0
69
Private Status Pageの設定と活用 〜インシデントレスポンスへの活用とStatus Page運用をどうするか?〜
niftycorp
PRO
0
97
ニフティのPagerDuty活用状況
niftycorp
PRO
0
110
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.6k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
970
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
100
Other Decks in Programming
See All in Programming
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
120
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
140
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
190
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
18k
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
210
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
3.9k
[堅牢.py #1] テストを書かない研究者に送る、最初にテストを書く実験コード入門 / Let's start your ML project by writing tests
shunk031
11
6.9k
AI時代もSEOを頑張っている話
shirahama_x
0
230
Level up your Gemini CLI - D&D Style!
palladius
1
170
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
270
dnx で実行できるコマンド、作ってみました
tomohisa
0
140
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
5
270
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Docker and Python
trallard
46
3.7k
GitHub's CSS Performance
jonrohan
1032
470k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
960
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Balancing Empowerment & Direction
lara
5
780
Being A Developer After 40
akosma
91
590k
Why Our Code Smells
bkeepers
PRO
340
57k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
380
A better future with KSS
kneath
240
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Transcript
ΫϦʔϯΞʔΩςΫνϟͱTDDͷதͰ GitHub CopilotΛͬͯΈͨʂ @͚ͨΖ͍Ͳ Tech Talk #14
͜Μʹͪʂ ୈೋ։ൃΦϓγϣϯαϒνʔϜ ʹॴଐ͍ͯ͠·͢ɻ ͚ͨΖ͍Ͳ @takenokoroid
ճઢʹਵ͢ΔΦϓγϣϯαʔ ϏεΛӡ༻ɾอक͍ͯ͠·͢ɻ ͚ͨΖ͍Ͳ @takenokoroid https://security.nifty.com/sec24/
ΫϦʔϯΞʔΩςΫνϟʹଇΓ ։ൃΛߦ͍ͬͯ·͢ɻ ͚ͨΖ͍Ͳ @takenokoroid https://amzn.asia/d/0auO8rM
࠷ۙTDDͰ։ൃΛਐΊ͍ͯ͘ Α͏ʹ͍ͯ͠·͢ɻ ͚ͨΖ͍Ͳ @takenokoroid https://marsner.com/blog/why-test-driven-development-tdd/
ෳࡶͳ֊ߏɾϜϥͷ͋Δς ετ͕ͭΒ͍ʙ ͚ͨΖ͍Ͳ @takenokoroid
ෳࡶͳ֊ߏɾϜϥͷ͋Δς ετ͕ͭΒ͍ʙ ͚ͨΖ͍Ͳ @takenokoroid @takenokoroid ͕खॿ͚ͯ͋͛͠ΔΑʂ Copilot @copilot @copilot Ϛʁ
͚ͨΖ͍Ͳ @takenokoroid
- ෳࡶͳ֊ߏ - ґଘ͕ؔDIPʹΑΓҰ෦ෳࡶԽ - ॳݟ߈ུΉΓΆʢֶशίετ૿ʣ ෳࡶͳ֊ߏͷ
ෳࡶͳ֊ߏͷ ࣮ ґଘؔ υϝΠϯࣝ ࠓͷ༦൧ ਓੜઃܭ ࢥ͍Γ
ෳࡶͳ֊ߏͷ ࣮ ґଘ ؔ υϝΠϯࣝ ࠓͷ༦൧ ਓੜઃܭ ࢥ͍Γ
- ςετίʔυͷϜϥ - ݸਓͷखบࢥͰςετίʔυͷॻ͖ํ͕Ұ෦ҟͳΔ - ϨϏϡʔίετ͕૿Ճ͢Δ - ݸਓͷεΩϧʹΑͬͯςετ͕มԽ͢Δෆ݈શͳঢ়ଶʹ ςετίʔυͷϜϥͷ
def test_must_bill_in_bill_month(self): subscription = Subscription( ... ) # mockͷઃఆ ...
test_cases: list[dict] = [ { ... } ] for test_case in test_cases: with self.subTest(test_case["name"]): # ࣮ߦ actual = ... # ݺͼग़͠ςετ self.assertEqual(...) # returnͷςετ self.assertEqual(...) UsecaseͷςετͰ େ͖ͳҧ͍͕ ςετέʔεͷॻ͖ํʹ
def test_subscription_is_active_with_single_entry(self): # ਖ਼ৗܥ:αϒεΫϦϓγϣϯ͕ACTIVEͭ1݅ͷ࣌ request_value = { ... } rs
= ..., ɹwith self.app.app_context(): # ਖ਼ৗܥ result = self.interactor.handle( request=request_value["request"], _txs=request_value["transaction"], ) # ฦΓ͕True͔Ͳ͏͔ΛνΣοΫ self.assertEqual(...) self.assertEqual(...) def test_subscription_is_active_with_single_entry(self): # ਖ਼ৗܥ:αϒεΫϦϓγϣϯ͕ACTIVEͭ2݅Ҏ্ͷ࣌ ... UsecaseͷςετͰ େ͖ͳҧ͍͕ ͪ͜ΒͰςετέʔε͝ͱ ʹϝιουΛ͚͍ͯΔ
- ෳࡶͳ֊ߏ - ґଘ͕ؔͷϝϞϦΛѹഭͯ͠ɺίʔυͷࢥ͍Γ͕ඈͿ - ࣮࣌ʹർΕΔ - ςετίʔυͷϜϥ - ϨϏϡʔ͕ਏ͍
- ݸਓͷεΩϧʹΑ࣭͕ͬͯมΘΔෆ݈શͳঢ়ଶʹ ·ͱΊ
- ෳࡶͳ֊ߏ - ґଘ͕ؔͷϝϞϦΛѹഭͯ͠ɺίʔυͷࢥ͍Γ͕ඈͿ - ࣮࣌ʹർΕΔ - ςετίʔυͷϜϥ - ϨϏϡʔ͕ਏ͍
- ݸਓͷεΩϧʹΑ࣭͕ͬͯมΘΔෆ݈શͳঢ়ଶʹ ·ͱΊ
ෳࡶͳ֊ߏʹରͯ͠CopilotͲ͏ͩͬͨ ࣮ ґଘ ؔ υϝΠϯࣝ ࠓͷ༦൧ ਓੜઃܭ ࢥ͍Γ
ෳࡶͳ֊ߏʹରͯ͠CopilotͲ͏ͩͬͨ ࣮ ґଘؔ υϝΠϯࣝ ࠓͷ༦൧ ਓੜઃܭ ࢥ͍Γ ґଘؔ ΞϧΰϦζϜ
etc..
- ৭ʑͳॻ͖ํ͕Ͱ͖ͯ͠·ͬͨςετίʔυ - ϨϏϡʔίʔυϦʔσΟϯά͕͘͠... ςετίʔυͷϜϥʹର͠CopilotͲ͏ͩͬͨ
- طଘςετίʔυͷίϯςΩετΛཧղ͠ఏҊͯ͘͠ΕΔ - ίʔυ͕౷Ұ͞ΕɺϨϏϡʔ͘͢͠ͳͬͨ ςετίʔυͷϜϥʹର͠CopilotͲ͏ͩͬͨ
- ͔ͬ͠Γͱλϒཧ͠ίϯςΩετΛಡΈࠐ·ͤΔ - ։ൃऀ࣮ࣗʹूதͰ͖ΔΑ͏ʹͳͬͨ - తҙਤΛߟ͑ɺͦΕΛ͑Δͷ͕ओʹͳͬͨ ςετίʔυͷϜϥʹର͠CopilotͲ͏ͩͬͨ
- ଟॏԽͨ͠֊ߏͷͳ͔ͰޮՌతʹಇ͍ͨ - ΤϯδχΞ֓೦Λཧղ͠ɺಛఆͷϑΝΠϧΛ։͚ͩ͘Ͱྑ͍ - ஸೡͳίϝϯτΛߟ͑ͨΓͱʮࢥ͍Γʯͷ͕࣌ؒ૿͑ͨ - ςετίʔυϨϏϡϫʔʹ༏͘͠ͳͬͨ - λϒཧΛҙࣝ͢Δ͜ͱͰ࣮ʹूதͰ͖Δ
- ίʔυͷҙਤతͰձ͢Δ͜ͱ͕ҎલΑΓ૿Ճͨ͠ ·ͱΊ
Copilot͍͍ͧ ͚ͨΖ͍Ͳ @takenokoroid