PV260 Course introduction Radim Göth Agenda • About me • About you • Course organization • Requirements • Path to software quality • Recommended reading • About Y Soft About me • 5+ years full-time developer • Mainly .NET/C# • Docker, K8S, Helm, Azure • F#, Python, Go, Java • https://www.linkedin.com/in/radimgoth/ • https://foldingstuff.tech/ About you Course organization • 12-13 workshops • Often lead by me, some lead by my colleagues from Y Soft • Evaluation • 3 homeworks (15 points each) • 10 points for activity • Attendance • Mandatory Requirements • Bring your own laptop • Visual Studio 2019 or Rider • Keep it updated • .NET 5+ dev environment • Azure subscription? • In person • Pen and paper • Online • Zoom • Miro https://miro.com • Slack, Discord? It doesn’t take a huge amount of knowledge and skill to get a program working. Getting it right is another matter entirely. Getting software right is hard. Robert C. Martin - Clean Architecture When a software is done right • Fewer bugs • Easy to maintain • Easy to add new functionality • Easy to onboard new developers • Easy to troubleshoot a problem • ? • Secure • Scalable • Performing well • Usable • Reliable • ? How • Knowledge • SOLID principles and clean code, object oriented design, agile development, software architecture, secure software lifecycle, design patterns,… • Skills • Test-driven development, user story mapping, refactoring, domain-driven design, code reviews, teamwork,… Recommended reading • The Pragmatic Programmer, David Thomas, Andrew Hunt • https://pragprog.com/book/tpp20/the-pragmatic-programmer-20th- anniversary-edition • Test Driven Development: By Example, Kent Beck • https://www.amazon.com/Test-Driven-Development-Kent- Beck/dp/0321146530 • Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin • https://www.amazon.com/gp/product/0132350882/ref=dbs_a_def_rwt_bibl _vppi_i0 About • Print and scan management • Distributed, highly scalable architecture, 3D print, OCR, cloud, HW – card readers, terminals, boards,… .NET Core, React, Java, Spring,… • LESS without managers • https://www.youtube.com/watch?v=ig36a8tHAtE • https://www.daretothinkbyg.com/cs/pro- studenty?family=thesis&university=MU&thesis=Thesis-CAT-1 • https://www.daretothinkbyg.com/cs/pro-experty • https://less.works/