Soumettre la recherche
Mettre en ligne
世界最強のソフトウェアアーキテクト
•
151 j'aime
•
30,539 vues
Yahoo!デベロッパーネットワーク
Suivre
2015/01に行った社内勉強会の発表資料です。
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 65
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
Recommandé
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
Works Applications
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
増田 亨
毎日が越境だ!
毎日が越境だ!
増田 亨
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
natsumi_ishizaka
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
leverages_event
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
Yasuhiko Yamamoto
Contenu connexe
Tendances
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
Takuto Wada
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
Yoshitaka Kawashima
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
増田 亨
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
増田 亨
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
natsumi_ishizaka
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
増田 亨
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
増田 亨
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
増田 亨
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
増田 亨
Tendances
(20)
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
マスターデータの キャッシュシステムの改善の話
マスターデータの キャッシュシステムの改善の話
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計 ( DDD ) をやってみよう
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
正しいものを正しく作る塾-設計コース
正しいものを正しく作る塾-設計コース
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
En vedette
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
leverages_event
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
Yasuhiko Yamamoto
20120327 phpstudy58-phake
20120327 phpstudy58-phake
Katsuhiro Ogawa
自動化テスト VS 手動テスト
自動化テスト VS 手動テスト
Ryutaro YOSHIBA
デザイン思考マスタークラス 2015年5月30・31日
デザイン思考マスタークラス 2015年5月30・31日
(旧アカウント)一般社団法人デザイン思考研究所
情シス必要論
情シス必要論
Mitsuhiro Yamashita
オブジェクト指向アンチパターンを考えてみた
オブジェクト指向アンチパターンを考えてみた
Takuya Kawabe
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
Hiroyuki Yamaoka
【cybozu conference 2015】nomizu 分科会
【cybozu conference 2015】nomizu 分科会
Katsuya Nomizu
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
Yoshiharu Hashimoto
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
ichikaway
大企業Hacks!
大企業Hacks!
Ryosuke Otsuya
飲食店サイトのスクレイピング
飲食店サイトのスクレイピング
だいすけ ふるかわ
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
知教 本間
スキニーなシステム開発にぴったりの契約形態
スキニーなシステム開発にぴったりの契約形態
Eiwa System Management, Inc.
地方で集うビジネスにしないITラボ
地方で集うビジネスにしないITラボ
Takeshi Yanagiya
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
Kozo Takei
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
Fumihiko Kinoshita
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
Ryuji Tamagawa
デザイナーでも構築できる多言語/マルチデバイス対応サイト
デザイナーでも構築できる多言語/マルチデバイス対応サイト
Atushi Sugiyama
En vedette
(20)
株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
20120327 phpstudy58-phake
20120327 phpstudy58-phake
自動化テスト VS 手動テスト
自動化テスト VS 手動テスト
デザイン思考マスタークラス 2015年5月30・31日
デザイン思考マスタークラス 2015年5月30・31日
情シス必要論
情シス必要論
オブジェクト指向アンチパターンを考えてみた
オブジェクト指向アンチパターンを考えてみた
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
【cybozu conference 2015】nomizu 分科会
【cybozu conference 2015】nomizu 分科会
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
脆弱性もバグ、だからテストしよう DevSummiFukuoka
脆弱性もバグ、だからテストしよう DevSummiFukuoka
大企業Hacks!
大企業Hacks!
飲食店サイトのスクレイピング
飲食店サイトのスクレイピング
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
スキニーなシステム開発にぴったりの契約形態
スキニーなシステム開発にぴったりの契約形態
地方で集うビジネスにしないITラボ
地方で集うビジネスにしないITラボ
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
足を地に着け落ち着いて考える
足を地に着け落ち着いて考える
デザイナーでも構築できる多言語/マルチデバイス対応サイト
デザイナーでも構築できる多言語/マルチデバイス対応サイト
Similaire à 世界最強のソフトウェアアーキテクト
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
Hironori Washizaki
Intalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
Daisuke Nishino
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
Kenji Hiranabe
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Naoyuki Yamada
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
Yusuke Suzuki
基盤の改善から既存アプリケーションの改善
基盤の改善から既存アプリケーションの改善
T.R. Nishi
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン
HironoriTAKEUCHI1
オブジェクト指向設計の原則
オブジェクト指向設計の原則
Toru Koido
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
HironoriTAKEUCHI1
Ldd13 present
Ldd13 present
Masashi Kayahara
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
IA Workshop, Introduction to Information Architecture (2002)
IA Workshop, Introduction to Information Architecture (2002)
Nobuya Sato
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Yusuke Suzuki
メンバーズグループ アジャイル開発への取り組み
メンバーズグループ アジャイル開発への取り組み
Hiroshi Tsukamoto
Platform Engineering超入門(一般公開版:キンドリルジャパン社内勉強会:2023年7月20日発表)
Platform Engineering超入門(一般公開版:キンドリルジャパン社内勉強会:2023年7月20日発表)
Hiroshi Tomioka
local launch small language model of AI.
local launch small language model of AI.
Takao Tetsuro
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713
Yutaka Terasawa
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
Toshiaki Kurokawa
Semat - a Japanese introduction
Semat - a Japanese introduction
Kenji Hiranabe
Similaire à 世界最強のソフトウェアアーキテクト
(20)
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
Intalio japan special cloud workshop
Intalio japan special cloud workshop
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
Modeling in the Agile Age and casual astah models
Modeling in the Agile Age and casual astah models
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Devlove2012 どうしたら良いシステムが作れるのか
Devlove2012 どうしたら良いシステムが作れるのか
基盤の改善から既存アプリケーションの改善
基盤の改善から既存アプリケーションの改善
機械学習応用のためのソフトウェアエンジニアリングパターン
機械学習応用のためのソフトウェアエンジニアリングパターン
オブジェクト指向設計の原則
オブジェクト指向設計の原則
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
Ldd13 present
Ldd13 present
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
IA Workshop, Introduction to Information Architecture (2002)
IA Workshop, Introduction to Information Architecture (2002)
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
メンバーズグループ アジャイル開発への取り組み
メンバーズグループ アジャイル開発への取り組み
Platform Engineering超入門(一般公開版:キンドリルジャパン社内勉強会:2023年7月20日発表)
Platform Engineering超入門(一般公開版:キンドリルジャパン社内勉強会:2023年7月20日発表)
local launch small language model of AI.
local launch small language model of AI.
Wg for ai_dev_ops_20180713
Wg for ai_dev_ops_20180713
Io t,ai時代のソフトウェア
Io t,ai時代のソフトウェア
Semat - a Japanese introduction
Semat - a Japanese introduction
Plus de Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
ゼロから始める転移学習
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
Yahoo!デベロッパーネットワーク
LakeTahoe
LakeTahoe
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Yahoo!デベロッパーネットワーク
Plus de Yahoo!デベロッパーネットワーク
(20)
ゼロから始める転移学習
ゼロから始める転移学習
継続的なモデルモニタリングを実現するKubernetes Operator
継続的なモデルモニタリングを実現するKubernetes Operator
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
オンプレML基盤on Kubernetes パネルディスカッション
オンプレML基盤on Kubernetes パネルディスカッション
LakeTahoe
LakeTahoe
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
Persistent-memory-native Database High-availability Feature
Persistent-memory-native Database High-availability Feature
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
eコマースと実店舗の相互利益を目指したデザイン #yjtc
eコマースと実店舗の相互利益を目指したデザイン #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
ビッグデータから人々のムードを捉える #yjtc
ビッグデータから人々のムードを捉える #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
サイエンス領域におけるMLOpsの取り組み #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
「新しいおうち探し」のためのAIアシスト検索 #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
Dernier
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Dernier
(7)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
世界最強のソフトウェアアーキテクト
1.
世界最強の ソフトウェアアーキテクト 小川 雄大 1
2.
小川 雄大 (おがわ かつひろ) ソーシャルマーケティング開発部 著書 パーフェクトPHP 効率的なWebアプリケーションの作り方 2 アシアル
(2008) - クロコス(2011) - ヤフー(2014)
3.
– ソフトウェアアーキテクチャ -
Wikipedia “ソフトウェアアーキテクチャ(Software Architecture)は、ソフトウェアコンポーネント、 それらの外部特性、またそれらの相互関係から構 成される。” 3
4.
– IEEE 1471
- Wikipedia “アーキテクト(仕組士): システムのアーキテクチャを設計する責任がある、 人、チーム、あるいは組織” 4
5.
対象者 • コードの質を高めたいと思っている人 • 設計に興味を持っている人 •
設計がうまくいかず悩んでいる人 • 効率的にコードを書きたいと思っている人 • 開発現場に秩序をもたらしたい人 5
6.
ゴール • 自分やチームメンバーが書いたコードを よりよくしたい気持ちになる • 設計における考え方の指針を得る 6
7.
アジェンダ 1. 技術的負債 2. メンタルモデルとオブジェクト指向設計 3.
設計原則とパターン 4. アーキテクトのメンタル 7
8.
技術的負債 8
9.
– ニール・フォード (ソフトウェアアーキテクトが知るべき97のこと) “本質的な複雑さは単純に、 付随的な複雑さは取り除け” 9
10.
技術的負債の例 10
11.
重複だらけのコード • 修正したと思ったら修正漏れがあった… 11
12.
理解しづらいコード • 変更したい箇所で何やってるかわからなくて どう変えていいかわからない… • どこを変えればいいかすらわからない… •
機能追加したら思わぬバグがでた… 12
13.
拡張性のないコード • 修正したいけどあれもこれも直さなきゃ… • 1箇所変更したいだけなのにここをいじると 影響範囲が広すぎて直したくない… 13
14.
古くなったライブラリ • サポート期限きれた… • 使いたい機能が使えない… •
放置しすぎてもはやバージョンアップ できない… 14
15.
もうヤダこのシステム... 15 こんなことを繰り返していると となってしまいます
16.
技術的負債を駆逐する • コードを書く以上は発生し続ける負債 • 負債を完全になくすのは不可能 •
コードを破棄するほかない 16
17.
技術的負債を駆逐する • 新たにコードが発生する際に負債に なりにくいよう設計する • 時が経ち古くなったコードを継続的に 改修していく •
設計の知識、テクニック、経験が要求される 17
18.
組織として取り組んでいく • 企業・チームで開発をする以上、 個人だけの問題ではない • 規約やガイドラインを制定して ルール・知見を共有し秩序をもたらす •
コードレビューを実施して品質向上と共に チーム全体の技術向上を図る 18
19.
技術的負債ではなく 技術的資産を 19
20.
技術的資産 • ライブラリ・フレームワーク化 • 統一・洗練された思想やインターフェイス •
整理されたドキュメント • それらをオープンソース化して 業界のイニシアチブをとる 20
21.
メンタルモデルと オブジェクト指向設計 21
22.
– メンタルモデル -
Wikipedia “メンタルモデル(英: mental model)とは、 人間が実世界で何かがどのように作用するかを 思考する際のプロセスを表現したものである。” 22
23.
メンタルモデル • 思考のプロセスを表現したもの • 利用者がどのように考えてシステムを 利用するか •
プロダクトオーナーがどのような仕様に したいと考えているか • 開発者の抱く実装イメージ 23
24.
メンタルモデルをコードで表現する • ショッピングカートの例 A. $_SESSION[‘cart’][$item->getId()]+=$num; B.
$cart->addItem($item, $num); • 剥き出しの実装にインターフェイスを被せる • オブジェクト指向プログラミングの本質 • 具体的な実装はカプセル化 24
25.
ユースケースとインターフェイス • ユースケースを洗い出し、 それを扱うインターフェイスを定義する • ここでいうインターフェイスは言語機能の ことではなく、より広義の意味 25
26.
ショッピングカートのユースケース • ユースケース • カートに商品を追加できる •
カートに商品を追加する際に個数を指定できる • インターフェイス • class Cart • public function addItem(Item $item, $num) 26
27.
Facebook PHP SDK •
$fb = new Facebook([ 'app_id' => '{app-id}', 'app_secret' => '{app-secret}', ]); • $response = $fb->get('/me', '{token}'); • $me = $response->getGraphUser(); • echo $me->getName(); 27
28.
– Trygve Reenskaug (The
DCI Architecture: A New Vision of Object-Oriented Programming) “MVC is about people and their mental models —not the Observer pattern” 28
29.
チームにおける認識の共有 • 仕様についてチーム内で話し合うときに、 固有名詞やその意味を共通化する • ユーザー?アカウント?利用者? •
ユビキタス言語 • “共有されたチームの言語” 29
30.
– エリック・エヴァンスのドメイン駆動設計 第2章 コミュニケーションと言語の使い方 “チーム内のすべてのコミュニケーションとコード において、その言語を厳密に用いることを、チー ムに約束させること。図やドキュメント、そして 何より会話の中では同一の言語を使用すること。” 30
31.
本質的な複雑さは単純に • メンタルモデルに沿って設計を進めることで インターフェイスが洗練される • コードが理解しやすくなり、修正や拡張も 行いやすくなる •
シンプルに、文章のようなコーディングを 31
32.
難しいところ • 実現するためにはオブジェクト指向設計の ノウハウや経験が求められる • メンタルモデルを的確に捉え、コード上に 表現しつつ、複雑な実装の裏側はカプセル化 する、ということは簡単なことではない •
シンプルがゆえに「これが普通」だと捉えら れるかも 32
33.
設計原則とパターン 33
34.
設計の原則/パターン • 原則やパターンは開発における基礎知識 • 原則は負債を生み出しにくくするために •
パターンは負債を取り除くために 34
35.
パターンの乱用による弊害 • ただし乱用すると却って複雑に • “本質的な複雑さは単純に、 付随的な複雑さは取り除け” •
常に本質的な問題の解決を意識し優先する 35
36.
パターン 36
37.
パターンとは • 設計ノウハウに名称をつけて共有されたもの • 「こういった問題に対してはこのパターンを 適応することで解決できる」 •
たくさんあるので詳細は省略 37
38.
GoF • デザインパターン集 • State/Strategyパターンはオブジェクト指向 における基本的なテクニック 38
39.
DDD • ドメイン駆動設計 (Domain
Driven Design) • 本質的な問題解決をするためのパターン集 39
40.
エリック・エヴァンスのドメイン駆動設計 • DDD 40
41.
PofEAA • エンタープライズアプリケーション アーキテクチャパターン (Patterns of
Enterprise Application Architecture) • アーキテクチャパターン集 41
42.
エンタープライズアプリケーション アーキテクチャパターン • PofEAA 42
43.
リファクタリング • リファクタリングを 行う手順に関する パターン集 43
44.
リーダブルコード • 読みやすいコードを 書くためパターン集 44
45.
DCI • Data Context
Interaction • データ、コンテキスト、相互作用 • MVCのようにメンタルモデルを表現する手法 • MVCの考案者らによる提案 45
46.
さまざまな役割 • Controller • Entity •
Repository • Service • Usecase • Api 46
47.
原則 47
48.
原則 • こういうことしたら問題になりやすいから やっちゃだめだよという知見 48
49.
DRY • Don’t Repeat
Yourself • 重複してはならない 49
50.
SOLID • オブジェクト指向設計の5つ原則の頭文字 • 単一責任の原則 (SRP
: Single Responsibility Principle) • オープン・クローズドの原則 (OCP : Open Closed Principle) • リスコフの置換原則 (LSP : Liscov Substitution Principle) • インターフェイス分離の原則 (ISP : Interface Segregation Principle) • 依存性逆転の原則 (DIP : Dependency Inversion Principle) 50
51.
単一責任の原則 (SRP) • "クラスを変更する理由は1つでなければ ならない" •
クラスの責任は1つにして複雑化などを防ぐ 51
52.
オープン・クローズドの原則 (OCP) • "拡張に対して開いていて、修正に対して 閉じていなければならない" •
既存のコードに手を入れることなく 修正・拡張できるようにする 52
53.
リスコフの置換原則 (LIP) • "派生型は基本型と置き換え可能でなければ ならない" •
継承によって親クラスの実装を全く別のもの に変えてしまうのは間違った継承である 53
54.
インターフェイス分離の原則 (ISP) • "クライアントに、クライアントが利用しない メソッドへの依存を強制してはならない" •
利用するクライアントの視点から インターフェイスを定義しよう 54
55.
依存関係逆転の原則 (DIP) • "上位モジュールは下位モジュールに依存してはな らない。どちらも「抽象」に依存するべきである" •
"「抽象」は実装の詳細に依存してはならない。 実装の詳細が「抽象」に依存すべきである。" • 実装からインターフェイスを抜き出すのではな く、要求に応じてインターフェイスを定義し、イ ンターフェイスにあわせて実装する 55
56.
アジャイルソフトウェア開発の奥義 • SOLID原則 56
57.
効率的なWebアプリケーションの作り方 • オブジェクト指向や 設計ノウハウなどを 体系的に学べる 57
58.
YAGNI • You Ain't
Gonna Need It! • 実際に必要になるまで機能追加しない • “本質的な複雑さは単純に、 付随的な複雑さは取り除け” 58
59.
アーキテクトのメンタル 59
60.
経験は必要不可欠 • 失敗を恐れずに、「やってはいけないこと」 を身をもって覚える • 書いたコードを振り返り、よりよくなるには どうしたらようかを考える •
そうして経験値として積み重ねたものが アーキテクトの支えになる 60
61.
コードの資産価値を高める • 再利用可能なコードを探しては抜き出し、 ライブラリ化して共有する • コードをオープンにして利用者を増やし、 コードの成長を促す 61
62.
先人の知恵から学ぶ • 本やドキュメントを読み、原則・パターン化 された知恵を身につけていく • 先人と同じ過ちを繰り返さない •
知識の継承 62
63.
責任を持つ • 修正や拡張を行う際にリスクを恐れて メンタルモデルにそぐわないコードを書くと 技術負債として重くのしかかる • リスクをとるか、負債をとるかは アーキテクトとして責任をもって判断する •
誰かが責任を持たないと全員が不幸になる 63
64.
“本質的な複雑さは単純に、 付随的な複雑さは取り除け” 64
65.
ご清聴ありがとうございました 65
Télécharger maintenant