Introducing a library to a front-end project is a common task, and nearly every project depend on others. There are several ways
you can do it, and while it seems like an easy task, it can easily end up in a mess if not done with caution.
Cucumber specification can be a living documentation that describe the
software as a whole and exercises all parts of it. It can not only catch
regression bugs and provide confidence for refactoring and improvements,
but also can be a real specification of the software that is always
up-to-date with the software itself.
I’m using Vim for a little more than one year. I switched in last August, and it’s my main editor since then;
I’m writing these lines in it. To celebrate this anniversary, I’m writing a summary of my motivations, experiences,
and the learning curve so steep it’s legendary.
Last year I switched to xmonad in the strive for a configurable yet minimalist environment.
So far I am pretty satisfied with it. I’ve never experienced any crashes or slowdowns related to it,
works easily for most of the tasks, and supports multi monitor setup.
It is highly configurable and well documented, so it’s easy and fun to customize the whole environment
to suit your unique workflows.
There’s a lot of buzz about JVM optimizations and how it makes production code perform better
thanks to the Just-In-Time (JIT) compilation and various optimization techniques.
A lots of excellent research materials are available,
but I wanted to see for myself how these apply in practice,
so I decided to dig deeper and play around with some measurements.
The single biggest obstacle of understanding a piece of code is a lot of variables. Variables
introduce state, which in turn increase complexity exponentially. Every single bit of variable information
makes reasoning and understanding the code harder.
You should give React a try - in case you didn’t already. Despite my initial skepticism,
it is developer friendly and straightforward. Coming from Angular, it’s like programming in a lower
abstraction level; but the libraries for common problems, along with less unpleasant surprises
make up for this. Componentization and the virtual DOM are React’s central concepts. Componentization is the
general direction in most contemporary technologies too, like Web Components and Angular
Directives. The latter makes the render and the event cycles two distinct flow, making
reasoning about the code easier.
Spending a lot of time in front of the computer doing a specific job for a long time
makes room for some workflow optimization. This includes selecting the tools
you can be most productive, and configuring them for the job at hand. In the long run,
not always the easy to learn tools are the winners, but the ones that can be personalized
enough to seamlessly fit into the unique workflow.