狠狠撸

狠狠撸Share a Scribd company logo
エクストリーム?エンジニアへの道
(Ruby編)第5回
リファクタリング	
 ?
テクノロジックアート	
 ?
??長瀬? 嘉秀	
 ?
?? リファクタリング	
 ?
?? 設計改善	
内容	
 ?
リファクタリングとは 	
?? 外部から見たときの振る舞いを保ちつつ、	
理解や修正が簡単になるように、ソフトウェアの	
内部構造を変化させること (出典:リファクタリング)	
Aを実現する	
コード	
Bを実現する	
コード	
Cを実現する	
コード	
Aを実現する	
コード	
Bを実現する	
コード	
Cを実現する	
コード	
共通コード	
リファクタリングのイメージ	
振る舞いA	
 振る舞いB	
 振る舞いC	
振る舞いA	
 振る舞いB	
 振る舞いC	
 ?
リファクタリング前	
 リファクタリング後
?? リファクタリングのきっかけとなる、設計上
の問題	
コードの臭い(code	
 ?smell)	
 ?	
 ?
臭い	
 状態	
重複したコード	
 同じ処理が複数個所に存在する	
長すぎるメソッド	
 一つのメソッドに多くの処理が記述されている	
巨大なクラス	
 あるクラスが、責務を多く持ちすぎている	
多すぎる引数	
 メソッドに渡す引数の数が多すぎる	
変更の発散	
 1つのクラスがさまざまな変更要求の影響を被る	
変更の分散	
 1つの変更要求によって、複数のクラスが影響を被る	
属性、操作の横恋慕	
 自クラスより他クラスの属性、操作と関連が深い	
データの群れ	
 数個のデータがグループとなって各所に現れる	
基本データ型への執着	
 基本データ型を使用し、複雑なロジックが記述されている	
スイッチ文	
 スイッチ文により設計が複雑化、硬直化している	
パラレル継承	
 あるクラスの継承ツリーと、他のクラスの継承ツリーに関連がある。	
表. コードの臭いの例	
出典:リファクタリング
リファクタリングの意義	
 ?
実装済み	
ツールのサポート	
単純ミスの回避	
自動化	
実装済み	
コード	
臭い	
リファクタリング	
コード	
修正しやすい	
理解しやすい	
カタログ	
臭い	
省力化	
対象の発見	
状態の共有	
解決法の共有	
デザインパターン	
例)Eclipse
リファクタリング	
リファクタリングの位置づけ	
動作しなくなる	
危険性	
自動テスト	
バージョン管理システム	
常に検証	
変更破棄の	
場合もある	
デザインパターン	
指針	
YAGNI原則	
同時に行わない	
 パフォーマンス	
チューニング	
機能の追加	
こまめに	
コミット
進化的設計とリファクタリング	
 ?
?? 進化的設計	
–? 仕様?設計の変更にともない、コードの修正が多発する	
?? コストとリスクを抑える必要がある	
–?TDD	
 ?
–?リファクタリング	
?? これらの手法を学び、適用することで、「コストとリスクを抑えて」	
 ?
進化的設計(アジャイル開発)を実現する
オブジェクト指向とカプセル化①	
 ?
?? オブジェクト指向、非オブジェクト指向のソフトウェアの構成の差異	
データ
処理	
非オブジェクト指向	
 オブジェクト指向	
メッセージ	
カプセル化	
データ	
処理
オブジェクト指向とカプセル化②	
 ?
?? オブジェクトのカプセル化とは	
データや処理をオブジェクト外部から隠蔽すること	
定められた「可視性」に
よって外部からアクセス
できる。	
エンジン	
色	
車名	
走る	
曲がる	
止まる	
車オブジェクト	
振る舞い	
(処理)	
属性	
(データ)
オブジェクト指向とカプセル化③	
 ?
?? インターフェースとは	
–?オブジェクトが実行できる振る舞いを表明
したもの	
電源を入れる	
電源を入れる	
チャンネルを変える	
メッセージ	
振る舞い	
(処理)
オブジェクト指向とカプセル化④	
 ?
