|
Bare in mind that there are endless options of separation between monolithic and micro...
Do your design work. Take in count not only the complexity, but also the work-force (knowledge)...
And totally ignore fashion...
"The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge". Stephen Hawking, 1942- 2018
|
|
|
|
|
|
Having done this myself, and feeling the pain right now, I'd still say go monolith first.
Ultimately, any project is constrained by something.
Your constrains are
Time/Man power
Money
and right now, you're not worried about 1000's of users.
If you come up with a good proof of concept app, use it yourself and love it, then you know you're on to something.
next still will be making it look better. <-- many man hours here
then try to sell it. <-- many man hours here
Then, only when you get to say 100 users, you MIGHT have a scale problem (I'm guessing as I don't know your system/solution but you understand what I mean)
Now, you've sold it 100 times/subscriptions.
you can make real decisions.
worst case
you double up all your hardware to sell to another 100.
pay other people (buy time) to re-write the app into a more scaleable solution.
I'll be happy to discuss your idea/plan in private with you. I'm right in the middle of this myself. So would be good to bounce ideas. Direct message.
Good luck.
|
|
|
|
|
If you can't handle monoliths you probably can't handle microservices.
Both require you to write loosely coupled code, except microservices are harder to maintain, debug and refactor.
I'm currently working on an application that's a monolith, except for a little piece of code that serves as a webhook, which I've put in an Azure Function.
It's like a monolith with a microservice.
If I find more functionality like that I'll put it in another Function, but for most of the work a monolith works fine (no scaling requirements, I'm the only developer, etc.).
By the way, if you're new you should probably focus on learning other things first, like proper database handling, DI, SOLID, SoC...
On the other hand, if you have experience with those and you know how monolith do and don't work it will be cool to use and learn about microservices.
|
|
|
|
|
The reason I’m asking this is because I’m a pretty new programmer. I have a hard time organizing my code when it gets larger. So if I was to use a micro service architecture, I would have built-in organization of services.
And here is the rub - making microservices won't organize your code. It will push you to break it up, but you are quite likely not going to divide it correctly the first time. I would suggest keeping as much as possible in a single project. Then it will be easier to move things as you better understand things.
|
|
|
|
|
Why would you consider enterprise level practices for a single user application or one which is being designed by an individual?
You do not need micro-services to organize an applications coding structure. You simply need a clean structure that is acceptable to the style of your own development. If you need specific services for your endeavor than there are plenty of third-party libraries available for this.
Also, this is what Object Oriented Programming does quite well with, though many of its other touted benefits have become questionable over the years (ie: re-usability).
The other issue with much of current programming practices is that everything has to go on the Web? Why? For small usage situations or even larger departmental ones, client-server designs are still the most efficient designs available and are much less complex to design and implement.
The implementation of a Web application should only be considered when large numbers of users are expected across multiple domains within a company or if the implementation is to be publicly available...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
Have done both.
My experience made my answer very clear - don't distribute.
I would suggest you to read this - no one can say it better than him - the founder of Ruby on Rails and Basecamp:
The Majestic Monolith
|
|
|
|
|
Personal project?
New programmer?
For sure do what you haven't done before (and fail). You gotta learn what's good and bad for you first hand.
|
|
|
|
|
https://arstechnica.com/information-technology/2019/02/digital-exchange-loses-137-million-as-founder-takes-passwords-to-the-grave/
no backups...
Caveat Emptor.
"Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
|
|
|
|
|
Can't they just cut off his finger and use his fingerprint to log in to his laptop?
> The debacle should be unthinkable for any financial institution, but sadly it’s just one of many similar issues to hit a cryptocurrency exchange in recent years.
Latest Article - Slack-Chatting with you rPi
Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny
Artificial intelligence is the only remedy for natural stupidity. - CDP1802
|
|
|
|
|
Security procedures supplied by QA questioners, I assume ...
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
|
Okay, I'm old enough to get that one.
|
|
|
|
|
Bemoaningly, so am I...
The best way to improve Windows is run it on a Mac.
The best way to bring a Mac to its knees is to run Windows on it.
~ my brother Jeff
|
|
|
|
|
|
So, what do we learn from this?
0. Passwords work.
1. Encryption works.
And what should we have learned?
0, A laptop is a really bad place to store important stuff.
1. If you decide to use cryptocurrency to try to get rich quick, you can end up poorer than you were a damned sight quicker.
2. Multi-factor authentication isn't worth the breath that's wasted on it (US corporations don't demand your phone number for your benefit).
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
|
Has anyone checked the Post-It stuck to his monitor?
<sig notetoself="think of a better signature">
<first>Jim</first> <last>Meadors</last>
</sig>
|
|
|
|
|
Did they try password123 ?
“That which can be asserted without evidence, can be dismissed without evidence.”
― Christopher Hitchens
|
|
|
|
|
Let's preserve his brain. Someday a transplant can yield 137 million*.
*Rates based on the year/time of the transplant.
|
|
|
|
|
More with interest!
The best way to improve Windows is run it on a Mac.
The best way to bring a Mac to its knees is to run Windows on it.
~ my brother Jeff
|
|
|
|
|
Just one slice.... - Album on Imgur[^]
What do you get when you cross a joke with a rhetorical question?
The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.
Do questions with multiple question marks annoy you???
|
|
|
|
|
|
That's NOTHING!
Clickety[^]
Anything that is unrelated to elephants is irrelephant Anonymous
- The problem with quotes on the internet is that you can never tell if they're genuine Winston Churchill, 1944
- Never argue with a fool. Onlookers may not be able to tell the difference. Mark Twain
|
|
|
|
|
Spares or repairs Snowman[^]*
* Bucket not included
Sent from my Amstrad PC 1640
Never throw anything away, Griff
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|