Hynek Schlawack
Software engineer and open-source maintainer of attrs and structlog; writes about Python, software design and career growth at hynek.me.
Hynek Schlawack did not write this page.
We collected these quotes from things they published elsewhere, and every quote links to where it was said. They have no account here and have not endorsed this site. Quotes are word for word; the short line under each one is our own restatement, not their wording. Their own site. Is this you? Claim it or ask us to remove it. Or tell us what is wrong here.
Filter All topics · Newest first
-
Their wordsYou can also disregard claims that virtual environments measurably affect your application's runtime performance.
↗Why I Still Use Python Virtual Environments in Dockerhynek.me 1st of 3 in this piece
-
Our reading
Using virtual environments makes Python's import behavior more predictable and debugging easier.
Their wordsThat makes Python's import behavior much more predictable and debugging import issues less of a murder mystery.
↗Why I Still Use Python Virtual Environments in Dockerhynek.me 2nd of 3 in this piece
-
Our reading
The npm ecosystem's project-directory-local-first packaging was ahead of the Python ecosystem.
Their wordsIn that sense, the npm ecosystem with its project-directory-local-first packaging was far ahead of us, stuck in our old, lazy ways.
↗Why I Still Use Python Virtual Environments in Dockerhynek.me 3rd of 3 in this piece
- 19 months earlier
-
Their wordsOf course, Nox is a lot more powerful than tox out-of-the-box, courtesy of Python. In the end, you've got the whole standard library at your disposal!
-
Their wordsAs James Bennett astutely observed, one cool feature of Nox is that Python versions are first-class selectors for sessions - while for tox it's just a factor like any other.
- 4 months earlier
-
Our reading
The importance of understanding code and APIs is growing despite the rise of generative AI.
Their wordsThe rise of generative AI like GitHub Copilot doesn't change that. While you have to write less code, the importance of understanding code - and hence APIs - is growing.
↗How I’m a Productive Programmer With a Memory of a Fruit Flyhynek.me 1st of 2 in this piece
-
Our reading
Using extensions to manage browser tabs is an inefficient imitation of bookmarks that wastes RAM.
Their wordsHot take: if you need extensions to manage your tabs, you're poorly imitating bookmarks while wasting RAM.
↗How I’m a Productive Programmer With a Memory of a Fruit Flyhynek.me 2nd of 2 in this piece
- 3 months earlier
-
Their wordsThe principle Don't Mock What You Don't Own means that whenever you employ mock objects, you should use them to substitute your own objects and not third-party ones2.
↗“Don’t Mock What You Don’t Own” in 5 Minuteshynek.me 1st of 3 in this piece
-
Their wordsThis is a business logic test and the purpose of the test is drowning in boilerplate necessary to mimic the API of an HTTP client that can change at any time. That makes the test brittle and unidiomatic.
↗“Don’t Mock What You Don’t Own” in 5 Minuteshynek.me 2nd of 3 in this piece
-
Their wordsCorollary: To keep your business code testable and idiomatic, avoid directly using third-party dependencies in it.
↗“Don’t Mock What You Don’t Own” in 5 Minuteshynek.me 3rd of 3 in this piece
- 7 months earlier
-
Our reading
Their wordsUnfortunately, Codecov has grown very flaky. I have lost any confidence in the fact when it fails a build and my first reaction is always to restart the build and only then investigate.
- 5 months earlier
-
Their wordsIf you want to customize more than one behavioral aspect of a class, code sharing via subclassing won't work. It leads to subclass explosion.
-
Their wordsWhen it comes to reading clarity, properly-done composition is superior to inheritance.
- 4 months earlier
-
Our reading
The amount of unintentional breakage through updates outweighs the amount of intentional breakage.
Their wordsIn almost 20 years of professional software development, I have observed that the amount of unintentional breakage through updates outweighs the amount of intentional breakage by far.
↗Semantic Versioning Will Not Save Youhynek.me 1st of 3 in this piece
-
Their wordsWhat it does mean though, is that you can't rely on the semantic meaning of SemVer and you must treat every update as potentially breaking.
↗Semantic Versioning Will Not Save Youhynek.me 2nd of 3 in this piece
-
Their wordsTherefore the moment you pin the major version of a package, it usually means that you won't get any updates whatsoever once the package bumps its major version.
↗Semantic Versioning Will Not Save Youhynek.me 3rd of 3 in this piece