?? クラスは属性と振る舞い(操作)を持っている	
?? クラスは実体を持たない	
?? オブジェクトはクラスをインスタンス化することで生成される実体	
クラス	
鯛焼きの型	
鯛焼き	
作る	
インスタンス化	
オブジェクト	
(インスタンス)
オブジェクト指向とカプセル化⑤	
 ?
?? インターフェースと	
 ?
  実装の分離	
処理1  処理2	
処理3  処理4	
データA	
クラスA	
処理1   	
処理3   	
インターフェース1	
      処理2	
インターフェース2	
クラスB	
クラスC	
処理1、処理3が?
できるということ?
しか知らない	
処理2ができると?
いうことしか?
知らない	
クライアント
クライアント	
オブジェクト指向とカプセル化⑥	
 ?
?? クライアントは、扱うオブジェクトが求める	
 ?
インターフェースにしたがっている限り、	
 ?
そのオブジェクトの型を知らなくてすむ。	
?? クライアントは、これらのオブジェクトを実装
しているクラスを知らなくて済む。クライアン
トは	
 ?
インターフェースについてのみ知っていれば
よい。	
?? 当該インターフェースの振る舞いさえ保たれ	
 ?
れば、クライアントは、オブジェクトの内部実
装が変化しても影響は無い。	
クラスB	
クラスC	
処理1、処理3が?
できるということしか?
知らない	
処理2ができるというこ
としか知らない	
リファクタリングのポイント	
!
実装	
実装	
オブジェクト指向とカプセル化⑦	
 ?
?? コンポーネントの形成	
クラスA	
処理1   	
処理3   	
インターフェース1	
      処理2	
インターフェース2	
一つのクラスでもよい	
クラスの集合体でもよい	
または	
コンポーネント
カプセル化とリファクタリング	
 ?
?? リファクタリングとは	
–? 外部から見たときの振る舞いを保ちつつ、理解や修正が簡単になるように、
ソフトウェアの内部構造を変化させること (出典:リファクタリング)	
コンポーネント単位で、これを適用する	
振る舞い:コンポーネントとして提供するインターフェース	
内部構造:クラス構造
臭
い	
きれい	
臭
い	
きれい	
パターン適?用の意義①	
 ?
?? リファクタリングとパターンの関係	
同じようなクラス構造が	
よく出てくる…	
 ?
?分析?抽出	
?一般化	
?カタログ化	
リファクタリング	
コード	
 臭い	
コード	
 きれい	
リファクタリング	
コード	
 臭い	
コード	
 きれい	
過去	
 現在	
デザインパターン	
指針
?? リファクタリングとパターンの関係	
パターン適?用の意義②	
 ?
リファクタリング規模	
小	
 大	
リファクタリング?	
カタログ	
(出典:リファクタリング)	
デザインパターン	
(GoF)	
?Factory	
 ?Method	
 ?
?State	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?	
 ?など	
領
域
	
   カタログやデザインパターンはリフ
ァクタリング全体の中では一部である	
!
まとめ	
 ?
??オブジェクト指向	
??カプセル化	
??インターフェースと実装の分離	
??コンポーネントの生成	
??リファクタリング	
??コンポーネント内部のリファクタリング	
??クラス構造のリファクタリング	
デザイン	
パターン	
指針
?? 第2回のコード	
例例題	
 ?
例例題? 社??長のコード	
 ?
shain	
 ?=	
 ?Tanto.new(100)	
puts	
 ?shain.standup	
puts	
 ?"私の給料は#{	
 ?shain.calculate_salary}円です。"	
 ?	
 ?	
?	
shain	
 ?=	
 ?Shunin.new(100)	
shain.standup	
puts	
 ?"私の給料は#{	
 ?shain.calculate_salary}円です。"	
?	
shain	
 ?=	
 ?Bucho.new(100)	
shain.standup	
puts	
 ?"私の給料は#{	
 ?shain.calculate_salary}円です。"
?? デザインパターンでリファクタリング	
ファクトリーメソッド	
 ?
