The function of a good software is to make the complex appear to be simple. - Grady Booch
10 more Rules that will help you write secure, scalable and adaptable programs:
For each object type (IMAGE, HTML, CSS, PHP, and so on) consider how long the object can be cached and implement the appropriate header for that timeframe.
Decrease load on Web servers by caching and delivering previously generated dynamic requests and quickly answering calls for static objects. Page caches are a great way to offload dynamic requests and to scale cost-effectively.
Watch your customers or use A/B testing to determine what works. Use postmortems to learn from incidents and problems in production. Be constantly and aggressively learning.
QA doesn’t increase the quality of your system, as you can’t test quality into a system. If used properly, it can increase your productivity while decreasing costs.
Don’t accept that the application is too complex or that you release code too often as excuses that you can’t roll back. No sane engineer would roll code that they could not pull back off in an emergency.
Employ a postmortem process and hypothesize failures in low-failure environments. Learn from everyone and identify the technology, people, and process issues that need to be corrected.
Think about database splits and possible future data needs as you design the data model. The cost of fixing a broken data model after it has been implemented is likely 100x as much as fixing it during the design phase.
Understand the types of locks and manage their usage to maximize database throughput and concurrency. Change lock types to get better utilization of databases and look to split schemas or distribute databases as you grow.
Do not use multiphase commit protocols as a simple way to extend the life of your monolithic database. It will likely cause it to scale even less and result in an even earlier demise of your system.
Cursors are powerful constructs that, when properly used, can make programming faster and easier while speeding up transactions. But FOR UPDATE cursors may cause long-held locks and slow transactions.
The earlier 20 rules: Link
Thanks for reading this.
If you have an idea and want to build your product around it, schedule a call with me.
If you want to learn more about DevOps and Backend space, follow me.