{"id":32,"date":"2021-11-05T06:24:22","date_gmt":"2021-11-05T06:24:22","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/sandfield\/?p=32"},"modified":"2021-11-05T06:24:22","modified_gmt":"2021-11-05T06:24:22","slug":"its-all-downhill-from-here","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/sandfield\/2021\/11\/05\/its-all-downhill-from-here\/","title":{"rendered":"It&#8217;s All Downhill From Here"},"content":{"rendered":"\n<p>I actually mean that in a good way. Getting to this point has been assembling a foundation of solid code to save the hassle of fix literally a dozen places any time I need to change a single line of code. Now I&#8217;m finally there.<\/p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/64.media.tumblr.com\/2331f3f98df45d4f276cf521cf07e889\/02964647711cab09-db\/s1280x1920\/7cf7a277326005b095c32a3d45621d64b80ed548.jpg\" alt=\"\" width=\"540\" height=\"536\" \/><figcaption><a href=\"https:\/\/eldamaranquendi.tumblr.com\/post\/618563632613179392\/treebeard-with-merry-and-pippin\">Credit: Eldamar<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p>Early on I had made a custom NPM module and called it &#8216;CSSA-URL-Completer&#8217;. No points for guessing what it does. Now it&#8217;s grown and changed into &#8216;CSSA-Core&#8217;. Pretty obviously, it has the core code I expect to reuse time and again. URL-Completer got knocked over into being an exported class within core and anything that ends up being in more than one repository eventually ends up here instead. I still haven&#8217;t gotten a Private Access Token to work correctly with letting GitHub Actions access it for automated testing (or even tried with Heroku) but time&#8217;s arrow marches ever onward.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"952\" height=\"702\" src=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/4778\/files\/2021\/11\/Microservices-Diagram-Midpoint.drawio.png\" alt=\"\" class=\"wp-image-33\" srcset=\"https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/4778\/files\/2021\/11\/Microservices-Diagram-Midpoint.drawio.png 952w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/4778\/files\/2021\/11\/Microservices-Diagram-Midpoint.drawio-300x221.png 300w, https:\/\/osu-wams-blogs-uploads.s3.amazonaws.com\/blogs.dir\/4778\/files\/2021\/11\/Microservices-Diagram-Midpoint.drawio-768x566.png 768w\" sizes=\"auto, (max-width: 952px) 100vw, 952px\" \/><figcaption>You are Here<\/figcaption><\/figure>\n\n\n\n<p>What feels like twenty major refactors later, the Gateway and User services are something resembling complete and stable. With those set, I was able to move on and slam out routes and logic for two more services: Store and Review. This really only leaves the Shopping List and Item services for trivial services that just need to be fleshed out. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Reputation will need to be a bit cute with its logic as it will being going two-way with User<\/li><li>Price will need to account for sales<\/li><li>Tag is just going to be a cluster of filtering and spaghetti logic<\/li><li>Live Feed will require learning about streams and will probably involve buffers as well<\/li><li>Shopping Comparison is the big kahuna<\/li><li>Database is Keenon&#8217;s problem<\/li><\/ul>\n\n\n\n<p>So, yeah. We have two weeks left to finish the code and I have a small fraction of it done but I feel that I&#8217;m sitting fairly pretty. There&#8217;s two more trivial services, three that need to be thought through but don&#8217;t need any extra technologies, one that needs research but is relatively simple, and then the comparison. I can probably (hopefully) knock out everything but the comparison in a week and spend my remaining time banging my head against that probably NP problem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I actually mean that in a good way. Getting to this point has been assembling a foundation of solid code to save the hassle of fix literally a dozen places any time I need to change a single line of code. Now I&#8217;m finally there. Early on I had made a custom NPM module and [&hellip;]<\/p>\n","protected":false},"author":11634,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/users\/11634"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":34,"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/posts\/32\/revisions\/34"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/sandfield\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}