Every programmer must read Domain Driven Design by Eric Evans
There are many books tells you to separate domain logic from other parts like UI and Persitencе.
But! There are very few books about how to design domain layer of your application!
This is the first of and The Best one!
More detaied motivation is in my review on GoodReads:
https://www.goodreads.com/book/show/179133.Domain_Driven_Design