5 ms·
Personally, I have a negative reaction because we have an app that is used regularly by only a couple hundred users, developed by three programmers. The move to
by Taywee 4y ago
Personally, I have a negative reaction because we have an app that is used regularly by only a couple hundred users, developed by three programmers. The move to even a partial SPA with modals took forever, and we already had a completely unnecessary microservices architecture for potential future scaling that we still have never needed after 10 years (decisions I rallied against, but I was out-voted).
Now we have an app that we depend heavily on, where more than 90% of the processing is just 10 different Rails apps chatting with each other on the same machine (all talking to the same database server, of course), 90% of bug fixes are related to the bespoke SPA architecture or microservices (where operating without caching is impossible for performance reasons, but caching is constantly causing problems), modals behave really weirdly on mobile, we spent months just re-implementing things that just worked out of the box with the MPA, like history and sharable URLs, and every single new feature has loads of more care that needs to be taken.
A lot of this could have been avoided by going with a proper framework, or doing things the right way, or doing more research, but it also could have been avoided by just keeping our boring web app boring, and not jumping into trends that can't reasonably be maintained at our scale.
I see the value in things like SPA and microservices, but I've personally seen the pitfalls in doing them just to do them, and being unable to reverse the decision once it's already happened, because the real pain didn't become apparent until much later. A lot of people might have the same experience.
- boredtofears 4y agoI wonder how many other hypergrowth stage startups besides my own are currently in a state where "legacy" codepaths are handling 90%+ of the bulk traffic while developers spend all their time on the other 10%.
- drewcoo 4y ago> used regularly by only a couple hundred users > completely unnecessary microservices architecture for potential future scaling It sounds like the problem wasn't architectural decisions at all. The problems listed are from engineers trying to build for growth that didn't happen. You can probably complain about those because they're your bailiwick. The root cause is not the engineering side of the house, though. What happened to the predicted growth? A decade ago?
- Taywee 4y agoEvery project here is skunk works. It wasn't made this way in response to growth predictions, but developer fancy. Our entire staff of programmers has never exceeded 5.
- zelphirkalt 4y agoEvery day staples like browsing history, middle click / control click a link to open in new tab, back function, forward function, bookmarkability of specific "subpages" (in quotes, because SPA) are the first things to fly over board in 90% or more of SPAs, which do not have to be SPAs in the first place. Then developers either ignore all of those things, living with the illusion, that this is not impacting UX, or they have to introduce even more dependencies, that aim to fix those very basic things, which by default are broken. This is one of the main criticism I have for SPA. If you go SPA, it is your responsibility, to make it work at least as well as a traditional website. The other criticism is, that I expect to at least have a noscript block, telling me about a website not working without JS. And not some nonsense about my browser not being supported. No, it should admit, that the website was created in a way, that does not work without JS. It should be honest. But that is often too low level for SPA frameworks, so that the devs of the website cannot be a*ed to build that into their SPA. They throw around "web components" (actually react components, or any other framework components, because often you cannot copy paste them into another framework, which is not based on the framework, you implemented them for, because they are not standardized), but are unable to include a simple noscript tag. Basically most SPAs introduce JS as a must have dependency, but if I allow it to run on the page, I first have to trust some random code, and I will have opted into high CPU loads for things I do not need. How often I have experienced 100% of a core being used just by scrolling or for some silly animation no one needed or some hover effect. No one is testing these sites properly or speaks up in those organizations about the unprofessionalism that are apparent in the resulting websites. Some websites manage to get it right and to make everything work, probably, but usually I just close the tab, when again I only see a white screen with nothing on the page, instead of going through the pain of allowing their 10 CDNs to actually make it work, so I am not so likely to see that SPA, which does everything right and allows me to use an SPA like any normal website.