パターンを適?用	
 ?
社??長コード	
 ?
ファクトリーを作成	
 ?
factory	
 ?=	
 ?ShainFactory.new	
 ?	
 ?
社員の役職を引数でファクトリークラスに渡す	
?	
shain	
 ?=	
 ?factory.create(“Tanto”,100)	
?	
部長の生成	
?	
shain	
 ?=	
 ?factory.create(“Bucho”,100)
社員コード	
 ?
module Salary	
def calculate_salary	
kihon + teate	
end	
def kihon	
@kihonkyu	
end	
def teate	
0	
end	
end	
class Shain	
include Salary	
def initialize(kihonkyu)	
@kihonkyu = kihonkyu	
end	
end	
class Tanto < Shain	
def standup	
"新入社員は慌てて起立しました"	
end	
end	
第2回のコード
?? まずはテストの作成	
 ?
?? Rspecを使用	
テスト	
 ?
# -*- coding: utf-8 -*-	
require_relative './shain'	
describe ShainFactory do	
let(:shain_factory) {ShainFactory.new}	
it ' Tantoオブジェクトを生成しているかどうかをチェックする' do	
expect(shain_factory.create('Tanto',100)).to be_an_instance_of Tanto	
end	
 ?
end
?? ShainFactoryクラスを作っていないのでエラー	
テスト? はじめはエラー	
 ?
class ShainFactory	
def create(type,kihonkyu)	
shain = nil	
if type == 'Tanto'	
shain = Tanto.new(kihonkyu)	
 ?
	
 ?	
 ?	
 ?	
 ?end	
shain	
end	
end
Rspecでテスト	
 ?
yoshi$	
 ?rspec	
 ?-?‐-?‐format=d	
 ?test_spec.rb	
 ?
ShainFactory	
 ?
	
 ?	
 ?Tantoオブジェクトを生成しているかどうかをチェックする
?? 主任、部長、取締役も作成してください。	
演習	
 ?
?? 車とトラックのクラスがあり、前進させるメソ
ッドを持っています。さらに、タイヤを回転さ
せます。	
 ?
?? このプログラムをリファクタリングして、重複
をなくしてください。	
演習2	
 ?
演習2? ?車車、トラック、タイヤクラス	
 ?
class Tire	
def spin_car	
"spinning car tire"	
end	
def spin_truck	
"spinning truck tire"	
end	
end	
class Vehicle	
def initialize	
@tire = Tire.new	
end	
end	
class Car < Vehicle	
def move_forward	
puts "前進する"	
return @tire.spin_car	
end	
end	
class Truck < Vehicle	
def move_forward	
puts "前進する"	
return @tire.spin_truck	
end	
end
演習2? RSpec	
 ?
# -*- coding: utf-8 -*-	
require_relative './vehicle'	
describe Car do	
let(:car) {Car.new}	
it ' spining car tireを返すかどうかをチェックする' do	
expect(car.move_forward).to eq 'spinning car tire'	
end	
end	
describe Truck do	
let(:truck) {Truck.new}	
it ' spining truck tireを返すかどうかをチェックする' do	
expect(truck.move_forward).to eq 'spinning truck tire'	
end

More Related Content

What's hot (20)

