Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yahoo!デベロッパーネットワーク
30,635 views
世界最強のソフトウェアアーキテクト
2015/01に行った社内勉強会の発表資料です。
Technology
◦
Read more
151
Save
Share
Embed
Embed presentation
Download
Downloaded 118 times
1
/ 65
2
/ 65
3
/ 65
4
/ 65
5
/ 65
6
/ 65
7
/ 65
8
/ 65
9
/ 65
10
/ 65
11
/ 65
12
/ 65
13
/ 65
14
/ 65
15
/ 65
16
/ 65
17
/ 65
18
/ 65
19
/ 65
20
/ 65
21
/ 65
22
/ 65
23
/ 65
24
/ 65
25
/ 65
26
/ 65
27
/ 65
28
/ 65
29
/ 65
30
/ 65
31
/ 65
32
/ 65
33
/ 65
34
/ 65
35
/ 65
36
/ 65
37
/ 65
38
/ 65
39
/ 65
40
/ 65
41
/ 65
42
/ 65
43
/ 65
44
/ 65
45
/ 65
46
/ 65
47
/ 65
48
/ 65
49
/ 65
50
/ 65
51
/ 65
52
/ 65
53
/ 65
54
/ 65
55
/ 65
56
/ 65
57
/ 65
58
/ 65
59
/ 65
60
/ 65
61
/ 65
62
/ 65
63
/ 65
64
/ 65
65
/ 65
More Related Content
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
GoogleのSHA-1のはなし
by
MITSUNARI Shigeo
PDF
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
by
kyon mm
PPTX
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
by
Atsushi Nakamura
PDF
実践イカパケット解析
by
Yuki Mizuno
PPTX
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
PDF
RESTful Web アプリの設計レビューの話
by
Takuto Wada
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
GoogleのSHA-1のはなし
by
MITSUNARI Shigeo
シリコンバレーの「何が」凄いのか
by
Atsushi Nakada
テストとリファクタリングに関する深い方法論 #wewlc_jp
by
kyon mm
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
by
Atsushi Nakamura
実践イカパケット解析
by
Yuki Mizuno
イベント駆動プログラミングとI/O多重化
by
Gosuke Miyashita
RESTful Web アプリの設計レビューの話
by
Takuto Wada
What's hot
PDF
例外設計における大罪
by
Takuto Wada
PDF
RDRA DDD Agile
by
増田 亨
PPTX
今さら聞けない人のためのGitLabの始め方 Ubuntu編
by
VirtualTech Japan Inc./Begi.net Inc.
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PDF
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
PPTX
DeNAの最新のマスタデータ管理システム Oyakata の全容
by
sairoutine
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
by
NTT DATA Technology & Innovation
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
by
NTT DATA Technology & Innovation
PDF
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
PDF
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
PPTX
脱RESTful API設計の提案
by
樽八 仲川
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
MagicOnion入門
by
torisoup
PPTX
30分で分かる!OSの作り方
by
uchan_nos
PPT
メタプログラミングって何だろう
by
Kota Mizushima
PPT
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
PDF
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
by
Ryo Nakamaru
例外設計における大罪
by
Takuto Wada
RDRA DDD Agile
by
増田 亨
今さら聞けない人のためのGitLabの始め方 Ubuntu編
by
VirtualTech Japan Inc./Begi.net Inc.
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
Dockerからcontainerdへの移行
by
Kohei Tokunaga
40歳過ぎてもエンジニアでいるためにやっていること
by
onozaty
DeNAの最新のマスタデータ管理システム Oyakata の全容
by
sairoutine
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
by
NTT DATA Technology & Innovation
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
by
NTT DATA Technology & Innovation
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
MagicOnion~C#でゲームサーバを開発しよう~
by
torisoup
脱RESTful API設計の提案
by
樽八 仲川
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
MagicOnion入門
by
torisoup
30分で分かる!OSの作り方
by
uchan_nos
メタプログラミングって何だろう
by
Kota Mizushima
ドメインロジックの実装方法とドメイン駆動設計
by
Tadayoshi Sato
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
by
Ryo Nakamaru
Viewers also liked
PDF
大企業Hacks!
by
Ryosuke Otsuya
PPTX
情シス必要論
by
Mitsuhiro Yamashita
PDF
オブジェクト指向アンチパターンを考えてみた
by
Takuya Kawabe
PDF
株式会社インタースペース 沖本様 登壇資料
by
leverages_event
PDF
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
by
Kozo Takei
PDF
デザイン思考マスタークラス 2015年5月30・31日
by
(旧アカウント)一般社団法人デザイン思考研究所
PDF
デザイナーでも構築できる多言語/マルチデバイス対応サイト
by
Atushi Sugiyama
PDF
足を地に着け落ち着いて考える
by
Ryuji Tamagawa
PDF
スキニーなシステム開発にぴったりの契約形態
by
Eiwa System Management, Inc.
PDF
脆弱性もバグ、だからテストしよう DevSummiFukuoka
by
ichikaway
PDF
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
by
Hiroyuki Yamaoka
PDF
20120327 phpstudy58-phake
by
Katsuhiro Ogawa
PPTX
わんくま名古屋 #32 (20140823) TDD道場 #20
by
Yasuhiko Yamamoto
PDF
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
by
知教 本間
PDF
20141116 jjug ccc_2014_keynote1_public
by
Yoshiharu Hashimoto
PPTX
【cybozu conference 2015】nomizu 分科会
by
Katsuya Nomizu
PDF
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
by
Fumihiko Kinoshita
PDF
飲食店サイトのスクレイピング
by
だいすけ ふるかわ
PDF
自動化テスト VS 手動テスト
by
Ryutaro YOSHIBA
PDF
地方で集うビジネスにしないITラボ
by
Takeshi Yanagiya
大企業Hacks!
by
Ryosuke Otsuya
情シス必要論
by
Mitsuhiro Yamashita
オブジェクト指向アンチパターンを考えてみた
by
Takuya Kawabe
株式会社インタースペース 沖本様 登壇資料
by
leverages_event
ホラクラシー型組織~実際に8年経営してわかったこと~(ホラクラシーのメカニズム)
by
Kozo Takei
デザイン思考マスタークラス 2015年5月30・31日
by
(旧アカウント)一般社団法人デザイン思考研究所
デザイナーでも構築できる多言語/マルチデバイス対応サイト
by
Atushi Sugiyama
足を地に着け落ち着いて考える
by
Ryuji Tamagawa
スキニーなシステム開発にぴったりの契約形態
by
Eiwa System Management, Inc.
脆弱性もバグ、だからテストしよう DevSummiFukuoka
by
ichikaway
エンジニア×デザイナー GitHubで変わるコミュニケーション(PHPカンファレンス2014 P4Dセッション)
by
Hiroyuki Yamaoka
20120327 phpstudy58-phake
by
Katsuhiro Ogawa
わんくま名古屋 #32 (20140823) TDD道場 #20
by
Yasuhiko Yamamoto
AWSアカウント開設からインスタンスを立ち上げるまでの作業自動化について
by
知教 本間
20141116 jjug ccc_2014_keynote1_public
by
Yoshiharu Hashimoto
【cybozu conference 2015】nomizu 分科会
by
Katsuya Nomizu
これからの「アジャイル」の話をしよう ――今を生き延びるための開発手法とスキル (関西バージョン)
by
Fumihiko Kinoshita
飲食店サイトのスクレイピング
by
だいすけ ふるかわ
自動化テスト VS 手動テスト
by
Ryutaro YOSHIBA
地方で集うビジネスにしないITラボ
by
Takeshi Yanagiya
Similar to 世界最強のソフトウェアアーキテクト
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PDF
Modeling in the Agile Age and casual astah models
by
Kenji Hiranabe
PDF
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
by
Yusuke Suzuki
PDF
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
by
株式会社MonotaRO Tech Team
PDF
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
by
Yusuke Suzuki
PDF
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
by
琢磨 三浦
PDF
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
by
Yusuke Suzuki
PDF
150318 次世代itアーキテクトの本質と育成
by
ITinnovation
PPTX
20180130 設計イベント
by
Atsushi Takayasu
PDF
13_B_5 Who is a architect?
by
Atsushi Fukui
PDF
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
by
Developers Summit
PDF
Devlove2012 どうしたら良いシステムが作れるのか
by
Yusuke Suzuki
PDF
IA Workshop, Introduction to Information Architecture (2002)
by
Nobuya Sato
PPT
"The Coming-of-Age of Software Architecture Research" 紹介
by
Tadayoshi Sato
PPT
20050221.ea
by
Ken SASAKI
PDF
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
by
Yusuke Suzuki
PDF
Iajuku kagoshima 130316
by
MoNA Miyauchi
PDF
ビジネスとデザイン ~ビジネスは悪くない~
by
Ken Azuma
PDF
WCAN 2010 Summer Session-1: IA
by
Daishiro KAGAWA
PDF
OITEC 3/16
by
Keiji Kamebuchi
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
Modeling in the Agile Age and casual astah models
by
Kenji Hiranabe
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
by
Yusuke Suzuki
大規模フロントエンドのクリーンアーキテクチャ化 ~ 年間売上1,000億円企業モノタロウの取組み ~
by
株式会社MonotaRO Tech Team
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
by
Yusuke Suzuki
ソフトウェア アーキテクチャ基礎 輪読会資料 第2章 アーキテクチャ思考
by
琢磨 三浦
なぜソフトウェアアーキテクトが必要なのか - Devlove 20110423
by
Yusuke Suzuki
150318 次世代itアーキテクトの本質と育成
by
ITinnovation
20180130 設計イベント
by
Atsushi Takayasu
13_B_5 Who is a architect?
by
Atsushi Fukui
【17-D-1】今どきのアーキテクチャを現場の立場で斬る
by
Developers Summit
Devlove2012 どうしたら良いシステムが作れるのか
by
Yusuke Suzuki
IA Workshop, Introduction to Information Architecture (2002)
by
Nobuya Sato
"The Coming-of-Age of Software Architecture Research" 紹介
by
Tadayoshi Sato
20050221.ea
by
Ken SASAKI
ユーザー企業における標準化のあり方 : QCon Tokyo 2010
by
Yusuke Suzuki
Iajuku kagoshima 130316
by
MoNA Miyauchi
ビジネスとデザイン ~ビジネスは悪くない~
by
Ken Azuma
WCAN 2010 Summer Session-1: IA
by
Daishiro KAGAWA
OITEC 3/16
by
Keiji Kamebuchi
More from Yahoo!デベロッパーネットワーク
PDF
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
PDF
LakeTahoe
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
LakeTahoe
by
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
Recently uploaded
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
世界最強のソフトウェアアーキテクト
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
Download