English lad currently a C#/Java/VueJs/JavaScript/TypeScript engineer.
Extra dribbling can be found at https://codeheir.com
Portfolio found at https://lukegarrigan.com
So true though. Most attempts for Microservices with no real value addition ends up with distributed monolith when the attempt goes ill planned. Especially small teams, attempting the route for the hype.
Peter is the former President of the New Zealand Open Source Society. He is currently working on Business Workflow Automation, and is the core maintainer for Gravity Workflow a GPL workflow engine.
Microservices, with my last breath I spit at thee.
The basic architectural principle behind them is similar to Unix apps, where you have small applications each with a narrow scope. You use plumbing to pull them together into complete systems. The idea is to break things into independent subsystems that are weakly coupled. In theory.
In theory if you observe the idea of having a narrow and specific scope while decoupling from the domain they have application. Certainly the play a big part in distributed systems.
Where they come undone is when they are tied tightly to the domain, sharing the data model. If this happens they either end up sharing the persistence mechanism, aka the database, and thus having a central point of failure, or having integration and query nightmares when you try to pull data together from multiple Microservices into a single coherent view.
As with many other areas they are adopted and implemented as some kind of silver bullet, but without a skeptical analytical approach to their implementation can turn into the classic Big Ball of Mud, where Microservice is piled on top of Microservice with little or no concern about clear architectural separation of concerns.
In my experience they become tightly coupled to narrow use cases and lead to an unmanageable explosion of code and nightmare of latency. Perhaps some companies have the engineering discipline to implement them right, but too often this isn't the case.
I may add that use of microservices makes deployment and maintenance much more complicated than it needs to be. And makes local deployment for testing/debugging at least very inconvenient (usually just impractical, often even impossible).
Possibly I know better solution than microservices, I've described it in my blog here, at dev.to recently.
Peter is the former President of the New Zealand Open Source Society. He is currently working on Business Workflow Automation, and is the core maintainer for Gravity Workflow a GPL workflow engine.
I read your article. Looks good, if only because I have adopted something very similar. With Gravity there is dynamic runtime configuration which can create new data structures and related API. Business rules, views, filters and integrations are all defined at runtime through the API. It is a clustered system so that all the services run on each node, so regardless of the API called it is capable of servicing it without doing another hop. It uses JMS queues to manage workload across the cluster. Because each node of the cluster is identical you will never get resource bound on a specific service because any node can do anything. There are three clusters involved, the API, JMS and Persistence.
I kinda get saying other methodologies are overrated but I kinda thought Lean was, you know, lean. What's not to like about building a minimum viable product and iterating on it?
Linux was a hobby project which seems like a lean start. Software isn't physical so analogies about architecture often don't fit. I agree I wouldn't build life support system software with lean. For things as diverse as global financial software, government digital services and startup consumer software, I have seen that starting by building a minimal viable product seems to work better than upfront design in my experience. I would love to read about your experiences of where and why it doesn't work as there are no silver bullets.
I believe that's called Hype-Driven Development; it should be a firing offence. Pilot programs working on small, identifiable features or utilities are gold.
But if I do have a multi-page site, using a static site generator would help prevent me from having to make the same changes multiple times (i.e., in the header or footer, or in sections that require the same sets of class names).
I really just like not having to copy/paste large portions of markup. I can be clumsy.
There are other ways of ensuring you don't need to edit muliple header/footer files (include in PHP for example). But like I said, I believe SSG's certainly have a place, but they're overhyped.
Yeah, I found myself on that bandwagon for a short time when Meteor came out. Very fun to work with, and the SPA idea is very attractive. But it adds a lot of complexity and some other issues that normally don't happen on server-rendered websites, and there are little pieces of different projects that can be made interactive without going full-blown SPA.
EU 🇪🇺 | Art, Tech & Good Vibrations 🤳 | Founder of ᴛᴏᴍᴏʀʀᴏᴡ 🌞 hellotomorrow.agency • Just started working on a new endeavour 👉 usepoe.app • Follow me on Twitter!
Location
Brussels, Belgium
Work
UX Engineer, Product Manager, sometimes Designer at Self
Are you saying that is overrated? just because it appropiated common sense, made it rigid, replaced common words with "cool" terms and made a ecosystem of courses, certifications, levels, etc. Now, you could have the experience and good common sense, but are you a crapbelt 90dan?, do you know all the fabricated "technical" jargon? have you paid the courses and certificates?.
Don't do useless things, don't waste time. SCRUM invented that!
Seriously, if the code works and you can read who cares how many spaces or tabs it has? Who cares if there are hash rockets? If the compilers don't care, we shouldn't either
I write from time to time.
Views expressed are my own and may not represent the opinions of any entity with which I have been, am now, or will be affiliated.
Before I totally agree, I do have to ask if this would cause a lot of extra white space changes to appear in shared code. That would be my only issue.
Other than that, yeah, I don't care for arguing over personal white space preferences, so long as there's some kind of agreement or compromise within a team.
I have strong opinions on syntax because it helps me manipulate code faster. I like typing Tab to indent but I like it that all my whitespace is space so I can move the cursor inside (something I rarely do, btw). I like semicolons after my line because I've started with C and it's a habit now.
I won't argue about syntax opinions and I'm more than happy to follow the one the team decided. But my own is just so comfortable.
Sturgeon's Law is a thing. 90% of everything is crap. Your primary responsibility as a dev is determining what 10% is not, and leveraging the hell out of it.
Polyglot, autodidact. OSS author and contributor. Addicted to writing code, seeking my next 'fix'. Love communicating with an audience whose eyes don't glaze over when I get to the 'good parts'.
Ie Red Team vs Blue Team where people preach inclusiity while actively excluding anybody who doesn't strictly align with their unique brand of political identity.
I'm here to build the future, with anybody capable -- or at least willing -- to contribute. Not play the 'pander to special interest flavor of the month' game.
EU 🇪🇺 | Art, Tech & Good Vibrations 🤳 | Founder of ᴛᴏᴍᴏʀʀᴏᴡ 🌞 hellotomorrow.agency • Just started working on a new endeavour 👉 usepoe.app • Follow me on Twitter!
Location
Brussels, Belgium
Work
UX Engineer, Product Manager, sometimes Designer at Self
Polyglot, autodidact. OSS author and contributor. Addicted to writing code, seeking my next 'fix'. Love communicating with an audience whose eyes don't glaze over when I get to the 'good parts'.
Sili Valley is toxic, not least in the founder-fetish mentality it celebrates. The farther away from it you get, geographically and culturally, the better developer you will become.
Oldest comments (127)
That gotta be the iPhone.
Ligatures 😬😬
Those screenshots tho 👌
Dont forget to add Synthwave 84
This code snippet:
React
Micro-services
Apple products
Curious why React? Are you saying Vue or Angular are better? FWIW I don't use React myself.
What's underrated is using none of them.
This.
It's easy for a beginner to assume that every company out there is using a front-end framework.
I'm still seeing lots of both greenfield and brownfield projects using vanilla JavaScript with a .NET, Java or PHP backend.
So true though. Most attempts for Microservices with no real value addition ends up with distributed monolith when the attempt goes ill planned. Especially small teams, attempting the route for the hype.
The real value of micro services is at scale.
And the real danger of micro services is deploying them before it's necessary
Yes true.
Microservices, with my last breath I spit at thee.
The basic architectural principle behind them is similar to Unix apps, where you have small applications each with a narrow scope. You use plumbing to pull them together into complete systems. The idea is to break things into independent subsystems that are weakly coupled. In theory.
In theory if you observe the idea of having a narrow and specific scope while decoupling from the domain they have application. Certainly the play a big part in distributed systems.
Where they come undone is when they are tied tightly to the domain, sharing the data model. If this happens they either end up sharing the persistence mechanism, aka the database, and thus having a central point of failure, or having integration and query nightmares when you try to pull data together from multiple Microservices into a single coherent view.
As with many other areas they are adopted and implemented as some kind of silver bullet, but without a skeptical analytical approach to their implementation can turn into the classic Big Ball of Mud, where Microservice is piled on top of Microservice with little or no concern about clear architectural separation of concerns.
In my experience they become tightly coupled to narrow use cases and lead to an unmanageable explosion of code and nightmare of latency. Perhaps some companies have the engineering discipline to implement them right, but too often this isn't the case.
I may add that use of microservices makes deployment and maintenance much more complicated than it needs to be. And makes local deployment for testing/debugging at least very inconvenient (usually just impractical, often even impossible).
Possibly I know better solution than microservices, I've described it in my blog here, at dev.to recently.
I read your article. Looks good, if only because I have adopted something very similar. With Gravity there is dynamic runtime configuration which can create new data structures and related API. Business rules, views, filters and integrations are all defined at runtime through the API. It is a clustered system so that all the services run on each node, so regardless of the API called it is capable of servicing it without doing another hop. It uses JMS queues to manage workload across the cluster. Because each node of the cluster is identical you will never get resource bound on a specific service because any node can do anything. There are three clusters involved, the API, JMS and Persistence.
Lean.
I kinda get saying other methodologies are overrated but I kinda thought Lean was, you know, lean. What's not to like about building a minimum viable product and iterating on it?
Well, would you build a skyscraper by first building a bungalow and then adding more floors on top?
Linux was a hobby project which seems like a lean start. Software isn't physical so analogies about architecture often don't fit. I agree I wouldn't build life support system software with lean. For things as diverse as global financial software, government digital services and startup consumer software, I have seen that starting by building a minimal viable product seems to work better than upfront design in my experience. I would love to read about your experiences of where and why it doesn't work as there are no silver bullets.
Switching to the newest tech with little thought. "The Grass Is Greener..."
I believe that's called Hype-Driven Development; it should be a firing offence. Pilot programs working on small, identifiable features or utilities are gold.
Static Site Generators
Hyped, but quite useful(at least for me)!
Useful in certain circumstances to be sure! But you don't always need a SSG... sometimes vanilla HTML/CSS will suffice for a simple site!
But if I do have a multi-page site, using a static site generator would help prevent me from having to make the same changes multiple times (i.e., in the header or footer, or in sections that require the same sets of class names).
I really just like not having to copy/paste large portions of markup. I can be clumsy.
There are other ways of ensuring you don't need to edit muliple header/footer files (
include
in PHP for example). But like I said, I believe SSG's certainly have a place, but they're overhyped.Building everything as a SPA
100% this!
Yeah, I found myself on that bandwagon for a short time when Meteor came out. Very fun to work with, and the SPA idea is very attractive. But it adds a lot of complexity and some other issues that normally don't happen on server-rendered websites, and there are little pieces of different projects that can be made interactive without going full-blown SPA.
Scrum
❤️
Are you saying that is overrated? just because it appropiated common sense, made it rigid, replaced common words with "cool" terms and made a ecosystem of courses, certifications, levels, etc. Now, you could have the experience and good common sense, but are you a crapbelt 90dan?, do you know all the fabricated "technical" jargon? have you paid the courses and certificates?.
Don't do useless things, don't waste time. SCRUM invented that!
Javascript 🙄
Utilization, i.e. how busy people are. And working early/late as a status symbol.
Elon joined the chat
*reads your message
Elon left the chat
Syntax opinions.
Seriously, if the code works and you can read who cares how many spaces or tabs it has? Who cares if there are hash rockets? If the compilers don't care, we shouldn't either
I love code formatters. I like writing my js without semicolons, so what? Its all made to look identical as soon as I commit!
As long as the formatter keeps the logic, and is readable. I couldnt care less.
It's not exactly a opinion though - it's a fact that in python no semicolons and brackets means less typing needed :P
Before I totally agree, I do have to ask if this would cause a lot of extra white space changes to appear in shared code. That would be my only issue.
Other than that, yeah, I don't care for arguing over personal white space preferences, so long as there's some kind of agreement or compromise within a team.
I have strong opinions on syntax because it helps me manipulate code faster. I like typing Tab to indent but I like it that all my whitespace is space so I can move the cursor inside (something I rarely do, btw). I like semicolons after my line because I've started with C and it's a habit now.
I won't argue about syntax opinions and I'm more than happy to follow the one the team decided. But my own is just so comfortable.
Everything.
Maybe half of everything. But the half you've heard of.
Sturgeon's Law is a thing. 90% of everything is crap. Your primary responsibility as a dev is determining what 10% is not, and leveraging the hell out of it.
Politics in Tech
Ie Red Team vs Blue Team where people preach inclusiity while actively excluding anybody who doesn't strictly align with their unique brand of political identity.
I'm here to build the future, with anybody capable -- or at least willing -- to contribute. Not play the 'pander to special interest flavor of the month' game.
Curious to know where you found politicised environments?
Tech Twitter and SF mostly
Not sure if it's just an outside-in perspective but Silicon Valley seems like a cesspool of toxic personalities.
DevTo is cool tho. It seems to be one of the few online dev communities that's healthy, positive, supportive, encouraging.
Sili Valley is toxic, not least in the founder-fetish mentality it celebrates. The farther away from it you get, geographically and culturally, the better developer you will become.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.