Friday, January 26, 2024

 if you have many loops in your application code, then you are not doing random access, then you have not setup facility to do random access, which means you are not leveraging typical  free, cheap, powerful, off-the-shelf indexing solutions such as mysql or redis

a typical pattern is doing a lot of processing to get a field, then bubbling that up to a component that uses it. this is a bottom up pattern and it means the problem is not defined clearly

a major problem for programmers is that top-down is not possible until you see the bottom and see if bottom up can meet top-down half-way. otherwise there will be a lot of shoe-horning of processing into abstractions, and an excess of  abstractions which don't _just_ do the job

going top down is the easiest and going bottom up is difficult as the number of things to keep in mind (number of thinks) keeps going up and slows down and eventually fully-halts the thinking process. all discussions and debates are about deciding the abstractions, and the loser side ends up with more complexity cud-chewing. working zig-zag between topd and bottomu is the only way.

using the known to create a predictable product makes one a worker

science, and its boots-on-the-ground-nephew- engineering, aims to build things that aren't yet possible in public consciousness, but should be _-do-able_  in theory

java is getting to a place where it's almost an anti-pattern if you have to create a list or map in your code. this probably means the source of these values isn't outside your system, ie, your program's feet are not firmly planted on the bedrock of other programs

there's no call for writing algorithms to do anything today, for the same reason that it's very hard to find a situation where you have to use a screw-driver or shovel - the economic beast has pervaded the  land so much .... the software equivalent of ' i know a guy ' is 'i have used this library ...'

if you are doing something like this

---

Map<String,List<Set<String>>> sets = new HashMap<>();

for( List<Set<String>> curSets : sets.values() ){ 

---

your need to abstract the set of strings into an object with an id. as you nest abstractions, you can eliminate entire categories of them based on the value of the top or next-to-top ids. the reverse of the previous sentence, forms a design philosophy and also a a prescription for implementation.

a combination of spring-data-rest and graphql converts all of this maneuvering into light-weight text work

a combination of spring-data-rest, mysql, flyaway, with graphql , and varnish and nginx makes for a read-cached, write-through-caching-possible, lightweight, orchestrated , load-balanced service

the equivalent of functional in spring, is to have a component for each bit of processing, and the component to be designed to take inputs and return output. caveat is that components need to embed repositories and third party (http usually) clients, but these are best moved into to the top-level service wrapper

it's important to remember you are not selling code or functionality, you are selling what the man with the money _thinks_ is code/functionality. remember, all things are abstractions, and abstractions are beasts that live in the brains of people, munching cerebral grass and growing fat


0 Comments:

Post a Comment

<< Home