Submit Search
Upload
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
•
3 likes
•
4,666 views
Yuta Matsumura
Follow
https://alterbooth.connpass.com/event/103125/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
Yuta Matsumura
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
Recommended
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
Yuta Matsumura
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
ssuser070fa9
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
Go Miyasaka
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
Azure Api Management 俺的マニュアル 2020年3月版
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Developers Summit
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
KLab Inc. / Tech
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
AWS Black Belt Online Seminar AWS CloudFormation アップデート
AWS Black Belt Online Seminar AWS CloudFormation アップデート
Amazon Web Services Japan
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Cobolでもやりたいテスト自動化
Cobolでもやりたいテスト自動化
daisukhayash
Keycloakの最近のトピック
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Developers Summit
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
More Related Content
What's hot
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
Yusuke Suzuki
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Developers Summit
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
KLab Inc. / Tech
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
Amazon Web Services Japan
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
AWS Black Belt Online Seminar AWS CloudFormation アップデート
AWS Black Belt Online Seminar AWS CloudFormation アップデート
Amazon Web Services Japan
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
NTT DATA Technology & Innovation
Cobolでもやりたいテスト自動化
Cobolでもやりたいテスト自動化
daisukhayash
Keycloakの最近のトピック
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
What's hot
(20)
DockerとPodmanの比較
DockerとPodmanの比較
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
ブレソルでテラバイト級データのALTERを短時間で終わらせる
ブレソルでテラバイト級データのALTERを短時間で終わらせる
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
AWS Black Belt Online Seminar AWS CloudFormation アップデート
AWS Black Belt Online Seminar AWS CloudFormation アップデート
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Cobolでもやりたいテスト自動化
Cobolでもやりたいテスト自動化
Keycloakの最近のトピック
Keycloakの最近のトピック
Docker Compose 徹底解説
Docker Compose 徹底解説
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Similar to イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Developers Summit
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
陽一 滝川
Bringing Continuous Agile to Japan
Bringing Continuous Agile to Japan
Andy Singleton
CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするために
Takafumi Ikeda
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
Hiroyuki Tanaka
俺 と ご褒美 Bot
俺 と ご褒美 Bot
Masayuki KaToH
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
Ryutaro YOSHIBA
TDDはじめる前に
TDDはじめる前に
Yasui Tsutomu
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Makoto Iguchi
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
今、おさえておきたい DevOps
今、おさえておきたい DevOps
智治 長沢
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
Game Tools & Middleware Forum
自動テストのすすめ
自動テストのすすめ
Katsunori Kanda
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
20130320 agile pm
20130320 agile pm
Takao Kimura
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
Koichi ITO
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Hiro Yoshioka
ITS fidel
ITS fidel
Fidel Softech P. Ltd
Similar to イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
(20)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
Bringing Continuous Agile to Japan
Bringing Continuous Agile to Japan
CEDEC2015講演 チーム開発をスムーズにするために
CEDEC2015講演 チーム開発をスムーズにするために
GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
俺 と ご褒美 Bot
俺 と ご褒美 Bot
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
TDDはじめる前に
TDDはじめる前に
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
今、おさえておきたい DevOps
今、おさえておきたい DevOps
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
GTMF 2015: バグを減らそう。テストを楽にしよう。静的解析が開発者を救う。 | 日本シノプシス合同会社
自動テストのすすめ
自動テストのすすめ
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
20130320 agile pm
20130320 agile pm
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
ITS fidel
ITS fidel
More from Yuta Matsumura
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
Yuta Matsumura
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
App Modernization for .NET
App Modernization for .NET
Yuta Matsumura
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
Yuta Matsumura
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
いつでもどこでも .NET
いつでもどこでも .NET
Yuta Matsumura
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
Yuta Matsumura
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
Yuta Matsumura
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もう
Yuta Matsumura
Blazor Server テンプレート解説
Blazor Server テンプレート解説
Yuta Matsumura
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura
改めて C# でできることを振り返る
改めて C# でできることを振り返る
Yuta Matsumura
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
Yuta Matsumura
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ
Yuta Matsumura
.NET Conf の歩き方
.NET Conf の歩き方
Yuta Matsumura
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式
Yuta Matsumura
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式
Yuta Matsumura
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
Yuta Matsumura
ASP.NET Core 2.x Identityについて
ASP.NET Core 2.x Identityについて
Yuta Matsumura
More from Yuta Matsumura
(20)
「自分のとこでは動くけど…」を無くす devcontainer
「自分のとこでは動くけど…」を無くす devcontainer
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
App Modernization for .NET
App Modernization for .NET
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
いつでもどこでも .NET
いつでもどこでも .NET
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もう
Blazor Server テンプレート解説
Blazor Server テンプレート解説
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
改めて C# でできることを振り返る
改めて C# でできることを振り返る
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
忙しい人のための .NET Conf 2019 まとめ
忙しい人のための .NET Conf 2019 まとめ
.NET Conf の歩き方
.NET Conf の歩き方
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 開会式
PHPカンファレンス福岡2019 開会式
これから始める Bot Builder 開発のコツと舞台裏
これから始める Bot Builder 開発のコツと舞台裏
ASP.NET Core 2.x Identityについて
ASP.NET Core 2.x Identityについて
Recently uploaded
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Recently uploaded
(10)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
1.
イケてる技術で品質を担保しつつ スピード感のある開発を実現する冴えたやり方 2018/10/23 AADojo #0 株式会社オルターブース
松村 優大
2.
松村 優大 (MLBお兄さん) 株式会社オルターブース 業務執行役員/CTA C#/PHP/Azure/AWS 31歳/島根出身/娘1人
3.
開発において大事にしていること • テストできる状態(Testable)を保つ・網羅する • 今日書いたコードは今日テストを書く •
開発初期段階からCIを回す(Continuous Integration)
4.
なぜテストが必要か(再確認) • エラーを見つける • 想定内のエラー:想定通りのエラー処理であることを確認 •
想定外のエラー:リリース前にエラーに気付くため • 変更に伴う“デグレ”を生まない・残さない
5.
Testableなコードとは • 処理(関数)の目的が明確かつ粒度が小さい • 途中処理の差し替えが容易である(モック) •
外部リソースの挙動の差し替えが容易である(モック) データベース SaaS (API) ストレージ
6.
.NET Coreのバージョンとサポート計画 バージョン レベル
リリース日 サポート終了日 1.0 LTS 2016/06/27 2019/06/27 1.1 LTS 2016/11/16 2019/06/27 2.0 Current 2017/08/14 2018/10/01 2.1 LTS 2018/05/30 At least three years from LTS declaration (August 21, 2018) 2.2-preview3 Preview 2018/09/12 - ※2018/10/23現在
7.
Data Store Repository Controller View Model Service/Domain Repository Model Repository Model Data Store Model Controller View Model
Model
8.
ユースケースに従って ServiceやDomainを 構成する CRUDの操作のみ データ保存の振る舞い
9.
public interface IRepository<T>
where T : class { IEnumerable<T> GetAll(); //一覧 T Find(int id); //取得 T Create(T entity); //作成 void Update(T entity); //更新 void Delete(T entity); //削除 } public interface IUserRepository : IRepository<User> { }
10.
public class UserRepository
: IUserRepository { private readonly DbContext db; public UserRepository(DbContext db) => this.db = db; public IEnumerable<User> GetAll() => ...; public User Find(int id) => ...; public User Create(User entity) => ...; db.SaveChanges(); public void Update(User entity) => ...; db.SaveChanges(); public void Delete(User entity) => ...; db.SaveChanges(); DbContext = データベース = 外部リソース 外部リソースを直接操作する ため、モックを作れない (=テストしづらい)
11.
public class UsersController
: Controller { private readonly IUserRepository userRepository; public UsersController(IUserRepository userRepository) => this.userRepository = userRepository; public IActionResult Create(User user) { userRepository.Create(user); return Ok(); } テスト時はモックのリポジトリを差し込む 処理のなかで外部リソースが現れるため 単体テストを行うことができない (擬似的な保存の振舞いができない)
12.
ユースケースに従って ServiceやDomainを 構成する CRUDの操作のみ データ保存の振る舞い データストアを隠蔽 単体テストが可能
13.
public interface IUnitOfWork
{ int SaveChanges(); //DbContext.SaveChanges(既存の保存処理) bool SaveEntities(); //実際に呼び出される保存処理の定義 } public class MyContext : DbContext, IUnitOfWork { public DbSet<User> Users { get; set; } public bool SaveEntities() => 0 < this.SaveChanges(); //public bool SaveEntities() => true; //モックの書き方 } DbContextに新しい保存処理を実装 (テストではモック化し保存の振舞いだけ)
14.
public class UserRepository
: IUserRepository { private readonly DbContext db; public IUnitOfWork UnitOfWork => db; public UserRepository(DbContext db) => this.db = db; --- public IActionResult Create(User user) { userRepository.Create(user); userRepository.UnitOfWork.SaveEntities(); return Ok(); } リポジトリから保存処理を切り離す 処理のなかで外部リソースが隠蔽されたため 単体テストを行うことが可能
15.
アプリケーションアーキテクチャを どう学ぶか
16.
アーキテクチャを学ぶうえで良い資料
17.
18.
実行環境をどうするか PaaS? コンテナー? サーバーレス? アプリケーション構成に応じて適した環境を選ぶべき →言語(ランタイム)、規模、スケール、実行頻度、etc →Kubernetesを使うかどうかは規模によりけり
19.
Appendix • https://www.microsoft.com/net/learn/dotnet/architecture-guides • https://docs.microsoft.com/ja-jp/dotnet/standard/modern-web-apps-azure-architecture/ •
https://github.com/dotnet-architecture/eShopOnWeb • https://github.com/dotnet-architecture/eShopOnContainers • https://12factor.net/ja/
20.
ご清聴ありがとうございました。
Download now