10
votes
Accepted
Keeping a JSON copy of a database
Basic Drawbacks
Excess complexity, redundancy. More potential for bugs (more paths through more code), more time to develop, test, and more cost to maintain, forever.
Stale Data
The moment the ...
10
votes
Accepted
Is there a canonical definition of SPA or is SPA a broadly agreed-on architecture with fuzzy edges?
There is no canonical definition of a single page application, since there is no governing body that defined it. Instead, it is a name that got applied to web applications that exhibit a number of ...
8
votes
Accepted
Is there any recognized pattern supporting or discouraging the access to the same database from multiple applications?
Connecting multiple applications to the same database is often a bad idea. It's an integration anti-pattern you might call The Shared Database and it's unfortunately a very easy anti-pattern to fall ...
8
votes
Accepted
Single-Page vs Multi-Page and Client-Side vs Server-Side
SPAs and MPAs
The core difference between a SPA and a MPA is that with a single-page application, all the requests happen within the lifecycle of a single HTML page. You might be able to see ...
5
votes
Benefits of using a JS Framework
As with any other question to adopt a technology - it depends on the technology. It depends on your requirements. It depends on any future requirements/the roadmap for the product. It somewhat depends ...
5
votes
Interoperability between client and server versions
Version your server API. The client doesn't need to know what the current version of the API is, the client needs to know what version of the API your instances support.
There are two general options ...
5
votes
Accepted
Are Physical Firewalls mandatory
If by "physical firewall" you mean a separate appliance, then this might not be necessary. Configuring port forwarding in the router is already a kind of firewall.
But let's take a step back ...
4
votes
How do I deal with file downloads?
Both approaches have advantages and disadvantages, you need to weigh them according to your requirements. Direct links can be faster or use less server resources, may even scale better if you use a ...
4
votes
Accepted
Can I assume nobody deletes user generated content off my server's file system?
To give you a direct answer to
Is it bad practice to assume that server side file will never be deleted by external forces
It is not bad practice to assume it is unlikely a file will never be ...
4
votes
Interoperability between client and server versions
Focus on ensuring that the messages passed between different versions of the protocol can be understood.
Broadly, this means
You never add a new required field to a message
Optional fields can be ...
4
votes
Can I assume nobody deletes user generated content off my server's file system?
This kind of depends on where and how you expect this application to be deployed.
If you control the deployment or can make rules (such as in the form of a "maintenance guide") that those who operate ...
4
votes
Accepted
One thread for all database operations or one thread for each db operations?
Is it a good solution ? or not ? and why ?
Databases have been among us for a long time, and a lot of people already did the thinking for us ;)
You have a problem of Transactional Serializability.
...
4
votes
Accepted
Interoperability between client and server versions
Custom proxies and stubs, which handle version adaptation
So clearly to make this work well, you need to version your API. Each different version of the API which may see action in the field requires ...
3
votes
Achieving server-side rendering of data coming from a PHP API
AngularJS has support for server-side rendering by using a Node.js server, see their documentation on it: https://angular.io/guide/universal.
This guide describes Angular Universal, a technology that ...
3
votes
If we write validation in sever side, don't it become two times of writing same code? What is the standard software engineering solution for it?
Server-side validation is for security, so users can't bypass client-side validation and send potentially harmful requests.
Client-side validation is for usability, so users can immediately see that ...
3
votes
Accepted
Rendering custom markdown format: client side or server side?
It all comes down to one thing: what are your main concerns with this system? Is it reducing the storage space required? The bandwidth use? The server CPU use? Is the custom markdown something your ...
3
votes
Do CPU Intensive/ Data Intensive Tasks belong on the Server
The normal rule for data intensive work is to place the processing so that the 'large' block of data doesn't move around much. This is because network delays are frequently much larger than any other ...
3
votes
Accepted
What does a proper server response look like?
Having a basic JSON wrapper such as {"age":30} enables you to extend the response structure in the future without breaking the interface. You don't need to include the additional metadata if you don't ...
3
votes
One thread for all database operations or one thread for each db operations?
Database operations typically consist of multiple stages and allow for quite some parallel execution. Your single thread will block that.
You're right that creating a new Connection for every request ...
2
votes
Benefits of using a JS Framework
There are several benefits to use client side JS over server side. One is it scales easier than server side, another is its ability to render faster since it doesn't have to send data between client ...
2
votes
Do CPU Intensive/ Data Intensive Tasks belong on the Server
You always want to minimise the amount of data transmitted between server and client. If by doing some amount of extra work the server can significantly reduce the amount of data to be sent, then this ...
2
votes
System design for multiple workers
How should the workers notify the processor about new data? Should I use a simple REST server (i.e. Apache Tomcat) or some Message Broker to deliver the data to some backend service?
You can use HTTP (...
2
votes
Accepted
Why does YouTube save Restricted Content filter locally?
There are several use cases for youtube:
User connects with an account (your case)
User browses anonymously (my case)
As a connected user, you'd think that it would be more practical to store ...
2
votes
Securely allow access to a secure area of a website with PHP
Actually, you do have an account system, only a very limited one that supports only a single authenticated account.
To prevent non-authenticated access to the admin pages, you should use the same ...
2
votes
Is there any recognized pattern supporting or discouraging the access to the same database from multiple applications?
The other way around - having multiple applications (services) access the same database - would be an anti-pattern which implies lots of problems such as high coupling between those applications, ...
2
votes
Are Physical Firewalls mandatory
Every single day, new vulnerabilities are detected on lots of software components, be it on the server side or the router side.
First of all, port forwarding is nothing like a firewall. Port ...
1
vote
Is there any recognized pattern supporting or discouraging the access to the same database from multiple applications?
One principle I absorbed from a huge company is that each server-side enterprise application should only have access to its own database, and if other applications need to read/write data on that ...
1
vote
Accepted
Storing username and password for another site in Node and MongoDB
Given the constraints, you should encrypt the password in the database. If you are going to process every user/password every night, you might as well go ahead and encrypt the username too. There ...
1
vote
Server side rendering of third party updated html components
A component that's activated by a script tag will be written in javascript and designed to run in a browser. It will typically work by modifying the DOM, which is how the browser manages the content ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
server-side × 105client-side × 28
javascript × 19
web-development × 15
server × 13
web-applications × 11
php × 10
node.js × 7
client-server × 7
architecture × 6
java × 5
security × 5
html × 5
css × 5
design × 4
rest × 4
scripting × 4
c# × 3
database × 3
programming-languages × 3
mvc × 3
mobile × 3
ruby-on-rails × 3
web × 3
scalability × 3