SlideShare a Scribd company logo
1 of 23
Download to read offline
Peacock #01
速攻使え!! ソフトウェアアーキテクチャ的発想
Self Introduction
Hiroki.Kinoshita


Peacock Engineer Group ( PEG )


Organizer


株式会社KUNO


深層学習とCloudを駆使するDX推進企業


Front Engineer / Designer


Twitter: @kinocoboy2


Blog: Baboblog
Peacock Engineer Group の紹介
Peacock Engineer Group
• PEG の 目的


• 地域や会社・社会人・学生などの垣根を越えて、
自由に楽しく技術力を高め合えるコミュニティ
に!!


• PEG が取り扱うテーマ


• 「明日から使えるTips」


• 運営スタッフ随時募集中!
イベントの楽しみ方
• Twitter とSpecialChat を駆使


• #PEACOCK


• どんどん呟いていきましょー


• 質問は、Twitter でもいいし、SpecialChat の
チャット欄からでもOKです。


• オンラインなので積極的にやってみましょー


• 懇親会も有志で行います。


• SpecialChat の 広場で行います。


• 色々交流しましょー
速攻使え!!


ソフトウェアアーキテクチャ的発想
PMBOK 第七版
PMBOKの改定
PMBOK(ピンボック)とは、


世界中のプロマネの実務家から意見を集めてプロジェクトマネジメン
トについて知識体系化している分厚い本。


最近、結構業界がざわつく変化が!!
「成果物の提供」から「価値の提供」へ
「成果物の提供」から「価値の提供」へ
世界的に案件進行は、ウォーターフォール型開発からアジャイル開発
へのピボットが行われた様子。


さらに、「価値を提供する」ためには「価値を見出さなければならな
い」という難しさも発生してきた。
価値を見出すための方法
そのために、DDD(ドメイン駆動設計) や モデリング・ユーザーストー
リーマッピングなどの要件を抽象化して整理する手法が一気に普及し
ている。


しかし、この手法は覚えればすぐに順応できるかと言うとNOだ。
価値提供型の進め方や価値の探索には、試行錯誤しながらユーザーヒ
アリングを繰り返す必要がある。


そのスピードが速く、従来のウォーターフォール型に慣れている場
合、ピボット(大胆に捨てて・また生かして)が難しい。
なぜすぐ順応できないのか
大胆な開発を行えるようになるために、以下手法が有効になる


- 部分的な安全性を常に担保し続けるテスト駆動設計


- 役割を明確にして進めるイベント駆動設計・クリーンアーキテクチャ


これを始めるためには、責任範囲の分解ノウハウがいる。
大胆に捨てたり・生かしたりするために
逆に
テスト駆動設計・イベント駆動設計・クリーンアーキテクチャの入り
口に立つことができる。


そしてこれらを利用できるようになってくると、DDDやモデリングな
どの素早いピボットが要求される設計手法でも柔軟に対応できるよう
になってくる。


今回は、責任範囲の分解に注力していきたいと思う。
責任範囲の分解ができるようになれば
例題
• 責任範囲の分解を知らず


• 動くものだけを目指したのでテストも実際に動か
してみたりする感じ


• 確かに動くが…


• 全て main に詰め込んでいるので、どこかでトラ
ブルが起きたら main 全体を debug しなけれ
ば…


• Main の テストって結局何をチェックすれば…
とあるヒヨコード🐥
ヒヨコードの責任分解には、DI(Dependency Injection)の考え方が使え
そうだ。


DIとは、「依存オブジェクトを注入」と呼ばれるデザインパターンの
事。


これを使ってヒヨコードをバラしていこう


責任分解には
例題
• まず一番ごちゃついているdatabase 疎通周りから。


• Main を動かすとき、database instance まで立ち
上げてからquery を発行する仕組みになってい
る。


• まずは query の部品の責任範囲を外してみる。


• Query を実行するためには、 database instance
と query param があれば分解できるので、
model という領域を作ってDBとやりとりをさせ
た。


