Wpis z mikrobloga

@wiesiu2, @IronHeisenberg1939: tylko nie "czysty kod". To książka która powoduje, że większość programistów staje się gorsza. Np. przestają pisać komentarze lub zaczynają tworzyć przesadnie skomplikowane hierarchie klas, nadużywają interfejsów i polimorfizmu czasu wykonania. Książka pomija też bardzo ważny paradygmat funkcyjny i proceduralny, a skupia się wyłącznie na OOP. Potem taki kod jest bardzo trudny do zmiany, ma też zwykle bardzo słabąb wydajność. Tak można było pisać w pierwszej dekadzie lat
@Icouldbeyourmom: tradycyjnie, klasyków np. Knutha, Dijkstre, Abelsona, Kernighana. Plus czytanie kodu/blogów/wypowiedzi ludzi którzy mają praktykę w projektach o dużej skali np. Torvalds. Generalnie każda książka napisana przez kogoś kto ma realny dorobek w programowaniu będzie dobra. Natomiast złe są książki pisane przez ludzi, którzy w życiu napisali co najwyżej jakieś głupie CRUDy, a są znani głównie z tego że napisali książki.
@Krolik: "trend na upraszczanie rzeczy" i "Rust" w jednym zdaniu? Co upraszcza Rust? Mógłbyś wymienić w punktach? Myślę, że ta wiedza przyda się wszystkim czytającym ( ͡° ͜ʖ ͡°)
Plus czytanie kodu/blogów/wypowiedzi ludzi którzy mają praktykę w projektach o dużej skali np. Torvalds


@Krolik: to jest wartościowe, żeby poszerzać swoje horyzonty w IT, ale czy faktycznie może to Cię uczynić lepszym programistą?
@IronHeisenberg1939: Kolejność przypadkowa:
* Learning Domain-Driven Design (Vladik Khononov)
* Unit Testing: Principles, Practices, and Patterns (Vladimir Khorikov)
* Designin Data-Intensive Applications (Martin Kleppmann)
* Domain Modelling Made Functional (Scott Wlaschin)
* Building Microservices (Sam Newman)
* Monolith to Microservices (Sam Newman)
* Database Internals (Alex Petrov)

Z tych których jeszcze nie czytałem, ale mają potencjał:
* Fundamentals of Software Architecture (Mark Richards)
* Software Architecture: The Hard Parts (Mark Richards)
@a5f5c1:

"trend na upraszczanie rzeczy" i "Rust" w jednym zdaniu? Co upraszcza Rust?


Choćby modelowanie danych czy obsługę błędów. Nie ma klas, dziedziczenia, refleksji runtime, wyjątków, nulli, typów opakowujących vs typy prymitywne. Rust utrudnia też robienie rzeczy które są uważane za złe: np. zmiennych globalnych, referencji cyklicznych czy nadmiernego żąglowania referencjami, a zatem ogólnie upraszcza kod.

Za to jest statyczne wyłapywanie wielu błędów które w starszych językach powodowały wywalenie programu w