903 karma · joined January 17, 2008
Most dependency injection that I see in the wild completely misses this distinction. Inversion can promote good engineering practices, injection can be used to help with the inversion, but you don’t need to use it.
Some of the simple things will be easy, everything else will be hard.
Also instead of supplying an SDK, Amplify will provide components that can seriously constrain lots of your UI architecture decisions.
For Javascript the old mobile SDK was much more usable.
Almost all of the AWS services have a sensible JSON API, I wish that AWS would just generate sensible SDK bindings for Swift, Javascript and Dart and stop all development on Amplify.
'Google Kills Keep' is inaccurate.
But, I'd suggest if you can't test a single class in isolation easily (and you might need fakes/mocks) then the class probably needs redesigning.
This has an interesting generic discussion of API design which is technology agnostic.
If you're not really careful the assertions will quickly obscure the actual logic (as does logging), a careless engineer can easily add a bad assertion and fill up your monitoring system, another careless engineer can write a complicated but broken assertion without any tests - they've all happened to me on multiple production systems.
Eiffel style pre and post conditions might be a solution as the assertions are kept away from the main code path in the method signatures - but at that point a modern statically typed language might give you more value (preferably with null safety and sum types).
Lots of electrical circuits, mechanical systems and electro-mechanical systems can be modelled using laplace transforms if they are linear systems.
I did an electrical and electronic engineering degree and we got to skip the tedious differential equation solving lectures that the mechanical, civil and chemical engineers had to attend because of Monsieur Laplace.
Practically you probably care more about the number of transistors than the number of gates.
Reducing soil fertility probably needs intervention to remove rotting vegetation etc.
I am guessing that at one point in time native plants would have had animals and insects that were eating them and maybe reducing soil fertility.
A Dream of Wessex by Christopher Priest
Implementing Domain Driven Design by Vaughn Vernon
Clean Code by Robert Martin
I think you will find some code in all of the books but the ideas are applicable almost everywhere.
ReactJS + Spark framework (or Vert.x 3 or Ratpack) + JDBI if you don't like JAX-RS.
I don't like JAX-RS, but it is hard to beat DropWizard if you do.