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
41
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
110
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
160
Maker Faire Tokyo 2025 出展うらばなし - NIFTY Tech Talk #25
niftycorp
PRO
0
76
Private Status Pageの設定と活用 〜インシデントレスポンスへの活用とStatus Page運用をどうするか?〜
niftycorp
PRO
0
110
ニフティのPagerDuty活用状況
niftycorp
PRO
0
110
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.6k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
1k
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
110
Other Decks in Programming
See All in Programming
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
280
Developing static sites with Ruby
okuramasafumi
0
320
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
410
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
3.8k
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
160
これならできる!個人開発のすゝめ
tinykitten
PRO
0
130
GoLab2025 Recap
kuro_kurorrr
0
780
tparseでgo testの出力を見やすくする
utgwkk
2
280
GISエンジニアから見たLINKSデータ
nokonoko1203
0
180
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
130
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
Implementation Patterns
denyspoltorak
0
120
Featured
See All Featured
Visualization
eitanlees
150
16k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
89
A Tale of Four Properties
chriscoyier
162
23k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Docker and Python
trallard
47
3.7k
Speed Design
sergeychernyshev
33
1.4k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
80
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
100
HDC tutorial
michielstock
0
270
Git: the NoSQL Database
bkeepers
PRO
432
66k
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