Time to put my code where my mouth is; it's a big mouth.
I've put my core code of MtgDiscovery.com (version 2) up to be able to blog about. I don't have the code base. Much is currently stripped out.
The repo is found on my github in the MtgDiscoveryV2Reference repo.
I've been slacking on blogging and I think I have lots of ramblings I can do about this code. It's a VERY recent model of how I try to write code. Even since this was done I've updated and modified some elements; but it's pretty damn close. The past couple years have seen lower levels of churn on the style and more refinement of how I apply... and name... the things within the style. Lots of finding new and interesting patterns; some old ways getting updated.
My goal with putting this up is to ramble and share my thinking. Maybe in the process of babbling vaguely coherently, I'll find some things I want to improve.
I'd value conversation and feedback on what I've done. Some areas suck... largely around javascript and UI. Not areas I do a lot of work in, so they haven't had the churn to narrow down what I favor doing. So ... I mostly made it work.
Also familiarity. I haven't done websites for work in ... over a decade. Not my thing; and it shows. I want to dig into that ignorance in a future post.
Anyway... To give this post A LITTLE content; let's touch on Lib.UniversalCore
Lib.UniversalCore
This is, essentially, a core set of utility classes that I have used some sub-set of in almost every project since I started doing this style of coding.
As an example; the ClassCache
goes all the way back to the UWP project. A nice simple abstraction of caching a result. Mostly to hide away the null
that had to be in the code before ??=
was introduced.
There are others that go back about as far.
ToSystemType
is one I've blogged about before. Here it is in all it's glory... and the unused ToSystemTypeAsync
. I try to use the async version... it just never sticks around in the code.
One of the newer additions dealing with configuration values are in the Configurations
folder. It'll probably need a post on it's own; which I'm sure to do.
Name?
The name of the project Lib.UniversalCore
is a little odd. In the MtgDiscovery project I'm doing an experiment prefixing the projects in a solution. As well as putting things in Solution folders. I've also done this in a project at work. It feels funny... but I'm liking it.
This is clearly a "library" project.
The only projects that made it over are "Lib" and "Web" prefixes.
The solution is the original solution; no modifications so you'll see the unloaded projects there.
I have a number of command line apps for various purposes; all prefixed "Cli".
Huh, I guess those are the only ones in this.
At work I also have "Fnc" for azure functions; "Example" for example projects; "Sdk" for an sdk project.
Little things that make sense and help organize similar things together. Which I also use the solution folders for.
Summary
OK... Well... I hope to have fun sharing my thinking behind a lot of the code that's shown here.
Short post that I'm doing stuff... and stuff should be upcoming. :)