Julio Biason
5 years ago
9 changed files with 122 additions and 5 deletions
@ -0,0 +1,36 @@
|
||||
+++ |
||||
title = "Things I Learnt The Hard Way - Gerrit Is A Mistake" |
||||
date = 2019-07-29 |
||||
|
||||
[taxonomies] |
||||
tags = ["en-au", "books", "things i learnt", "git", "gerrit"] |
||||
+++ |
||||
|
||||
I hate calling software "a mistake", but I can't find any other way to |
||||
describe Gerrit. You may see people using Gerrit 'cause Google uses it. The |
||||
thing is: Google misunderstood what Git actually is. |
||||
|
||||
<!-- more --> |
||||
|
||||
When Linus Torvalds came with Git, he was trying to mimic another system, |
||||
BitKeeper. Along with some improvements over CVS and SubVersion, Git made |
||||
really easy to create and merge branches, something that was either |
||||
almost-not-supported or slow-as-heck, depending on which tool you look at. |
||||
|
||||
You need to take this into consideration: Git made branches easy. |
||||
|
||||
Then someone came with the idea of Gerrit: Instead of managing branches, it |
||||
actually manages _commits_. Instead of having a branch for each feature, you |
||||
should have _one single commit_ as feature. You can have branches on your |
||||
machine, but the server only deal with commits. |
||||
|
||||
So Gerrit took Git, a tool that improved the way we deal with branches, and |
||||
removed branches. This is akin to taking a text editor and taking away the |
||||
ability to _edit text_. Does that sound right to you? |
||||
|
||||
In my personal opinion, what they did was to take git apart and put an err in |
||||
the middle: gERRit. |
||||
|
||||
When I see someone using Gerrit, I know something is wrong there. |
||||
|
||||
{{ chapters(prev_chapter_link="/books/things-i-learnt/one-change-commit", prev_chapter_title="One Commit Per Change", next_chapter_link="/books/things-i-learnt/project-organization", next_chapter_title="Organize Your Code by Data/Type, Not Functionality") }} |
@ -0,0 +1,41 @@
|
||||
+++ |
||||
title = "Things I Learnt The Hard Way - Nothing More Permanent Than A Temporary Solution" |
||||
date = 2019-07-29 |
||||
|
||||
[taxonomies] |
||||
tags = ["en-au", "books", "things i learnt", "code", "writing code", "temporary solutions"] |
||||
+++ |
||||
|
||||
Depending on where you look, "Nothing more permanent than a temporary |
||||
solution" is either an old Russian proverb or a quote by Milton Friedman. |
||||
Thing is, temporary solutions, unless you think about the future to fix them, |
||||
will become permanent. |
||||
|
||||
<!-- more --> |
||||
|
||||
A temporary solution may appear either as a proof-of-concept or due some |
||||
restrained deadline. You may create perfect [system |
||||
specs](/books/things-i-learnt/spec-first), you may have a perfect |
||||
understanding of the whole [in your Gherkin |
||||
files](/books/things-i-learnt/gherkin) but, at some point, you'll put some |
||||
small script to fix a minor problem, or do a "not so good" solution to a point |
||||
due to deadlines. |
||||
|
||||
This happens and unless you take steps to get rid of those, you'll end up with |
||||
a bunch of spaghetti code pretty fast. And that will snowball to a point that |
||||
you won't be able to manage the project. |
||||
|
||||
Once a scrum master suggested that we came with an idea to our product manager |
||||
to do something akin to "Every three sprints, we'll focus on product value; |
||||
the fourth one is ours to fix the things that are annoying us". I don't think |
||||
we ever talking to the product manager about this, but we managed to open |
||||
issues on our ticket system about the small warts we left behind, specially |
||||
due deadlines. So there we had, a specially crafted bug type for "technical |
||||
debt" which we never actually took the time to fix. |
||||
|
||||
Unless you have a pretty good safety net to fix those, they will life forever. |
||||
And it may be a better option to tell "we can't deliver in time" than adding |
||||
(yet another) temporary solution, as hard as it is to convince the higher ups |
||||
that you can't deliver the product with a temporary solution. |
||||
|
||||
{{ chapters(prev_chapter_link="/books/things-i-learnt/run-locally", prev_chapter_title="If It Doesn't Run On Your Computer, You Have A Problem", next_chapter_link="/books/things-i-learnt/config-file", next_chapter_title="The Config File Is Friend") }} |
@ -0,0 +1,37 @@
|
||||
+++ |
||||
title = "Things I Learnt The Hard Way - You Always Have The Time" |
||||
date = 2019-07-29 |
||||
|
||||
[taxonomies] |
||||
tags = ["en-au", "books", "things i learnt", "personal", "time"] |
||||
+++ |
||||
|
||||
You may think "Alright, I have a list of things I don't know, but I have no |
||||
time to learn those things!" You do have time. |
||||
|
||||
<!-- more --> |
||||
|
||||
Most of this blog/book was written during my lunch breaks; I can have my lunch |
||||
in 30 minutes, and then I still have 20-30 minutes free for myself. In those |
||||
lunch breaks, I wrote a very stupid application in Rust to download some stuff |
||||
I wanted. |
||||
|
||||
I don't fall asleep straight away, it still takes me about 30 minutes to |
||||
actually feel sleepy. That's when I pick my tablet and read a book, which most |
||||
of the time is technical book, about some technology I'm interested in. |
||||
|
||||
Even if when I get home I don't feel like sitting in front of a computer to |
||||
code/write something, I always have the time to slowly progress. |
||||
|
||||
And that's how I always have the time. |
||||
|
||||
Sure, I could take those 30 minutes after lunch just to play games. I could |
||||
put myself to sleep watching Netflix. But, then again, I'd never wrote this |
||||
bunch of words, would never have an automated downloader and would not learn |
||||
about new stuff that people are talking about. |
||||
|
||||
Maybe people think "If I don't finish, it's over". Your life doesn't end in |
||||
one day. You still have tomorrow to keep going -- _to keep going_, not to |
||||
start. |
||||
|
||||
{{ chapters(prev_chapter_link="/books/things-i-learnt/things-i-dont-know", prev_chapter_title="Keep A List of Things I Don't Know") }} |
Loading…
Reference in new issue