• これによって、DB周りでトラブルが起きた
ら、model だけを見れば良くなった
とあるヒヨコード🐥
例題
• 次にmain を起動するたびに毎回 database instance
up している部分をやめよう。


• Main を動かすために、 model が必要であり、
model は database instance を欲しがるなら、
main にも database instance を外から与えてあげ
れば良い。


• この対応で、database instance は システムで単
一である形が約束される。これはsingleton という
デザインパターン。


• Main のテストをするとき、 database instance と
query parameter を入れたら動作確認が取れるよ
うになった。
とあるヒヨコード🐥
例題
• 次にbusiness logic をmain から分離しよう。


• これの分離には、 query の result があればlogic
は回せそうだ。


• Main 関数ではなく、 logic function として考え
る。


• Logic を分離させることで、 main の動作確認
で必要なことは param parse と param
validate のみ残されている。


• Logic は model result があれば、単体でテス
トできるからだ。
とあるヒヨコード🐥
① 責任分解には、DI化が有効。


② DIは「依存オブジェクト注入」というデザインパターン。


③ 依存オブジェクトを入れるためには、in, out を整理しよう。


④ システムで単一であることを守りたいなら、singleton というデザ
インパターンは有効


⑤ この知見は、モダンな設計を進めるための基礎である。
まとめ
ご静聴ありがとうございました
ソフトウェアアーキテクチャ「的」発想
質疑応答

More Related Content

Similar to 速攻使え!! ソフトウェアアーキテクチャ的発想

Sharing Devoxx2023 highlights
Sharing Devoxx2023 highlightsSharing Devoxx2023 highlights
Sharing Devoxx2023 highlightsmhpmvanosch
 
Secrets of a good Pitch
Secrets of a good PitchSecrets of a good Pitch
Secrets of a good PitchCedric Giorgi
 
Steganography: a tool for community driven development in TerraTech
Steganography: a tool for community driven development in TerraTechSteganography: a tool for community driven development in TerraTech
Steganography: a tool for community driven development in TerraTechRuss Clarke
 
Communication tool & Environment for Remote Worker
Communication tool & Environment for Remote WorkerCommunication tool & Environment for Remote Worker
Communication tool & Environment for Remote WorkerShotaro Sakamaki
 
Coding For Fun And Profit
Coding For Fun And ProfitCoding For Fun And Profit
Coding For Fun And Profitjschoolcraft
 
Sparking Innovation With GitHub
Sparking Innovation With GitHubSparking Innovation With GitHub
Sparking Innovation With GitHubFelix Roberge
 
Creating Online Tutorials with Screencasting
Creating Online Tutorials with ScreencastingCreating Online Tutorials with Screencasting
Creating Online Tutorials with ScreencastingBeth Carpenter
 
Bringing Dev and Ops together with ChatOps
Bringing Dev and Ops together with ChatOpsBringing Dev and Ops together with ChatOps
Bringing Dev and Ops together with ChatOpsJaap Brasser
 
OpenStack Upstream Training Report
OpenStack Upstream Training ReportOpenStack Upstream Training Report
OpenStack Upstream Training ReportRakuten Group, Inc.
 
Jake group 3 question 7 eval
Jake group 3 question 7 eval Jake group 3 question 7 eval
Jake group 3 question 7 eval jakeewen98
 
Dancing for a product release
Dancing for a product releaseDancing for a product release
Dancing for a product releaseLaurent Cerveau
 
Project Management Workshop
Project Management WorkshopProject Management Workshop
Project Management WorkshopJosh Folgado
 
Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14
Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14
Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14TechSoup
 
Chainlink Hackathon: Launch Event.pdf
Chainlink Hackathon: Launch Event.pdfChainlink Hackathon: Launch Event.pdf
Chainlink Hackathon: Launch Event.pdfTinaBregovi
 
Road to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache ArrowRoad to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache ArrowNeo4j
 
