devops 及 tdd 開發流程哲學

96
DevOps TDD 樄咳窕纷߽䋊

Upload: spooky-xie

Post on 16-Apr-2017

4.187 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: DevOps 及 TDD 開發流程哲學

DevOps TDD

Page 2: DevOps 及 TDD 開發流程哲學

SPOOKY

ProgrammerDevOps

Team Leader

Java 6 yearsJavascript 1.5 years

smlsun@facebook

trunk-studio.comblog.trunk-studio.com

Page 3: DevOps 及 TDD 開發流程哲學

OUTLINE• DevOps

• DevOps

• DevOps

• TDD

• TDD

• TDD

• TDD CI

Page 4: DevOps 及 TDD 開發流程哲學
Page 5: DevOps 及 TDD 開發流程哲學
Page 6: DevOps 及 TDD 開發流程哲學
Page 7: DevOps 及 TDD 開發流程哲學
Page 8: DevOps 及 TDD 開發流程哲學
Page 9: DevOps 及 TDD 開發流程哲學
Page 10: DevOps 及 TDD 開發流程哲學
Page 11: DevOps 及 TDD 開發流程哲學

DevOps

Page 12: DevOps 及 TDD 開發流程哲學

DevOps Agile Lean

DevOps IT

Page 13: DevOps 及 TDD 開發流程哲學

AGILE VS LEAN• Agile:

• Lean:

Page 14: DevOps 及 TDD 開發流程哲學
Page 15: DevOps 及 TDD 開發流程哲學
Page 16: DevOps 及 TDD 開發流程哲學

DEVOPS

Page 17: DevOps 及 TDD 開發流程哲學

DEVOPS

• 90

• 2 1 DevOps 1.5 18

Page 18: DevOps 及 TDD 開發流程哲學
Page 19: DevOps 及 TDD 開發流程哲學
Page 20: DevOps 及 TDD 開發流程哲學
Page 21: DevOps 及 TDD 開發流程哲學
Page 22: DevOps 及 TDD 開發流程哲學
Page 23: DevOps 及 TDD 開發流程哲學
Page 24: DevOps 及 TDD 開發流程哲學

DevOps

Page 25: DevOps 及 TDD 開發流程哲學

DevOps

Develop Operator

Page 26: DevOps 及 TDD 開發流程哲學

DevOps Tools

Page 27: DevOps 及 TDD 開發流程哲學

Tools as objects to think with Tools

Page 28: DevOps 及 TDD 開發流程哲學

DEVOPS

Page 29: DevOps 及 TDD 開發流程哲學

TDD

DevOps ...

Page 30: DevOps 及 TDD 開發流程哲學
Page 31: DevOps 及 TDD 開發流程哲學

Page 32: DevOps 及 TDD 開發流程哲學
Page 33: DevOps 及 TDD 開發流程哲學
Page 34: DevOps 及 TDD 開發流程哲學
Page 35: DevOps 及 TDD 開發流程哲學
Page 36: DevOps 及 TDD 開發流程哲學
Page 37: DevOps 及 TDD 開發流程哲學
Page 38: DevOps 及 TDD 開發流程哲學
Page 39: DevOps 及 TDD 開發流程哲學
Page 40: DevOps 及 TDD 開發流程哲學
Page 41: DevOps 及 TDD 開發流程哲學
Page 42: DevOps 及 TDD 開發流程哲學

TEST

Page 43: DevOps 及 TDD 開發流程哲學
Page 44: DevOps 及 TDD 開發流程哲學

DeveloperQA

Page 45: DevOps 及 TDD 開發流程哲學

TEST SPEC

Page 46: DevOps 及 TDD 開發流程哲學

/

Page 47: DevOps 及 TDD 開發流程哲學
Page 48: DevOps 及 TDD 開發流程哲學
Page 49: DevOps 及 TDD 開發流程哲學
Page 50: DevOps 及 TDD 開發流程哲學

FAIL Edge of Tomorrow

Page 51: DevOps 及 TDD 開發流程哲學

TDD test

Tools as objects to think with Tools

TDD is not about testbut think about better design

Page 52: DevOps 及 TDD 開發流程哲學

...

Page 53: DevOps 及 TDD 開發流程哲學

TDD TEST CODE

Page 54: DevOps 及 TDD 開發流程哲學

TDD

