Google might have very smart and knowledgeable people in it but this language is like a bad overhyped C. See next code that all it is doing is parsing a CSV line:
func NewPoint(line string) *Point {
tokens := strings.Split(line, ",")
if len(tokens) != 4 {
return nil
}
var err error
p := new(Point)
// why cannot I declare and assign err in one go??p.id_ride, err = strconv.Atoi(tokens[0])
if err != nil {
return nil
}
p.lat, err = strconv.ParseFloat(tokens[1], 32)
if err != nil {
return nil
}
p.ts, err = strconv.ParseInt(tokens[2], 10, 64)
if err != nil {
return nil
}
return p
}most of the code has nothing to do with its functionality - it's just error handling that is plain hideous to write and read. Not to mention all the clutter to just convert an integer and a float.
And let's just not go into deeper aspects such as the structs that double as classes and has everyone creating his own style of SOLID and DPs. Or the inconsistent syntax which sometimes looks like traditional OO and othertimes like plain C further confusing users.
I find it very hard to believe that this language would have caught on if it weren't for Google pushing for it so aggressively. And I find it so disheartening to realise that after all these years developer productivity and happiness is merely an afterthought for language designers and that marketing and hype are the main drivers.
And yes I know the saying "there are languages people complain about and languages that people do not use". I find it worthy of high school gotcha sayings to which I reply that language designers of the majority of programming languages have no clue about how to make a language nice to its users. It's as they know how to design a internal combustion engine and then they put a chair and 4 wheels on it and they dismiss complaints about how unreasonably difficult and miserable the driver experience is.
The chapters are short and stand independently. In general the technical writing is pretty good, a skill that I am not surprised to find in project leaders.
It is free to read online: http://aosabook.org/en/index.html
Pragmatic as in these are not generic solutions/patterns but actual working architectures.
Thanks.
But yes, you don‘t need more than one good introductory book on architecture, most of the books listed don’t have anything to do with architecture anyways, but rather software culture.
Maybe you don’t need to read one at all, but rather a paper from someone who analyzed or created a piece of software with interesting and useful architecture.
2 pages in FoundationDB paper (https://www.foundationdb.org/files/fdb-paper.pdf) I knew I was looking at one month's reading material if I really was to grasp everything. It'd be much easier if I worked with DBs and Distributed daily but I don't.
But, yes, I see your point.
It is becoming a regular thing, almost part of the news cycle. "In other news, yesterday was the biannual data leak from Linkedin".
It is outrageous.
Micro services today are mostly used for one purpose: to be able to ship your corporation's org chart.