SlideShare une entreprise Scribd logo
1  sur  43
Télécharger pour lire hors ligne
エクストリーム・エンジニアへの道
(Ruby編)第1回  概要	
  
テクノロジックアート	
  
⻑⾧長瀬  嘉秀	
  
■エンジニアに要求される能力	
■設計技術	
■プログラミング技術	
■ツール	
■デリバリー	
  
■テスト技術	
内容	
  
■アジャイル開発は必須	
■要件を短時間でつかむ	
■要件をブレークダウン	
■テスト駆動開発	
■短い開発サイクル	
■ユーザーとのコミュニケーション	
■チーム開発	
■瞬時に設計(基本設計、詳細設計はない)	
エンジニアに要求される能⼒力力	
  
業務要件	
  
■ビジネスプロセス(業務フロー)	
■機能(ユースケース)
業務⽤用件	
  
ビジネスプロセス	
  
機能要件(ユースケース)	
  
■ストーリー(ユーザーストーリー)	
■ユースケース、フィーチャーなど	
■瞬時に整理する	
■数時間で、多くのストーリーを作成する	
■要件定義に、何ヶ月もかけてはいけない	
■開発しながらブレークダウン	
■チームメンバ全員が理解する	
アジャイル開発での扱い	
  
アジャイル開発	
  
ストーリー	
  
■ストーリーを管理	
■進捗を管理	
■プライオリティ付(特急、普通など)	
■バッファによるプロセスの最適化	
■要員の最適化	
カンバン	
  
カンバンボード	
  
カンバン	
  
実際のカンバン	
  
シナリオ名:交通費を入力する(正常系1)	
シナリオ概要:社員(田中太郎)は京都出張の清算のため、出発駅(練馬)
と到着駅(五条)と乗換駅(品川)を入力し、料金を確認する	
事前条件:社員(田中太郎)がログインしている	
ステップ:	
1.出発駅として、練馬を入力する	
2.到着駅として、五条を入力する	
3.乗換駅として、品川を入力する	
4.経路の候補が表示されるtので、該当する経路を選ぶ(練馬→池袋→品
川→京都→五条)	
5.出張の日付(2014年6月16日)を入力す	
6.出張の交通費を表示して、確認ボタンを押す	
シナリオ	
  
#	
  レスポンスはh+p://shoueisha.co.jpに向けられる	
def	
  test_response_should_go_to_shoeisha	
	
 assert_equal	
  respond.to	
  ‘h+p://shoueisha.co.jp’	
end	
#	
  respondの結果は320を返すこと	
def	
  test_respond_result_equal_320	
	
 assert_equal	
  respond.result	
  ‘320	
end	
#	
  認証(auth)はOKであること。	
def	
  test_respond_auth_returns_ok	
	
 assert_equal	
  respond.auth	
  ‘OK’	
end	
Rubyにおける要件	
  
RSpecによる要件、テスト
設計とコードの関係	
モデルによる設計(例えばUMLなど)	
コードベースの開発	
モデルベースの開発	
モデル、アーキテクチャ、フレームワーク	
アーキテクチャ別、ドメイン別など分割技術	
設計技術	
  
コードと設計	
  
クラス設計	
オブジェクト指向設計	
  
クラス	
  
コード	
  
•  モデルとコードの関係	
•  マッピング	
•  DSL	
マッピング技術	
  
•  POJO	
  (Plain	
  Old	
  Java	
  Object)	
•  UI、DB	
フレームワーク	
  
アーキテクチャー適⽤用	
  
■アーキテクチャによるドメイン分割	
■業務、機能によるドメイン分割	
ドメイン分割	
  
•  クラス、関数、モジュール	
Rubyにおける設計	
  
■きれいなコード	
■クラス分割	
■リファクタリング	
■デザインパターン	
■名前付け	
■テストコード	
■モック	
■関数型プログラミング	
プログラミング技術	
  
■テストを書く	
■テスティングフレームワーク	
■ターゲットロジック	
■リファクタリング	
テスト駆動開発	
  
テストコード	
  
■パターンにより、よりよいコードへ	
■リファクタリングで利用	
デザインパターン	
  
コンポジットパターン	
  
コンポジットパターン適⽤用	
  
コード	
  
•  RSpecによるTDD	
RubyにおけるTDD	
  
■関数、モジュールとの切り分け	
■JavaやC++とは、異なるところもある	
Rubyにおけるデザインパターン	
  
•  Mocks	
  Aren't	
  Stubs	
  (MarXn	
  Fowler)	
  	
•  h+p://marXnfowler.com/arXcles/
mocksArentStubs.html	
モック技術	
  
– 高階関数	
– クロージャー	
– 再帰的	
関数型プログラミング	
  
– ConXnuous	
  Delivery	
– Chef、Puppet	
– テストの組み込み	
– クラウド実行環境	
– Docker、MicroServices	
デリバリー	
  
– 要件整理	
– カンバンボード	
– TDDができるIDE(Eclipseなど)	
– ソースコード管理(Gitなど)	
– ビルド管理(Jenkins)	
– クラウド環境(Herokuなど)	
– クラウド実行環境	
– リリースツール(Chefなど)	
– テストツール	
ツール	
  
– ユニットテスト	
– 非機能テスト	
– バリデーションなどのテスト	
– テストパターン	
– UIテスト	
– テストコードの設計	
テスト技術	
  
– ペアプログラミング	
– スタンドアップミーティング	
– ストーリー	
– レトロスペクティブ	
– ビジネスアナリスト、エンジニア、テストエンジニ
ア(QA)、ユーザー(顧客)	
チームビルディング	
  
