Half-baked stuff causes indigestion How does a life with Proof of Concept in production look like? Constant hiccups. Little problems constantly popping up. No tests or other way of verification but manual checks. Builds breaking all the time because there was never time to do it right. Deploy involving many manual steps. The list can go on. Whose fault is that?! Perhaps you’ve experience...
There is no spoon Some smartasses on the internet claim there is no such a thing as tech debt. Controversial headlines sell well. In this world companies fiercely compete for our attention, so you rarely read an interesting article these days without clickbaits. I know because I use them myself! Let’s forget for now about definitions and admit one thing - crappy code and crappy work environme...
Acceptance testing One of the most valuable kinds of tests are the acceptance tests. They are written from a perspective of an end-user or a particular stakeholder. Their goal is to verify if the system behaves as it should from their viewpoint. They are tests I start with, often coming up with testing scenarios long before I write any code. Ideally, I put some in a task before I start workin...
What’s a dependency? Consider the following snippet of code, coming from one of the projects on my Github: @router.post("/items") def add(data: AddItemData, user_id: UUID = Header()) -> Response: items = Items() items.add(**data.dict(), owner_id=user_id) session.commit() return Response(status_code=204) A dependency is another class, database conne...
Exceptions are standard way of error handling in Python. Their using, i.e. raising and catching using except keyword is one of the cornerstone skills of a Pythonista. By the way, in other programming languages raising an exception is often called throwing. In Python, there are many built-in exception classes. You shouldn’t raise them on your own, though (in most cases). Risk of catching built...