蝉迟2でシステム管理
蝉迟2でシステム管理蝉迟2でシステム管理
蝉迟2でシステム管理
You&I
?
Elastic Team Building
Elastic Team BuildingElastic Team Building
Elastic Team Building
Yuki Nanri
?
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのこと
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのことエンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのこと
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのこと
Hiromasa Oka
?
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.
Recruit Technologies
?
データをどこに溜めよう?ローカル?クラウド?どのデータベース?
データをどこに溜めよう?ローカル?クラウド?どのデータベース?データをどこに溜めよう?ローカル?クラウド?どのデータベース?
データをどこに溜めよう?ローカル?クラウド?どのデータベース?
- Core Concept Technologies
?
滨辞罢テ?ハ?イステ?ータ収集の难しい点
滨辞罢テ?ハ?イステ?ータ収集の难しい点滨辞罢テ?ハ?イステ?ータ収集の难しい点
滨辞罢テ?ハ?イステ?ータ収集の难しい点
Tetsutaro Watanabe
?
Microsoft ではじめる AI DLラボ パートナープログラムご紹介
Microsoft ではじめる AI DLラボ パートナープログラムご紹介Microsoft ではじめる AI DLラボ パートナープログラムご紹介
Microsoft ではじめる AI DLラボ パートナープログラムご紹介
Hirono Jumpei
?
滨辞罢导入のお客様要望とその事例(データ取得编)
滨辞罢导入のお客様要望とその事例(データ取得编)滨辞罢导入のお客様要望とその事例(データ取得编)
滨辞罢导入のお客様要望とその事例(データ取得编)
- Core Concept Technologies
?
社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -
社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -
社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -
MicroAd, Inc.(Engineer)
?
ヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分け
ヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分けヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分け
ヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分け
Tetsutaro Watanabe
?
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編
Daiyu Hatakeyama
?
滨辞罢て?成果を出す
滨辞罢て?成果を出す滨辞罢て?成果を出す
滨辞罢て?成果を出す
- Core Concept Technologies
?
【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築
【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築
【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築
日本マイクロソフト株式会社
?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
Developers Summit
?
フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)
フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)
フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)
Future Standard
?
滨诲肠蹿クラウドはこんな人に向いている
滨诲肠蹿クラウドはこんな人に向いている滨诲肠蹿クラウドはこんな人に向いている
滨诲肠蹿クラウドはこんな人に向いている
Takayuki Saito
?
Chainer x Azure Machine Learning service - Hackathon
Chainer x Azure Machine Learning service - HackathonChainer x Azure Machine Learning service - Hackathon
Chainer x Azure Machine Learning service - Hackathon
Daiyu Hatakeyama
?
【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは
【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは
【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは
日本マイクロソフト株式会社
?
蝉迟2でシステム管理
蝉迟2でシステム管理蝉迟2でシステム管理
蝉迟2でシステム管理
You&I
?
Elastic Team Building
Elastic Team BuildingElastic Team Building
Elastic Team Building
Yuki Nanri
?
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのこと
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのことエンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのこと
エンタープライズアジャイル内製プロジェクトを立ち上げる前に考虑すべき3つのこと
Hiromasa Oka
?
Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.Case study of DevOps for Hadoop in Recruit.
Case study of DevOps for Hadoop in Recruit.
Recruit Technologies
?
データをどこに溜めよう?ローカル?クラウド?どのデータベース?
データをどこに溜めよう?ローカル?クラウド?どのデータベース?データをどこに溜めよう?ローカル?クラウド?どのデータベース?
データをどこに溜めよう?ローカル?クラウド?どのデータベース?
- Core Concept Technologies
?
滨辞罢テ?ハ?イステ?ータ収集の难しい点
滨辞罢テ?ハ?イステ?ータ収集の难しい点滨辞罢テ?ハ?イステ?ータ収集の难しい点
滨辞罢テ?ハ?イステ?ータ収集の难しい点
Tetsutaro Watanabe
?
Microsoft ではじめる AI DLラボ パートナープログラムご紹介
Microsoft ではじめる AI DLラボ パートナープログラムご紹介Microsoft ではじめる AI DLラボ パートナープログラムご紹介
Microsoft ではじめる AI DLラボ パートナープログラムご紹介
Hirono Jumpei
?
滨辞罢导入のお客様要望とその事例(データ取得编)
滨辞罢导入のお客様要望とその事例(データ取得编)滨辞罢导入のお客様要望とその事例(データ取得编)
滨辞罢导入のお客様要望とその事例(データ取得编)
- Core Concept Technologies
?
社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -
社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -
社内問い合わせ&申請?承認業務の 管理方法 - Jira Service Management 事例紹介 -
MicroAd, Inc.(Engineer)
?
ヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分け
ヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分けヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分け
ヒ?ックテ?ータ処理技术の全体像とリクルートて?の使い分け
Tetsutaro Watanabe
?
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編
早稲田大学 理工メディアセンター 機械学習とAI セミナー: 機械学習中級編
Daiyu Hatakeyama
?
【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築
【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築
【de:code 2020】 Microsoft 365 E5 を活用したセキュア リモート ワーク環境の構築
日本マイクロソフト株式会社
?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
【17-E-4】GitHub Enterpriseユーザ企業登壇!企業文化にイノベーションを起こすモダンなソフトウェア開発環境とは?
Developers Summit
?
フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)
フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)
フューチャースタンダードCEO鳥海登壇 【 第103回InfoTalk 】「IoTと画像処理で未来のフツウをつくる」講演資料 (Jul. 21st, 2017)
Future Standard
?
滨诲肠蹿クラウドはこんな人に向いている
滨诲肠蹿クラウドはこんな人に向いている滨诲肠蹿クラウドはこんな人に向いている
滨诲肠蹿クラウドはこんな人に向いている
Takayuki Saito
?
Chainer x Azure Machine Learning service - Hackathon
Chainer x Azure Machine Learning service - HackathonChainer x Azure Machine Learning service - Hackathon
Chainer x Azure Machine Learning service - Hackathon
Daiyu Hatakeyama
?
【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは
【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは
【de:code 2020】 Microsoft が考える新しいハイブリッドクラウドの形とは
日本マイクロソフト株式会社
?

