If i had this book wheh i was first starting out my career, i would've considered it a must read. Its like going back in time a bit, seeing first hand If i had this book wheh i was first starting out my career, i would've considered it a must read. Its like going back in time a bit, seeing first hand how the author disembowels legacy monster code - providing both C++ /Java code snippets examples (the monster+ the solution). I really enjoyed the chapters on slaying sticky singletons, blocking I/O static calls to databases and untested concrete hierarchies of classes.
The lesson of this book for me was: as soon as you get into a brown project, start writing tests, start putting your classes into test harnesses and see how deep you have to dive into the guts of the underlying system.
Once you do that you'll get a fairly good idea of the difficulty of your task
On the negatives: I found the examples in this book too focused on C++ (i got an iffy feeling when a book is too focused on a single programming languge).
I totally recommend this book for people that have to deal with legacy code or are not yet accustomed with the "modern approaches" (DRY, SOLID - which aren't that modern anymore anyway) or junior just starting out....more
**spoiler alert** Before i say my opinion , you must understand i read this book (which is full of examples) without writing or testing the code sampl**spoiler alert** Before i say my opinion , you must understand i read this book (which is full of examples) without writing or testing the code samples, so i am highly biased !
Though i have read the first book of the author and it remains one of my favourite programming books, i feel this one was really cumbersome to underatand even having prior Erlang knowledge and despite the author explaining the concepts related to Property Based Testing really well.
The problem in my opinion is the language itself, Erlang. I found the examples written in it not suitable to understand what is going on there. The Erlang macros were really annoying and there is too much to understand about the framework PropEr and not about property based testing.
What i understood quite frankly from the begining is that you can't really do property based testing without an already mature existing framework on it....and this basically becomes learning a new framework....
I wad interested more in the theoretical concepts and how they could be used in general. I would have enjoyed less code and the content to be language agnostic....more
**spoiler alert** I liked the begining chapters of this book and i really got quite a good grasp on F# programming (at least being able to read F# cod**spoiler alert** I liked the begining chapters of this book and i really got quite a good grasp on F# programming (at least being able to read F# code).
I didn't like the fact that the examples were too much into UI programming. Just too many complicated examples combining async, parallelism, and observables with MouseClick fkin events....too hard to grok.
F# in hindshight gets muddy when you start using C# constructs , C# syntactic sugar...
I was expecting the focus to be more on Data Science domains...more on domain modelling, maybe more on interfacing C# with F# (though the last one exists)
What i can say after reading this book is that F# should be used in decoupled modules treating exactly the business logic while trying to move all infrastructure code to C#.
A good book for intro, but i felt that Scott Wlaschin does a far better job in DDD with F# by keeping it simple, focusing on F# features (discriminated unions, async , monads etc...)...more
**spoiler alert** After having read all other books on this topic i still was amazed i found some new stuff here (distributed erlang, sockets). The fun**spoiler alert** After having read all other books on this topic i still was amazed i found some new stuff here (distributed erlang, sockets). The fundamentals are there and i liked there is not so much theory as to boggle you down.
Gets 3 stars instead of 4 because i found other books to be superior as a.starter (LYAE for intro, Cessarini's Programming Erlang for depth)...more
**spoiler alert** So i have read almost all published Erlang reosurces ,and, since i wanted to get a hold on Elixir i started with this one.
I found th**spoiler alert** So i have read almost all published Erlang reosurces ,and, since i wanted to get a hold on Elixir i started with this one.
I found the first 25% of the book really clean cut , concise , sharp. Author does outstanding job presenting the language features , and goes deep enough to give you a bird's eye view of Elixir. He also does a really cool job , including elixir manual links for the programming features that deserve a deeper dive !! +10 for that man !
Now for a starter the next 25% of the book is also great , since he introduces the OTP mechanisms (genserver, supervisor, app) , explains them in a simple manner , yet again with another big plus - he includes images ! Those are so damn good for conceptualization.
I knew most.of that stuff so i got a little bored and i thurdged fast through the pages.
Next part he goes all.the way to build a HTTP distributed system which i sincerely applaud ! Seeing the system go from Erlang primitives to a full blown http app running over a cluster is a damn fine job !
However i already read something like this in Erlang in Action , so again i passed through a bit faster.
What i really really loved in this book was the final part ! The release part , the way you build, deploy, monitor and interact with a running erlang system. That part is golden and comes from a guy that spent days on forums, erlang man and slack channels trying to understand the black arts behind the release process...and this guy in 2 pages explains and provides simple scenarios on how to do exactly this 100 clearer than all materials i've read. Marvellous !
Great fine and polished book ! I recommend it wholeheartedly to anyone interested in the Erlang/Elixir !...more
**spoiler alert** The book is not really written for novices and expects the reader to have played around with Erlang for some time.
While the book is **spoiler alert** The book is not really written for novices and expects the reader to have played around with Erlang for some time.
While the book is rich in explanations , diagrams and theory regarding Erlang and OTP , the reason it shines is its hands-on , goal oriented approach toward building systems.
The book provides rich examples on how to use erlang behaviours, distribution, releases ,interop , drivers , tracing , tcp and http servers , performance tracking .
This being said , the place where it really shines is developing a caching system.
We get to build a caching system starting from Erlang behaviours , then we add distribution (really really amazing part ! ) and mnesia. We then add an interface application on top. Then the author goes to great depths to use interoperability with Java using Drivers and NIF's in order to add a hard storage behind this cache in the form of Apache HBase.
The fact that all this add-ons are made upon this caching application which spans across multiple chapters aspect is both a plus and a minus from my part.
Its a plus because you see how an application evolves, adding layer on top of layer and the way you abstract away implementation details.
Its a minus because I felt that many of this features should've been treated as standalone apps. I do not really like to check/remember the implementation details from some 3 chapters ago.
All in all a solid book and to those interested in Erlang/OTP i can definetly say : You won't regret reading it !...more
**spoiler alert** In just a mere 260 pages Scott does a terrific job implementing a real life order processing system in a DDD way starting from requi**spoiler alert** In just a mere 260 pages Scott does a terrific job implementing a real life order processing system in a DDD way starting from requirements gathering , implementation and even further development , explaining along the way DDD concepts (domains, bounded contexts , adapters, side effects) as well as functional programming with F# (including functors , applicatives , monads ) .
While the code snippets and the explanations are great what makes this book shine are the drawings ! Never have i seen so many abstract concepts that are usually hard to grasp so intuitively depicted and explained as in this book !
Must read for anyone interested in DDD , functional programming , Fsharp and designing better and bug-free systems in general !...more
This is one of the best books i have read so far regarding concurrency. Although i am usually skeptical about reading books for a specific language , SThis is one of the best books i have read so far regarding concurrency. Although i am usually skeptical about reading books for a specific language , Stephen did a tremendous job with this one and i have already adopted a bunch of hia techniques right after reading his book.
This book is like a wikipedia for concurrency/parallelism, reactive and asynchronous programming. The author goes to great lengths to display all kinds of nasty scenarios that you could get yourself into when developing complex code and pragmatically offers the most elegant solution(s) from worst to best.
The aspect that i loved about the book is that he doesn't focus on the basics of concurrency because as he puts it "there are a plethora of resources out there".He instead focuses on the newest frameworks and libraries (thoroughly tested by the .NET team of course) that will help you get your job done with minimal effort and headaches. He is basically teaching the reader how to write a modern .NET application and how to leverage the goodies of the language.
He treats Rx,TPL Dataflow (mind blowing for me) , PLINQ , regular TPL , async-await , concurrent/immutable collections , events , task schedulers , synchronization contexts, cancellations , synchronization primitives and many more.
Best .NET book i have read so far and one of the best resources on concurrent programming !
"The moment you write -Thread.StartNew()- your application is gone into legacy code."...more
**spoiler alert** This book is the natural go-to after you are already pretty accustomed with Erlang basics. I have found it really comprehensive and **spoiler alert** This book is the natural go-to after you are already pretty accustomed with Erlang basics. I have found it really comprehensive and particularily enjoyed chapters treating more advanced topics like releases , logging , debugging , VM mechanics....more
Amazing resource for learning Erlang.Well written , modular , tackling all Erlang programming aspects from: basic syntax , bits , concurrency, data stAmazing resource for learning Erlang.Well written , modular , tackling all Erlang programming aspects from: basic syntax , bits , concurrency, data structures, behaviours to complex subjects such as Mnesia , Distributed Erlang , TCP , hell , even GUI , introp with C/Java .
The best chapter from my point of view was the erlang debugging tools. I have yet to see so much effort put in a chapter like in this book.Debugging is fundamental in any language but when running in a distributed , fault tolerant environment it becomes a MUST to quickly see the problem at hand.
I was a bit put off that the author did not include a chapter for web programming , at least some basic API design since it is the bread and butter for a web developer.
I feel i must start with a statement : This is hands down THE BOOK for anyone interested in learning Erlang.
Even though Erlang as an ecosystem (languagI feel i must start with a statement : This is hands down THE BOOK for anyone interested in learning Erlang.
Even though Erlang as an ecosystem (language , platform) is huge , the author did a terrific job in separating it in some big sections: -basic erlang (syntax), BIF's (processes, links and monitors, refs,exceptions...) ,OTP and its behaviours ,deployments, distribution, testing, dyalizer and much more
The book is written in an entertaining and humoristic manner. It is heavy on explanations , tips and complete code examples (top down approach usually).
The only drawback to this book is that as a developer after writing my first app i found the build toolchain used in the book is no longer the preffered option by the Erlang community .The new way of building your apl is via a tool named rebar which i found not that straightforward for me. I wished the author would cover it also.
Aside from this little impediment the book is great and i recommend it to anyone interested in Erlang !...more