A few days ago there was a thread on Hacker News where the comments were discussing Clojure
There are several valid comments there about refactoring in Clojure being risky in large codebases and tooling as a hurdle because Clojure demands more from its editors than most languages
If we consider heavy tooling and risky refactors the weaknesses of Clojure for the purposes of this article we can move on to look at:
The Unison language which is a relatively new language, if you haven’t heard of it I recommend watching this video:
Remember all those problems we had? https://medium.com/@sfyire/all-change-here-a0d2f1b53876#.4nkasp9o6
All gone in this article, yep this is the golden ticket to programming nirvana, just use these custom functions I came up with! Half life 3 confirmed, 1 === 1 confirmed, quantum physics debunked, chem trails real something something.
Okay I lied but I am going to try and poly fill for functional programming at least for the scope problem
If you ever find yourself using use() in map/filter/reduce and then you need to refactor your function out of scope then you can use partial() to inject your parameters early like so
This is a continuation of https://medium.com/@sfyire/everything-in-its-right-place-dae94cbe15b7#.7ojixyu8z
$articles are great they resonate really well with my brain’s tendency for one overriding opinion in a reality where absolute truth doesn’t exist.
But I’m thinking our happy little $valid_articles need to all say follow me on twitter because that’s the world we live in.
Let’s do that in the most convoluted way possible:
Great, we’re at a good point so far, performance is down and the code is slightly more convoluted to read, (Hope you know the order of parameters for filter, map callbacks by heart!)
Before we move on to anything…
hey maybe you read this? https://medium.com/@sfyire/everything-in-its-right-place-dae94cbe15b7#.hbzscngzx
and maybe you thought hey that’s great but what if I need my article ID to be 166, and my $body is ‘sexy’, if not then I want my PHP app to phone the cops.
So first step is you’re going to need to install composer to download Twilio, no wait, fuck you make your own app, I’m here to talk about filtering reality
So let’s say we have our happy little article:
Yep, okay but maybe, everything is on fire and the article isn’t sexy enough to get posted to our most…
Look at this code, it’s about value objects in PHP
Thanks to type safety through value objects we can make certain guarantees about our data in our code, those guarantees include the existence of a property and the type of any property on the article value object.
As a Web Developer myself I took the time to watch all of it but I am not sure enough people took note, perhaps hidden inside was the most pertinent section of code I have come across in my working career thus far:
In his video he said he was writing objects like this now, at the time I was…