Page 55: DevOps 及 TDD 開發流程哲學
Page 56: DevOps 及 TDD 開發流程哲學

X TEST vs O TEST

-4-2-60

Page 57: DevOps 及 TDD 開發流程哲學
Page 58: DevOps 及 TDD 開發流程哲學

TDD NODEJS

Page 59: DevOps 及 TDD 開發流程哲學

PackageLibrary

ApplicationServer

Page 60: DevOps 及 TDD 開發流程哲學

LOGIN

• 3 step Login

Page 61: DevOps 及 TDD 開發流程哲學

INITIAL

Page 62: DevOps 及 TDD 開發流程哲學

var liftApp = async () => { await models.sequelize.sync({ force: config.connection.force }); await bootstrap(); app.listen(config.port); return app;}if (env !== 'test') liftApp();module.exports = liftApp

import chai from 'chai';import request from 'supertest';import sinon from 'sinon';import liftApp from '../../server';chai.should();global.sinon = sinon;before(async (done) => { let app = await liftApp(); global.app = app; global.request = request.agent(app.listen()); done();});

APstart

test frameworkstart

Page 63: DevOps 及 TDD 開發流程哲學

SPECdescribe('auth login spec', () => { before(async (done) => { let testUser = {'username': 'test', 'password': 'test'} await models.User.create(testUser); done(); });

it('login should be success.', async (done) => {

let loginUserFormData = { 'username': ‘test', 'password': ‘test' }; request.post(‘/auth/login') .send(loginUserFormData).expect(200) .end((error, res) => { if (error) done(error); let loginResult = res.body; loginResult.success.should.be.true; done(); }) }});

Page 64: DevOps 及 TDD 開發流程哲學

• Mocha test framework

• Supertest API

• Should or Chai spec

Page 65: DevOps 及 TDD 開發流程哲學

MOCK

EX

Page 66: DevOps 及 TDD 開發流程哲學

APIOR

Page 67: DevOps 及 TDD 開發流程哲學

• sinon Mock

Source code

Mock code

Page 68: DevOps 及 TDD 開發流程哲學

Spec

SPECSA/SD

Page 69: DevOps 及 TDD 開發流程哲學

/

SPEC

Page 70: DevOps 及 TDD 開發流程哲學

TDD CI

Page 71: DevOps 及 TDD 開發流程哲學

CI / CD

Page 72: DevOps 及 TDD 開發流程哲學

CI

Page 73: DevOps 及 TDD 開發流程哲學
Page 74: DevOps 及 TDD 開發流程哲學
Page 75: DevOps 及 TDD 開發流程哲學
Page 76: DevOps 及 TDD 開發流程哲學
Page 77: DevOps 及 TDD 開發流程哲學
Page 78: DevOps 及 TDD 開發流程哲學
Page 79: DevOps 及 TDD 開發流程哲學

Auto Trigger

Page 80: DevOps 及 TDD 開發流程哲學
Page 81: DevOps 及 TDD 開發流程哲學
Page 82: DevOps 及 TDD 開發流程哲學
Page 83: DevOps 及 TDD 開發流程哲學
Page 84: DevOps 及 TDD 開發流程哲學

“ ”

Page 85: DevOps 及 TDD 開發流程哲學
Page 86: DevOps 及 TDD 開發流程哲學

• from Clean Code

Page 87: DevOps 及 TDD 開發流程哲學
Page 88: DevOps 及 TDD 開發流程哲學

DEVOPS TDD

Page 89: DevOps 及 TDD 開發流程哲學
Page 90: DevOps 及 TDD 開發流程哲學
Page 91: DevOps 及 TDD 開發流程哲學

• Member

• Member

Page 92: DevOps 及 TDD 開發流程哲學

Page 93: DevOps 及 TDD 開發流程哲學

• Member

Page 94: DevOps 及 TDD 開發流程哲學

AGILE VS LEAN AND

• Agile:

• Lean:

Page 95: DevOps 及 TDD 開發流程哲學
Page 96: DevOps 及 TDD 開發流程哲學

• http://qualitycoding.org/tdd-testimonial/

• http://gamesfromwithin.com/backwards-is-forward-making-better-games-with-test-driven-development

• http://punnode.com/archives/18016

• http://teddy-chen-tw.blogspot.tw/2014/09/blog-post_22.html