97
votes
Accepted
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
Yes. Generally two smaller less complex applications are much easier to maintain than a single large one.
However, you get a new type of bug when the applications all work together to achieve a goal. ...
85
votes
Accepted
How do app developers protect their app when a user decompiles it?
I used to be a full-time binary reverse engineer, and I still spend about 80% of my time reverse-engineering software (legally).
There are some good answers here already, but I wanted to add a few ...
52
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
Does splitting a potentially monolithic application into several smaller ones help prevent bugs
Things are seldom that simple in reality.
Splitting up does definitely not help to prevent those bugs ...
50
votes
Accepted
When developing a system by myself, should I use microservices?
Microservices are generally undesirable because they turn your software into a distributed system – and distributed systems make everything a lot more difficult. But a service-oriented architecture ...
41
votes
Using three different database engines in the same application
best practice to use ES, Neo4j, and PostgreSQL in the same system like this?
No.
Only incur the cost of adopting yet another technology
if you're sure the benefits are worth it.
Here, there seems ...
40
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
I'll have to disagree with the majority on this one. Splitting up an application into two separate ones does not in itself make the code any easier to maintain or reason about.
Separating code into ...
32
votes
How do app developers protect their app when a user decompiles it?
Once someone has a copy of your app, they can do anything with it. Your security model has to assume that nothing in your app is secret, and that actions that look like they have been made by your app ...
29
votes
How do I efficiently search for all the landmarks within a range of a certain landmark?
Use a database with support for GIS (geographic information systems) queries. Most databases support this outright or have extensions, but the details will be database-specific (in their answer, ...
15
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
Easier to maintain once you've finished splitting them, yes. But splitting them is not always easy. Trying to split off a piece of a program into a reusable library reveals where the original ...
14
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
It's important to remember that correlation is not causation.
Building a large monolith and then splitting it up into several small parts may or may not lead to a good design. (It can improve the ...
14
votes
How do app developers protect their app when a user decompiles it?
Never trust the client. Make sure that anything you need to keep private is stored on the server and requires user-specific credentials to access.
12
votes
One Database for Multiple Applications?
In short
I have worked in both kinds of environments. I was an unconditional promoter of the shared-db approach. It took me some time to see its limitations and to reconsider: Envisage it only for ...
11
votes
How do I efficiently search for all the landmarks within a range of a certain landmark?
Yes, there's a better way. You need to use a spatial index. These indexes organize metadata about geometries to filter out far away geometries very rapidly, saving a lot of CPU cycles by avoiding the ...
11
votes
Using three different database engines in the same application
Justified complexity is usually not the target of seemingly anti-complexity guidelines. The overall goal of these guidelines is to cut out unnecessary complexity, which can be countered by properly ...
10
votes
Accepted
How do I efficiently search for all the landmarks within a range of a certain landmark?
Since SQL Server 2008, there is a geography data type which stores locations (lat/lon pairs) and makes it easy for you to write location-related queries.
There is an existing StackOverflow answer ...
10
votes
Application/Database design where two tables have both 1-to-many and 1-to-1 relationships
Think longer term - eventually... there will be a MegaCar 2.0 Or there will be another new car company with only the one model. Or one model companies all go out of business.
Keep it the way you ...
9
votes
One Database for Multiple Applications?
Yes I have worked in a similar environment.
The difference between a schema and a database isn't a huge one from an application perspective. After all, all the databases on a server run on the same ...
9
votes
In app development is it common to first write your app in a high level language, then rewrite it in a low level language?
If an application needs to be optimized for performance, you don't rewrite the whole thing in a different programming language. Instead, you profile the application, find its "hot spots" (the code ...
6
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
This is not a question with a yes or no answer. The question is not just ease of maintenance, it is also a question efficient use of skills.
Generally, a well-written monolithic application is ...
6
votes
Accepted
Implementing A "Draft" Mode For Posts
The simplest alternative would be the is_draft property approach, since you would benefit of all the existing code, and a simpler maintenance, the day you would want to add new fields or behaviors to ...
6
votes
How do app developers protect their app when a user decompiles it?
Is this something to really worry about?
This is very dependent on the product. A lot of the time, someone doing it will "cost" you $30 a month—who cares if four or five (or most likely ...
5
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
No. it does not make it easier to maintain. If anything welcome to more problems.
Why?
The programs are not orthogonal they need to preserve each others work in so far as is reasonable, which implies ...
5
votes
Accepted
Application/Database design where two tables have both 1-to-many and 1-to-1 relationships
My problem is that one of the manufacturers is to be treated as a car
model. There will be only one car model under this manufacturer.
Ok.
When you click on the MegaCar
manufacturer, it should ...
5
votes
Accepted
Need advice on reporting with big amounts of data
If the purpose is to display on a page the first step is to limit the amount of data returned. No one can process 3 million rows at once, find ways to limit the data returned. Requiring search ...
5
votes
When Is it worth writing your own CRUD generator for project?
It's typically not a good idea to build a framework/generator. Common issues with such an approach include:
Debugging is more difficult than with straightforward code.
Leaky abstractions: your ...
4
votes
Accepted
Should data model logic live in database schema?
Yes!
Why? Because unique constraints are in everyone's best interest.
Now sure some could argue that the application can do that and might even have use cases where the unique constraint needs to be ...
4
votes
Does splitting a potentially monolithic application into several smaller ones help prevent bugs?
There were a lot of good answers but since there is almost a dead split I'll throw my hat into the ring too.
In my experience as a software engineer, I have found this to not be a simple problem. It ...
4
votes
How do app developers protect their app when a user decompiles it?
As Jörg W Mittag mentioned there is the legal aspect of what you are talking about, and then the technical. As long as the app embeds critical logic and database access inside of it, someone with ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
application-design × 149architecture × 26
design × 24
database × 16
database-design × 13
c# × 12
web-applications × 12
design-patterns × 10
applications × 8
mobile × 7
java × 6
relational-database × 6
object-oriented × 5
web-development × 5
.net × 5
api-design × 5
mysql × 5
javascript × 4
php × 4
python × 3
object-oriented-design × 3
programming-practices × 3
rest × 3
api × 3
microservices × 3