agile engineering training

Agile Engineering TrainingPurposeFill the Gap, focus on technical sideScrum does not cover technical sideMandatory skills required in Agile Dev teamourself are impedimentsTDDRed-Green-RefactoringArrange-Act-AssertHamcrest APImore expressivemathersassertThatisequalTocontainsfirst argument is actual, second one is the expectedEclipse ShortcutsALT+SHIFT+RALT+SHIFT+MALT+SHIFT+FCTRL+SHIFT+F11 to run testsKatasBolwingGilded Rosegreat refactoring exampleRoman NumeralsSimple Design4 simple design rulesAll tests must be passedNode code is duplicatedCode is self-explanatoryNo superfluous parts existsSimplified versionremove duplicationfix namesnamespass phone testsmeaningful use business domain termubiquitous languagePrinciplesSOLIDSRPOCPLSPISPDIPDRYDon't Repeat YourselfLoDTell, don't askWrite SHY codemake mocking easierRefactoringcode smellsIF statementNull CheckCommentsLong methods and classesFeature envypatternsexample: Gilded Roserenameextract methodemerge patternsbusiness logic emergechange code without understanding the business logiclegacy codecode without unit testsuse mocks to break dependenciesAction plansWrite unit tests using mockito improve code reviewcheck namecheck duplicationSOLID/Lod/DRYrecommend 2 booksclean codeworking effectively with legacy codeattend onAgile virtual conferenceuncle bobMatin FowlerTDD/Pair programing/DevOps