37
C++ & software engineering Martin Halfar Juraj Michálek 14.12. 2015 FI MUNI - Brno

C++ and Software Engineering 2015

Embed Size (px)

Citation preview

Page 1: C++ and Software Engineering 2015

C++ & software engineeringMartin Halfar

Juraj Michálek

14.12. 2015FI MUNI - Brno

Page 2: C++ and Software Engineering 2015

Grab the source code

https://github.com/ysoftdevs/cpp-examples

Page 3: C++ and Software Engineering 2015

We should be taught not to wait for inspiration to start a thing.Action always generates inspiration.

- Frank Tibolt

Page 4: C++ and Software Engineering 2015

Write failingacceptancetest

Write afailingunit test

Make thetest pass

Refactor

Page 5: C++ and Software Engineering 2015

Understandthe problem

Broad-BrushDesign(Architectue)

Automate:- build- deployment- end-to-end

tests

Page 6: C++ and Software Engineering 2015

Know your toolDeveloper

….or

Engineer

Page 7: C++ and Software Engineering 2015

Embedded systems developerProprietary Embedded Technologies

C#, CSS 3.0, ECMAScript 6, Java 1.4, C++

TDD, BDD

Git

gradle, grunt

Nuget, Sonatype Nexus, Npm, Private Bower Registry

Web Sevices - SOAP, REST

Page 8: C++ and Software Engineering 2015

Is it live yet?● Important is communication before and during development

○ Focus groups, Elaboration helps before development○ Code review and pull requests helps during development

● Important are results○ Technology dept○ Maintenance cost○ Role of customer (real customer, product manager, architect), technical lead, senior developer

Page 9: C++ and Software Engineering 2015

externalquality

internalquality

unit integration end-to-endScale

amm

ount

of f

eedb

ack

Page 10: C++ and Software Engineering 2015

Conway’s law

organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations

Martin Fawler - Microservices (2015)

https://youtu.be/2yko4TbC8cI

Page 11: C++ and Software Engineering 2015

Antipatternhttp://martinfowler.com/bliki/AntiPattern.html

Page 12: C++ and Software Engineering 2015

Chaos Monkey

Page 13: C++ and Software Engineering 2015

PodcastsChannel9 - https://channel9.msdn.com/

Hanselminutes - http://hanselminutes.com/

CppCast - http://cppcast.com/

Devminutes - http://devminutes.cz/

.NetRocks - https://www.dotnetrocks.com/

Page 14: C++ and Software Engineering 2015

Conemu Maximus 5

Powerful terminal for Windows

use with PowerShell, Python, Ruby…

https://code.google.com/p/conemu-maximus5/

Page 15: C++ and Software Engineering 2015

Yum/Apt-like installation of Win packageshttps://chocolatey.org

Page 16: C++ and Software Engineering 2015

NuGet - http://www.nuget.org

Page 17: C++ and Software Engineering 2015
Page 18: C++ and Software Engineering 2015

Cppcheck

Page 19: C++ and Software Engineering 2015

Continuous integration

Page 20: C++ and Software Engineering 2015

Jenkins

Hit for Windows users: Do not install Jenkins into path with special characters and blank space.E.g: Wrong: C:\Program Files (x86)\Jenkins. Correct: Use C:\projects\jenkins

Page 21: C++ and Software Engineering 2015
Page 22: C++ and Software Engineering 2015

Dashboard view

Page 23: C++ and Software Engineering 2015

Plan summary

Page 24: C++ and Software Engineering 2015

Hierarchy

Plan

Stage

Job

Task

Page 25: C++ and Software Engineering 2015

Stage

No equivalent in our Jenkins

Page 26: C++ and Software Engineering 2015

Agent capabilities

Page 27: C++ and Software Engineering 2015

Focus

One agent - One job

No parallel executions on one Agent

Page 28: C++ and Software Engineering 2015

Add-ons

Page 29: C++ and Software Engineering 2015

Chuck happy

Page 30: C++ and Software Engineering 2015

Artifacts to Nexus

Do not store binaries in Git/SVN!

exe, fonts, big files, jars...

Page 31: C++ and Software Engineering 2015

IDE & Text editors

Page 32: C++ and Software Engineering 2015

Ideone.com

Page 33: C++ and Software Engineering 2015

https://c9.io

Page 34: C++ and Software Engineering 2015

Sublime Text

Page 35: C++ and Software Engineering 2015
Page 36: C++ and Software Engineering 2015

Older talks

http://georgik.sinusgear.com/prednasky/

Page 37: C++ and Software Engineering 2015

YSofters

Twitter: @ysoftdevs

GitHub: github.com/ysoftdevs

Blog: www.ysofters.com

Technology Hour: www.meetup.com/ysoft-th