Going Indie--A Complete Guide to becoming an Independent Software Developer by Brian N Schrader
Author:Brian N Schrader [Schrader, Brian N]
Language: eng
Format: epub
Tags: Business & Personal Finance
ISBN: 9781636259581
Publisher: SkyRocket Software
Published: 2021-03-30T00:00:00+00:00
Auditing And Reporting
Now that your data is backed up and can be restored to a reporting database, youâll need to consider what kind of reporting youâll actually want to do and whether you have the data in your data model to answer the questions you might have about your business. For our purposes, âauditingâ simply means that our system is capturing and recording when and how things fail. Auditing can be done in a number of ways, and which way you choose depends on the design of the system and how much time you want to devote to complex reporting. Lots of developers don't implement any sort of auditing or reporting, and therefore they're completely oblivious to how their system is serving their users. Whether you opt for a full featured reporting solution, or you build something from scratch, isn't really relevant. As long as the auditing captures the information necessary to answer your questions, then it's working fine.
For our purposes, âreporting' simply means that you can use the data captured by your auditing systems to provide answers to your questions. Reporting can be done in a number of ways from manual ad-hoc queries, to admin summary pages, to implementing a full reporting solution.16 There's a number of great approaches to reporting, and what you choose will largely depend on how easily and quickly you want your questions answered.
Nine9s uses a slightly convoluted reporting system, but itâs one that Iâve used multiple times in a lot of my apps. Every few hours, Celery pushes an administrative reporting task onto the queue. This task runs in a separate queue and it has top priority so itâs not blocked by other long-running tasks. It checks the current length of all of the system queues and validates that everything is running properly, then if it detects an issue, it uses Djangoâs email module to send an alert email to Pushover which forwards the message as a push notification to my phone.17 Nine9s also runs a job at midnight UTC-time that counts the number of new users and new paying subscribers and sends me a similar notification. I have a similar system set up for Pine.blog and d20.photos. This system is pretty simple, but it works well and itâs easy to implement and tweak. I then occasionally test the system restore process manually to ensure my backups work properly.
Adventurerâs Codex, on the other hand, has a full suite of reporting dashboards, alerts, and charts that are powered by Redash. The reporting database, just like we discussed in the above, is fed from the latest system backups. This ensures that our backup/restore process works and allows us to perform ad-hoc reporting without burdening the production system. I highly recommend Redash, which can be easily self-hosted using Docker, if your application grows and gains a sizable user-base. Iâve been using Redash for years and itâs only gotten better and better.
Regardless of how you audit and perform reporting, itâs important to gain insights into how your business is doing.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Deep Learning with Python by François Chollet(12577)
Hello! Python by Anthony Briggs(9916)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9796)
The Mikado Method by Ola Ellnestam Daniel Brolund(9779)
Dependency Injection in .NET by Mark Seemann(9340)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(8301)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7763)
Grails in Action by Glen Smith Peter Ledbrook(7697)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7557)
Becoming a Dynamics 365 Finance and Supply Chain Solution Architect by Brent Dawson(7091)
Microservices with Go by Alexander Shuiskov(6859)
Practical Design Patterns for Java Developers by Miroslav Wengner(6777)
Test Automation Engineering Handbook by Manikandan Sambamurthy(6718)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(6419)
Angular Projects - Third Edition by Aristeidis Bampakos(6129)
The Art of Crafting User Stories by The Art of Crafting User Stories(5652)
NetSuite for Consultants - Second Edition by Peter Ries(5586)
Demystifying Cryptography with OpenSSL 3.0 by Alexei Khlebnikov(5392)
Kotlin in Action by Dmitry Jemerov(5066)