Viewers also liked (20)

エクストリームエンシ?ニア4
エクストリームエンシ?ニア4エクストリームエンシ?ニア4
エクストリームエンシ?ニア4
T-arts
?
エクストリームエンシ?ニア3
エクストリームエンシ?ニア3エクストリームエンシ?ニア3
エクストリームエンシ?ニア3
T-arts
?
プロダクトマネジメント入门
プロダクトマネジメント入门プロダクトマネジメント入门
プロダクトマネジメント入门
You&I
?
しょうぎアプリ
しょうぎアプリしょうぎアプリ
しょうぎアプリ
You&I
?
Pfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップPfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップ
nishikawa_makoto7
?
アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」
アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」
アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」
Hiroyuki Ohnaka
?
命名の话(ソースコードは読み物です)
命名の话(ソースコードは読み物です)命名の话(ソースコードは読み物です)
命名の话(ソースコードは読み物です)
Akihiro Nakahara
?
Jackson beyond JSON: XML, CSV
Jackson beyond JSON: XML, CSVJackson beyond JSON: XML, CSV
Jackson beyond JSON: XML, CSV
Tatu Saloranta
?
オブジェクト指向っぽい话
オブジェクト指向っぽい话オブジェクト指向っぽい话
オブジェクト指向っぽい话
Tomohiro Shinden
?
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーションレカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
Masanori Satoh
?
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
?
翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编
翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编
翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编
risou
?
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
yaju88
?
今日からはじめるリファクタリング
今日からはじめるリファクタリング今日からはじめるリファクタリング
今日からはじめるリファクタリング
Junya Shimazu
?
レジリエンスで高める组织づくり
レジリエンスで高める组织づくりレジリエンスで高める组织づくり
レジリエンスで高める组织づくり
You&I
?
200円から始めるプロジェクトファシリテーション
200円から始めるプロジェクトファシリテーション200円から始めるプロジェクトファシリテーション
200円から始めるプロジェクトファシリテーション
Masaya Yamamoto
?
0410_agilejapan2010_hanyudasan
0410_agilejapan2010_hanyudasan0410_agilejapan2010_hanyudasan
0410_agilejapan2010_hanyudasan
Akiko Kosaka
?
ペアプロどうでしょう?
ペアプロどうでしょう?ペアプロどうでしょう?
ペアプロどうでしょう?
hiroyuki Yamamoto
?
AgileJapan-Saga-Prefecture
AgileJapan-Saga-PrefectureAgileJapan-Saga-Prefecture
AgileJapan-Saga-Prefecture
guesta72ed241
?
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
?
エクストリームエンシ?ニア4
エクストリームエンシ?ニア4エクストリームエンシ?ニア4
エクストリームエンシ?ニア4
T-arts
?
エクストリームエンシ?ニア3
エクストリームエンシ?ニア3エクストリームエンシ?ニア3
エクストリームエンシ?ニア3
T-arts
?
プロダクトマネジメント入门
プロダクトマネジメント入门プロダクトマネジメント入门
プロダクトマネジメント入门
You&I
?
Pfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップPfpws w22 事例紹介_ペアマインドマップ
Pfpws w22 事例紹介_ペアマインドマップ
nishikawa_makoto7
?
アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」
アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」
アジャイルサムライ横浜道场「リファクタリング:技术的负债の返済」
Hiroyuki Ohnaka
?
命名の话(ソースコードは読み物です)
命名の话(ソースコードは読み物です)命名の话(ソースコードは読み物です)
命名の话(ソースコードは読み物です)
Akihiro Nakahara
?
Jackson beyond JSON: XML, CSV
Jackson beyond JSON: XML, CSVJackson beyond JSON: XML, CSV
Jackson beyond JSON: XML, CSV
Tatu Saloranta
?
オブジェクト指向っぽい话
オブジェクト指向っぽい话オブジェクト指向っぽい话
オブジェクト指向っぽい话
Tomohiro Shinden
?
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーションレカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
レカ?シーコート?を改善した先にあるもの、それは継続的インテク?レーション
Masanori Satoh
?
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
risou
?
翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编
翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编
翱蹿蹿颈肠别で使う笔别谤濒 贰虫肠别濒编
risou
?
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
yaju88
?
今日からはじめるリファクタリング
今日からはじめるリファクタリング今日からはじめるリファクタリング
今日からはじめるリファクタリング
Junya Shimazu
?
レジリエンスで高める组织づくり
レジリエンスで高める组织づくりレジリエンスで高める组织づくり
レジリエンスで高める组织づくり
You&I
?
200円から始めるプロジェクトファシリテーション
200円から始めるプロジェクトファシリテーション200円から始めるプロジェクトファシリテーション
200円から始めるプロジェクトファシリテーション
Masaya Yamamoto
?
0410_agilejapan2010_hanyudasan
0410_agilejapan2010_hanyudasan0410_agilejapan2010_hanyudasan
0410_agilejapan2010_hanyudasan
Akiko Kosaka
?
ペアプロどうでしょう?
ペアプロどうでしょう?ペアプロどうでしょう?
ペアプロどうでしょう?
hiroyuki Yamamoto
?
AgileJapan-Saga-Prefecture
AgileJapan-Saga-PrefectureAgileJapan-Saga-Prefecture
AgileJapan-Saga-Prefecture
guesta72ed241
?
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
hakoika-itwg
?

