SOLID Principles with Scala


It is quite evident what SOLID principles mean for class typed object oriented languages like Java. However, what do they mean for hybrid languages like Scala which merge the Object oriented and functional approaches. In this KnolX session, we tried to decipher what SOLID principles meant for Scala. Though much of what we know about them can be applied to Scala if we code in the Object oriented way with Scala. However, once we are in the functional boundaries then some of the principles like Liskov Substitution, Open Closed Principle have weak relevance in functional languages since these principles are based on inheritance. The Dependency inversion principle is also somewhat less relevant because functions can be passed in functional languages instead of dynamic binding. (Though I still feel that with injection concepts in Scala like the Cake Pattern, we get only half the job done and I miss the dynamic aspect of inject, but may be that is another discussion).

For now, enjoy the KnolX session slides and as always send your feedback to hello@knoldus.com

Advertisements

About Vikas Hazrati

Vikas is the Founding Partner @ Knoldus which is a group of software industry veterans who have joined hands to add value to the art of software development. Knoldus does niche Reactive and Big Data product development on Scala, Spark and Functional Java. Knoldus has a strong focus on software craftsmanship which ensures high-quality software development. It partners with the best in the industry like Lightbend (Scala Ecosystem), Databricks (Spark Ecosystem), Confluent (Kafka) and Datastax (Cassandra). To know more, send a mail to hello@knoldus.com or visit www.knoldus.com
This entry was posted in Scala and tagged , , . Bookmark the permalink.

One Response to SOLID Principles with Scala

  1. Pingback: Building Quality into Scala Development | Knoldus

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s