├── .gitignore ├── README.md ├── maintainabilitybook.sln ├── pom.xml └── src ├── csharp ├── Properties │ └── AssemblyInfo.cs ├── eu │ └── sig │ │ └── training │ │ ├── ch02 │ │ ├── BalancesServlet.cs │ │ ├── BoardFactory.cs │ │ ├── Employees.cs │ │ ├── Level.cs │ │ ├── LevelHelper.cs │ │ ├── v1 │ │ │ └── BoardFactory.cs │ │ └── v2 │ │ │ └── BoardFactory.cs │ │ ├── ch03 │ │ ├── Flag.cs │ │ ├── FlagFactory.cs │ │ ├── FlagFactoryOops.cs │ │ ├── FlagFactoryWithMap.cs │ │ ├── JenkinsUser.cs │ │ ├── Nationality.cs │ │ ├── binarytree │ │ │ ├── BinaryTreeNode.cs │ │ │ ├── TreeException.cs │ │ │ ├── v1 │ │ │ │ └── BinaryTreeSearch.cs │ │ │ ├── v2 │ │ │ │ └── BinaryTreeSearch.cs │ │ │ └── v3 │ │ │ │ └── BinaryTreeSearch.cs │ │ └── withmapandtypes │ │ │ ├── BelgianFlag.cs │ │ │ ├── DefaultFlag.cs │ │ │ ├── DutchFlag.cs │ │ │ ├── FlagFactory.cs │ │ │ ├── FrenchFlag.cs │ │ │ ├── GermanFlag.cs │ │ │ ├── IFlag.cs │ │ │ └── ItalianFlag.cs │ │ ├── ch04 │ │ ├── BusinessException.cs │ │ ├── Clones.cs │ │ ├── Money.cs │ │ ├── v1 │ │ │ ├── Accounts.cs │ │ │ ├── CheckingAccount.cs │ │ │ ├── SavingsAccount.cs │ │ │ └── Transfer.cs │ │ ├── v2 │ │ │ ├── Accounts.cs │ │ │ ├── CheckingAccount.cs │ │ │ ├── SavingsAccount.cs │ │ │ └── Transfer.cs │ │ ├── v3 │ │ │ ├── Account.cs │ │ │ ├── Accounts.cs │ │ │ ├── CheckingAccount.cs │ │ │ ├── SavingsAccount.cs │ │ │ └── Transfer.cs │ │ └── v4 │ │ │ ├── Account.cs │ │ │ ├── Accounts.cs │ │ │ └── Transfer.cs │ │ ├── ch05 │ │ ├── boardpanel │ │ │ ├── v1 │ │ │ │ └── BoardPanel.cs │ │ │ ├── v2 │ │ │ │ ├── BoardPanel.cs │ │ │ │ └── Rectangle.cs │ │ │ └── v3 │ │ │ │ └── BoardPanel.cs │ │ ├── buildandsendmail │ │ │ ├── v1 │ │ │ │ └── BuildAndSendMail.cs │ │ │ └── v2 │ │ │ │ └── BuildAndSendMail.cs │ │ └── chartlib │ │ │ ├── v1 │ │ │ └── Charts.cs │ │ │ └── v2 │ │ │ └── BarChart.cs │ │ ├── ch06 │ │ ├── advanceddigitalcamera │ │ │ ├── DigitalCamera.cs │ │ │ └── Video.cs │ │ ├── digitalcamera │ │ │ ├── DigitalCamera.cs │ │ │ └── SmartphoneApp.cs │ │ ├── simpledigitalcamera │ │ │ ├── DigitalCamera.cs │ │ │ ├── ISimpleDigitalCamera.cs │ │ │ ├── SDK.cs │ │ │ └── SmartphoneApp.cs │ │ └── userservice │ │ │ ├── NotificationType.cs │ │ │ ├── User.cs │ │ │ ├── UserInfo.cs │ │ │ ├── splitted │ │ │ ├── UserBlockService.cs │ │ │ ├── UserNotificationService.cs │ │ │ └── UserService.cs │ │ │ ├── v1 │ │ │ ├── UserRestAPI.cs │ │ │ └── UserService.cs │ │ │ ├── v2 │ │ │ ├── NotificationRestAPI.cs │ │ │ └── UserService.cs │ │ │ └── v3 │ │ │ └── UserService.cs │ │ ├── ch07 │ │ ├── AWSCloudServerFactory.cs │ │ ├── AWSCloudStorage.cs │ │ ├── AWSComputeServer.cs │ │ ├── AWSDatabaseServer.cs │ │ ├── ApplicationLauncher.cs │ │ ├── AzureCloudServerFactory.cs │ │ ├── AzureCloudStorage.cs │ │ ├── AzureComputeServer.cs │ │ ├── AzureDatabaseServer.cs │ │ ├── ICloudServer.cs │ │ ├── ICloudServerFactory.cs │ │ └── ICloudStorage.cs │ │ ├── ch10 │ │ ├── PerfectPicture.cs │ │ └── Program.cs │ │ └── ch11 │ │ ├── DeadCode.cs │ │ ├── MagicConstants.cs │ │ └── StandardContext.cs ├── maintainabilitybook.csproj └── packages.config ├── java └── eu │ └── sig │ └── training │ ├── ch02 │ ├── BalancesServlet.java │ ├── BoardFactory.java │ ├── Employees.java │ ├── Level.java │ ├── LevelHelper.java │ ├── v1 │ │ └── BoardFactory.java │ └── v2 │ │ └── BoardFactory.java │ ├── ch03 │ ├── Flag.java │ ├── FlagFactory.java │ ├── FlagFactoryOops.java │ ├── FlagFactoryWithMap.java │ ├── JenkinsUser.java │ ├── Nationality.java │ ├── binarytree │ │ ├── BinaryTreeNode.java │ │ ├── TreeException.java │ │ ├── v1 │ │ │ └── BinaryTreeSearch.java │ │ ├── v2 │ │ │ └── BinaryTreeSearch.java │ │ └── v3 │ │ │ └── BinaryTreeSearch.java │ └── withmapandtypes │ │ ├── BelgianFlag.java │ │ ├── DefaultFlag.java │ │ ├── DutchFlag.java │ │ ├── Flag.java │ │ ├── FlagFactory.java │ │ ├── FrenchFlag.java │ │ ├── GermanFlag.java │ │ └── ItalianFlag.java │ ├── ch04 │ ├── BusinessException.java │ ├── Clones.java │ ├── Money.java │ ├── v1 │ │ ├── Accounts.java │ │ ├── CheckingAccount.java │ │ ├── SavingsAccount.java │ │ └── Transfer.java │ ├── v2 │ │ ├── Accounts.java │ │ ├── CheckingAccount.java │ │ ├── SavingsAccount.java │ │ └── Transfer.java │ ├── v3 │ │ ├── Account.java │ │ ├── Accounts.java │ │ ├── CheckingAccount.java │ │ ├── SavingsAccount.java │ │ └── Transfer.java │ └── v4 │ │ ├── Account.java │ │ ├── Accounts.java │ │ └── Transfer.java │ ├── ch05 │ ├── boardpanel │ │ ├── v1 │ │ │ └── BoardPanel.java │ │ ├── v2 │ │ │ ├── BoardPanel.java │ │ │ └── Rectangle.java │ │ └── v3 │ │ │ └── BoardPanel.java │ ├── buildandsendmail │ │ ├── v1 │ │ │ └── BuildAndSendMail.java │ │ └── v2 │ │ │ └── BuildAndSendMail.java │ └── chartlib │ │ ├── v1 │ │ └── Charts.java │ │ └── v2 │ │ └── BarChart.java │ ├── ch06 │ ├── advanceddigitalcamera │ │ ├── DigitalCamera.java │ │ └── Video.java │ ├── digitalcamera │ │ ├── DigitalCamera.java │ │ └── SmartphoneApp.java │ ├── simpledigitalcamera │ │ ├── DigitalCamera.java │ │ ├── SDK.java │ │ ├── SimpleDigitalCamera.java │ │ └── SmartphoneApp.java │ └── userservice │ │ ├── NotificationType.java │ │ ├── User.java │ │ ├── UserInfo.java │ │ ├── splitted │ │ ├── UserBlockService.java │ │ ├── UserNotificationService.java │ │ └── UserService.java │ │ ├── v1 │ │ ├── UserRestAPI.java │ │ └── UserService.java │ │ ├── v2 │ │ ├── NotificationRestAPI.java │ │ └── UserService.java │ │ └── v3 │ │ └── UserService.java │ ├── ch07 │ ├── AWSCloudServerFactory.java │ ├── AWSCloudStorage.java │ ├── AWSComputeServer.java │ ├── AWSDatabaseServer.java │ ├── ApplicationLauncher.java │ ├── AzureCloudServerFactory.java │ ├── AzureCloudStorage.java │ ├── AzureComputeServer.java │ ├── AzureDatabaseServer.java │ ├── CloudServer.java │ ├── CloudServerFactory.java │ └── CloudStorage.java │ ├── ch10 │ ├── PerfectPicture.java │ └── Program.java │ └── ch11 │ ├── DeadCode.java │ ├── MagicConstants.java │ ├── PluginManager.java │ ├── StandardContext.java │ └── ValuableVsNonValuableComments.java └── test ├── csharp ├── Properties │ └── AssemblyInfo.cs ├── eu │ └── sig │ │ └── training │ │ ├── ch03 │ │ ├── FlagFactoryWithMapTest.cs │ │ ├── FlagsTest.cs │ │ ├── binarytree │ │ │ └── BinaryTreeSearchTest.cs │ │ └── withmapandtypes │ │ │ └── FlagsTest.cs │ │ ├── ch04 │ │ ├── v1 │ │ │ └── AccountsTest.cs │ │ ├── v3 │ │ │ ├── CheckingAccountTest.cs │ │ │ └── SavingsAccountTest.cs │ │ └── v4 │ │ │ └── AccountsTest.cs │ │ ├── ch06 │ │ └── userservice │ │ │ ├── v1 │ │ │ └── UserControllerTest.cs │ │ │ └── v2 │ │ │ └── NotificationControllerTest.cs │ │ └── ch10 │ │ ├── PerfectPictureMockTest.cs │ │ └── PerfectPictureTest.cs ├── maintainabilitybooktests.csproj └── packages.config ├── java └── eu │ └── sig │ └── training │ ├── ch03 │ ├── FlagFactoryWithMapTest.java │ ├── FlagsTest.java │ └── binarytree │ │ └── BinaryTreeSearchTest.java │ ├── ch04 │ ├── v1 │ │ └── AccountsTest.java │ ├── v3 │ │ ├── CheckingAccountTest.java │ │ └── SavingsAccountTest.java │ └── v4 │ │ └── AccountsTest.java │ └── ch10 │ ├── PerfectPictureMockTest.java │ └── PerfectPictureTest.java └── resources ├── VanGoghStarryNight.jpg └── VanGoghSunflowers.jpg /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/README.md -------------------------------------------------------------------------------- /maintainabilitybook.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/maintainabilitybook.sln -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/pom.xml -------------------------------------------------------------------------------- /src/csharp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/BalancesServlet.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/BalancesServlet.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/BoardFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/BoardFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/Employees.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/Employees.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/Level.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/Level.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/LevelHelper.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/LevelHelper.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/v1/BoardFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/v1/BoardFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch02/v2/BoardFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch02/v2/BoardFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/Flag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/Flag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/FlagFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/FlagFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/FlagFactoryOops.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/FlagFactoryOops.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/FlagFactoryWithMap.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/FlagFactoryWithMap.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/JenkinsUser.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/JenkinsUser.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/Nationality.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/Nationality.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/binarytree/BinaryTreeNode.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/binarytree/BinaryTreeNode.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/binarytree/TreeException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/binarytree/TreeException.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/binarytree/v1/BinaryTreeSearch.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/binarytree/v1/BinaryTreeSearch.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/binarytree/v2/BinaryTreeSearch.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/binarytree/v2/BinaryTreeSearch.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/binarytree/v3/BinaryTreeSearch.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/binarytree/v3/BinaryTreeSearch.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/BelgianFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/BelgianFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/DefaultFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/DefaultFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/DutchFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/DutchFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/FlagFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/FlagFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/FrenchFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/FrenchFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/GermanFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/GermanFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/IFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/IFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch03/withmapandtypes/ItalianFlag.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch03/withmapandtypes/ItalianFlag.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/BusinessException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/BusinessException.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/Clones.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/Clones.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/Money.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/Money.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v1/Accounts.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v1/Accounts.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v1/CheckingAccount.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v1/CheckingAccount.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v1/SavingsAccount.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v1/SavingsAccount.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v1/Transfer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v1/Transfer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v2/Accounts.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v2/Accounts.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v2/CheckingAccount.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v2/CheckingAccount.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v2/SavingsAccount.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v2/SavingsAccount.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v2/Transfer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v2/Transfer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v3/Account.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v3/Account.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v3/Accounts.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v3/Accounts.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v3/CheckingAccount.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v3/CheckingAccount.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v3/SavingsAccount.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v3/SavingsAccount.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v3/Transfer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v3/Transfer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v4/Account.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v4/Account.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v4/Accounts.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v4/Accounts.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch04/v4/Transfer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch04/v4/Transfer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/boardpanel/v1/BoardPanel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/boardpanel/v1/BoardPanel.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/boardpanel/v2/BoardPanel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/boardpanel/v2/BoardPanel.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/boardpanel/v2/Rectangle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/boardpanel/v2/Rectangle.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/boardpanel/v3/BoardPanel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/boardpanel/v3/BoardPanel.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/buildandsendmail/v1/BuildAndSendMail.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/buildandsendmail/v1/BuildAndSendMail.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/buildandsendmail/v2/BuildAndSendMail.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/buildandsendmail/v2/BuildAndSendMail.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/chartlib/v1/Charts.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/chartlib/v1/Charts.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch05/chartlib/v2/BarChart.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch05/chartlib/v2/BarChart.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/advanceddigitalcamera/DigitalCamera.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/advanceddigitalcamera/DigitalCamera.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/advanceddigitalcamera/Video.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/advanceddigitalcamera/Video.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/digitalcamera/DigitalCamera.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/digitalcamera/DigitalCamera.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/digitalcamera/SmartphoneApp.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/digitalcamera/SmartphoneApp.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/simpledigitalcamera/DigitalCamera.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/simpledigitalcamera/DigitalCamera.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/simpledigitalcamera/ISimpleDigitalCamera.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/simpledigitalcamera/ISimpleDigitalCamera.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/simpledigitalcamera/SDK.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/simpledigitalcamera/SDK.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/simpledigitalcamera/SmartphoneApp.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/simpledigitalcamera/SmartphoneApp.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/NotificationType.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/NotificationType.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/User.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/User.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/UserInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/UserInfo.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/splitted/UserBlockService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/splitted/UserBlockService.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/splitted/UserNotificationService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/splitted/UserNotificationService.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/splitted/UserService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/splitted/UserService.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/v1/UserRestAPI.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/v1/UserRestAPI.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/v1/UserService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/v1/UserService.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/v2/NotificationRestAPI.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/v2/NotificationRestAPI.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/v2/UserService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/v2/UserService.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch06/userservice/v3/UserService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch06/userservice/v3/UserService.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AWSCloudServerFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AWSCloudServerFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AWSCloudStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AWSCloudStorage.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AWSComputeServer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AWSComputeServer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AWSDatabaseServer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AWSDatabaseServer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/ApplicationLauncher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/ApplicationLauncher.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AzureCloudServerFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AzureCloudServerFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AzureCloudStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AzureCloudStorage.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AzureComputeServer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AzureComputeServer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/AzureDatabaseServer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/AzureDatabaseServer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/ICloudServer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/ICloudServer.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/ICloudServerFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/ICloudServerFactory.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch07/ICloudStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch07/ICloudStorage.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch10/PerfectPicture.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch10/PerfectPicture.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch10/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch10/Program.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch11/DeadCode.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch11/DeadCode.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch11/MagicConstants.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch11/MagicConstants.cs -------------------------------------------------------------------------------- /src/csharp/eu/sig/training/ch11/StandardContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/eu/sig/training/ch11/StandardContext.cs -------------------------------------------------------------------------------- /src/csharp/maintainabilitybook.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/maintainabilitybook.csproj -------------------------------------------------------------------------------- /src/csharp/packages.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/csharp/packages.config -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/BalancesServlet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/BalancesServlet.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/BoardFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/BoardFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/Employees.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/Employees.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/Level.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/Level.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/LevelHelper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/LevelHelper.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/v1/BoardFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/v1/BoardFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch02/v2/BoardFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch02/v2/BoardFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/Flag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/Flag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/FlagFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/FlagFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/FlagFactoryOops.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/FlagFactoryOops.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/FlagFactoryWithMap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/FlagFactoryWithMap.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/JenkinsUser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/JenkinsUser.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/Nationality.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/Nationality.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/binarytree/BinaryTreeNode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/binarytree/BinaryTreeNode.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/binarytree/TreeException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/binarytree/TreeException.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/binarytree/v1/BinaryTreeSearch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/binarytree/v1/BinaryTreeSearch.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/binarytree/v2/BinaryTreeSearch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/binarytree/v2/BinaryTreeSearch.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/binarytree/v3/BinaryTreeSearch.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/binarytree/v3/BinaryTreeSearch.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/BelgianFlag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/BelgianFlag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/DefaultFlag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/DefaultFlag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/DutchFlag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/DutchFlag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/Flag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/Flag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/FlagFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/FlagFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/FrenchFlag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/FrenchFlag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/GermanFlag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/GermanFlag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch03/withmapandtypes/ItalianFlag.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch03/withmapandtypes/ItalianFlag.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/BusinessException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/BusinessException.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/Clones.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/Clones.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/Money.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/Money.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v1/Accounts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v1/Accounts.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v1/CheckingAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v1/CheckingAccount.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v1/SavingsAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v1/SavingsAccount.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v1/Transfer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v1/Transfer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v2/Accounts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v2/Accounts.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v2/CheckingAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v2/CheckingAccount.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v2/SavingsAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v2/SavingsAccount.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v2/Transfer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v2/Transfer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v3/Account.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v3/Account.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v3/Accounts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v3/Accounts.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v3/CheckingAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v3/CheckingAccount.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v3/SavingsAccount.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v3/SavingsAccount.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v3/Transfer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v3/Transfer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v4/Account.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v4/Account.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v4/Accounts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v4/Accounts.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch04/v4/Transfer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch04/v4/Transfer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/boardpanel/v1/BoardPanel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/boardpanel/v1/BoardPanel.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/boardpanel/v2/BoardPanel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/boardpanel/v2/BoardPanel.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/boardpanel/v2/Rectangle.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/boardpanel/v2/Rectangle.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/boardpanel/v3/BoardPanel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/boardpanel/v3/BoardPanel.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/buildandsendmail/v1/BuildAndSendMail.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/buildandsendmail/v1/BuildAndSendMail.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/buildandsendmail/v2/BuildAndSendMail.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/buildandsendmail/v2/BuildAndSendMail.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/chartlib/v1/Charts.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/chartlib/v1/Charts.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch05/chartlib/v2/BarChart.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch05/chartlib/v2/BarChart.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/advanceddigitalcamera/DigitalCamera.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/advanceddigitalcamera/DigitalCamera.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/advanceddigitalcamera/Video.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/advanceddigitalcamera/Video.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/digitalcamera/DigitalCamera.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/digitalcamera/DigitalCamera.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/digitalcamera/SmartphoneApp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/digitalcamera/SmartphoneApp.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/simpledigitalcamera/DigitalCamera.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/simpledigitalcamera/DigitalCamera.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/simpledigitalcamera/SDK.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/simpledigitalcamera/SDK.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/simpledigitalcamera/SimpleDigitalCamera.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/simpledigitalcamera/SimpleDigitalCamera.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/simpledigitalcamera/SmartphoneApp.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/simpledigitalcamera/SmartphoneApp.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/NotificationType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/NotificationType.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/User.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/UserInfo.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/UserInfo.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/splitted/UserBlockService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/splitted/UserBlockService.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/splitted/UserNotificationService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/splitted/UserNotificationService.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/splitted/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/splitted/UserService.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/v1/UserRestAPI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/v1/UserRestAPI.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/v1/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/v1/UserService.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/v2/NotificationRestAPI.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/v2/NotificationRestAPI.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/v2/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/v2/UserService.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch06/userservice/v3/UserService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch06/userservice/v3/UserService.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AWSCloudServerFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AWSCloudServerFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AWSCloudStorage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AWSCloudStorage.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AWSComputeServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AWSComputeServer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AWSDatabaseServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AWSDatabaseServer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/ApplicationLauncher.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/ApplicationLauncher.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AzureCloudServerFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AzureCloudServerFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AzureCloudStorage.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AzureCloudStorage.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AzureComputeServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AzureComputeServer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/AzureDatabaseServer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/AzureDatabaseServer.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/CloudServer.java: -------------------------------------------------------------------------------- 1 | package eu.sig.training.ch07; 2 | 3 | public interface CloudServer { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/CloudServerFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch07/CloudServerFactory.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch07/CloudStorage.java: -------------------------------------------------------------------------------- 1 | package eu.sig.training.ch07; 2 | 3 | public interface CloudStorage { 4 | 5 | } -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch10/PerfectPicture.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch10/PerfectPicture.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch10/Program.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch10/Program.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch11/DeadCode.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch11/DeadCode.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch11/MagicConstants.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch11/MagicConstants.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch11/PluginManager.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch11/PluginManager.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch11/StandardContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch11/StandardContext.java -------------------------------------------------------------------------------- /src/java/eu/sig/training/ch11/ValuableVsNonValuableComments.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/java/eu/sig/training/ch11/ValuableVsNonValuableComments.java -------------------------------------------------------------------------------- /src/test/csharp/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch03/FlagFactoryWithMapTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch03/FlagFactoryWithMapTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch03/FlagsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch03/FlagsTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch03/binarytree/BinaryTreeSearchTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch03/binarytree/BinaryTreeSearchTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch03/withmapandtypes/FlagsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch03/withmapandtypes/FlagsTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch04/v1/AccountsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch04/v1/AccountsTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch04/v3/CheckingAccountTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch04/v3/CheckingAccountTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch04/v3/SavingsAccountTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch04/v3/SavingsAccountTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch04/v4/AccountsTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch04/v4/AccountsTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch06/userservice/v1/UserControllerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch06/userservice/v1/UserControllerTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch06/userservice/v2/NotificationControllerTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch06/userservice/v2/NotificationControllerTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch10/PerfectPictureMockTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch10/PerfectPictureMockTest.cs -------------------------------------------------------------------------------- /src/test/csharp/eu/sig/training/ch10/PerfectPictureTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/eu/sig/training/ch10/PerfectPictureTest.cs -------------------------------------------------------------------------------- /src/test/csharp/maintainabilitybooktests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/maintainabilitybooktests.csproj -------------------------------------------------------------------------------- /src/test/csharp/packages.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/csharp/packages.config -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch03/FlagFactoryWithMapTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch03/FlagFactoryWithMapTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch03/FlagsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch03/FlagsTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch03/binarytree/BinaryTreeSearchTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch03/binarytree/BinaryTreeSearchTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch04/v1/AccountsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch04/v1/AccountsTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch04/v3/CheckingAccountTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch04/v3/CheckingAccountTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch04/v3/SavingsAccountTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch04/v3/SavingsAccountTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch04/v4/AccountsTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch04/v4/AccountsTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch10/PerfectPictureMockTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch10/PerfectPictureMockTest.java -------------------------------------------------------------------------------- /src/test/java/eu/sig/training/ch10/PerfectPictureTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/java/eu/sig/training/ch10/PerfectPictureTest.java -------------------------------------------------------------------------------- /src/test/resources/VanGoghStarryNight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/resources/VanGoghStarryNight.jpg -------------------------------------------------------------------------------- /src/test/resources/VanGoghSunflowers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oreillymedia/building_maintainable_software/HEAD/src/test/resources/VanGoghSunflowers.jpg --------------------------------------------------------------------------------