Similar to エクストリームエンシ?ニア5 (20)

デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
kei takakuda
?
颁#と滨尝とネイティブと
颁#と滨尝とネイティブと颁#と滨尝とネイティブと
颁#と滨尝とネイティブと
信之 岩永
?
ドメインロジックの実装方法とドメイン駆动设计
ドメインロジックの実装方法とドメイン駆动设计ドメインロジックの実装方法とドメイン駆动设计
ドメインロジックの実装方法とドメイン駆动设计
Tadayoshi Sato
?
私がドメイン駆动设计をやる理由
私がドメイン駆动设计をやる理由私がドメイン駆动设计をやる理由
私がドメイン駆动设计をやる理由
増田 亨
?
勉強会 - 1
勉強会 - 1勉強会 - 1
勉強会 - 1
KenjiYamasaki5
?
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
?
2014 08-30 life with roslyn
2014 08-30 life with roslyn2014 08-30 life with roslyn
2014 08-30 life with roslyn
shibuki
?
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
驰补丑辞辞!デベロッパーネットワーク
?
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
?
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまでCode for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Naoyuki Yamada
?
ドメイン駆动设计の学习曲线とブレークポイント
ドメイン駆动设计の学习曲线とブレークポイントドメイン駆动设计の学习曲线とブレークポイント
ドメイン駆动设计の学习曲线とブレークポイント
増田 亨
?
わかると楽しいInfrastructure as code
わかると楽しいInfrastructure as codeわかると楽しいInfrastructure as code
わかると楽しいInfrastructure as code
Shohei Kobayashi
?
Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!
Hiroyuki Mori
?
C# 3.0 以降
C# 3.0 以降C# 3.0 以降
C# 3.0 以降
Fujio Kojima
?
電光掲示板のコード C#で画像処理
電光掲示板のコード C#で画像処理電光掲示板のコード C#で画像処理
電光掲示板のコード C#で画像処理
Takuya Negishi
?
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
DIVE INTO CODE Corp.
?
広がる .Net
広がる .Net広がる .Net
広がる .Net
信之 岩永
?
ソフトウェア工学2023 03 下流工程
ソフトウェア工学2023 03 下流工程ソフトウェア工学2023 03 下流工程
ソフトウェア工学2023 03 下流工程
Toru Tamaki
?
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOpsDOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
decode2016
?
社内 DDD 勉強会 #4
社内 DDD 勉強会 #4社内 DDD 勉強会 #4
社内 DDD 勉強会 #4
shingo suzuki
?
デザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリングデザインパターンを用いたリファクタリング
デザインパターンを用いたリファクタリング
kei takakuda
?
颁#と滨尝とネイティブと
颁#と滨尝とネイティブと颁#と滨尝とネイティブと
颁#と滨尝とネイティブと
信之 岩永
?
ドメインロジックの実装方法とドメイン駆动设计
ドメインロジックの実装方法とドメイン駆动设计ドメインロジックの実装方法とドメイン駆动设计
ドメインロジックの実装方法とドメイン駆动设计
Tadayoshi Sato
?
私がドメイン駆动设计をやる理由
私がドメイン駆动设计をやる理由私がドメイン駆动设计をやる理由
私がドメイン駆动设计をやる理由
増田 亨
?
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
三位一体の自動化で壊せ DevとOpsの壁~アラサーエンジニアの挑戦~
Rakuten Group, Inc.
?
2014 08-30 life with roslyn
2014 08-30 life with roslyn2014 08-30 life with roslyn
2014 08-30 life with roslyn
shibuki
?
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
?
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまでCode for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Code for Japan 勉強会 Vol.1 CKAN入門 プロジェクトのFork、デプロイ、CIまで
Naoyuki Yamada
?
ドメイン駆动设计の学习曲线とブレークポイント
ドメイン駆动设计の学习曲线とブレークポイントドメイン駆动设计の学习曲线とブレークポイント
ドメイン駆动设计の学习曲线とブレークポイント
増田 亨
?
わかると楽しいInfrastructure as code
わかると楽しいInfrastructure as codeわかると楽しいInfrastructure as code
わかると楽しいInfrastructure as code
Shohei Kobayashi
?
Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!Visual Studio 2019 Updates Pickup!
Visual Studio 2019 Updates Pickup!
Hiroyuki Mori
?
電光掲示板のコード C#で画像処理
電光掲示板のコード C#で画像処理電光掲示板のコード C#で画像処理
電光掲示板のコード C#で画像処理
Takuya Negishi
?
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
セ?ロからのフ?ロク?ラミンク?Rails講座 Codeanywhere版
DIVE INTO CODE Corp.
?
ソフトウェア工学2023 03 下流工程
ソフトウェア工学2023 03 下流工程ソフトウェア工学2023 03 下流工程
ソフトウェア工学2023 03 下流工程
Toru Tamaki
?
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOpsDOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
DOO-015_Azure/Windows Server 2016 から学ぶ Windows 系インフラ エンジニアのための DevOps
decode2016
?
社内 DDD 勉強会 #4
社内 DDD 勉強会 #4社内 DDD 勉強会 #4
社内 DDD 勉強会 #4
shingo suzuki
?

エクストリームエンシ?ニア5