Microsoft Yapay Zeka Servisleri İş Başında Sunumu
Microsoft Yapay Zeka Servisleri İş Başında SunumuMicrosoft Yapay Zeka Servisleri İş Başında Sunumu
Microsoft Yapay Zeka Servisleri İş Başında SunumuMSHOWTO Bilisim Toplulugu
 
Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...
Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...
Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...Emmanuel Kehinde
 
Implementing AI in MBSE
Implementing AI in MBSEImplementing AI in MBSE
Implementing AI in MBSETaylorDuffy11
 

Similar to 速攻使え!! ソフトウェアアーキテクチャ的発想 (20)

Sharing Devoxx2023 highlights
Sharing Devoxx2023 highlightsSharing Devoxx2023 highlights
Sharing Devoxx2023 highlights
 
Maker Boot Camp
Maker Boot CampMaker Boot Camp
Maker Boot Camp
 
Secrets of a good Pitch
Secrets of a good PitchSecrets of a good Pitch
Secrets of a good Pitch
 
Steganography: a tool for community driven development in TerraTech
Steganography: a tool for community driven development in TerraTechSteganography: a tool for community driven development in TerraTech
Steganography: a tool for community driven development in TerraTech
 
Communication tool & Environment for Remote Worker
Communication tool & Environment for Remote WorkerCommunication tool & Environment for Remote Worker
Communication tool & Environment for Remote Worker
 
Coding For Fun And Profit
Coding For Fun And ProfitCoding For Fun And Profit
Coding For Fun And Profit
 
Sparking Innovation With GitHub
Sparking Innovation With GitHubSparking Innovation With GitHub
Sparking Innovation With GitHub
 
Creating Online Tutorials with Screencasting
Creating Online Tutorials with ScreencastingCreating Online Tutorials with Screencasting
Creating Online Tutorials with Screencasting
 
Bringing Dev and Ops together with ChatOps
Bringing Dev and Ops together with ChatOpsBringing Dev and Ops together with ChatOps
Bringing Dev and Ops together with ChatOps
 
OpenStack Upstream Training Report
OpenStack Upstream Training ReportOpenStack Upstream Training Report
OpenStack Upstream Training Report
 
Core Hack Day 2
Core Hack Day 2Core Hack Day 2
Core Hack Day 2
 
Jake group 3 question 7 eval
Jake group 3 question 7 eval Jake group 3 question 7 eval
Jake group 3 question 7 eval
 
Dancing for a product release
Dancing for a product releaseDancing for a product release
Dancing for a product release
 
Project Management Workshop
Project Management WorkshopProject Management Workshop
Project Management Workshop
 
Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14
Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14
Webinar - Video Editing and Production with Adobe Premiere Pro - 2016-06-14
 
Chainlink Hackathon: Launch Event.pdf
Chainlink Hackathon: Launch Event.pdfChainlink Hackathon: Launch Event.pdf
Chainlink Hackathon: Launch Event.pdf
 
Road to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache ArrowRoad to NODES - Blazing Fast Ingest with Apache Arrow
Road to NODES - Blazing Fast Ingest with Apache Arrow
 
Microsoft Yapay Zeka Servisleri İş Başında Sunumu
Microsoft Yapay Zeka Servisleri İş Başında SunumuMicrosoft Yapay Zeka Servisleri İş Başında Sunumu
Microsoft Yapay Zeka Servisleri İş Başında Sunumu
 
Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...
Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...
Digital Business Summit 2021 - Journey into Tech: Building a Successful Caree...
 
Implementing AI in MBSE
Implementing AI in MBSEImplementing AI in MBSE
Implementing AI in MBSE
 

Recently uploaded

MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)Suman Mia
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 

Recently uploaded (20)

MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)Software Development Life Cycle By  Team Orange (Dept. of Pharmacy)
Software Development Life Cycle By Team Orange (Dept. of Pharmacy)
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 

速攻使え!! ソフトウェアアーキテクチャ的発想