Enviar pesquisa
Carregar
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
•
3 gostaram
•
4,666 visualizações
Yuta Matsumura
Seguir
https://alterbooth.connpass.com/event/103125/
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 20
Baixar agora
Baixar para ler offline
Recomendados
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
Yuta Matsumura
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
Operation Lab, LLC.
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
TomomitsuKusaba
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
Recomendados
チーム開発で徐々にコード品質をあげていく取り組み
チーム開発で徐々にコード品質をあげていく取り組み
Yuta Matsumura
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
2015-10-31 クラウドネイティヴ時代の運用を考える 〜 ドキュメント駆動運用へ
Operation Lab, LLC.
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
TomomitsuKusaba
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
会社でClojure使ってみて分かったこと
会社でClojure使ってみて分かったこと
Recruit Technologies
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
NTT DATA Technology & Innovation
コンテナ環境でJavaイメージを小さくする方法!
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
ksk_ha
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
オラクルエンジニア通信
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
ベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消する
Koichiro Matsuoka
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda
Di入門
Di入門
Ryo Asai
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
デブサミ関西2013【A4】コード品質は曖昧なままか(安竹由起夫氏)
Developers Summit
Sansan における Android アプリ自動テスト導入事例
Sansan における Android アプリ自動テスト導入事例
健一 辰濱
Mais conteúdo relacionado
Mais procurados
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
NTT DATA Technology & Innovation
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
NTT DATA Technology & Innovation
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
ksk_ha
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
オラクルエンジニア通信
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
Atsushi Nakada
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
ベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消する
Koichiro Matsuoka
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda
Di入門
Di入門
Ryo Asai
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
Mais procurados
(20)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
JavaでCPUを使い倒す! ~Java 9 以降の CPU 最適化を覗いてみる~(NTTデータ テクノロジーカンファレンス 2019 講演資料、2019...
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
ベロシティを上手く使って 技術的負債を計画的に解消する
ベロシティを上手く使って 技術的負債を計画的に解消する
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
フロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Di入門
Di入門
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Semelhante a イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
デブサミ関西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
Semelhante a イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
(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
Mais de 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
Mais de 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について
イケてる技術で品質を担保しつつスピード感のある開発を実現する冴えたやり方
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.
ご清聴ありがとうございました。
Baixar agora