Skip to content

🧠Mindmap of 🗺️Software Architecture, Software engineering: An Overview of Software Terminologies and Concepts.

License

Notifications You must be signed in to change notification settings

kimtth/software-architect-mindmap

Repository files navigation

Table of Contents

Software Architecture Mindmap

Software terminologies and concepts, software architecture overview

Summarized the keywords and solutions have faced in my learning and experience.

  • Full Version

Software_Architecture_Mindmap.png

Three main pillars upon software architecture

  • Modern Application Development

  • Cloud Computing (AWS/Azure/GCP)

  • Data Science (ML/NN)

and

Numerous technologies and methodologies.

ⓒ 2022. (https://github.com/kimtth) all rights reserved.

This mindmap created by https://app.mindmapmaker.org/


Software Architecture Reference



  • Google SRE Handbook

    Expand

    🔹 Latency is the response time of your application, usually expressed in milliseconds

    🔹 Throughput is how many transactions per second or minute your application can handle

    🔹 Errors is usually measured in a percent of

    🔹 Saturation is the ability of your application to use the available CPU and Memory

  • InfoQ minibooks: Architectures You’ve Always Wondered About .. 2021 / 2023 / 2024 / Cell-Based Architecture

Building from scratch

Cloud Architecture

Expand
🔹 Abstractly speaking, a landing zone helps you plan for and design an Azure deployment, by conceptualizing a designated area for placement and integration of resources. 

There are two types of landing zones:

1. `platform landing zone`: provides centralized enterprise-scale foundational services for workloads and applications.
2. `application landing zone`: provides services specific to an application or workload.

Computer Science courses

Industry Trends

Newsletter

Tools & Research

Engineering blog

Other Topics

Computer Science Books

  1. General

  2. Good Practices

  3. Data Structures and Algorithms

  4. Data

  5. Testing

  6. Software Architecture

  7. Distributed Systems

  8. DevOps

  9. Machine Learning

Computer Science Papers

Computer Science Papers Every Developers Should Read

  1. On the Criteria To Be Used in Decomposing Systems into Modules (1972): D.L. Parnas
  2. An Axiomatic Basis for Computer Programming (1969): C.A.R. Hoare
  3. Time, Clocks, and the Ordering of Events in a Distributed System (1978): L. Lamport
  4. Out of the Tar Pit (2006): B. Moseley, P. Marks
  5. Dynamo: Amazon’s Highly Available Key-value Store (2007): G. DeCandia et al.
  6. MapReduce: Simplified Data Processing on Large Clusters (2004): J. Dean, S. Ghemawat
  7. A Note On Distributed Computing (1994): J. Waldo, G. Wyant, A. Wollrath, S. Kendall
  8. A Metrics Suite for Object-Oriented Design (1994): S.R. Chidamber
  9. A Relational Model of Data for Large Shared Data Banks (1969): E.F. Codd
  10. Why Functional Programming Matters (1990): J. Hughes

Distributed Systems!

25 Papers That Completely Transformed the Computer World

  • ref [May 2024]
  1. Dynamo: Amazon’s Highly Available Key Value Store
  2. Google File System: Insights into a highly scalable file system
  3. Scaling Memcached at Facebook: A look at the complexities of caching
  4. BigTable: The design principles behind a distributed storage system
  5. Borg: Large Scale Cluster Management at Google
  6. Cassandra: A look at the design and architecture of a distributed NoSQL database
  7. Attention Is All You Need: Into a new deep learning architecture known as the transformer
  8. Kafka: Internals of the distributed messaging platform
  9. FoundationDB: A look at how a distributed database works
  10. Amazon Aurora: How Amazon provides high availability and performance
  11. Spanner: Design and architecture of Google’s globally distributed database
  12. MapReduce: A detailed look at how MapReduce enables parallel processing of massive volumes of data
  13. Shard Manager: Understanding the generic shard management framework
  14. Dapper: Insights into Google’s distributed systems tracing infrastructure
  15. Flink: A detailed look at the unified architecture of stream and batch processing
  16. A Comprehensive Survey on Vector Databases
  17. Zanzibar: A look at the design, implementation, and deployment of a global system for managing access control lists at Google
  18. Monarch: Architecture of Google’s in-memory time series database
  19. Thrift: Explore the design choices behind Facebook’s code-generation tool
  20. Bitcoin: The ground-breaking introduction to the peer-to-peer electronic cash system
  21. WTF - Who to Follow Service at Twitter: Twitter’s (now X) user recommendation system
  22. MyRocks: LSM-Tree Database Storage Engine
  23. GoTo Considered Harmful
  24. Raft Consensus Algorithm: Learn about the more understandable consensus algorithm
  25. Time Clocks and Ordering of Events: The extremely important paper that explains the concept of time and event ordering in a distributed system

Data Science (ML/NN)

Free e-books

  1. Deep Learning - Ian Goodfellow, Yoshua Bengio, and Aaron Courville
  2. Mathematics for Machine Learning - Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong
  3. An Introduction to Statistical Learning - Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, Jonathan Taylor
  4. The Elements of Statistical Learning - Jerome H. Friedman, Robert Tibshirani, and Trevor Hastie
  5. Probabilistic Machine Learning: An Introduction - Kevin Patrick Murphy
  6. Probabilistic Machine Learning: Advanced Topics - Kevin Patrick Murphy
  7. Understanding Machine Learning - Shai Shalev-Shwartz and Shai Ben-David
  8. Automated Machine Learning - Frank Hutter, Lars Kotthoff, Joaquin Vanschoren
  9. Applied Causal Inference - Uday Kamath, Kenneth Graham, Mitchell Naylor
  10. Reinforcement Learning: An Introduction - Richard S. Sutton and Andrew G. Barto
  11. The Hundred-Page Machine Learning Book - Andriy Burkov
  12. Machine Learning Engineering - Andriy Burkov
  13. Natural Language Processing with Python - Steven Bird, Ewan Klein, and Edward Loper
  14. Dive into Deep Learning - Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola
  15. Machine Learning Yearning - Andrew NG
  16. Machine Learning for Humans - Vishal Maini, Samer Sabri
  17. Pattern Recognition and Machine Learning - Christopher M. Bishop
  18. Deep Learning on Graphs - Yao Ma and Jiliang Tang
  19. Approaching (Almost) Any Machine Learning Problem - Abhishek Thakur
  20. Feature Engineering and Selection - Max Kuhn and Kjell Johnson
  21. Hands-On Machine Learning with R - Bradley Boehmke & Brandon Greenwell
  22. Deep Learning Interviews - Shlomo Kashani and Amir Ivry
  23. Machine Learning Interpretability - Patrick Hall and Navdeep Gill
  24. Interpretable Machine Learning - Christoph Molnar
  25. Boosting: Foundations and Algorithms - Robert E. Schapire, Yoav Freund
  26. A Brief Introduction to Machine Learning for Engineers - Osvaldo Simeone
  27. Speech and Language Processing - Daniel Jurafsky & James Martin
  28. Computer Vision: Models, Learning, and Inference - Simon J.D. Prince
  29. Information Theory, Inference and Learning Algorithms - David J. C. MacKay
  30. Machine Learning For Dummies - Judith Hurwitz and Daniel Kirsch
  31. Algebra, Topology, Differential Calculus, and Optimization Theory for Computer Science and Machine Learning
  32. @mathtalent Lecture Notes
  33. Mathematical Methods for Computer Vision, Robotics, and Graphics

github

  1. The Data Engineering Handbook
  2. Machine Learning for Beginners
  3. Machine Learning YouTube Videos
  4. Mathematics for Machine Learning
  5. Deep Learning Book
  6. Machine Learning ZoomCamp
  7. Machine Learning Tutorials
  8. Awesome Machine Learning
  9. CS 229 Machine Learning Cheatsheets
  10. Machine Learning Interview Guide
  11. Awesome Production Machine Learning
  12. 365 Data Science Flashcards
  13. ref > Virgilio | Python Data Science Handbook | Microsoft: 10 Weeks, 20 Lessons, Data Science | Data science Python notebooks | 📚 Papers & tech blog | Open Source Data Science Masters | Awesome Data Science | Data science interview questions and answers | free self-taught education in Data Science!
  14. data science project template
  15. labml.ai Deep Learning Paper Implementations: 60+ Implementations/tutorials of deep learning papers with side-by-side notes
  16. Deep Learning Models: A collection of various deep learning architectures, models, and tips
  17. fastai book: The fastai book, published as Jupyter Notebooks

Terminology and Comparisons

  • See Glossary.md: an overview of key terminology, definitions, and comparisons between related concepts.