– 分業化は終了	
– 各自がすべての技術を持っている必要がある	
– 多能工	
– 開発技術が多岐にわたるため、かなりの勉強
が必要	
– 従来の基本設計のように、コードを書けない人
が設計するなどはなくなる	
– 使えない技術者にならないために	
まとめ	
  
エクストリーム・エンジニアへの道
(Ruby編)第1回  概要	
  
テクノロジックアート	
  
⻑⾧長瀬  嘉秀	
  

Contenu connexe

En vedette

Design Pattern From Java To Ruby
Design Pattern From Java To RubyDesign Pattern From Java To Ruby
Design Pattern From Java To Rubyyelogic
 
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性tomo_masakura
 
The way to the timeless way of programming
The way to the timeless way of programmingThe way to the timeless way of programming
The way to the timeless way of programmingShintaro Kakutani
 
Metaprogramming With Ruby
Metaprogramming With RubyMetaprogramming With Ruby
Metaprogramming With RubyFarooq Ali
 
デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)和明 斎藤
 

En vedette (9)

Design Pattern From Java To Ruby
Design Pattern From Java To RubyDesign Pattern From Java To Ruby
Design Pattern From Java To Ruby
 
Firefox-Addons
Firefox-AddonsFirefox-Addons
Firefox-Addons
 
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
 
Design Patterns in Ruby
Design Patterns in RubyDesign Patterns in Ruby
Design Patterns in Ruby
 
The way to the timeless way of programming
The way to the timeless way of programmingThe way to the timeless way of programming
The way to the timeless way of programming
 
Metaprogramming With Ruby
Metaprogramming With RubyMetaprogramming With Ruby
Metaprogramming With Ruby
 
デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)
 
Basic Rails Training
Basic Rails TrainingBasic Rails Training
Basic Rails Training
 
Functional Ruby
Functional RubyFunctional Ruby
Functional Ruby
 

Similaire à エクストリームエンジニア1

とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門陽一 滝川
 
ソフトウェア工学2023 04 開発プロセスモデル
ソフトウェア工学2023 04 開発プロセスモデルソフトウェア工学2023 04 開発プロセスモデル
ソフトウェア工学2023 04 開発プロセスモデルToru Tamaki
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadShinsuke Miyaki
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要かHiromasa Oka
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話terurou
 
X dev 20121106
X dev 20121106X dev 20121106
X dev 20121106Ken Azuma
 
情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将PartHiroki Sakamoto
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...Rakuten Group, Inc.
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】Tomoharu ASAMI
 
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用masashi takehara
 
Getting Git Right wrap up #GettingGitRight
Getting Git Right wrap up #GettingGitRightGetting Git Right wrap up #GettingGitRight
Getting Git Right wrap up #GettingGitRight智治 長沢
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)Operation Lab, LLC.
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望についてKen Azuma
 
Design Sprint ガイドブック v2
Design Sprint ガイドブック v2Design Sprint ガイドブック v2
Design Sprint ガイドブック v2Takaaki Umada
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912Hironori Washizaki
 
『アプリケーション アーキテクチャ ガイド2.0』のガイド
『アプリケーション アーキテクチャ ガイド2.0』のガイド『アプリケーション アーキテクチャ ガイド2.0』のガイド
『アプリケーション アーキテクチャ ガイド2.0』のガイドKentaro Inomata
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCDaisuke Nishino
 

Similaire à エクストリームエンジニア1 (20)

とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門とりあえず30分でひととおり分かった気にはなれるアジャイル入門
とりあえず30分でひととおり分かった気にはなれるアジャイル入門
 
ソフトウェア工学2023 04 開発プロセスモデル
ソフトウェア工学2023 04 開発プロセスモデルソフトウェア工学2023 04 開発プロセスモデル
ソフトウェア工学2023 04 開発プロセスモデル
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
大規模なJavaScript開発の話
大規模なJavaScript開発の話大規模なJavaScript開発の話
大規模なJavaScript開発の話
 
X dev 20121106
X dev 20121106X dev 20121106
X dev 20121106
 
情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part情報理工Android勉強会第一回大将Part
情報理工Android勉強会第一回大将Part
 
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten,  core skills  neede...
楽天市場で使われている技術、エンジニアに必要なコアスキルとはTechnology used in Rakuten, core skills neede...
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
要求 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第12回】
 
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
 
[Biz reach qa meetup] qa team_build
[Biz reach qa meetup] qa team_build[Biz reach qa meetup] qa team_build
[Biz reach qa meetup] qa team_build
 
Getting Git Right wrap up #GettingGitRight
Getting Git Right wrap up #GettingGitRightGetting Git Right wrap up #GettingGitRight
Getting Git Right wrap up #GettingGitRight
 
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
2014-10-27 #ssmjp 腹を割って話そう (運用xセキュリティ)
 
市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について市場動向並びに弊社製品の今後の展望について
市場動向並びに弊社製品の今後の展望について
 
Design Sprint ガイドブック v2
Design Sprint ガイドブック v2Design Sprint ガイドブック v2
Design Sprint ガイドブック v2
 
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
鷲崎 メトリクスとGQMチュートリアル-公開版-20130912
 
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part1
 
『アプリケーション アーキテクチャ ガイド2.0』のガイド
『アプリケーション アーキテクチャ ガイド2.0』のガイド『アプリケーション アーキテクチャ ガイド2.0』のガイド
『アプリケーション アーキテクチャ ガイド2.0』のガイド
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 

エクストリームエンジニア1