Modern app workflow

Andrey Kucherenko

Task runners

 

Grunt

 

Lineman.js

 

gulp.js

 

frontend-maven-plugin

 

Code Convertors

 

ECMAScript 6

 

Code quality

ESLint

1

plato.js

 

plato.js

 

plato.js

 

plato.js

 

jscpd

 
$ jscpd -p test/fixtures/
info:    jscpd - copy/paste detector for programming source code, developed by Andrey Kucherenko
warn:    File test/fixtures/.cpd.yaml not found in current directory or it is broken
warn:    File test/fixtures/.cpd.yml not found in current directory or it is broken
info:    Files search time: durationMs=16
info:    Scanning 37 files for duplicates...
info:    Scanning for duplicates time: durationMs=1454
info:    Scanning... done!

info:    Start report generation...

info:    Found 29 exact clones with 1352 duplicated lines in 35 files
 
	- test/fixtures/clike/file1.cpp: 23-43
	 test/fixtures/clike/file1.cpp: 44-64
	
	- test/fixtures/clike/file1.c: 1-17
	 test/fixtures/clike/file2.c: 1-17
	
	- test/fixtures/clike/file1.c: 7-19
	 test/fixtures/clike/file2.c: 17-29
	
	- test/fixtures/clike/file1.cpp: 1-88
	 test/fixtures/clike/file2.cpp: 1-88
	
	- test/fixtures/coffeescript/file1.coffee: 15-44
	 test/fixtures/coffeescript/file1.coffee: 45-74
	
	- test/fixtures/coffeescript/file1.coffee: 2-13
	 test/fixtures/coffeescript/file2.coffee: 4-15
	
	- test/fixtures/csharp/file1.cs: 1-91
	 test/fixtures/csharp/file2.cs: 1-91
	
	- test/fixtures/csharp/file1.cs: 102-185
	 test/fixtures/csharp/file2.cs: 92-175
	
	- test/fixtures/css/file1.css: 2-25
	 test/fixtures/css/file1.less: 2-25
	
	- test/fixtures/css/file1.css: 2-25
	 test/fixtures/css/file10.css: 2-25
	
	- test/fixtures/css/file1.css: 2-19
	 test/fixtures/css/file2.css: 2-19
	
	- test/fixtures/css/file1.css: 2-20
	 test/fixtures/css/file2.less: 2-20
	
	- test/fixtures/go/file1.go: 2-31
	 test/fixtures/go/file2.go: 2-31
	
	- test/fixtures/haxe/test.hx: 5-47
	 test/fixtures/haxe/test.hx: 46-88
	
	- test/fixtures/haxe/test.hx: 2-62
	 test/fixtures/haxe/test1.hx: 2-62
	
	- test/fixtures/htmlmixed/file1.htm: 2-24
	 test/fixtures/htmlmixed/file2.htm: 2-24
	
	- test/fixtures/java/file1.java: 1-185
	 test/fixtures/java/file2.java: 1-185
	
	- test/fixtures/java/file1.java: 181-221
	 test/fixtures/java/file2.java: 193-233
	
	- test/fixtures/javascript/file_1.js: 28-55
	 test/fixtures/javascript/file_2.js: 1-28
	
	- test/fixtures/javascript/file_1.js: 27-55
	 test/fixtures/javascript/file_2.js: 28-56
	
	- test/fixtures/javascript/file_1.js: 4-55
	 test/fixtures/javascript/file_3.js: 1-52
	
	- test/fixtures/javascript/file_4.js: 14-42
	 test/fixtures/javascript/file_4.js: 55-83
	
	- test/fixtures/jsx/test.jsx: 2-36
	 test/fixtures/jsx/test1.jsx: 2-36
	
	- test/fixtures/jsx/test.jsx: 7-45
	 test/fixtures/jsx/test1.jsx: 31-69
	
	- test/fixtures/php/file1.php: 2-51
	 test/fixtures/php/file2.php: 2-51
	
	- test/fixtures/python/file1.py: 2-21
	 test/fixtures/python/file2.py: 2-21
	
	- test/fixtures/ruby/file1.rb: 1-13
	 test/fixtures/ruby/file2.rb: 1-13
	
	- test/fixtures/typescript/file1.ts: 1-70
	 test/fixtures/typescript/file2.ts: 48-117
	
	- test/fixtures/typescript/file1.ts: 72-263
	 test/fixtures/typescript/file2.ts: 185-376
	

 48.29% (1352 lines) duplicated lines out of 2800 total lines of code.

warn:    output file is not provided
info:    Generate report time: durationMs=9
info:    All time: durationMs=1485

Test’em!

Istanbul

 

coverage-blamer

 

grunt-mutation-testing

 
// spec.js
describe('Protractor Demo App', function() {
  it('should have a title', function() {
    browser.get('http://juliemr.github.io/protractor-demo/');

    expect(browser.getTitle()).toEqual('Super Calculator');
  });
});
# features/myFeature.feature

Feature: Example feature
  As a user of cucumber.js
  I want to have documentation on cucumber
  So that I can concentrate on building awesome applications

  Scenario: Reading documentation
    Given I am on the Cucumber.js GitHub repository
    When I go to the README file
    Then I should see "Usage" as the page title

Continuous integration 

 

Continuous integration 

 

Deploying

 

npm sinopia

 

Artifactory Pro

for NPM 

Questions?

 

Thank you

 

Modern application flow

By Andrey Kucherenko

Loading comments...

More from Andrey Kucherenko