Becoming a better developer by using the SOLID design principles by Katerina Trajchevska

This conference talk is a great introduction to the S.O.L.I.D. software design principles. How do these principles manifest when it comes to UI programming with HTML/CSS?


This year, as part of the research for my CSS Algorithms talk, I explored the overlaps between general software design concepts and UI development. The S.O.L.I.D. principles for object-oriented design, in particular, have lots of overlap. I only really made it through S and O in my research, but this talk by Katerina Trajchevska from Laracon 2018 is a great overview of all five:

  1. Single Responsiblity Principle
  2. Open/Closed Principle
  3. Liskov Substitution Principle
  4. Interface Segregation Principle
  5. Dependency Inversion Principle

The examples are in PHP and oriented around back-end tasks e.g. retrieving information from databases, sending mail, and handling users, but I think they are common enough tasks that front-end programmers will understand them as well.

I especially like the concluding notes in her talk: these are principles, not rules. Specifically:

Avoid over-fragmenting your code for the sake of Single Responsibility Principle (SRP).

I think about this a lot when using single-declaration CSS utility classes. At work, we’ve found much success with utilities, but over-fragmentation is a problem, specifically with typography.

Another one I like:

Don’t try to achieve SOLID, use SOLID to achieve maintainability.

I think the same can be said for a concept like atomic design, no?

Katerina is an excellent and knowledgeable speaker, and I was curious about her background and career path. She has a Masters in Computer Engineering, freelanced for a few years, then in 2014 co-founded a company called Adeva that looks to be doing really well. Adeva works with a global community of engineers to provide development teams for a variety of companies. Given how hard it is to hire and how hard can be to get hired, I dig it.

I am on the lookout for mission-driven, female engineering role models, and I did not hesitate to add Katerina to my list. Looking through her website and reading about her work was really inspiring.