Thoughts on Application State

Mat Warger Articles, AWS, JavaScript, React 1 Comment

Use Redux! Use MobX! Just use `setState`!
Redux is functional! Mobx is reactive! `setState` is built-in!
But Redux has so much boilerplate! But MobX is more difficult to debug! But `setState` doesnโ€™t scale!
Why donโ€™t you just use Rematch to abstract the Redux boilerplate? Do I use redux-thunk? redux-saga? redux-observable?
How about using Unstated? How about just using the Context API?

:head-explodes:

There are a lot of options for developers regarding how and when to use state management libraries (SML).

Remember those last two articles (The Joy of Forms with React and Formik &ย One Router to Rule Them All: React Router) about the massively underplayed game library? There was a third part to comeโ€Šโ€”โ€Ša follow-up meant to implement an example of state management for an application. The application was small, granted, but this somewhat contrived example would tie it all up. Itโ€™d be the cherry on top. It would complete the rule of threes.ย ๐Ÿ˜‰

There is not going to be another tutorial about which state library we can use to better manage our game library. Rather, in this post, weโ€™re going to look at how and why you might use a library to manage your applicationโ€™s state, and why that particular application is a perfect example of when you might not need a SML at all.

Keyhole Sponsoring Azure Dev Days Kansas City 2018

Keyhole Software .NET, Articles, Azure, Cloud, Community, Company News, Educational Event Leave a Comment

We are excited to announce Keyhole’s partnership with Microsoft to sponsorย Azure Dev Days, a one-day workshop in Kansas City on Wednesday, April 25, 2018. This is a free community event to provide education on application modernization, microservices, and Microsoftย Azure topics.

In addition to providing technical educators for this workshop, Keyhole Software will sponsor food and beverages. The topics Keyhole will champion include Microservices and Containers, as well as App Services.

Each technical session will be followed by a hands-on Azure lab and a whiteboard design exercise. This workshop will help attendees gain a thorough understanding of the components of Azure and how you can take advantage of them as a developer.

This is a traveling community event, with other events available to attend in St. Louis and Oklahoma City. The event will be held at the Microsoft offices in Overland Park…

user story mapping

Every Agile Software Project Needs a User Story Map

Rusty Divine Agile, Articles, Microservices, Project Management Leave a Comment

In this blog, I share an example of a real-world, agile enterprise modernization project that benefited from a User Story Map.

Iโ€™m the team lead for a project to convert a business solution from COBOL to a .NET microservices architecture. Other than some interesting challenges with designing a robust microservices solution, the business logic is very straightforward โ€“ input files are processed, databases queried, output files are produced and dropped in a folder, and our goal is to match the output produced by the COBOL solution perfectly.

Yet, we lost our way fairly early on in the project because we had a typical prioritized backlog. Unfortunately, even on a straightforward, well-defined project with an engaged team, we still managed to veer off course.

Our project manager started asking questions about where we were in the project and where we were going. I struggled to answer those questions because I couldnโ€™t make sense of all that was in our backlog. It was around this time that I took a spreadsheet and created our first User Story Map….

Fluent Assertions with AssertJ

Billy Korando Articles, Effective Automated Testing With Spring Series, Java 1 Comment

I recently gave a presentation to my Keyhole team members about JUnit 5. I started off the presentation by covering the importance of automated testing, how lack of automated testing affects an organization’s ability to deliver code to production, and howย without automated testing you are building legacy.

I pointed out two key benefits of automated testing: confidence you are fixing what you set out to fix, and confidence you are not introducing a new bug. A co-worker however pointed out an important third benefit of automated testing: providing living documentation.

My co-worker made the very good point that automated testing can do more than just checking for code correctness. It can also provide valuable documentation for current and future developers on a project.

In this article, we look at how usingย AssertJย can make automated tests easier to read and write. We take a look at how AssertJย improves the readability of assertions in test cases, as well as how it helps make the task of comparing complex objects and performing list validations easier to read and write. The goal is that when tests are easier to read and write, it will hopefully encourage developers to write more tests (i.e. documentation).

Keyhole Announces Platinum KCDC 2018 Sponsorship & Speakers

Keyhole Software Articles, Community, Company News, Educational Event Leave a Comment

We are pleased to announce that Keyhole Software is a Platinum Sponsor of the 2018 Kansas City Developer Conference! 2018 is Keyhole’s sixth year as a KCDC conference sponsor.

The Kansas City Developer Conference is a Kansas City-based, non-profit software developer conference. The 10th annual KCDC conference will be held from July 11-14th, 2018. Main conference days are Thursday & Friday, July 12th and 13th.

Day one of the conference, Wednesday, July 11th, will be a day of “Pre-Compilers” – optional, full-day, hands-on workshops on a specific topic. July 12th and 13th, the main conference days, will feature one-hour breakout sessions. Additionally, July 14th will host a KC Kids Conference (KC)2….ย