axyz
Joined 12 years ago
Joined 12 years ago
I often ended up applying this simple principle to software, especially design systems, e.g. in atomic design where atom, molecules, organism, etc. Can be developed as layers with different pace of change and optimized around it.
I'm curious if anybody knows where the concept came from originally. Was there already something like that in Greek philosophy, or was introduced with the study of complex systems? Or maybe it was indeed from architecture?
What i am really struggling, and maybe somebody has some advice here, is touch typing for programming. Writing words is not a problem, but many frequent symbols are so far away from the home row that even with a small keyboard are hard to reach and find precisely (especially (,),-,_,+,=,&,$,@).
Do you stay on the home row and stretch your finger like crazy? Or maybe temporarily move the hand to the upper row? Also for vim users... Never understood how to deal with auto brackets/quotes: when you get to the point where you need to go past the closing one, either you have to type it defeating the time saving of auto-insertion, or you need to do some kind of dance like using arrows or something like ESC + A
This is the way I firstly stumbled upon it as I was looking for a fast way to generate a fully static site with the advantages of a generator and none of the overheads...
It may be limited for certain use cases but I think it would be my first choice for editing a static site without JS
<class="card"> vs <class="a b c d e">
but more something like <class="card"><class="stuff-inside-card"><class="other-stuff">
vs <class="a b c d e"><class="b c f"><class="c d e g">
so in the long run you tend to have more repeated strings across even completely unrelated elements and that usually balances out the possible increase in non gzipped bytes. But to be honest we did not had a detailed comparison with edge cases and it would be interesting to see when it actually may be a bad idea and when it is totally fine
We overcome most of those issues using a mix of postcss compose and css modules with a custom hashing solution based on the actual css rule content, this allowed us to have virtually infinite semantically named components with a css bundle size that tend to stabilize around 20/25kb gzipped for a very big e-commerce use case and I doubt any other use case would go much higher than that size.
https://github.com/utilitycss/atomic If you want to have a look (documentation needs some love, but the samples generated by the init do give a good idea of the concept)
https://github.com/utilitycss/atomic This is the framework we developed to create atomic CSS component libraries if you want to have a look (documentation needs some love, but is quite stable)