Building Async and Cloud Native organizations - Issue #15

GitHub Code Search publicly available and Code Spaces support for JetBrains Rider.

Welcome to my weekly newsletter! Every week, I bring you the latest news, updates, and resources from the world of coding and architecture. I'm so glad you've decided to join me, and I can't wait to share my insights and expertise with you.

I hope this newsletter is a valuable resource, and I welcome your feedback and suggestions. If there's something you'd like to see more of, or if you have any questions or comments, please don't hesitate to contact me.

Thank you for joining me, and happy reading!

REST and APIs

You never know what is next with Twitter, but this move can be good if implemented correctly. Asking for a montly fee and an identity check is a way to reduce the number of bots. On the other hand, it can limit innovation and push individuals away from creating integrations.

Getting the right API metrics is a tricky process. Listen to the API intersection podcast to learn which metrics are critical:

Coding technicalities

What if you want to use a new coding construct, such as the new ArgumentNullException.ThrowIfNull function, but you need to go through all your code to find all the different variations that you want to replace? That would be a tedious task, but not with some clever tricks with Reshaper:

Would you have guessed that the below syntax is valid? A multiline switch statement to format a string outputted to the console.

Console.WriteLine($"{0} {1} {2}.",
    individual,
    individual switch
    {
        "I" or "You" or "They" => "have",
        _ => "has",
    },
    individual switch
    {
        "I" => "given a confidential security briefing",
        "You" => "leaked",
        _ => "been charged under section 2a of the Official Secrets Act"
    }.");

String interpolation is a nice feature, but it can also be beneficial as some components like loggers can skip the more costly string operations when it is not needed (like a log level that is not hit). Read more on the Endjin blog:

GitHub related

Good news! The new Code Search functionality of GitHub is now publicly available. It is an extremely fast search engine that allows for further filtering of the found results.

It not only searches through code, but it can also find results in issues and users. Enable the feature itself, and it replaces the old search with this new functionality.

Feature

Start your search at https://github.com/search, and if you are interested in the inner working of their search engine, then have a look at their engineering blog: https://github.blog/2023-02-06-the-technology-behind-githubs-new-code-search/

GitHub came a long way; from being a primarily open source platform to a more enterprise oriented platform. It is certainly not there yet, as the below article highlight that some elements that need work…

I recently gave a workshop about Azure Functions and most of the time it involves setting up all kinds of dependencies and SDKs before the participants can actually start their exercises. A waste of time and I wished I could just give each of them a prepackage machine.

Well, actually I did; by using GitHub CodeSpaces. I created a devcontainer inside my repo with the correct docker container and Visual Studio Code extensions specified. As the first 60 hours are free, the participants only needed to start the CodeSpace, wait a few minutes, and have a fresh image with a Visual Studio Code editor. And if you want to use your own Visual Studio Code? Then you connect your local version to the cloud version.

But what if you want to use a different IDE, like JetBrains Rider? With the new beta you can. Install the JetBrains Gateway and add the GitHub CodeSpace plugin. After authentication, you get a list of available codespaces which you can open with an IDE like Rider.

It needs a SSH server running (which the default image has) and will push a component to the Code Space image so it can run Rider. Although Visual Studio Code is already a great IDE, there are cases in which I prefer Rider instead. Good to see this option becomes available.

Computing in general

I m mostly a backend guy and can certainly do some HTML/CSS and even some Javascript, but real Windows App development is something that stopped with Windows Forms for me. Of course, we have WPF, that would replace Windows Forms, but what will the future be for, and what is the alternative…

When it comes to create a small script to do something, I tend to use bash. Although PowerShell is available for more platforms nowadays, the power of bash is great to have. Microsoft is providing a new serie on how to use Bash:

The Cloud is not the magic solution for cheaper hosting of your app. There are enough reasons to go cloud native, but there might also be cases where cost can be a major drawback of the cloud. 37Signals is moving back to own hardware and share their story. Interesting to see that they now need to invest in developer productivity as well:

Helpers and utilities

Remember the Gang of Four Design Patterns book? Of course you need to use these pragmatically, but it is not just theory only. A lot of patterns are pretty common and useful. The below repository contains examples for common patterns:

Converting a traditional asp.net web app to the cloud without completely rewriting it so it can handle increased loads and scale accordingly is not a simple task. There is a new framework by Microsoft with guidance on how to host and operate a more traditional monolith in Azure:

Computer laws

Any code of your own that you haven't looked at for six or more months might as well have been written by someone else.

Eagleson's Law

And to close off this edition:

I hope you've enjoyed this week's issue of my newsletter. If you found it helpful, I invite you to share it with your friends and colleagues. And if you're not already a subscriber, be sure to sign up to receive future issues.

Next week, I'll be back with more articles, tutorials, and resources to help you stay up-to-date on the latest developments in coding and architecture. In the meantime, keep learning and growing, and happy coding!

Best regards, Michiel

Join the conversation

or to participate.