Patterns and Practices in Software Development and Microservices
KSP Season 12 Ep 2:
Patterns and Practices in Software Development and Microservices
Photographer: Michelle Annabelle
Writer: Michelle Annabelle
Being one of the successful ISTTS programs, KSP again held an online webinar. In season 12 episode 2, to be precise on Thursday, February 17, 2022, KSP raised the theme Pattern and Practices in Software Development and Microservices, which was brought by speaker Andi Sumarto. He is an alumnus of Informatics ISTTS in 1994. In addition, he is also a Senior Software Engineer at Loan Market Group Pty Ltd Melbourne, Australia.
There are several concepts explained by Kak Andika along with the demo code, namely:
- OOP / Object Oriented Programming
Object-oriented programming methods. The pillars are Object and Classes, Abstractions, Encapsulation, Inheritance, Polymorphism. - Cohesion and Coupling
Cohesion is the dependence between modules from one module to another, while coupling is the attachment of functions within a module. A good program is one that adheres to the concepts of high cohesion and low coupling. - Technical Debt
A "debt" that arises when developers are more concerned with a program being released quickly than perfecting the content of its code. - Monolithic and Microservices Software
It is believed that these two concepts will provide solutions in building a more efficient program. Monolithic is an application that contains the entire code compiled into 1. The need for communication to a program or service may not exist. While microservices are different, microservices divide services into smaller parts.
The more complex a program is, the greater the cost required for monolithic than for microservices. In addition, in monolithic where one server serves all services, updating an application also affects all programs and communication between modules is also difficult because they are on the same server. On the other hand, using the concept of microservices, the program can be more secure and reliable. Since each service has its own infrastructure, it is easier to build programs without thinking about the relationships between modules. Although communication between modules is easy, there is also the possibility of failure, so developers must always prepare ways to handle it. The nature of microservices makes this concept an appropriate choice when the program has a large scale, while monolithic is more appropriate for using programs on a smaller scale.
“One Difference between a smart programmer and a professional programmer is that the professional understands that clarity is king. Professionals use their powers for good and write code that others can understand”
- Robert C. Martin.
This quote states and concurrently this webinar by explaining that a professional programmer is a programmer whose code is understood and has a good structure. Thank you Kak Andika! Hopefully the knowledge that has been shared can be put to good use for all participants, both internal and external to ISTTS.