Microsoft Graph is modern and recommended approach to integrate with Microsoft 365 that includes Calendar, Mail, Online Meetings and many more. There two types of workflows that we can implement: When we have user online and can get user consent to perform certain action. This type of workflow will most likely have a user interacting with […]
Secrets and configuration – pragmatic approach
Most of programs, services, scheduled jobs, scripts that we create are likely need to connect to an external resource to pull or push some data. External resource can be a database, distributed cache, message queue, object store and so on. In order to connect to a resources we need at minimum an address and a […]
Typesafe approach to CSV with Python
This post describes an approach to read and write CSV using Python, and doing so in a simple and typesafe way. We are going to use standard CSV Python module, hence there would be no need to install any new packages. Let’s start with our model. A model is a class that represents a line […]
Implementing Domain Driven Design with Microservices
This post is about Microservices and Domain Driven Design (DDD), how to apply DDD to Microservices architectural style, what are the pitfalls to be aware of and many other aspects. If you need a quick refresher or intro to DDD, then you may refer to Simple Domain-Driven Design – Building Blocks. Here is a series […]
Fixing Dynamic Connascence
Introduction In the previous posts we learned about connascence and explained why it’s so important to understand for software developers and architects, we looked at all 5 levels of static connascence and different approaches to improve code quality. In this post we will focus on 4 levels of dynamic connascence and will take practical approach […]
Fixing Static Connascence
Introduction In the previous post we described connascence and explained why it’s so important to understand for software developers and architects. In this post we will show practical approach on how to fix different levels of static connascence. As to summarize, connascence has nine levels (five static and 4 dynamic). The higher level the less […]
Connascence, why is it so important?
Connascence metric has its own website https://connascence.io/ where you can find detailed description and examples. In this post we will show why connascence is very important metric, we will visualize, condense and summarize the concepts so they are fast and easy to comprehend. What is connascence? Before we can understand importance of connascence, let’s understand […]
How to make tests AWESOME
Some people may argue that automated tests are not worth of effort. But here is a kicker: time spent on creating and maintaining tests in many cases is completely justified by time saved on manual testing and re-testing. Another toll of not having automated test is cost of bugs (in time and money) caught late […]
How to Backup and Restore WordPress blog
We do have a blog Running a self-hosted blog is not an easy task, but rewarding at the same time. It can teach many useful skills and techniques. In previous two posts “How to own a blog for FREE” Part 1 and Part 2 we deployed a blog to a cloud virtual machine, and run […]
pytest in 5 minutes
This post is a quick tutorial to pytest, an awesome testing framework for Python. The main goal of the tutorial is to show features of pytest that are most useful in day to day life. Who can benefit from this tutorial? Experienced developer, who uses Python occasionally and needs to rewind the syntax and features […]