diff --git a/migrate_content.py b/migrate_content.py new file mode 100644 index 000000000..c16afadbf --- /dev/null +++ b/migrate_content.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python3 + +import json +import os +import sys + +def migrate_content(): + """ + Migrate content from content folder to content-migrated folder using mapping file + """ + + # Read mapping file + mapping_file = 'migration-mapping.json' + content_dir = 'content' + migrated_dir = 'content-migrated' + + try: + with open(mapping_file, 'r') as f: + mapping = json.load(f) + except FileNotFoundError: + print(f"Error: {mapping_file} not found") + return False + except json.JSONDecodeError: + print(f"Error: Invalid JSON in {mapping_file}") + return False + + migrated_count = 0 + skipped_count = 0 + error_count = 0 + + print(f"Starting migration of {len(mapping)} files...") + + for source_path, target_id in mapping.items(): + # Determine source file path + if ':' in source_path: + # Nested path like "clean-code-principles:be-consistent" + parts = source_path.split(':') + source_file = os.path.join(content_dir, *parts[:-1], f"{parts[-1]}.md") + else: + # Top level path like "clean-code-principles" + source_file = os.path.join(content_dir, source_path, 'index.md') + + # Determine target file path + target_filename = f"{source_path.split(':')[-1]}@{target_id}.md" + target_file = os.path.join(migrated_dir, target_filename) + + # Check if target file is empty (needs migration) + if os.path.exists(target_file) and os.path.getsize(target_file) > 0: + print(f"⏭️ Skipped: {target_filename} (already migrated)") + skipped_count += 1 + continue + + # Check if source file exists + if not os.path.exists(source_file): + print(f"❌ Error: Source file not found: {source_file}") + error_count += 1 + continue + + try: + # Read source content + with open(source_file, 'r', encoding='utf-8') as f: + content = f.read() + + if not content.strip(): + print(f"⚠️ Warning: Source file is empty: {source_file}") + continue + + # Write to target file + with open(target_file, 'w', encoding='utf-8') as f: + f.write(content) + + print(f"✅ Migrated: {source_path} -> {target_filename}") + migrated_count += 1 + + except Exception as e: + print(f"❌ Error migrating {source_path}: {str(e)}") + error_count += 1 + + print(f"\n📊 Migration Summary:") + print(f" ✅ Migrated: {migrated_count}") + print(f" ⏭️ Skipped: {skipped_count}") + print(f" ❌ Errors: {error_count}") + print(f" 📁 Total: {len(mapping)}") + + return error_count == 0 + +if __name__ == "__main__": + success = migrate_content() + sys.exit(0 if success else 1) \ No newline at end of file diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/abstract-classes.md b/src/data/roadmaps/software-design-architecture/content/abstract-classes@RMkEE7c0jdVFqZ4fmjL6Y.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/abstract-classes.md rename to src/data/roadmaps/software-design-architecture/content/abstract-classes@RMkEE7c0jdVFqZ4fmjL6Y.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/abstraction.md b/src/data/roadmaps/software-design-architecture/content/abstraction@VA8FMrhF4non9x-J3urY8.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/abstraction.md rename to src/data/roadmaps/software-design-architecture/content/abstraction@VA8FMrhF4non9x-J3urY8.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/anemic-models.md b/src/data/roadmaps/software-design-architecture/content/anemic-models@nVaoI4IDPVEsdtFcjGNRw.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/anemic-models.md rename to src/data/roadmaps/software-design-architecture/content/anemic-models@nVaoI4IDPVEsdtFcjGNRw.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/index.md b/src/data/roadmaps/software-design-architecture/content/architectural-patterns@jq916t7svaMw5sFOcqZSi.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/index.md rename to src/data/roadmaps/software-design-architecture/content/architectural-patterns@jq916t7svaMw5sFOcqZSi.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-principles/index.md b/src/data/roadmaps/software-design-architecture/content/architectural-principles@XBCxWdpvQyK2iIG2eEA1K.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-principles/index.md rename to src/data/roadmaps/software-design-architecture/content/architectural-principles@XBCxWdpvQyK2iIG2eEA1K.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/index.md b/src/data/roadmaps/software-design-architecture/content/architectural-styles@En_hvwRvY6k_itsNCQBYE.md similarity index 96% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/index.md rename to src/data/roadmaps/software-design-architecture/content/architectural-styles@En_hvwRvY6k_itsNCQBYE.md index b3b6c50c6..4c75022ed 100644 --- a/src/data/roadmaps/software-design-architecture/content/architectural-styles/index.md +++ b/src/data/roadmaps/software-design-architecture/content/architectural-styles@En_hvwRvY6k_itsNCQBYE.md @@ -16,4 +16,4 @@ Learn more from the following links: - [@article@What is Software Architecture & Styles?](https://study.com/academy/lesson/software-architecture-styles-patterns-components.html) - [@video@Types of Architectural Styles in Software Engineering](https://www.youtube.com/watch?v=2Pp0BcXN9YY) -- [@video@10 Architecture Patterns Used In Enterprise Software Development Today](https://www.youtube.com/watch?v=brt3ao8bvqy) \ No newline at end of file +- [@video@10 Architecture Patterns Used In Enterprise Software Development Today](https://www.youtube.com/watch?v=brt3ao8bvqy) diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/avoid-hasty-abstractions.md b/src/data/roadmaps/software-design-architecture/content/avoid-hasty-abstractions@9naCfoHF1LW1OEsVZGi8v.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/avoid-hasty-abstractions.md rename to src/data/roadmaps/software-design-architecture/content/avoid-hasty-abstractions@9naCfoHF1LW1OEsVZGi8v.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/avoid-passing-nulls-booleans.md b/src/data/roadmaps/software-design-architecture/content/avoid-passing-nulls-booleans@yyKvmutbxu3iVHTuqr5q4.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/avoid-passing-nulls-booleans.md rename to src/data/roadmaps/software-design-architecture/content/avoid-passing-nulls-booleans@yyKvmutbxu3iVHTuqr5q4.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/be-consistent.md b/src/data/roadmaps/software-design-architecture/content/be-consistent@2SOZvuEcy8Cy8ymN7x4L-.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/be-consistent.md rename to src/data/roadmaps/software-design-architecture/content/be-consistent@2SOZvuEcy8Cy8ymN7x4L-.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/blackboard-pattern.md b/src/data/roadmaps/software-design-architecture/content/blackboard-pattern@Kk7u2B67Fdg2sU8E_PGqr.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/blackboard-pattern.md rename to src/data/roadmaps/software-design-architecture/content/blackboard-pattern@Kk7u2B67Fdg2sU8E_PGqr.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-principles/boundaries.md b/src/data/roadmaps/software-design-architecture/content/boundaries@-Kw8hJhgQH2qInUFj2TUe.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-principles/boundaries.md rename to src/data/roadmaps/software-design-architecture/content/boundaries@-Kw8hJhgQH2qInUFj2TUe.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/class-invariants.md b/src/data/roadmaps/software-design-architecture/content/class-invariants@c6n-wOHylTbzpxqgoXtdw.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/class-invariants.md rename to src/data/roadmaps/software-design-architecture/content/class-invariants@c6n-wOHylTbzpxqgoXtdw.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/index.md b/src/data/roadmaps/software-design-architecture/content/clean-code-principles@TJZgsxpfOmltUUChMzlEM.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/index.md rename to src/data/roadmaps/software-design-architecture/content/clean-code-principles@TJZgsxpfOmltUUChMzlEM.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/distributed/client-server.md b/src/data/roadmaps/software-design-architecture/content/client-server@ZGIMUaNfBwE5b6O1yexSz.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/distributed/client-server.md rename to src/data/roadmaps/software-design-architecture/content/client-server@ZGIMUaNfBwE5b6O1yexSz.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/code-by-actor.md b/src/data/roadmaps/software-design-architecture/content/code-by-actor@kp86Vc3uue3IxTN9B9p59.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/code-by-actor.md rename to src/data/roadmaps/software-design-architecture/content/code-by-actor@kp86Vc3uue3IxTN9B9p59.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/command-query-separation.md b/src/data/roadmaps/software-design-architecture/content/command-query-separation@tLbckKmfVxgn59j_dlh8b.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/command-query-separation.md rename to src/data/roadmaps/software-design-architecture/content/command-query-separation@tLbckKmfVxgn59j_dlh8b.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/commands-queries.md b/src/data/roadmaps/software-design-architecture/content/commands-queries@j_SUD3SxpKYZstN9LSP82.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/commands-queries.md rename to src/data/roadmaps/software-design-architecture/content/commands-queries@j_SUD3SxpKYZstN9LSP82.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/component-based.md b/src/data/roadmaps/software-design-architecture/content/component-based@a0geFJWl-vi3mYytTjYdb.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/component-based.md rename to src/data/roadmaps/software-design-architecture/content/component-based@a0geFJWl-vi3mYytTjYdb.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-principles/component-principles.md b/src/data/roadmaps/software-design-architecture/content/component-principles@8Bm0sRhUg6wZtnvtTmpgY.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-principles/component-principles.md rename to src/data/roadmaps/software-design-architecture/content/component-principles@8Bm0sRhUg6wZtnvtTmpgY.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/composition-over-inheritance.md b/src/data/roadmaps/software-design-architecture/content/composition-over-inheritance@Izno7xX7wDvwPEg7f_d1Y.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/composition-over-inheritance.md rename to src/data/roadmaps/software-design-architecture/content/composition-over-inheritance@Izno7xX7wDvwPEg7f_d1Y.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/concrete-classes.md b/src/data/roadmaps/software-design-architecture/content/concrete-classes@hd6GJ-H4p9I4aaiRTni57.md similarity index 94% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/concrete-classes.md rename to src/data/roadmaps/software-design-architecture/content/concrete-classes@hd6GJ-H4p9I4aaiRTni57.md index 5012ba975..ce02f46cf 100644 --- a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/concrete-classes.md +++ b/src/data/roadmaps/software-design-architecture/content/concrete-classes@hd6GJ-H4p9I4aaiRTni57.md @@ -3,6 +3,3 @@ A concrete class is a class in object-oriented programming (OOP) that can be instantiated, meaning objects can be created from it. A concrete class is a class that provides an implementation for all of the abstract methods declared in its parent class, if it inherits from an abstract class. A concrete class can also be a class that does not inherit from an abstract class, in that case it can have implementation for all of its methods. Concrete classes are used to provide specific implementation details for a group of related classes that inherit from a common abstract class. They are also used to define unique behavior for a specific class. A concrete class can have its own methods and variables, and can also override the methods of its parent class. - -Learn more from the following resources: - diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-principles/coupling-and-cohesion.md b/src/data/roadmaps/software-design-architecture/content/coupling-and-cohesion@TXus3R5vVQDBeBag6B5qs.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-principles/coupling-and-cohesion.md rename to src/data/roadmaps/software-design-architecture/content/coupling-and-cohesion@TXus3R5vVQDBeBag6B5qs.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/cqrs.md b/src/data/roadmaps/software-design-architecture/content/cqrs@IU86cGkLPMXUJKvTBywPu.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/cqrs.md rename to src/data/roadmaps/software-design-architecture/content/cqrs@IU86cGkLPMXUJKvTBywPu.md diff --git a/src/data/roadmaps/software-design-architecture/content/design-patterns/index.md b/src/data/roadmaps/software-design-architecture/content/design-patterns@gyQw885dvupmkohzJPg3a.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/design-patterns/index.md rename to src/data/roadmaps/software-design-architecture/content/design-patterns@gyQw885dvupmkohzJPg3a.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/distributed/index.md b/src/data/roadmaps/software-design-architecture/content/distributed@3V74lLPlcOXFB-QRTUA5j.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/distributed/index.md rename to src/data/roadmaps/software-design-architecture/content/distributed@3V74lLPlcOXFB-QRTUA5j.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/domain-driven-design.md b/src/data/roadmaps/software-design-architecture/content/domain-driven-design@CD20zA6k9FxUpMgHnNYRJ.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/domain-driven-design.md rename to src/data/roadmaps/software-design-architecture/content/domain-driven-design@CD20zA6k9FxUpMgHnNYRJ.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/domain-language.md b/src/data/roadmaps/software-design-architecture/content/domain-language@kWNQd3paQrhMHMJzM35w8.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/domain-language.md rename to src/data/roadmaps/software-design-architecture/content/domain-language@kWNQd3paQrhMHMJzM35w8.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/domain-models.md b/src/data/roadmaps/software-design-architecture/content/domain-models@I25ghe8xYWpZ-9pRcHfOh.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/domain-models.md rename to src/data/roadmaps/software-design-architecture/content/domain-models@I25ghe8xYWpZ-9pRcHfOh.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/domain-models.md b/src/data/roadmaps/software-design-architecture/content/domain-models@NpSfbzYtGebmfrifkKsUf.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/domain-models.md rename to src/data/roadmaps/software-design-architecture/content/domain-models@NpSfbzYtGebmfrifkKsUf.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/dry.md b/src/data/roadmaps/software-design-architecture/content/dry@ltBnVWZ3UMAuUvDkU6o4P.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/dry.md rename to src/data/roadmaps/software-design-architecture/content/dry@ltBnVWZ3UMAuUvDkU6o4P.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/dtos.md b/src/data/roadmaps/software-design-architecture/content/dtos@y_Qj7KITSB8aUWHwiZ2It.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/dtos.md rename to src/data/roadmaps/software-design-architecture/content/dtos@y_Qj7KITSB8aUWHwiZ2It.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/encapsulate-what-varies.md b/src/data/roadmaps/software-design-architecture/content/encapsulate-what-varies@DlefJ9JuJ1LdQYC4WSx6y.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/encapsulate-what-varies.md rename to src/data/roadmaps/software-design-architecture/content/encapsulate-what-varies@DlefJ9JuJ1LdQYC4WSx6y.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/encapsulation.md b/src/data/roadmaps/software-design-architecture/content/encapsulation@GJxfVjhiLuuc36hatx9dP.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/encapsulation.md rename to src/data/roadmaps/software-design-architecture/content/encapsulation@GJxfVjhiLuuc36hatx9dP.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/index.md b/src/data/roadmaps/software-design-architecture/content/enterprise-patterns@WrzsvLgo7cf2KjvJhtJEC.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/index.md rename to src/data/roadmaps/software-design-architecture/content/enterprise-patterns@WrzsvLgo7cf2KjvJhtJEC.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/entities.md b/src/data/roadmaps/software-design-architecture/content/entities@VnW_7dl5G0IFL9W3YF_W3.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/entities.md rename to src/data/roadmaps/software-design-architecture/content/entities@VnW_7dl5G0IFL9W3YF_W3.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/messaging/event-driven.md b/src/data/roadmaps/software-design-architecture/content/event-driven@KtzcJBb6-EcIoXnwYvE7a.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/messaging/event-driven.md rename to src/data/roadmaps/software-design-architecture/content/event-driven@KtzcJBb6-EcIoXnwYvE7a.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/event-sourcing.md b/src/data/roadmaps/software-design-architecture/content/event-sourcing@K8X_-bsiy7gboInPzbiEb.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/event-sourcing.md rename to src/data/roadmaps/software-design-architecture/content/event-sourcing@K8X_-bsiy7gboInPzbiEb.md diff --git a/src/data/roadmaps/software-design-architecture/content/functional-programming@YswaOqZNYcmDwly2IXrTT.md b/src/data/roadmaps/software-design-architecture/content/functional-programming@YswaOqZNYcmDwly2IXrTT.md new file mode 100644 index 000000000..8f631da8b --- /dev/null +++ b/src/data/roadmaps/software-design-architecture/content/functional-programming@YswaOqZNYcmDwly2IXrTT.md @@ -0,0 +1,8 @@ +# Functional Programming + +Functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data. It emphasizes the use of functions to solve problems, often using higher-order functions, immutability, and recursion. Instead of modifying data, functional programming creates new data structures. + +Learn more from the following links: + +- [@article@What is Functional Programming?](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0) +- [@feed@Explore top posts about Functional Programming](https://app.daily.dev/tags/functional-programming?ref=roadmapsh) diff --git a/src/data/roadmaps/software-design-architecture/content/design-patterns/gof-design-patterns.md b/src/data/roadmaps/software-design-architecture/content/gof-design-patterns@hlHl00ELlK9YdnzHDGnEW.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/design-patterns/gof-design-patterns.md rename to src/data/roadmaps/software-design-architecture/content/gof-design-patterns@hlHl00ELlK9YdnzHDGnEW.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/hollywood-principle.md b/src/data/roadmaps/software-design-architecture/content/hollywood-principle@WzUhKlmFB9alTlAyV-MWJ.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/hollywood-principle.md rename to src/data/roadmaps/software-design-architecture/content/hollywood-principle@WzUhKlmFB9alTlAyV-MWJ.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/identity-maps.md b/src/data/roadmaps/software-design-architecture/content/identity-maps@tb0X1HtuiGwz7YhQ5xPsV.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/identity-maps.md rename to src/data/roadmaps/software-design-architecture/content/identity-maps@tb0X1HtuiGwz7YhQ5xPsV.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/indentation-and-code-style.md b/src/data/roadmaps/software-design-architecture/content/indentation-and-code-style@81WOL1nxb56ZbAOvxJ7NK.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/indentation-and-code-style.md rename to src/data/roadmaps/software-design-architecture/content/indentation-and-code-style@81WOL1nxb56ZbAOvxJ7NK.md diff --git a/src/data/roadmaps/software-design-architecture/content/index.md b/src/data/roadmaps/software-design-architecture/content/index.md deleted file mode 100644 index db2bbb38e..000000000 --- a/src/data/roadmaps/software-design-architecture/content/index.md +++ /dev/null @@ -1,18 +0,0 @@ -# Software Design Architecture - -Software design architecture is the process of defining the overall structure and organization of a software system. It involves determining the components, interfaces, and relationships between those components that are needed to meet the requirements of the system. The architecture of a software system sets the foundation for the design and implementation of the system, and it plays a crucial role in determining the quality and maintainability of the final product. - -There are several different architecture styles and patterns that can be used to design a software system, including: - -- Layered architecture -- Microservices architecture -- Event-driven architecture -- Service-oriented architecture (SOA) -- Domain-Driven Design (DDD) - -Each architecture pattern or style has its own set of advantages and disadvantages, and the choice of architecture will depend on the specific requirements of the system and the constraints of the project. - -Learn more from the following links: - -- [@article@Software Architecture & Design Introduction](https://www.tutorialspoint.com/software_architecture_design/introduction.htm) -- [@article@Overview of Software architecture](https://en.wikipedia.org/wiki/Software_architecture) diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/inheritance.md b/src/data/roadmaps/software-design-architecture/content/inheritance@Dj36yLBShoazj7SAw6a_A.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/inheritance.md rename to src/data/roadmaps/software-design-architecture/content/inheritance@Dj36yLBShoazj7SAw6a_A.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/interfaces.md b/src/data/roadmaps/software-design-architecture/content/interfaces@SrcPhS4F7aT80qNjbv54f.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/interfaces.md rename to src/data/roadmaps/software-design-architecture/content/interfaces@SrcPhS4F7aT80qNjbv54f.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/keep-framework-code-distant.md b/src/data/roadmaps/software-design-architecture/content/keep-framework-code-distant@OoCCy-3W5y7bUcKz_iyBw.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/keep-framework-code-distant.md rename to src/data/roadmaps/software-design-architecture/content/keep-framework-code-distant@OoCCy-3W5y7bUcKz_iyBw.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/keep-it-small.md b/src/data/roadmaps/software-design-architecture/content/keep-it-small@XEwC6Fyf2DNNHQsoGTrQj.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/keep-it-small.md rename to src/data/roadmaps/software-design-architecture/content/keep-it-small@XEwC6Fyf2DNNHQsoGTrQj.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/keep-tests-independent.md b/src/data/roadmaps/software-design-architecture/content/keep-tests-independent@mzt7fvx6ab3tmG1R1NcLO.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/keep-tests-independent.md rename to src/data/roadmaps/software-design-architecture/content/keep-tests-independent@mzt7fvx6ab3tmG1R1NcLO.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/layered-architectures.md b/src/data/roadmaps/software-design-architecture/content/layered-architectures@HN160YgryBBtVGjnWxNie.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/layered-architectures.md rename to src/data/roadmaps/software-design-architecture/content/layered-architectures@HN160YgryBBtVGjnWxNie.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/layered.md b/src/data/roadmaps/software-design-architecture/content/layered@IELEJcKYdZ6VN-UIq-Wln.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/layered.md rename to src/data/roadmaps/software-design-architecture/content/layered@IELEJcKYdZ6VN-UIq-Wln.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/mappers.md b/src/data/roadmaps/software-design-architecture/content/mappers@ndUTgl2YBzOdu1MQKJocu.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/mappers.md rename to src/data/roadmaps/software-design-architecture/content/mappers@ndUTgl2YBzOdu1MQKJocu.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/meaningful-names.md b/src/data/roadmaps/software-design-architecture/content/meaningful-names@6Cd1BbGsmPJs_5jKhumyV.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/meaningful-names.md rename to src/data/roadmaps/software-design-architecture/content/meaningful-names@6Cd1BbGsmPJs_5jKhumyV.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/message-queues-streams.md b/src/data/roadmaps/software-design-architecture/content/message-queues-streams@GAs6NHBkUgxan3hyPvVs7.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/message-queues-streams.md rename to src/data/roadmaps/software-design-architecture/content/message-queues-streams@GAs6NHBkUgxan3hyPvVs7.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/messaging/index.md b/src/data/roadmaps/software-design-architecture/content/messaging@j9j45Auf60kIskyEMUGE3.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/messaging/index.md rename to src/data/roadmaps/software-design-architecture/content/messaging@j9j45Auf60kIskyEMUGE3.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/microkernel.md b/src/data/roadmaps/software-design-architecture/content/microkernel@r-Yeca-gpdFM8iq7f0lYQ.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/microkernel.md rename to src/data/roadmaps/software-design-architecture/content/microkernel@r-Yeca-gpdFM8iq7f0lYQ.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/microservices.md b/src/data/roadmaps/software-design-architecture/content/microservices@eJsCCURZAURCKnOK-XeQe.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/microservices.md rename to src/data/roadmaps/software-design-architecture/content/microservices@eJsCCURZAURCKnOK-XeQe.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/minimize-cyclomatic-complexity.md b/src/data/roadmaps/software-design-architecture/content/minimize-cyclomatic-complexity@qZzl0hAD2LkShsPql1IlZ.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/minimize-cyclomatic-complexity.md rename to src/data/roadmaps/software-design-architecture/content/minimize-cyclomatic-complexity@qZzl0hAD2LkShsPql1IlZ.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/index.md b/src/data/roadmaps/software-design-architecture/content/model-driven-design@0VO_-1g-TS29y0Ji2yCjc.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/model-driven-design/index.md rename to src/data/roadmaps/software-design-architecture/content/model-driven-design@0VO_-1g-TS29y0Ji2yCjc.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/model-view-controller.md b/src/data/roadmaps/software-design-architecture/content/model-view-controller@-arChRC9zG2DBmuSTHW0J.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/model-view-controller.md rename to src/data/roadmaps/software-design-architecture/content/model-view-controller@-arChRC9zG2DBmuSTHW0J.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/monolithic.md b/src/data/roadmaps/software-design-architecture/content/monolithic@xYPR_X1KhBwdpqYzNJiuT.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/monolithic.md rename to src/data/roadmaps/software-design-architecture/content/monolithic@xYPR_X1KhBwdpqYzNJiuT.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/index.md b/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/index.md deleted file mode 100644 index dc588197e..000000000 --- a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Paradigm Features - -Object-oriented programming (OOP) is a programming paradigm that is based on the concept of "objects," which are instances of a class. OOP has several key features that distinguish it from other programming paradigms: - -- Encapsulation -- Inheritance -- Polymorphism -- Abstraction -- Classes -- Objects -- Interfaces -- Dynamic binding -- Message passing - -Learn more from the following resources: - -- [@article@Overview of Object-Oriented Paradigm](https://www.tutorialspoint.com/software_architecture_design/object_oriented_paradigm.htm) diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/index.md b/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/index.md deleted file mode 100644 index 7dc4216f7..000000000 --- a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# Primary Principles - -There are several primary principles that are considered fundamental to object-oriented programming (OOP). These principles include: - -- Encapsulation: The practice of wrapping an object's internal data and behavior within a defined interface, and hiding the implementation details from the outside world. -- Inheritance: The ability of a new class to inherit the properties and methods of an existing class, enabling code reuse and allowing for a hierarchical organization of classes. -- Polymorphism: The ability of objects of different classes to be treated as objects of a common parent class, allowing code to be written in a more general and flexible way. -- Abstraction: The process of hiding the implementation details of an object and exposing only its essential features, reducing complexity and improving the modularity of the code. -- Classes: The blueprint for creating objects, which have both data (attributes) and behavior (methods). -- Objects: Instances of a class, which have their own unique state and behavior. - -Learn more from the following links: - -- [@article@Principles of Object-Oriented Programming](https://khalilstemmler.com/articles/object-oriented/programming/4-principles/) -- [@article@What are four basic principles of OOP?](https://medium.com/@cancerian0684/what-are-four-basic-principles-of-object-oriented-programming-645af8b43727) diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming@VZrERRRYhmqDx4slnZtdc.md b/src/data/roadmaps/software-design-architecture/content/object-oriented-programming@VZrERRRYhmqDx4slnZtdc.md new file mode 100644 index 000000000..b3a27df01 --- /dev/null +++ b/src/data/roadmaps/software-design-architecture/content/object-oriented-programming@VZrERRRYhmqDx4slnZtdc.md @@ -0,0 +1,9 @@ +# Object Oriented Programming + +Object-oriented programming (OOP) is a programming paradigm that uses objects and classes to structure and organize code. In OOP, an object is an instance of a class, which is a template that defines the properties and behaviors of the object. OOP is based on the principles of encapsulation, inheritance, and polymorphism. + +Learn more from the following links: + +- [@article@What is Object Oriented Programming?](https://www.freecodecamp.org/news/what-is-object-oriented-programming/) +- [@article@OOP introduction](https://www.geeksforgeeks.org/introduction-of-object-oriented-programming/) +- [@feed@Explore top posts about OOP](https://app.daily.dev/tags/oop?ref=roadmapsh) diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/index.md b/src/data/roadmaps/software-design-architecture/content/object-oriented-programming@qZQDOe2MHBh8wNcmvkLQm.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/index.md rename to src/data/roadmaps/software-design-architecture/content/object-oriented-programming@qZQDOe2MHBh8wNcmvkLQm.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/orms.md b/src/data/roadmaps/software-design-architecture/content/orms@SYYulHfDceIyDkDT5fcqj.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/orms.md rename to src/data/roadmaps/software-design-architecture/content/orms@SYYulHfDceIyDkDT5fcqj.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/distributed/peer-to-peer.md b/src/data/roadmaps/software-design-architecture/content/peer-to-peer@Cf9Z2wxBcbnNg_q9PA6xA.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/distributed/peer-to-peer.md rename to src/data/roadmaps/software-design-architecture/content/peer-to-peer@Cf9Z2wxBcbnNg_q9PA6xA.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-principles/policy-vs-detail.md b/src/data/roadmaps/software-design-architecture/content/policy-vs-detail@b_PvjjL2ZpEKETa5_bd0v.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-principles/policy-vs-detail.md rename to src/data/roadmaps/software-design-architecture/content/policy-vs-detail@b_PvjjL2ZpEKETa5_bd0v.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/polymorphism.md b/src/data/roadmaps/software-design-architecture/content/polymorphism@4DVW4teisMz8-58XttMGt.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/primary-principles/polymorphism.md rename to src/data/roadmaps/software-design-architecture/content/polymorphism@4DVW4teisMz8-58XttMGt.md diff --git a/src/data/roadmaps/software-design-architecture/content/design-patterns/posa-patterns.md b/src/data/roadmaps/software-design-architecture/content/posa-patterns@6VoDGFOPHj5p_gvaZ8kTt.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/design-patterns/posa-patterns.md rename to src/data/roadmaps/software-design-architecture/content/posa-patterns@6VoDGFOPHj5p_gvaZ8kTt.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/program-against-abstractions.md b/src/data/roadmaps/software-design-architecture/content/program-against-abstractions@UZeY36dABmULhsHPhlzn_.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/program-against-abstractions.md rename to src/data/roadmaps/software-design-architecture/content/program-against-abstractions@UZeY36dABmULhsHPhlzn_.md diff --git a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/functional-programming.md b/src/data/roadmaps/software-design-architecture/content/programming-paradigms/functional-programming.md deleted file mode 100644 index 136944b98..000000000 --- a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/functional-programming.md +++ /dev/null @@ -1,10 +0,0 @@ -# Functional Programming - -Functional programming is a programming paradigm that emphasizes the use of pure functions and immutable data. It is a way of writing computer programs that emphasizes the use of functions and mathematical concepts, such as recursion, rather than using objects and classes like in object-oriented programming. In functional programming, functions are first-class citizens, which means they can be passed as arguments to other functions and returned as values. - -Functional programming encourages immutability, which means that once a variable is assigned a value, it cannot be changed. This can simplify code, as it eliminates the need for state management and the bugs that can come with it. - -Learn more from the following links: - -- [@video@Tutorial - Functional Programming?](https://www.youtube.com/watch?v=dAPL7MQGjyM) -- [@feed@Explore top posts about Functional Programming](https://app.daily.dev/tags/functional-programming?ref=roadmapsh) diff --git a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/object-oriented-programming.md b/src/data/roadmaps/software-design-architecture/content/programming-paradigms/object-oriented-programming.md deleted file mode 100644 index 3daf1e034..000000000 --- a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/object-oriented-programming.md +++ /dev/null @@ -1,11 +0,0 @@ -# Object Oriented Programming - -Object-oriented programming (OOP) is a programming paradigm that is based on the concept of "objects", which are instances of classes. OOP is a way of organizing and structuring code that is based on the principles of encapsulation, inheritance, and polymorphism. - -Encapsulation refers to the idea that an object's internal state should be hidden and accessible only through its methods. This allows the object to control how its data is used and prevents external code from making invalid changes to the object's state. - -Learn more from the following links: - -- [@video@What is Object Oriented Programming?](https://www.youtube.com/watch?v=pTB0EiLXUC8) -- [@article@Overview of Object-Oriented Programming (OOP)](https://en.wikipedia.org/wiki/Object-oriented_programming) -- [@feed@Explore top posts about General Programming](https://app.daily.dev/tags/general-programming?ref=roadmapsh) diff --git a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/structured-programming.md b/src/data/roadmaps/software-design-architecture/content/programming-paradigms/structured-programming.md deleted file mode 100644 index 586decc4a..000000000 --- a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/structured-programming.md +++ /dev/null @@ -1,7 +0,0 @@ -# Structured Programming - -Structured programming is a programming paradigm that emphasizes the use of structured control flow constructs, such as loops and conditional statements, to organize code into logical, easy-to-understand blocks. It is a way of writing computer programs that emphasizes the use of procedures and functions, as well as data structures, to organize code and make it easier to understand, debug, and maintain. The main idea behind structured programming is to break down a program into smaller, manageable pieces that can be easily understood, tested, and modified. This approach is opposed to the use of "goto" statements, which are considered to be unstructured and can lead to difficult-to-read and difficult-to-maintain code. - -Learn more from the following links: - -- [@article@Overview of Structured programming](https://www.techtarget.com/searchsoftwarequality/definition/structured-programming-modular-programming) diff --git a/src/data/roadmaps/software-design-architecture/content/programming-paradigms/index.md b/src/data/roadmaps/software-design-architecture/content/programming-paradigms@RgYq3YOJhPGSf5in1Rcdp.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/programming-paradigms/index.md rename to src/data/roadmaps/software-design-architecture/content/programming-paradigms@RgYq3YOJhPGSf5in1Rcdp.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/messaging/publish-subscribe.md b/src/data/roadmaps/software-design-architecture/content/publish-subscribe@SX4vOVJY9slOXGwX_q1au.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/messaging/publish-subscribe.md rename to src/data/roadmaps/software-design-architecture/content/publish-subscribe@SX4vOVJY9slOXGwX_q1au.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/pure-functions.md b/src/data/roadmaps/software-design-architecture/content/pure-functions@5S5A5wCJUCNPLlHJ5fRjU.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/pure-functions.md rename to src/data/roadmaps/software-design-architecture/content/pure-functions@5S5A5wCJUCNPLlHJ5fRjU.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/repositories.md b/src/data/roadmaps/software-design-architecture/content/repositories@8y0ot5sbplUIUyXe9gvc8.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/repositories.md rename to src/data/roadmaps/software-design-architecture/content/repositories@8y0ot5sbplUIUyXe9gvc8.md diff --git a/src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/scope-visibility.md b/src/data/roadmaps/software-design-architecture/content/scope-visibility@b-YIbw-r-nESVt_PUFQeq.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/object-oriented-programming/paradigm-features/scope-visibility.md rename to src/data/roadmaps/software-design-architecture/content/scope-visibility@b-YIbw-r-nESVt_PUFQeq.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/serverless-architecture.md b/src/data/roadmaps/software-design-architecture/content/serverless-architecture@5WSvAA3h3lmelL53UJSMy.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/serverless-architecture.md rename to src/data/roadmaps/software-design-architecture/content/serverless-architecture@5WSvAA3h3lmelL53UJSMy.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-patterns/soa.md b/src/data/roadmaps/software-design-architecture/content/soa@FysFru2FJN4d4gj11gv--.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-patterns/soa.md rename to src/data/roadmaps/software-design-architecture/content/soa@FysFru2FJN4d4gj11gv--.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/index.md b/src/data/roadmaps/software-design-architecture/content/software-design-principles@p96fNXv0Z4rEEXJR9hAYX.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/index.md rename to src/data/roadmaps/software-design-architecture/content/software-design-principles@p96fNXv0Z4rEEXJR9hAYX.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/solid.md b/src/data/roadmaps/software-design-architecture/content/solid@3XckqZA--knUb8IYKOeVy.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/solid.md rename to src/data/roadmaps/software-design-architecture/content/solid@3XckqZA--knUb8IYKOeVy.md diff --git a/src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/index.md b/src/data/roadmaps/software-design-architecture/content/structural@86Jw9kMBD7YP5nTV5jTz-.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/architectural-styles/structural/index.md rename to src/data/roadmaps/software-design-architecture/content/structural@86Jw9kMBD7YP5nTV5jTz-.md diff --git a/src/data/roadmaps/software-design-architecture/content/structured-programming@VhSEH_RoWFt1z2lial7xZ.md b/src/data/roadmaps/software-design-architecture/content/structured-programming@VhSEH_RoWFt1z2lial7xZ.md new file mode 100644 index 000000000..535546de1 --- /dev/null +++ b/src/data/roadmaps/software-design-architecture/content/structured-programming@VhSEH_RoWFt1z2lial7xZ.md @@ -0,0 +1,8 @@ +# Structured Programming + +Structured programming is a programming paradigm that emphasizes the use of well-structured control flow constructs such as loops, conditionals, and subroutines. It was developed in the 1960s and 1970s as a reaction to the "spaghetti code" produced by the widespread use of goto statements. + +Learn more from the following links: + +- [@article@Structured Programming Wikipedia](https://en.wikipedia.org/wiki/Structured_programming) +- [@feed@Explore top posts about General Programming](https://app.daily.dev/tags/general-programming?ref=roadmapsh) diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/transaction-script.md b/src/data/roadmaps/software-design-architecture/content/transaction-script@tyReIY4iO8kmyc_LPafp1.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/transaction-script.md rename to src/data/roadmaps/software-design-architecture/content/transaction-script@tyReIY4iO8kmyc_LPafp1.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/use-cases.md b/src/data/roadmaps/software-design-architecture/content/use-cases@gQ7Xj8tsl6IlCcyJgSz46.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/use-cases.md rename to src/data/roadmaps/software-design-architecture/content/use-cases@gQ7Xj8tsl6IlCcyJgSz46.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/use-correct-constructs.md b/src/data/roadmaps/software-design-architecture/content/use-correct-constructs@S1m7ty7Qrzu1rr4Jl-WgM.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/use-correct-constructs.md rename to src/data/roadmaps/software-design-architecture/content/use-correct-constructs@S1m7ty7Qrzu1rr4Jl-WgM.md diff --git a/src/data/roadmaps/software-design-architecture/content/clean-code-principles/use-meaningful-names.md b/src/data/roadmaps/software-design-architecture/content/use-meaningful-names@JKK6bli3P_cqJ128wPnot.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/clean-code-principles/use-meaningful-names.md rename to src/data/roadmaps/software-design-architecture/content/use-meaningful-names@JKK6bli3P_cqJ128wPnot.md diff --git a/src/data/roadmaps/software-design-architecture/content/enterprise-patterns/value-objects.md b/src/data/roadmaps/software-design-architecture/content/value-objects@Ks6njbfxOHiZ_TrJDnVtk.md similarity index 100% rename from src/data/roadmaps/software-design-architecture/content/enterprise-patterns/value-objects.md rename to src/data/roadmaps/software-design-architecture/content/value-objects@Ks6njbfxOHiZ_TrJDnVtk.md diff --git a/src/data/roadmaps/software-design-architecture/content/software-design-principles/yagni.md b/src/data/roadmaps/software-design-architecture/content/yagni@eEO-WeNIyjErBE53n8JsD.md similarity index 84% rename from src/data/roadmaps/software-design-architecture/content/software-design-principles/yagni.md rename to src/data/roadmaps/software-design-architecture/content/yagni@eEO-WeNIyjErBE53n8JsD.md index 6dfac6f06..0f0a5abb8 100644 --- a/src/data/roadmaps/software-design-architecture/content/software-design-principles/yagni.md +++ b/src/data/roadmaps/software-design-architecture/content/yagni@eEO-WeNIyjErBE53n8JsD.md @@ -6,5 +6,5 @@ The YAGNI principle is closely related to the Single Responsibility Principle (S Learn more from the following resources: -- [@article@YAGNI (You Aren’t Gonna Need It) Principle Helps in Efficiency](https://builtin.com/software-engineering-perspectives/yagni) +- [@article@YAGNI (You Aren't Gonna Need It) Principle Helps in Efficiency](https://builtin.com/software-engineering-perspectives/yagni) - [@video@What is YAGNI coding rule, and Why it helps?](https://www.youtube.com/watch?v=2vys1q1dKc4) diff --git a/src/data/roadmaps/software-design-architecture/migration-mapping.json b/src/data/roadmaps/software-design-architecture/migration-mapping.json new file mode 100644 index 000000000..c60f1133c --- /dev/null +++ b/src/data/roadmaps/software-design-architecture/migration-mapping.json @@ -0,0 +1,86 @@ +{ + "clean-code-principles": "TJZgsxpfOmltUUChMzlEM", + "programming-paradigms": "RgYq3YOJhPGSf5in1Rcdp", + "object-oriented-programming": "qZQDOe2MHBh8wNcmvkLQm", + "software-design-principles": "p96fNXv0Z4rEEXJR9hAYX", + "design-patterns": "gyQw885dvupmkohzJPg3a", + "architectural-principles": "XBCxWdpvQyK2iIG2eEA1K", + "architectural-styles": "En_hvwRvY6k_itsNCQBYE", + "architectural-patterns": "jq916t7svaMw5sFOcqZSi", + "enterprise-patterns": "WrzsvLgo7cf2KjvJhtJEC", + "clean-code-principles:be-consistent": "2SOZvuEcy8Cy8ymN7x4L-", + "clean-code-principles:meaningful-names": "6Cd1BbGsmPJs_5jKhumyV", + "clean-code-principles:indentation-and-code-style": "81WOL1nxb56ZbAOvxJ7NK", + "clean-code-principles:keep-it-small": "XEwC6Fyf2DNNHQsoGTrQj", + "clean-code-principles:pure-functions": "5S5A5wCJUCNPLlHJ5fRjU", + "clean-code-principles:minimize-cyclomatic-complexity": "qZzl0hAD2LkShsPql1IlZ", + "clean-code-principles:avoid-passing-nulls-booleans": "yyKvmutbxu3iVHTuqr5q4", + "clean-code-principles:keep-framework-code-distant": "OoCCy-3W5y7bUcKz_iyBw", + "clean-code-principles:use-correct-constructs": "S1m7ty7Qrzu1rr4Jl-WgM", + "clean-code-principles:keep-tests-independent": "mzt7fvx6ab3tmG1R1NcLO", + "clean-code-principles:use-meaningful-names": "JKK6bli3P_cqJ128wPnot", + "clean-code-principles:code-by-actor": "kp86Vc3uue3IxTN9B9p59", + "clean-code-principles:command-query-separation": "tLbckKmfVxgn59j_dlh8b", + "clean-code-principles:avoid-hasty-abstractions": "9naCfoHF1LW1OEsVZGi8v", + "programming-paradigms:functional-programming": "YswaOqZNYcmDwly2IXrTT", + "programming-paradigms:object-oriented-programming": "VZrERRRYhmqDx4slnZtdc", + "object-oriented-programming:model-driven-design": "0VO_-1g-TS29y0Ji2yCjc", + "object-oriented-programming:model-driven-design:domain-models": "I25ghe8xYWpZ-9pRcHfOh", + "object-oriented-programming:model-driven-design:anemic-models": "nVaoI4IDPVEsdtFcjGNRw", + "object-oriented-programming:model-driven-design:layered-architectures": "HN160YgryBBtVGjnWxNie", + "object-oriented-programming:model-driven-design:domain-language": "kWNQd3paQrhMHMJzM35w8", + "object-oriented-programming:model-driven-design:class-invariants": "c6n-wOHylTbzpxqgoXtdw", + "object-oriented-programming:paradigm-features:abstract-classes": "RMkEE7c0jdVFqZ4fmjL6Y", + "object-oriented-programming:paradigm-features:concrete-classes": "hd6GJ-H4p9I4aaiRTni57", + "object-oriented-programming:paradigm-features:scope-visibility": "b-YIbw-r-nESVt_PUFQeq", + "object-oriented-programming:paradigm-features:interfaces": "SrcPhS4F7aT80qNjbv54f", + "object-oriented-programming:primary-principles:inheritance": "Dj36yLBShoazj7SAw6a_A", + "object-oriented-programming:primary-principles:polymorphism": "4DVW4teisMz8-58XttMGt", + "object-oriented-programming:primary-principles:abstraction": "VA8FMrhF4non9x-J3urY8", + "object-oriented-programming:primary-principles:encapsulation": "GJxfVjhiLuuc36hatx9dP", + "software-design-principles:composition-over-inheritance": "Izno7xX7wDvwPEg7f_d1Y", + "software-design-principles:encapsulate-what-varies": "DlefJ9JuJ1LdQYC4WSx6y", + "software-design-principles:program-against-abstractions": "UZeY36dABmULhsHPhlzn_", + "software-design-principles:hollywood-principle": "WzUhKlmFB9alTlAyV-MWJ", + "software-design-principles:solid": "3XckqZA--knUb8IYKOeVy", + "software-design-principles:dry": "ltBnVWZ3UMAuUvDkU6o4P", + "software-design-principles:yagni": "eEO-WeNIyjErBE53n8JsD", + "design-patterns:gof-design-patterns": "hlHl00ELlK9YdnzHDGnEW", + "design-patterns:posa-patterns": "6VoDGFOPHj5p_gvaZ8kTt", + "architectural-principles:component-principles": "8Bm0sRhUg6wZtnvtTmpgY", + "architectural-principles:policy-vs-detail": "b_PvjjL2ZpEKETa5_bd0v", + "architectural-principles:coupling-and-cohesion": "TXus3R5vVQDBeBag6B5qs", + "architectural-principles:boundaries": "-Kw8hJhgQH2qInUFj2TUe", + "architectural-styles:messaging": "j9j45Auf60kIskyEMUGE3", + "architectural-styles:distributed": "3V74lLPlcOXFB-QRTUA5j", + "architectural-styles:messaging:event-driven": "KtzcJBb6-EcIoXnwYvE7a", + "architectural-styles:messaging:publish-subscribe": "SX4vOVJY9slOXGwX_q1au", + "architectural-styles:distributed:client-server": "ZGIMUaNfBwE5b6O1yexSz", + "architectural-styles:distributed:peer-to-peer": "Cf9Z2wxBcbnNg_q9PA6xA", + "architectural-styles:structural": "86Jw9kMBD7YP5nTV5jTz-", + "architectural-styles:structural:component-based": "a0geFJWl-vi3mYytTjYdb", + "architectural-styles:structural:monolithic": "xYPR_X1KhBwdpqYzNJiuT", + "architectural-styles:structural:layered": "IELEJcKYdZ6VN-UIq-Wln", + "architectural-patterns:soa": "FysFru2FJN4d4gj11gv--", + "architectural-patterns:cqrs": "IU86cGkLPMXUJKvTBywPu", + "architectural-patterns:domain-driven-design": "CD20zA6k9FxUpMgHnNYRJ", + "architectural-patterns:model-view-controller": "-arChRC9zG2DBmuSTHW0J", + "architectural-patterns:microservices": "eJsCCURZAURCKnOK-XeQe", + "architectural-patterns:blackboard-pattern": "Kk7u2B67Fdg2sU8E_PGqr", + "architectural-patterns:microkernel": "r-Yeca-gpdFM8iq7f0lYQ", + "architectural-patterns:serverless-architecture": "5WSvAA3h3lmelL53UJSMy", + "architectural-patterns:message-queues-streams": "GAs6NHBkUgxan3hyPvVs7", + "architectural-patterns:event-sourcing": "K8X_-bsiy7gboInPzbiEb", + "enterprise-patterns:dtos": "y_Qj7KITSB8aUWHwiZ2It", + "enterprise-patterns:identity-maps": "tb0X1HtuiGwz7YhQ5xPsV", + "enterprise-patterns:use-cases": "gQ7Xj8tsl6IlCcyJgSz46", + "enterprise-patterns:repositories": "8y0ot5sbplUIUyXe9gvc8", + "enterprise-patterns:mappers": "ndUTgl2YBzOdu1MQKJocu", + "enterprise-patterns:transaction-script": "tyReIY4iO8kmyc_LPafp1", + "enterprise-patterns:commands-queries": "j_SUD3SxpKYZstN9LSP82", + "enterprise-patterns:value-objects": "Ks6njbfxOHiZ_TrJDnVtk", + "enterprise-patterns:domain-models": "NpSfbzYtGebmfrifkKsUf", + "enterprise-patterns:entities": "VnW_7dl5G0IFL9W3YF_W3", + "enterprise-patterns:orms": "SYYulHfDceIyDkDT5fcqj", + "programming-paradigms:structured-programming": "VhSEH_RoWFt1z2lial7xZ" +} \ No newline at end of file diff --git a/src/data/roadmaps/software-design-architecture/software-design-architecture.json b/src/data/roadmaps/software-design-architecture/software-design-architecture.json index af4185a8c..259b8328b 100644 --- a/src/data/roadmaps/software-design-architecture/software-design-architecture.json +++ b/src/data/roadmaps/software-design-architecture/software-design-architecture.json @@ -1,6704 +1,5303 @@ { - "mockup": { - "controls": { - "control": [ - { - "ID": "8217", - "typeID": "Arrow", - "zOrder": "0", - "w": "1", - "h": "194", - "measuredW": "150", - "measuredH": "100", - "x": "1020", - "y": "2693", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3586399639038973, - "y": 0 - }, - "p1": { - "x": 0.3294117647058822, - "y": 0 - }, - "p2": { - "x": -0.3586399639038973, - "y": 194.42473260131646 - } - } - }, - { - "ID": "8218", - "typeID": "Arrow", - "zOrder": "1", - "w": "160", - "h": "207", - "measuredW": "150", - "measuredH": "100", - "x": "1018", - "y": "2464", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.30540490036810297, - "y": 207.55083607344523 - }, - "p1": { - "x": 0.5414642109768111, - "y": 0.22898488490104937 - }, - "p2": { - "x": 159.83059520292386, - "y": 0.1438567416173555 - } - } - }, - { - "ID": "8219", - "typeID": "Arrow", - "zOrder": "2", - "w": "235", - "h": "324", - "measuredW": "150", - "measuredH": "100", - "x": "1265", - "y": "2472", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.18396018019234361, - "y": -0.4354702728369375 - }, - "p1": { - "x": 0.5236760686488061, - "y": 0.05720271376444608 - }, - "p2": { - "x": 235.09404728602158, - "y": 323.3880238742104 - } - } - }, - { - "ID": "8220", - "typeID": "Arrow", - "zOrder": "3", - "w": "200", - "h": "208", - "measuredW": "150", - "measuredH": "100", - "x": "1301", - "y": "2234", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.20826735231958082, - "y": 207.4034627624369 - }, - "p1": { - "x": 0.391497018853736, - "y": -0.06759950582800654 - }, - "p2": { - "x": 200.35898281003347, - "y": -0.24334878707486496 - } - } - }, - { - "ID": "8221", - "typeID": "Arrow", - "zOrder": "4", - "w": "218", - "h": "278", - "measuredW": "150", - "measuredH": "100", - "x": "1280", - "y": "2468", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.004733892049443966, - "y": -0.23027684487260558 - }, - "p1": { - "x": 0.5236760686488061, - "y": 0.057202713764446064 - }, - "p2": { - "x": 217.5641762379978, - "y": 278.05553843774624 - } - } - }, - { - "ID": "8222", - "typeID": "Arrow", - "zOrder": "5", - "w": "187", - "h": "209", - "measuredW": "150", - "measuredH": "100", - "x": "1308", - "y": "2477", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.17615236378765076, - "y": 0.2917863867464803 - }, - "p1": { - "x": 0.5758841707679977, - "y": 0.07010415474419218 - }, - "p2": { - "x": 187.03430518997402, - "y": 209.60356880918653 - } - } - }, - { - "ID": "8223", - "typeID": "Arrow", - "zOrder": "6", - "w": "177", - "h": "160", - "measuredW": "150", - "measuredH": "100", - "x": "1322", - "y": "2476", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.26186159965664046, - "y": 0.02685086273459092 - }, - "p1": { - "x": 0.5758841707679977, - "y": 0.07010415474419225 - }, - "p2": { - "x": 176.8291117620097, - "y": 160.0061478487105 - } - } - }, - { - "ID": "8224", - "typeID": "Arrow", - "zOrder": "7", - "w": "174", - "h": "106", - "measuredW": "150", - "measuredH": "100", - "x": "1322", - "y": "2473", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.4472357365100379, - "y": 0.4969798147108122 - }, - "p1": { - "x": 0.5758841707679977, - "y": 0.07010415474419214 - }, - "p2": { - "x": 174.2992407139859, - "y": 106.08404926817502 - } - } - }, - { - "ID": "8225", - "typeID": "Arrow", - "zOrder": "8", - "w": "158", - "h": "54", - "measuredW": "150", - "measuredH": "100", - "x": "1339", - "y": "2473", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.4472357365100379, - "y": 0.4969798147108122 - }, - "p1": { - "x": 0.5758841707679976, - "y": 0.07010415474419213 - }, - "p2": { - "x": 158.5641762379978, - "y": 54.88920734722251 - } - } - }, - { - "ID": "8226", - "typeID": "Arrow", - "zOrder": "9", - "w": "186", - "h": "158", - "measuredW": "150", - "measuredH": "100", - "x": "1319", - "y": "2290", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.20826735231958082, - "y": 158.4034627624369 - }, - "p1": { - "x": 0.391497018853736, - "y": -0.06759950582800651 - }, - "p2": { - "x": 186.15378938206936, - "y": 0.2865222609493685 - } - } - }, - { - "ID": "8227", - "typeID": "Arrow", - "zOrder": "10", - "w": "151", - "measuredW": "150", - "measuredH": "100", - "x": "1353", - "y": "2348", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.3615265006408208, - "y": 100.19826933447257 - }, - "p1": { - "x": 0.38164577983369, - "y": -0.034961851688536195 - }, - "p2": { - "x": 150.88885385805747, - "y": 0.2683629375324017 - } - } - }, - { - "ID": "8228", - "typeID": "Arrow", - "zOrder": "11", - "w": "151", - "h": "58", - "measuredW": "150", - "measuredH": "100", - "x": "1352", - "y": "2399", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.09659097662893146, - "y": 58.05281800255625 - }, - "p1": { - "x": 0.38932235669963805, - "y": -0.0580573815813714 - }, - "p2": { - "x": 150.62391833404536, - "y": -0.1342161019915693 - } - } - }, - { - "ID": "8229", - "typeID": "Arrow", - "zOrder": "12", - "w": "153", - "h": "6", - "measuredW": "150", - "measuredH": "100", - "x": "1357", - "y": "2461", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.15633307267671626, - "y": 6.172302194651365 - }, - "p1": { - "x": 0.32941176470588207, - "y": 0 - }, - "p2": { - "x": 153.21353147811692, - "y": -0.15237542540808136 - } - } - }, - { - "ID": "8230", - "typeID": "Arrow", - "zOrder": "13", - "w": "286", - "h": "274", - "measuredW": "150", - "measuredH": "100", - "x": "906", - "y": "2184", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 285.4497794271174, - "y": 273.6502389630323 - }, - "p1": { - "x": 0.5173212592298939, - "y": 0.20701077470420914 - }, - "p2": { - "x": -0.1694047970761403, - "y": 0.1438567416173555 - } - } - }, - { - "ID": "8231", - "typeID": "Arrow", - "zOrder": "14", - "w": "1", - "h": "110", - "measuredW": "150", - "measuredH": "100", - "x": "811", - "y": "2067", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3586399639038973, - "y": -0.2534288249714791 - }, - "p1": { - "x": 0.3294117647058821, - "y": 0 - }, - "p2": { - "x": -0.3586399639038973, - "y": 109.43673464410267 - } - } - }, - { - "ID": "8232", - "typeID": "Arrow", - "zOrder": "15", - "w": "161", - "h": "305", - "measuredW": "150", - "measuredH": "100", - "x": "650", - "y": "2185", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.1182508914699838, - "y": 304.8850619957193 - }, - "p1": { - "x": 0.4202646014843494, - "y": -0.060600193610842686 - }, - "p2": { - "x": 160.53875478599355, - "y": 0.04869224873709754 - } - } - }, - { - "ID": "8233", - "typeID": "Arrow", - "zOrder": "16", - "w": "132", - "h": "144", - "measuredW": "150", - "measuredH": "100", - "x": "638", - "y": "2180", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.47648209742874315, - "y": 143.73550911560733 - }, - "p1": { - "x": 0.33952751368481776, - "y": -0.04393546528377913 - }, - "p2": { - "x": 131.34465076613105, - "y": -0.443854953911341 - } - } - }, - { - "ID": "8234", - "typeID": "Arrow", - "zOrder": "17", - "w": "139", - "h": "202", - "measuredW": "150", - "measuredH": "100", - "x": "644", - "y": "2178", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.38920190588169135, - "y": 202.0341179427528 - }, - "p1": { - "x": 0.33495756051556175, - "y": -0.041967934611756824 - }, - "p2": { - "x": 139.07601877275192, - "y": 0.18300824542666305 - } - } - }, - { - "ID": "8235", - "typeID": "Arrow", - "zOrder": "18", - "w": "157", - "h": "251", - "measuredW": "150", - "measuredH": "100", - "x": "643", - "y": "2185", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.01606510521958171, - "y": 251.33272676989827 - }, - "p1": { - "x": 0.42026460148434935, - "y": -0.060600193610842665 - }, - "p2": { - "x": 156.5536603806969, - "y": 0.04869224873709754 - } - } - }, - { - "ID": "8236", - "typeID": "Arrow", - "zOrder": "19", - "w": "130", - "h": "89", - "measuredW": "150", - "measuredH": "100", - "x": "636", - "y": "2175", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.15038110190914722, - "y": 89.69062668713786 - }, - "p1": { - "x": 0.4162264150943399, - "y": -0.0532075471698116 - }, - "p2": { - "x": 130.59837716480695, - "y": 0.43673464410267115 - } - } - }, - { - "ID": "8237", - "typeID": "Arrow", - "zOrder": "20", - "w": "126", - "h": "36", - "measuredW": "150", - "measuredH": "100", - "x": "638", - "y": "2178", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.47648209742874315, - "y": 35.88456506264083 - }, - "p1": { - "x": 0.4910485933503837, - "y": 0.007672634271099409 - }, - "p2": { - "x": 125.85210356348273, - "y": 0.18300824542666305 - } - } - }, - { - "ID": "8238", - "typeID": "Arrow", - "zOrder": "21", - "w": "114", - "h": "63", - "measuredW": "150", - "measuredH": "100", - "x": "646", - "y": "2097", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.23766129345619902, - "y": 0.16793700636389985 - }, - "p1": { - "x": 0.3927866695900029, - "y": -0.09460644595483586 - }, - "p2": { - "x": 113.73269316149651, - "y": 63.58595623549536 - } - } - }, - { - "ID": "8239", - "typeID": "Arrow", - "zOrder": "22", - "w": "122", - "h": "18", - "measuredW": "150", - "measuredH": "100", - "x": "642", - "y": "2153", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3570716954425279, - "y": 0.46654583350937173 - }, - "p1": { - "x": 0.3092749477390253, - "y": -0.04764000440092364 - }, - "p2": { - "x": 121.85210356348273, - "y": 18.31732424211623 - } - } - }, - { - "ID": "8240", - "typeID": "Arrow", - "zOrder": "23", - "w": "254", - "h": "180", - "measuredW": "150", - "measuredH": "100", - "x": "905", - "y": "1981", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 254.4139447480659, - "y": -0.3369409423894467 - }, - "p1": { - "x": 0.5385566782391991, - "y": -0.18949858147958698 - }, - "p2": { - "x": 0.2851940316771788, - "y": 179.3322298368198 - } - } - }, - { - "ID": "8241", - "typeID": "Arrow", - "zOrder": "24", - "w": "1", - "h": "176", - "measuredW": "150", - "measuredH": "100", - "x": "1249", - "y": "1992", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.6216144658765188, - "y": 0.37138428503953946 - }, - "p1": { - "x": 0.46428571428571414, - "y": -0.003992113361953182 - }, - "p2": { - "x": 0.6216144658765188, - "y": 176.15651877644132 - } - } - }, - { - "ID": "8242", - "typeID": "Arrow", - "zOrder": "25", - "w": "1", - "h": "79", - "measuredW": "150", - "measuredH": "100", - "x": "1594", - "y": "2005", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.6216144658765188, - "y": 0.37138428503953946 - }, - "p1": { - "x": 0.4642857142857142, - "y": -0.003992113361953181 - }, - "p2": { - "x": 0.6216144658765188, - "y": 78.95473383018134 - } - } - }, - { - "ID": "8243", - "typeID": "Arrow", - "zOrder": "26", - "w": "1", - "h": "91", - "measuredW": "150", - "measuredH": "100", - "x": "1594", - "y": "1853", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.6216144658765188, - "y": 0.37138428503953946 - }, - "p1": { - "x": 0.46428571428571425, - "y": -0.00399211336195318 - }, - "p2": { - "x": 0.6216144658764051, - "y": 91.38361965642662 - } - } - }, - { - "ID": "8244", - "typeID": "Arrow", - "zOrder": "27", - "w": "120", - "h": "21", - "measuredW": "150", - "measuredH": "100", - "x": "1353", - "y": "1987", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.34232291186640396, - "y": 1.0942401990550934 - }, - "p1": { - "x": 0.5661072334357016, - "y": 0.0765415136828243 - }, - "p2": { - "x": 120.81564598882255, - "y": 20.525421340499634 - } - } - }, - { - "ID": "8245", - "typeID": "Arrow", - "zOrder": "28", - "w": "133", - "h": "41", - "measuredW": "150", - "measuredH": "100", - "x": "1351", - "y": "1930", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.2485012403260498, - "y": 39.95847113370678 - }, - "p1": { - "x": 0.566555896921436, - "y": -0.11436453696156705 - }, - "p2": { - "x": 133.17894259759305, - "y": -0.19930322527852695 - } - } - }, - { - "ID": "8246", - "typeID": "Arrow", - "zOrder": "29", - "w": "234", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "1014", - "y": "1874", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 234.4139447480659, - "y": 94.66305905761055 - }, - "p1": { - "x": 0.40002625360987165, - "y": -0.14253084799159907 - }, - "p2": { - "x": -0.055641025365048336, - "y": 0.09797750258030646 - } - } - }, - { - "ID": "8247", - "typeID": "Arrow", - "zOrder": "30", - "w": "202", - "h": "168", - "measuredW": "150", - "measuredH": "100", - "x": "642", - "y": "1872", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.1610931349960083, - "y": 168.27401985167762 - }, - "p1": { - "x": 0.412358133669609, - "y": 0.0794451450189153 - }, - "p2": { - "x": 202.24537700601923, - "y": -0.1295500408418775 - } - } - }, - { - "ID": "8248", - "typeID": "Arrow", - "zOrder": "31", - "w": "175", - "h": "106", - "measuredW": "150", - "measuredH": "100", - "x": "641", - "y": "1877", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.13431894110033227, - "y": 106.27588850344023 - }, - "p1": { - "x": 0.35968221070244366, - "y": 0.08736483090006118 - }, - "p2": { - "x": 174.74631133190064, - "y": 0.05209826354348479 - } - } - }, - { - "ID": "8249", - "typeID": "Arrow", - "zOrder": "32", - "w": "153", - "h": "52", - "measuredW": "150", - "measuredH": "100", - "x": "640", - "y": "1874", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.42973101719667284, - "y": 52.277757155202835 - }, - "p1": { - "x": 0.4192218500386497, - "y": 0.08670445761401716 - }, - "p2": { - "x": 152.4288939621672, - "y": 0.46127411135080365 - } - } - }, - { - "ID": "8250", - "typeID": "Arrow", - "zOrder": "33", - "w": "181", - "h": "5", - "measuredW": "150", - "measuredH": "100", - "x": "628", - "y": "1862", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.3082755532209376, - "y": 4.708182328369503 - }, - "p1": { - "x": 0.32941176470588224, - "y": 0 - }, - "p2": { - "x": 181.26925095141905, - "y": -0.4928466496123747 - } - } - }, - { - "ID": "8251", - "typeID": "Arrow", - "zOrder": "34", - "w": "231", - "h": "140", - "measuredW": "150", - "measuredH": "100", - "x": "1018", - "y": "1721", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 230.4139447480659, - "y": 0.23935252321666667 - }, - "p1": { - "x": 0.4390975362185104, - "y": 0.17740149487865609 - }, - "p2": { - "x": -0.1694047970761403, - "y": 140.14385674161736 - } - } - }, - { - "ID": "8252", - "typeID": "Arrow", - "zOrder": "35", - "w": "149", - "h": "63", - "measuredW": "150", - "measuredH": "100", - "x": "1333", - "y": "1662", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.338881640835325, - "y": 62.7778944027807 - }, - "p1": { - "x": 0.5665558969214369, - "y": -0.11436453696156496 - }, - "p2": { - "x": 149.03500913910898, - "y": 0.21959826417150907 - } - } - }, - { - "ID": "8253", - "typeID": "Arrow", - "zOrder": "36", - "w": "170", - "h": "8", - "measuredW": "150", - "measuredH": "100", - "x": "1339", - "y": "1730", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.04461796514533489, - "y": 7.758492984310578 - }, - "p1": { - "x": 0.3294117647058822, - "y": 3.935013978350912e-18 - }, - "p2": { - "x": 169.8457074842272, - "y": 0.09829345713387738 - } - } - }, - { - "ID": "8254", - "typeID": "Arrow", - "zOrder": "37", - "w": "1", - "h": "371", - "measuredW": "150", - "measuredH": "100", - "x": "1245", - "y": "1359", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 1.6216144658764051, - "y": -0.09587076153292173 - }, - "p1": { - "x": 0.4642857142857143, - "y": -0.003992113361953182 - }, - "p2": { - "x": 1.6216144658765188, - "y": 370.71479385115344 - } - } - }, - { - "ID": "8255", - "typeID": "Arrow", - "zOrder": "38", - "w": "156", - "h": "210", - "measuredW": "150", - "measuredH": "100", - "x": "1276", - "y": "1371", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.6348487205230864, - "y": -0.09421020418116537 - }, - "p2": { - "x": 156, - "y": 210 - } - } - }, - { - "ID": "8256", - "typeID": "Arrow", - "zOrder": "39", - "w": "137", - "h": "162", - "measuredW": "150", - "measuredH": "100", - "x": "1292", - "y": "1363", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.6387375014132494, - "y": -0.10358394265031602 - }, - "p2": { - "x": 138, - "y": 162 - } - } - }, - { - "ID": "8257", - "typeID": "Arrow", - "zOrder": "40", - "w": "128", - "h": "108", - "measuredW": "150", - "measuredH": "100", - "x": "1304", - "y": "1364", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.6587147528112978, - "y": -0.08563456876037258 - }, - "p2": { - "x": 128, - "y": 108 - } - } - }, - { - "ID": "8258", - "typeID": "Arrow", - "zOrder": "41", - "w": "116", - "h": "46", - "measuredW": "150", - "measuredH": "100", - "x": "1313", - "y": "1367", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0, - "y": 0 - }, - "p1": { - "x": 0.5931585078730334, - "y": -0.04448893374823515 - }, - "p2": { - "x": 117, - "y": 46 - } - } - }, - { - "ID": "8259", - "typeID": "Arrow", - "zOrder": "42", - "w": "130", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1312", - "y": "1356", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.3082755532209376, - "y": -0.291817671630497 - }, - "p1": { - "x": 0.3294117647058823, - "y": -8.554261088609249e-19 - }, - "p2": { - "x": 130.094239896011, - "y": -0.291817671630497 - } - } - }, - { - "ID": "8260", - "typeID": "Arrow", - "zOrder": "43", - "w": "204", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "1057", - "y": "1357", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.3389972355646478, - "y": -0.09587076153297858 - }, - "p1": { - "x": 0.46428571428571414, - "y": -0.0039921133619531925 - }, - "p2": { - "x": 203.4110113025788, - "y": -0.09587076153297858 - } - } - }, - { - "ID": "8261", - "typeID": "Arrow", - "zOrder": "44", - "w": "1", - "h": "219", - "measuredW": "150", - "measuredH": "100", - "x": "950", - "y": "1142", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.6216144658764051, - "y": -0.09587076153292173 - }, - "p1": { - "x": 0.4642857142857143, - "y": -0.003992113361953179 - }, - "p2": { - "x": 0.6216144658764051, - "y": 218.8904675679646 - } - } - }, - { - "ID": "8262", - "typeID": "Arrow", - "zOrder": "45", - "w": "104", - "h": "107", - "measuredW": "150", - "measuredH": "100", - "x": "680", - "y": "1358", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 1.2585897729245517, - "y": 107.55656784440816 - }, - "p1": { - "x": 0.3880928168623461, - "y": 0.19007118424701788 - }, - "p2": { - "x": 104.52914204568219, - "y": 0.09937156059277186 - } - } - }, - { - "ID": "8263", - "typeID": "Arrow", - "zOrder": "46", - "w": "320", - "h": "110", - "measuredW": "150", - "measuredH": "100", - "x": "450", - "y": "1354", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.4023788389371248, - "y": 110.16101984072225 - }, - "p1": { - "x": 0.3090088209770084, - "y": 0.11860534092032544 - }, - "p2": { - "x": 319.1781140051372, - "y": -0.08727245046497956 - } - } - }, - { - "ID": "8264", - "typeID": "Arrow", - "zOrder": "47", - "w": "1", - "h": "112", - "measuredW": "150", - "measuredH": "100", - "x": "950", - "y": "1363", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 0.6216144658764051, - "y": -0.2602206384465262 - }, - "p1": { - "x": 0.46428571428571425, - "y": -0.0039921133619531795 - }, - "p2": { - "x": 0.6216144658764051, - "y": 111.38361965642662 - }, - "stroke": "dotted" - } - }, - { - "ID": "8265", - "typeID": "Arrow", - "zOrder": "48", - "w": "1", - "h": "74", - "measuredW": "150", - "measuredH": "100", - "x": "510", - "y": "1470", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3586399639038973, - "y": -0.14231282574201032 - }, - "p1": { - "x": 0.3294117647058821, - "y": 0 - }, - "p2": { - "x": -0.3586399639038973, - "y": 73.62391518484401 - } - } - }, - { - "ID": "8266", - "typeID": "Arrow", - "zOrder": "49", - "w": "1", - "h": "86", - "measuredW": "150", - "measuredH": "100", - "x": "951", - "y": "1473", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3586399639038973, - "y": 0.4028220835805314 - }, - "p1": { - "x": 0.3294117647058821, - "y": 0 - }, - "p2": { - "x": -0.3586399639038973, - "y": 86.62391518484401 - } - } - }, - { - "ID": "8267", - "typeID": "Arrow", - "zOrder": "50", - "w": "1", - "h": "75", - "measuredW": "150", - "measuredH": "100", - "x": "742", - "y": "1472", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3586399639038973, - "y": -0.2534288249714791 - }, - "p1": { - "x": 0.3294117647058821, - "y": 0 - }, - "p2": { - "x": -0.3586399639038973, - "y": 75.13266542301426 - } - } - }, - { - "ID": "8268", - "typeID": "Arrow", - "zOrder": "51", - "w": "2", - "h": "474", - "measuredW": "150", - "measuredH": "100", - "x": "944", - "y": "599", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": 1.6216144658764051, - "y": -0.09587076153292173 - }, - "p1": { - "x": 0.4642857142857143, - "y": -0.003992113361953179 - }, - "p2": { - "x": 1.6216144658764051, - "y": 473.50989513190007 - } - } - }, - { - "ID": "8269", - "typeID": "Arrow", - "zOrder": "52", - "w": "530", - "h": "1", - "measuredW": "150", - "measuredH": "100", - "x": "471", - "y": "1471", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.11816489567706867, - "y": -0.3907413569572782 - }, - "p1": { - "x": 0.32941176470588224, - "y": -1.0467714226850798e-18 - }, - "p2": { - "x": 530.4264062963243, - "y": -0.3907413569572782 - } - } - }, - { - "ID": "8270", - "typeID": "Arrow", - "zOrder": "53", - "w": "119", - "h": "95", - "measuredW": "150", - "measuredH": "100", - "x": "698", - "y": "1146", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.158890819897465, - "y": 94.89922302919331 - }, - "p1": { - "x": 0.3750490217438667, - "y": 0.09264020218745957 - }, - "p2": { - "x": 119.61818197196396, - "y": -0.023924999666178337 - } - } - }, - { - "ID": "8271", - "typeID": "Arrow", - "zOrder": "54", - "w": "125", - "h": "53", - "measuredW": "150", - "measuredH": "100", - "x": "688", - "y": "1140", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.4543045016012002, - "y": 53.589364727498946 - }, - "p1": { - "x": 0.3750490217438666, - "y": 0.09264020218745961 - }, - "p2": { - "x": 125.43153796090621, - "y": 0.3938829855903805 - } - } - }, - { - "ID": "8272", - "typeID": "Arrow", - "zOrder": "55", - "w": "129", - "h": "4", - "measuredW": "150", - "measuredH": "100", - "x": "690", - "y": "1128", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": -0.3326222086117241, - "y": 3.72262694836013 - }, - "p1": { - "x": 0.3294117647058824, - "y": 8.486321293555368e-18 - }, - "p2": { - "x": 129.01372997564988, - "y": -0.16604904758287375 - } - } - }, - { - "ID": "8273", - "typeID": "Arrow", - "zOrder": "56", - "w": "232", - "h": "3", - "measuredW": "150", - "measuredH": "100", - "x": "1035", - "y": "1075", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "stroke": "dotted", - "p0": { - "x": 0.373762114721103, - "y": 2.708182328369503 - }, - "p1": { - "x": 0.32941176470588235, - "y": -1.0593194675293207e-18 - }, - "p2": { - "x": 232, - "y": -0.39074135695739187 - } - } - }, - { - "ID": "8274", - "typeID": "TextArea", - "zOrder": "57", - "w": "608", - "h": "412", - "measuredW": "200", - "measuredH": "140", - "x": "1114", - "y": "873" - }, - { - "ID": "8275", - "typeID": "__group__", - "zOrder": "58", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "562", - "properties": { - "controlName": "100-clean-code-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "11728362" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "97", - "measuredH": "26", - "x": "101", - "y": "12", - "properties": { - "size": "18", - "text": "Clean Code" - } - } - ] - } - } - }, - { - "ID": "8276", - "typeID": "__group__", - "zOrder": "59", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "617", - "properties": { - "controlName": "101-programming-paradigms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "15594231" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "200", - "measuredH": "26", - "x": "50", - "y": "12", - "properties": { - "size": "18", - "text": "Programming Paradigms" - } - } - ] - } - } - }, - { - "ID": "8277", - "typeID": "__group__", - "zOrder": "60", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "671", - "properties": { - "controlName": "102-object-oriented-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "12907001" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "244", - "measuredH": "26", - "x": "28", - "y": "12", - "properties": { - "size": "18", - "text": "Object Oriented Programming" - } - } - ] - } - } - }, - { - "ID": "8278", - "typeID": "__group__", - "zOrder": "61", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "726", - "properties": { - "controlName": "103-software-design-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "15325437" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "142", - "measuredH": "26", - "x": "79", - "y": "12", - "properties": { - "size": "18", - "text": "Design Principles" - } - } - ] - } - } - }, - { - "ID": "8279", - "typeID": "__group__", - "zOrder": "62", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "781", - "properties": { - "controlName": "104-design-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16701410" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "130", - "measuredH": "26", - "x": "85", - "y": "12", - "properties": { - "size": "18", - "text": "Design Patterns" - } - } - ] - } - } - }, - { - "ID": "8280", - "typeID": "__group__", - "zOrder": "63", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "1000", - "properties": { - "controlName": "108-enterprise-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16701399" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "159", - "measuredH": "26", - "x": "70", - "y": "12", - "properties": { - "size": "18", - "text": "Enterprise Patterns" - } - } - ] - } - } - }, - { - "ID": "8281", - "typeID": "__group__", - "zOrder": "64", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "835", - "properties": { - "controlName": "105-architectural-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "13039317" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "187", - "measuredH": "26", - "x": "56", - "y": "12", - "properties": { - "size": "18", - "text": "Architectural Principles" - } - } - ] - } - } - }, - { - "ID": "8282", - "typeID": "__group__", - "zOrder": "65", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "890", - "properties": { - "controlName": "106-architectural-styles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16710847" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "155", - "measuredH": "26", - "x": "72", - "y": "12", - "properties": { - "size": "18", - "text": "Architectural Styles" - } - } - ] - } - } - }, - { - "ID": "8283", - "typeID": "__group__", - "zOrder": "66", - "measuredW": "299", - "measuredH": "50", - "w": "299", - "h": "50", - "x": "396", - "y": "945", - "properties": { - "controlName": "107-architectural-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "299", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16706504" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "175", - "measuredH": "26", - "x": "62", - "y": "12", - "properties": { - "size": "18", - "text": "Architectural Patterns" - } - } - ] - } - } - }, - { - "ID": "8284", - "typeID": "Label", - "zOrder": "67", - "measuredW": "196", - "measuredH": "32", - "x": "448", - "y": "515", - "properties": { - "size": "24", - "text": "Minimap of Topics" - } - }, - { - "ID": "8285", - "typeID": "Label", - "zOrder": "68", - "measuredW": "395", - "measuredH": "36", - "x": "787", - "y": "540", - "properties": { - "size": "28", - "text": "Software Design & Architecture" - } - }, - { - "ID": "8286", - "typeID": "__group__", - "zOrder": "69", - "measuredW": "391", - "measuredH": "55", - "w": "391", - "h": "55", - "x": "789", - "y": "658", - "properties": { - "controlName": "ext_link:roadmap.sh/backend" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "391", - "h": "55", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "4273622", - "borderColor": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "316", - "measuredH": "28", - "x": "38", - "y": "14", - "properties": { - "size": "20", - "color": "16777215", - "text": "Visit Backend Developer Roadmap" - } - } - ] - } - } - }, - { - "ID": "8287", - "typeID": "__group__", - "zOrder": "70", - "measuredW": "249", - "measuredH": "50", - "w": "249", - "h": "50", - "x": "804", - "y": "1053", - "properties": { - "controlName": "100-clean-code-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "249", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "182", - "measuredH": "26", - "x": "34", - "y": "12", - "properties": { - "size": "18", - "text": "Clean Code Principles" - } - } - ] - } - } - }, - { - "ID": "8288", - "typeID": "Arrow", - "zOrder": "71", - "w": "1", - "h": "64", - "measuredW": "150", - "measuredH": "100", - "x": "946", - "y": "456", - "properties": { - "color": "2848996", - "direction": "bottom", - "leftArrow": "false", - "rightArrow": "false", - "p0": { - "x": -0.3586399639038973, - "y": 0 - }, - "p1": { - "x": 0.32941176470588224, - "y": 0 - }, - "p2": { - "x": -0.3586399639038973, - "y": 64 - }, - "stroke": "dotted" - } - }, - { - "ID": "8289", - "typeID": "__group__", - "zOrder": "72", - "measuredW": "249", - "measuredH": "50", - "w": "249", - "h": "50", - "x": "804", - "y": "1108", - "properties": { - "controlName": "101-programming-paradigms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "249", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "200", - "measuredH": "26", - "x": "25", - "y": "12", - "properties": { - "size": "18", - "text": "Programming Paradigms" - } - } - ] - } - } - }, - { - "ID": "8290", - "typeID": "__group__", - "zOrder": "73", - "measuredW": "193", - "measuredH": "50", - "w": "193", - "h": "50", - "x": "1127", - "y": "886", - "properties": { - "controlName": "101-clean-code-principles:be-consistent" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "193", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "115", - "measuredH": "26", - "x": "39", - "y": "12", - "properties": { - "size": "18", - "text": "Be Consistent" - } - } - ] - } - } - }, - { - "ID": "8291", - "typeID": "__group__", - "zOrder": "74", - "measuredW": "382", - "measuredH": "50", - "w": "382", - "h": "50", - "x": "1324", - "y": "886", - "properties": { - "controlName": "102-clean-code-principles:meaningful-names" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "382", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "284", - "measuredH": "26", - "x": "49", - "y": "12", - "properties": { - "size": "18", - "text": "Meaningful names over Comments" - } - } - ] - } - } - }, - { - "ID": "8292", - "typeID": "__group__", - "zOrder": "75", - "measuredW": "258", - "measuredH": "50", - "w": "258", - "h": "50", - "x": "1127", - "y": "941", - "properties": { - "controlName": "103-clean-code-principles:indentation-and-code-style" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "258", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "221", - "measuredH": "26", - "x": "21", - "y": "12", - "properties": { - "size": "18", - "text": "Indentation and Code Style" - } - } - ] - } - } - }, - { - "ID": "8293", - "typeID": "__group__", - "zOrder": "76", - "measuredW": "312", - "measuredH": "50", - "w": "312", - "h": "50", - "x": "1394", - "y": "941", - "properties": { - "controlName": "104-clean-code-principles:keep-it-small" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "312", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "275", - "measuredH": "26", - "x": "21", - "y": "12", - "properties": { - "size": "18", - "text": "Keep methods, classes, files small" - } - } - ] - } - } - }, - { - "ID": "8294", - "typeID": "__group__", - "zOrder": "77", - "measuredW": "155", - "measuredH": "50", - "w": "155", - "h": "50", - "x": "1128", - "y": "997", - "properties": { - "controlName": "105-clean-code-principles:pure-functions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "155", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "118", - "measuredH": "26", - "x": "19", - "y": "12", - "properties": { - "size": "18", - "text": "Pure functions" - } - } - ] - } - } - }, - { - "ID": "8295", - "typeID": "__group__", - "zOrder": "78", - "measuredW": "416", - "measuredH": "50", - "w": "416", - "h": "50", - "x": "1290", - "y": "997", - "properties": { - "controlName": "106-clean-code-principles:minimize-cyclomatic-complexity" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "416", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "253", - "measuredH": "26", - "x": "81", - "y": "12", - "properties": { - "size": "18", - "text": "Minimize cyclomatic complexity" - } - } - ] - } - } - }, - { - "ID": "8296", - "typeID": "__group__", - "zOrder": "79", - "measuredW": "273", - "measuredH": "50", - "w": "273", - "h": "50", - "x": "1128", - "y": "1052", - "properties": { - "controlName": "107-clean-code-principles:avoid-passing-nulls-booleans" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "273", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "236", - "measuredH": "26", - "x": "19", - "y": "12", - "properties": { - "size": "18", - "text": "Avoid passing nulls, booleans" - } - } - ] - } - } - }, - { - "ID": "8297", - "typeID": "__group__", - "zOrder": "80", - "measuredW": "298", - "measuredH": "50", - "w": "298", - "h": "50", - "x": "1408", - "y": "1052", - "properties": { - "controlName": "108-clean-code-principles:keep-framework-code-distant" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "298", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "239", - "measuredH": "26", - "x": "29", - "y": "12", - "properties": { - "size": "18", - "text": "Keep framework code distant" - } - } - ] - } - } - }, - { - "ID": "8298", - "typeID": "__group__", - "zOrder": "81", - "measuredW": "223", - "measuredH": "50", - "w": "223", - "h": "50", - "x": "1128", - "y": "1108", - "properties": { - "controlName": "109-clean-code-principles:use-correct-constructs" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "223", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "186", - "measuredH": "26", - "x": "19", - "y": "12", - "properties": { - "size": "18", - "text": "Use correct constructs" - } - } - ] - } - } - }, - { - "ID": "8299", - "typeID": "__group__", - "zOrder": "82", - "measuredW": "349", - "measuredH": "50", - "w": "349", - "h": "50", - "x": "1357", - "y": "1108", - "properties": { - "controlName": "110-clean-code-principles:keep-tests-independent" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "349", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "305", - "measuredH": "26", - "x": "22", - "y": "12", - "properties": { - "size": "18", - "text": "Tests should be fast and independent" - } - } - ] - } - } - }, - { - "ID": "8300", - "typeID": "__group__", - "zOrder": "83", - "measuredW": "222", - "measuredH": "50", - "w": "222", - "h": "50", - "x": "1128", - "y": "1164", - "properties": { - "controlName": "111-clean-code-principles:use-meaningful-names" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "222", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "188", - "measuredH": "26", - "x": "17", - "y": "12", - "properties": { - "size": "18", - "text": "Use meaningful names" - } - } - ] - } - } - }, - { - "ID": "8301", - "typeID": "__group__", - "zOrder": "84", - "measuredW": "351", - "measuredH": "50", - "w": "351", - "h": "50", - "x": "1355", - "y": "1164", - "properties": { - "controlName": "112-clean-code-principles:code-by-actor" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "351", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "324", - "measuredH": "26", - "x": "14", - "y": "12", - "properties": { - "size": "18", - "text": "Organize code by the actor it belongs to" - } - } - ] - } - } - }, - { - "ID": "8302", - "typeID": "__group__", - "zOrder": "85", - "measuredW": "266", - "measuredH": "50", - "w": "266", - "h": "50", - "x": "1128", - "y": "1219", - "properties": { - "controlName": "113-clean-code-principles:command-query-separation" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "266", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "230", - "measuredH": "26", - "x": "18", - "y": "12", - "properties": { - "size": "18", - "text": "Command Query Separation" - } - } - ] - } - } - }, - { - "ID": "8303", - "typeID": "__group__", - "zOrder": "86", - "measuredW": "306", - "measuredH": "50", - "w": "306", - "h": "50", - "x": "1400", - "y": "1219", - "properties": { - "controlName": "114-clean-code-principles:avoid-hasty-abstractions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "306", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "267", - "measuredH": "26", - "x": "19", - "y": "12", - "properties": { - "size": "18", - "text": "Keep it simple and refactor often" - } - } - ] - } - } - }, - { - "ID": "8308", - "typeID": "__group__", - "zOrder": "88", - "measuredW": "312", - "measuredH": "50", - "w": "312", - "h": "50", - "x": "396", - "y": "1104", - "properties": { - "controlName": "100-programming-paradigms:structured-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "312", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "199", - "measuredH": "26", - "x": "56", - "y": "12", - "properties": { - "size": "18", - "text": "Structured Programming" - } - } - ] - } - } - }, - { - "ID": "8309", - "typeID": "__group__", - "zOrder": "89", - "measuredW": "312", - "measuredH": "50", - "w": "312", - "h": "50", - "x": "396", - "y": "1159", - "properties": { - "controlName": "101-programming-paradigms:functional-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "312", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "199", - "measuredH": "26", - "x": "56", - "y": "12", - "properties": { - "size": "18", - "text": "Functional Programming" - } - } - ] - } - } - }, - { - "ID": "8310", - "typeID": "__group__", - "zOrder": "90", - "measuredW": "312", - "measuredH": "50", - "w": "312", - "h": "50", - "x": "396", - "y": "1214", - "properties": { - "controlName": "102-programming-paradigms:object-oriented-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "312", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "244", - "measuredH": "26", - "x": "34", - "y": "12", - "properties": { - "size": "18", - "text": "Object Oriented Programming" - } - } - ] - } - } - }, - { - "ID": "8311", - "typeID": "__group__", - "zOrder": "91", - "measuredW": "305", - "measuredH": "50", - "w": "305", - "h": "50", - "x": "754", - "y": "1333", - "properties": { - "controlName": "102-object-oriented-programming" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "305", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "w": "244", - "measuredW": "244", - "measuredH": "26", - "x": "27", - "y": "12", - "properties": { - "text": "Object Oriented Programming", - "size": "18" - } - } - ] - } - } - }, - { - "ID": "8312", - "typeID": "__group__", - "zOrder": "92", - "measuredW": "185", - "measuredH": "50", - "w": "185", - "h": "50", - "x": "859", - "y": "1447", - "properties": { - "controlName": "100-object-oriented-programming:primary-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "185", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "146", - "measuredH": "26", - "x": "20", - "y": "12", - "properties": { - "size": "18", - "text": "Primary Principles" - } - } - ] - } - } - }, - { - "ID": "8313", - "typeID": "__group__", - "zOrder": "93", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "858", - "y": "1540", - "properties": { - "controlName": "100-object-oriented-programming:primary-principles:inheritance" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "94", - "measuredH": "26", - "x": "47", - "y": "12", - "properties": { - "size": "18", - "text": "Inheritance" - } - } - ] - } - } - }, - { - "ID": "8314", - "typeID": "__group__", - "zOrder": "94", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "858", - "y": "1594", - "properties": { - "controlName": "101-object-oriented-programming:primary-principles:polymorphism" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "113", - "measuredH": "26", - "x": "37", - "y": "12", - "properties": { - "size": "18", - "text": "Polymorphism" - } - } - ] - } - } - }, - { - "ID": "8315", - "typeID": "__group__", - "zOrder": "95", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "858", - "y": "1649", - "properties": { - "controlName": "102-object-oriented-programming:primary-principles:abstraction" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "92", - "measuredH": "26", - "x": "48", - "y": "12", - "properties": { - "size": "18", - "text": "Abstraction" - } - } - ] - } - } - }, - { - "ID": "8316", - "typeID": "__group__", - "zOrder": "96", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "858", - "y": "1703", - "properties": { - "controlName": "103-object-oriented-programming:primary-principles:encapsulation" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "116", - "measuredH": "26", - "x": "36", - "y": "12", - "properties": { - "size": "18", - "text": "Encapsulation" - } - } - ] - } - } - }, - { - "ID": "8317", - "typeID": "__group__", - "zOrder": "97", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "647", - "y": "1446", - "properties": { - "controlName": "101-object-oriented-programming:paradigm-features" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "154", - "measuredH": "26", - "x": "17", - "y": "12", - "properties": { - "size": "18", - "text": "Paradigm Features" - } - } - ] - } - } - }, - { - "ID": "8318", - "typeID": "__group__", - "zOrder": "98", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "647", - "y": "1539", - "properties": { - "controlName": "100-object-oriented-programming:paradigm-features:abstract-classes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "137", - "measuredH": "26", - "x": "25", - "y": "12", - "properties": { - "size": "18", - "text": "Abstract Classes" - } - } - ] - } - } - }, - { - "ID": "8319", - "typeID": "__group__", - "zOrder": "99", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "647", - "y": "1594", - "properties": { - "controlName": "101-object-oriented-programming:paradigm-features:concrete-classes" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "145", - "measuredH": "26", - "x": "21", - "y": "12", - "properties": { - "size": "18", - "text": "Concrete Classes" - } - } - ] - } - } - }, - { - "ID": "8320", - "typeID": "__group__", - "zOrder": "100", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "647", - "y": "1648", - "properties": { - "controlName": "102-object-oriented-programming:paradigm-features:scope-visibility" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "134", - "measuredH": "26", - "x": "27", - "y": "12", - "properties": { - "size": "18", - "text": "Scope / Visibility" - } - } - ] - } - } - }, - { - "ID": "8321", - "typeID": "__group__", - "zOrder": "101", - "measuredW": "187", - "measuredH": "50", - "w": "187", - "h": "50", - "x": "647", - "y": "1702", - "properties": { - "controlName": "103-object-oriented-programming:paradigm-features:interfaces" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "187", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "83", - "measuredH": "26", - "x": "52", - "y": "12", - "properties": { - "size": "18", - "text": "Interfaces" - } - } - ] - } - } - }, - { - "ID": "8322", - "typeID": "__group__", - "zOrder": "102", - "measuredW": "235", - "measuredH": "50", - "w": "235", - "h": "50", - "x": "393", - "y": "1446", - "properties": { - "controlName": "102-object-oriented-programming:model-driven-design" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "235", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "172", - "measuredH": "26", - "x": "32", - "y": "12", - "properties": { - "size": "18", - "text": "Model-Driven Design" - } - } - ] - } - } - }, - { - "ID": "8323", - "typeID": "__group__", - "zOrder": "103", - "measuredW": "234", - "measuredH": "50", - "w": "234", - "h": "50", - "x": "394", - "y": "1539", - "properties": { - "controlName": "100-object-oriented-programming:model-driven-design:domain-models" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "234", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "128", - "measuredH": "26", - "x": "53", - "y": "12", - "properties": { - "size": "18", - "text": "Domain Models" - } - } - ] - } - } - }, - { - "ID": "8324", - "typeID": "__group__", - "zOrder": "104", - "measuredW": "234", - "measuredH": "50", - "w": "234", - "h": "50", - "x": "394", - "y": "1594", - "properties": { - "controlName": "101-object-oriented-programming:model-driven-design:anemic-models" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "234", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "126", - "measuredH": "26", - "x": "54", - "y": "12", - "properties": { - "size": "18", - "text": "Anemic Models" - } - } - ] - } - } - }, - { - "ID": "8325", - "typeID": "__group__", - "zOrder": "105", - "measuredW": "234", - "measuredH": "50", - "w": "234", - "h": "50", - "x": "394", - "y": "1648", - "properties": { - "controlName": "102-object-oriented-programming:model-driven-design:layered-architectures" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "234", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "178", - "measuredH": "26", - "x": "28", - "y": "12", - "properties": { - "size": "18", - "text": "Layered Architectures" - } - } - ] - } - } - }, - { - "ID": "8326", - "typeID": "__group__", - "zOrder": "106", - "measuredW": "234", - "measuredH": "50", - "w": "234", - "h": "50", - "x": "394", - "y": "1703", - "properties": { - "controlName": "103-object-oriented-programming:model-driven-design:domain-language" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "234", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "150", - "measuredH": "26", - "x": "42", - "y": "12", - "properties": { - "size": "18", - "text": "Domain Language" - } - } - ] - } - } - }, - { - "ID": "8327", - "typeID": "__group__", - "zOrder": "107", - "measuredW": "234", - "measuredH": "50", - "w": "234", - "h": "50", - "x": "394", - "y": "1758", - "properties": { - "controlName": "104-object-oriented-programming:model-driven-design:class-invariants" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "234", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "130", - "measuredH": "26", - "x": "52", - "y": "12", - "properties": { - "size": "18", - "text": "Class Invariants" - } - } - ] - } - } - }, - { - "ID": "8328", - "typeID": "__group__", - "zOrder": "108", - "measuredW": "205", - "measuredH": "50", - "w": "205", - "h": "50", - "x": "1148", - "y": "1333", - "properties": { - "controlName": "103-software-design-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "205", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "142", - "measuredH": "26", - "x": "32", - "y": "12", - "properties": { - "text": "Design Principles", - "size": "18" - } - } - ] - } - } - }, - { - "ID": "8329", - "typeID": "__group__", - "zOrder": "109", - "measuredW": "306", - "measuredH": "50", - "w": "306", - "h": "50", - "x": "1416", - "y": "1333", - "properties": { - "controlName": "100-software-design-principles:composition-over-inheritance" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "306", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "241", - "measuredH": "26", - "x": "32", - "y": "12", - "properties": { - "size": "18", - "text": "Composition over Inheritance" - } - } - ] - } - } - }, - { - "ID": "8330", - "typeID": "__group__", - "zOrder": "110", - "measuredW": "306", - "measuredH": "50", - "w": "306", - "h": "50", - "x": "1416", - "y": "1388", - "properties": { - "controlName": "101-software-design-principles:encapsulate-what-varies" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "306", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "198", - "measuredH": "26", - "x": "54", - "y": "12", - "properties": { - "size": "18", - "text": "Encapsulate what varies" - } - } - ] - } - } - }, - { - "ID": "8331", - "typeID": "__group__", - "zOrder": "111", - "measuredW": "306", - "measuredH": "50", - "w": "306", - "h": "50", - "x": "1416", - "y": "1444", - "properties": { - "controlName": "102-software-design-principles:program-against-abstractions" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "306", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "239", - "measuredH": "26", - "x": "33", - "y": "12", - "properties": { - "size": "18", - "text": "Program against abstractions" - } - } - ] - } - } - }, - { - "ID": "8332", - "typeID": "__group__", - "zOrder": "112", - "measuredW": "306", - "measuredH": "50", - "w": "306", - "h": "50", - "x": "1416", - "y": "1500", - "properties": { - "controlName": "103-software-design-principles:hollywood-principle" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "306", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "158", - "measuredH": "26", - "x": "74", - "y": "12", - "properties": { - "size": "18", - "text": "Hollywood principle" - } - } - ] - } - } - }, - { - "ID": "8333", - "typeID": "__group__", - "zOrder": "113", - "measuredW": "108", - "measuredH": "50", - "w": "108", - "h": "50", - "x": "1416", - "y": "1556", - "properties": { - "controlName": "104-software-design-principles:solid" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "108", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "54", - "measuredH": "26", - "x": "27", - "y": "12", - "properties": { - "size": "18", - "text": "SOLID" - } - } - ] - } - } - }, - { - "ID": "8334", - "typeID": "__group__", - "zOrder": "114", - "measuredW": "86", - "measuredH": "50", - "w": "86", - "h": "50", - "x": "1533", - "y": "1556", - "properties": { - "controlName": "105-software-design-principles:dry" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "86", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "37", - "measuredH": "26", - "x": "24", - "y": "12", - "properties": { - "size": "18", - "text": "DRY" - } - } - ] - } - } - }, - { - "ID": "8335", - "typeID": "__group__", - "zOrder": "115", - "measuredW": "94", - "measuredH": "50", - "w": "94", - "h": "50", - "x": "1628", - "y": "1556", - "properties": { - "controlName": "106-software-design-principles:yagni" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "94", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "53", - "measuredH": "26", - "x": "20", - "y": "12", - "properties": { - "size": "18", - "text": "YAGNI" - } - } - ] - } - } - }, - { - "ID": "8336", - "typeID": "__group__", - "zOrder": "116", - "measuredW": "205", - "measuredH": "50", - "w": "205", - "h": "50", - "x": "1148", - "y": "1702", - "properties": { - "controlName": "104-design-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "205", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "130", - "measuredH": "26", - "x": "38", - "y": "12", - "properties": { - "size": "18", - "text": "Design Patterns" - } - } - ] - } - } - }, - { - "ID": "8337", - "typeID": "__group__", - "zOrder": "117", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "1644", - "properties": { - "controlName": "100-design-patterns:gof-design-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "170", - "measuredH": "26", - "x": "42", - "y": "12", - "properties": { - "size": "18", - "text": "GoF Design Patterns" - } - } - ] - } - } - }, - { - "ID": "8338", - "typeID": "__group__", - "zOrder": "118", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "1698", - "properties": { - "controlName": "101-design-patterns:posa-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "116", - "measuredH": "26", - "x": "69", - "y": "12", - "properties": { - "size": "18", - "text": "PoSA Patterns" - } - } - ] - } - } - }, - { - "ID": "8339", - "typeID": "__group__", - "zOrder": "119", - "measuredW": "263", - "measuredH": "50", - "w": "263", - "h": "50", - "x": "771", - "y": "1843", - "properties": { - "controlName": "105-architectural-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "263", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "187", - "measuredH": "26", - "x": "38", - "y": "12", - "properties": { - "size": "18", - "text": "Architectural Principles" - } - } - ] - } - } - }, - { - "ID": "8340", - "typeID": "__group__", - "zOrder": "120", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "1898", - "properties": { - "controlName": "101-architectural-principles:policy-vs-detail" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "121", - "measuredH": "26", - "x": "73", - "y": "12", - "properties": { - "size": "18", - "text": "Policy vs Detail" - } - } - ] - } - } - }, - { - "ID": "8341", - "typeID": "__group__", - "zOrder": "121", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "1843", - "properties": { - "controlName": "100-architectural-principles:component-principles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "180", - "measuredH": "26", - "x": "44", - "y": "12", - "properties": { - "size": "18", - "text": "Component Principles" - } - } - ] - } - } - }, - { - "ID": "8342", - "typeID": "__group__", - "zOrder": "122", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "1952", - "properties": { - "controlName": "102-architectural-principles:coupling-and-cohesion" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "190", - "measuredH": "26", - "x": "39", - "y": "12", - "properties": { - "size": "18", - "text": "Coupling and Cohesion" - } - } - ] - } - } - }, - { - "ID": "8343", - "typeID": "__group__", - "zOrder": "123", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2007", - "properties": { - "controlName": "103-architectural-principles:boundaries" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "94", - "measuredH": "26", - "x": "87", - "y": "12", - "properties": { - "size": "18", - "text": "Boundaries" - } - } - ] - } - } - }, - { - "ID": "8344", - "typeID": "__group__", - "zOrder": "124", - "measuredW": "228", - "measuredH": "50", - "w": "228", - "h": "50", - "x": "1148", - "y": "1955", - "properties": { - "controlName": "106-architectural-styles" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "228", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "155", - "measuredH": "26", - "x": "36", - "y": "12", - "properties": { - "size": "18", - "text": "Architectural Styles" - } - } - ] - } - } - }, - { - "ID": "8345", - "typeID": "__group__", - "zOrder": "125", - "measuredW": "228", - "measuredH": "50", - "w": "228", - "h": "50", - "x": "1148", - "y": "2057", - "properties": { - "controlName": "102-architectural-styles:structural" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "228", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "79", - "measuredH": "26", - "x": "74", - "y": "12", - "properties": { - "size": "18", - "text": "Structural" - } - } - ] - } - } - }, - { - "ID": "8346", - "typeID": "__group__", - "zOrder": "126", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "1916", - "properties": { - "controlName": "100-architectural-styles:messaging" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "26", - "x": "82", - "y": "12", - "properties": { - "size": "18", - "text": "Messaging" - } - } - ] - } - } - }, - { - "ID": "8347", - "typeID": "__group__", - "zOrder": "127", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "1981", - "properties": { - "controlName": "101-architectural-styles:distributed" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "89", - "measuredH": "26", - "x": "82", - "y": "12", - "properties": { - "size": "18", - "text": "Distributed" - } - } - ] - } - } - }, - { - "ID": "8348", - "typeID": "__group__", - "zOrder": "128", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "1777", - "properties": { - "controlName": "101-architectural-styles:messaging:event-driven" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "106", - "measuredH": "26", - "x": "74", - "y": "12", - "properties": { - "size": "18", - "text": "Event-Driven" - } - } - ] - } - } - }, - { - "ID": "8349", - "typeID": "__group__", - "zOrder": "129", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "1833", - "properties": { - "controlName": "100-architectural-styles:messaging:publish-subscribe" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "147", - "measuredH": "26", - "x": "53", - "y": "12", - "properties": { - "size": "18", - "text": "Publish-Subscribe" - } - } - ] - } - } - }, - { - "ID": "8350", - "typeID": "__group__", - "zOrder": "130", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "2055", - "properties": { - "controlName": "100-architectural-styles:distributed:client-server" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "108", - "measuredH": "26", - "x": "73", - "y": "12", - "properties": { - "size": "18", - "text": "Client-Server" - } - } - ] - } - } - }, - { - "ID": "8351", - "typeID": "__group__", - "zOrder": "131", - "measuredW": "254", - "measuredH": "50", - "w": "254", - "h": "50", - "x": "1468", - "y": "2111", - "properties": { - "controlName": "101-architectural-styles:distributed:peer-to-peer" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "254", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "106", - "measuredH": "26", - "x": "74", - "y": "12", - "properties": { - "size": "18", - "text": "Peer-to-Peer" - } - } - ] - } - } - }, - { - "ID": "8352", - "typeID": "__group__", - "zOrder": "132", - "measuredW": "228", - "measuredH": "50", - "w": "228", - "h": "50", - "x": "1149", - "y": "2148", - "properties": { - "controlName": "100-architectural-styles:structural:component-based" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "228", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "155", - "measuredH": "26", - "x": "36", - "y": "12", - "properties": { - "size": "18", - "text": "Component-Based" - } - } - ] - } - } - }, - { - "ID": "8353", - "typeID": "__group__", - "zOrder": "133", - "measuredW": "228", - "measuredH": "50", - "w": "228", - "h": "50", - "x": "1149", - "y": "2203", - "properties": { - "controlName": "101-architectural-styles:structural:monolithic" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "228", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "84", - "measuredH": "26", - "x": "72", - "y": "12", - "properties": { - "size": "18", - "text": "Monolithic" - } - } - ] - } - } - }, - { - "ID": "8354", - "typeID": "__group__", - "zOrder": "134", - "measuredW": "228", - "measuredH": "50", - "w": "228", - "h": "50", - "x": "1149", - "y": "2258", - "properties": { - "controlName": "102-architectural-styles:structural:layered" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "228", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "65", - "measuredH": "26", - "x": "81", - "y": "12", - "properties": { - "size": "18", - "text": "Layered" - } - } - ] - } - } - }, - { - "ID": "8355", - "typeID": "__group__", - "zOrder": "135", - "measuredW": "263", - "measuredH": "50", - "w": "263", - "h": "50", - "x": "741", - "y": "2148", - "properties": { - "controlName": "107-architectural-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "263", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "175", - "measuredH": "26", - "x": "44", - "y": "12", - "properties": { - "size": "18", - "text": "Architectural Patterns" - } - } - ] - } - } - }, - { - "ID": "8356", - "typeID": "__group__", - "zOrder": "136", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2133", - "properties": { - "controlName": "103-architectural-patterns:model-view-controller" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "180", - "measuredH": "26", - "x": "44", - "y": "12", - "properties": { - "size": "18", - "text": "Model-View Controller" - } - } - ] - } - } - }, - { - "ID": "8357", - "typeID": "__group__", - "zOrder": "137", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2079", - "properties": { - "controlName": "102-architectural-patterns:domain-driven-design" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "184", - "measuredH": "26", - "x": "42", - "y": "12", - "properties": { - "size": "18", - "text": "Domain-Driven Design" - } - } - ] - } - } - }, - { - "ID": "8358", - "typeID": "__group__", - "zOrder": "138", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2187", - "properties": { - "controlName": "104-architectural-patterns:microservices" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "114", - "measuredH": "26", - "x": "77", - "y": "12", - "properties": { - "size": "18", - "text": "Microservices" - } - } - ] - } - } - }, - { - "ID": "8359", - "typeID": "__group__", - "zOrder": "139", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2242", - "properties": { - "controlName": "105-architectural-patterns:blackboard-pattern" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "156", - "measuredH": "26", - "x": "56", - "y": "12", - "properties": { - "size": "18", - "text": "Blackboard Pattern" - } - } - ] - } - } - }, - { - "ID": "8360", - "typeID": "__group__", - "zOrder": "140", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2298", - "properties": { - "controlName": "106-architectural-patterns:microkernel" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "97", - "measuredH": "26", - "x": "85", - "y": "12", - "properties": { - "size": "18", - "text": "Microkernel" - } - } - ] - } - } - }, - { - "ID": "8361", - "typeID": "__group__", - "zOrder": "141", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2354", - "properties": { - "controlName": "107-architectural-patterns:serverless-architecture" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "190", - "measuredH": "26", - "x": "39", - "y": "12", - "properties": { - "size": "18", - "text": "Serverless Architecture" - } - } - ] - } - } - }, - { - "ID": "8362", - "typeID": "__group__", - "zOrder": "142", - "measuredW": "138", - "measuredH": "50", - "w": "138", - "h": "50", - "x": "743", - "y": "2048", - "properties": { - "controlName": "100-architectural-patterns:cqrs" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "138", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "51", - "measuredH": "26", - "x": "43", - "y": "12", - "properties": { - "size": "18", - "text": "CQRS" - } - } - ] - } - } - }, - { - "ID": "8363", - "typeID": "__group__", - "zOrder": "143", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2464", - "properties": { - "controlName": "109-architectural-patterns:event-sourcing" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "123", - "measuredH": "26", - "x": "72", - "y": "12", - "properties": { - "size": "18", - "text": "Event Sourcing" - } - } - ] - } - } - }, - { - "ID": "8364", - "typeID": "__group__", - "zOrder": "144", - "measuredW": "267", - "measuredH": "50", - "w": "267", - "h": "50", - "x": "394", - "y": "2409", - "properties": { - "controlName": "108-architectural-patterns:message-queues-streams" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "267", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "230", - "measuredH": "26", - "x": "19", - "y": "12", - "properties": { - "size": "18", - "text": "Message Queues / Streams" - } - } - ] - } - } - }, - { - "ID": "8365", - "typeID": "__group__", - "zOrder": "145", - "measuredW": "138", - "measuredH": "50", - "w": "138", - "h": "50", - "x": "743", - "y": "1994", - "properties": { - "controlName": "101-architectural-patterns:soa" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "138", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "36", - "measuredH": "26", - "x": "51", - "y": "12", - "properties": { - "size": "18", - "text": "SOA" - } - } - ] - } - } - }, - { - "ID": "8366", - "typeID": "__group__", - "zOrder": "146", - "measuredW": "233", - "measuredH": "50", - "w": "233", - "h": "50", - "x": "1144", - "y": "2435", - "properties": { - "controlName": "108-enterprise-patterns" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "233", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16776960" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "159", - "measuredH": "26", - "x": "37", - "y": "12", - "properties": { - "size": "18", - "text": "Enterprise Patterns" - } - } - ] - } - } - }, - { - "ID": "8367", - "typeID": "__group__", - "zOrder": "147", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2216", - "properties": { - "controlName": "100-enterprise-patterns:dtos" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "26", - "x": "93", - "y": "12", - "properties": { - "size": "18", - "text": "DTOs" - } - } - ] - } - } - }, - { - "ID": "8368", - "typeID": "__group__", - "zOrder": "148", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2271", - "properties": { - "controlName": "101-enterprise-patterns:identity-maps" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "109", - "measuredH": "26", - "x": "61", - "y": "12", - "properties": { - "size": "18", - "text": "Identity Maps" - } - } - ] - } - } - }, - { - "ID": "8369", - "typeID": "__group__", - "zOrder": "149", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2326", - "properties": { - "controlName": "102-enterprise-patterns:use-cases" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "90", - "measuredH": "26", - "x": "71", - "y": "12", - "properties": { - "size": "18", - "text": "Use Cases" - } - } - ] - } - } - }, - { - "ID": "8370", - "typeID": "__group__", - "zOrder": "150", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2381", - "properties": { - "controlName": "103-enterprise-patterns:repositories" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "104", - "measuredH": "26", - "x": "64", - "y": "12", - "properties": { - "size": "18", - "text": "Repositories" - } - } - ] - } - } - }, - { - "ID": "8371", - "typeID": "__group__", - "zOrder": "151", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2436", - "properties": { - "controlName": "104-enterprise-patterns:mappers" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "73", - "measuredH": "26", - "x": "79", - "y": "12", - "properties": { - "size": "18", - "text": "Mappers" - } - } - ] - } - } - }, - { - "ID": "8372", - "typeID": "__group__", - "zOrder": "152", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2491", - "properties": { - "controlName": "105-enterprise-patterns:transaction-script" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "147", - "measuredH": "26", - "x": "42", - "y": "12", - "properties": { - "size": "18", - "text": "Transaction Script" - } - } - ] - } - } - }, - { - "ID": "8373", - "typeID": "__group__", - "zOrder": "153", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2546", - "properties": { - "controlName": "106-enterprise-patterns:commands-queries" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "176", - "measuredH": "26", - "x": "28", - "y": "12", - "properties": { - "size": "18", - "text": "Commands / Queries" - } - } - ] - } - } - }, - { - "ID": "8374", - "typeID": "__group__", - "zOrder": "154", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2601", - "properties": { - "controlName": "107-enterprise-patterns:value-objects" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "112", - "measuredH": "26", - "x": "60", - "y": "12", - "properties": { - "size": "18", - "text": "Value Objects" - } - } - ] - } - } - }, - { - "ID": "8375", - "typeID": "__group__", - "zOrder": "155", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2656", - "properties": { - "controlName": "108-enterprise-patterns:domain-models" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "128", - "measuredH": "26", - "x": "52", - "y": "12", - "properties": { - "size": "18", - "text": "Domain Models" - } - } - ] - } - } - }, - { - "ID": "8376", - "typeID": "__group__", - "zOrder": "156", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2711", - "properties": { - "controlName": "109-enterprise-patterns:entities" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "62", - "measuredH": "26", - "x": "85", - "y": "12", - "properties": { - "size": "18", - "text": "Entities" - } - } - ] - } - } - }, - { - "ID": "8377", - "typeID": "__group__", - "zOrder": "157", - "measuredW": "232", - "measuredH": "50", - "w": "232", - "h": "50", - "x": "1490", - "y": "2766", - "properties": { - "controlName": "110-enterprise-patterns:orms" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "232", - "h": "50", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "16770457" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "51", - "measuredH": "26", - "x": "90", - "y": "12", - "properties": { - "size": "18", - "text": "ORMs" - } - } - ] - } - } - }, - { - "ID": "8378", - "typeID": "__group__", - "zOrder": "158", - "measuredW": "391", - "measuredH": "55", - "w": "391", - "h": "55", - "x": "859", - "y": "2652", - "properties": { - "controlName": "ext_link:roadmap.sh/backend" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "TextArea", - "zOrder": "0", - "w": "391", - "h": "55", - "measuredW": "200", - "measuredH": "140", - "x": "0", - "y": "0", - "properties": { - "color": "4273622", - "borderColor": "4273622" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "316", - "measuredH": "28", - "x": "38", - "y": "14", - "properties": { - "size": "20", - "color": "16777215", - "text": "Visit Backend Developer Roadmap" - } - } - ] - } - } - }, - { - "ID": "8379", - "typeID": "Canvas", - "zOrder": "159", - "w": "388", - "h": "177", - "measuredW": "100", - "measuredH": "70", - "x": "394", - "y": "2574" - }, - { - "ID": "8380", - "typeID": "Label", - "zOrder": "160", - "measuredW": "235", - "measuredH": "32", - "x": "422", - "y": "2600", - "properties": { - "size": "24", - "text": "Note on Listed Topics" - } - }, - { - "ID": "8381", - "typeID": "Label", - "zOrder": "161", - "measuredW": "304", - "measuredH": "25", - "x": "423", - "y": "2637", - "properties": { - "size": "17", - "text": "The roadmap is not an exhaustive list of" - } - }, - { - "ID": "8382", - "typeID": "Label", - "zOrder": "162", - "measuredW": "324", - "measuredH": "25", - "x": "423", - "y": "2664", - "properties": { - "size": "17", - "text": "topics. It’s just some of the most important" - } - }, - { - "ID": "8383", - "typeID": "Label", - "zOrder": "163", - "measuredW": "216", - "measuredH": "25", - "x": "423", - "y": "2691", - "properties": { - "size": "17", - "text": "Topics under each category." - } - }, - { - "ID": "8387", - "typeID": "__group__", - "zOrder": "87", - "measuredW": "463", - "measuredH": "141", - "w": "463", - "h": "141", - "x": "1259", - "y": "533", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "463", - "h": "141", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "396", - "measuredH": "25", - "x": "22", - "y": "17", - "properties": { - "size": "17", - "text": "Find the detailed version of this roadmap along with" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "382", - "measuredH": "25", - "x": "22", - "y": "45", - "properties": { - "size": "17", - "text": "resources, progress tracking and other resources." - } - }, - { - "ID": "3", - "typeID": "__group__", - "zOrder": "3", - "measuredW": "403", - "measuredH": "45", - "w": "403", - "h": "45", - "x": "22", - "y": "81", - "properties": { - "controlName": "ext_link:roadmap.sh" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "403", - "h": "45", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0", - "properties": { - "borderColor": "4273622", - "color": "4273622" - } - }, - { - "ID": "1", - "typeID": "__group__", - "zOrder": "1", - "measuredW": "180", - "measuredH": "29", - "w": "180", - "h": "29", - "x": "107", - "y": "8", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "105", - "measuredH": "28", - "x": "75", - "y": "0", - "properties": { - "color": "16777215", - "size": "20", - "text": "roadmap.sh" - } - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "45", - "measuredH": "28", - "x": "0", - "y": "0", - "properties": { - "color": "16777215", - "size": "20", - "text": "https" - } - }, - { - "ID": "2", - "typeID": "Label", - "zOrder": "2", - "measuredW": "5", - "measuredH": "28", - "x": "47", - "y": "0", - "properties": { - "bold": "true", - "color": "16777215", - "size": "20", - "text": ":" - } - }, - { - "ID": "3", - "typeID": "Label", - "zOrder": "3", - "measuredW": "10", - "measuredH": "28", - "x": "54", - "y": "1", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - }, - { - "ID": "4", - "typeID": "Label", - "zOrder": "4", - "measuredW": "10", - "measuredH": "28", - "x": "62", - "y": "1", - "properties": { - "color": "16777215", - "size": "20", - "text": "/" - } - } - ] - } - } - } - ] - } - } - } - ] - } - } - }, - { - "ID": "8388", - "typeID": "__group__", - "zOrder": "164", - "measuredW": "462", - "measuredH": "119", - "w": "462", - "h": "119", - "x": "1260", - "y": "707", - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Canvas", - "zOrder": "0", - "w": "462", - "h": "119", - "measuredW": "100", - "measuredH": "70", - "x": "0", - "y": "0" - }, - { - "ID": "1", - "typeID": "Label", - "zOrder": "1", - "measuredW": "106", - "measuredH": "28", - "x": "26", - "y": "25", - "properties": { - "size": "20", - "text": "References" - } - }, - { - "ID": "2", - "typeID": "__group__", - "zOrder": "2", - "measuredW": "389", - "measuredH": "26", - "w": "389", - "h": "26", - "x": "27", - "y": "67", - "properties": { - "controlName": "ext_link:khalilstemmler.com/articles/software-design-architecture/full-stack-software-design/" - }, - "children": { - "controls": { - "control": [ - { - "ID": "0", - "typeID": "Label", - "zOrder": "0", - "measuredW": "356", - "measuredH": "26", - "x": "33", - "y": "0", - "properties": { - "size": "18", - "text": "Khalil’s Software Design & Architecture Map" - } - }, - { - "ID": "1", - "typeID": "Icon", - "zOrder": "1", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "1", - "properties": { - "color": "16777215", - "icon": { - "ID": "circle", - "size": "small" - } - } - }, - { - "ID": "2", - "typeID": "Icon", - "zOrder": "2", - "measuredW": "24", - "measuredH": "24", - "x": "0", - "y": "1", - "properties": { - "icon": { - "ID": "check-circle", - "size": "small" - }, - "color": "10066329" - } - } - ] - } - } - } - ] - } - } + "nodes": [ + { + "id": "P72dYqoD4ySm0uRaUOJ5v", + "type": "vertical", + "position": { + "x": -182.82822136329878, + "y": 1487.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" } - ] + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 93 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -182.82822136329878, + "y": 1487.9007482223487 + } }, - "attributes": { - "name": "New Wireframe 1 copy", - "order": 1000010.2336643032, - "parentID": null, - "notes": "" + { + "id": "qA_Y7AgD-Z6is-1hqOqzH", + "type": "horizontal", + "position": { + "x": -408.6381872719935, + "y": 1568.1208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 50, + "height": 20, + "measured": { + "width": 115, + "height": 20 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -408.6381872719935, + "y": 1568.1208448974862 + } }, - "branchID": "Master", - "resourceID": "D5E1AC09-3023-4145-A52A-4D904363A065", - "mockupH": "2431", - "mockupW": "1329", - "measuredW": "1722", - "measuredH": "2887", - "version": "1.0" - }, - "groupOffset": { - "x": 0, - "y": 0 - }, - "dependencies": [], - "projectID": "file:///Users/kamrify/Desktop/New%20Roadmaps/New%20Project%201.bmpr" + { + "id": "3DjhvOMcTs6HwQkmnJyqS", + "type": "vertical", + "position": { + "x": 240.3618127280065, + "y": 1487.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 66 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": 240.3618127280065, + "y": 1487.9007482223487 + } + }, + { + "id": "6Bx4SL1VB3tkS38lGpiaQ", + "type": "vertical", + "position": { + "x": 141.3618127280065, + "y": 1058.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.75 + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 520 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": 141.3618127280065, + "y": 1058.7051467174065 + } + }, + { + "id": "VbFXAyIhGjJtHs_L0bXk3", + "type": "vertical", + "position": { + "x": 235.3618127280065, + "y": 1045.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "3DjhvOMcTs6HwQkmnJyqS" + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 94 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": 235.3618127280065, + "y": 1045.9007482223487 + } + }, + { + "id": "efjRPzVNm00Fe6CC3LT1N", + "type": "vertical", + "position": { + "x": -168.6381872719935, + "y": 1051.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 76 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -168.6381872719935, + "y": 1051.7051467174065 + } + }, + { + "id": "SgOLJllVsYIWZZmHzJUK7", + "type": "vertical", + "position": { + "x": -168.6381872719935, + "y": 691.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.5 + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 352 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -168.6381872719935, + "y": 691.400748222349 + } + }, + { + "id": "-yVW4ejTnj5vN8y0s_qTa", + "type": "vertical", + "position": { + "x": -92.1381872719935, + "y": 955.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 86 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -92.1381872719935, + "y": 955.9007482223487 + } + }, + { + "id": "UJ14WYeOlnd8vkKhwqTjP", + "type": "vertical", + "position": { + "x": -252.1381872719935, + "y": 955.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "-yVW4ejTnj5vN8y0s_qTa" + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 90 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -252.1381872719935, + "y": 955.9007482223487 + } + }, + { + "id": "sqpYr4D6lzaJsphbPVfit", + "type": "horizontal", + "position": { + "x": -413.1381872719935, + "y": 680.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 50, + "height": 20, + "measured": { + "width": 124, + "height": 20 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -413.1381872719935, + "y": 680.7051467174066 + } + }, + { + "id": "JyEXyTp5_UxhyRY3ZULZG", + "type": "section", + "position": { + "x": -705.1381872719935, + "y": 1105.9007482223487 + }, + "width": 283, + "height": 302, + "style": { + "width": 283, + "height": 301.5 + }, + "selected": false, + "measured": { + "width": 292, + "height": 308 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "selectable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1105.9007482223487 + } + }, + { + "id": "VThkejHxNxNQgqjwDN67c", + "type": "section", + "position": { + "x": -705.1381872719935, + "y": 816.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "", + "style": { + "fontSize": 17, + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "zIndex": -999, + "width": 150, + "height": 100, + "style": { + "width": 150, + "height": 100 + }, + "measured": { + "width": 292, + "height": 271 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 816.7051467174065 + } + }, + { + "id": "kLnJC5PdxpgmRU2X57V64", + "type": "section", + "position": { + "x": -705.1381872719935, + "y": 650.2051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "", + "style": { + "fontSize": 17, + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "zIndex": -999, + "width": 150, + "height": 100, + "style": { + "width": 150, + "height": 100 + }, + "measured": { + "width": 292, + "height": 171 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 650.2051467174066 + } + }, + { + "id": "JwkzZU185OsVZ5VSUjC0f", + "type": "section", + "position": { + "x": 94.8618127280065, + "y": 205.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "", + "style": { + "fontSize": 17, + "backgroundColor": "#ffffff", + "borderColor": "#000000" + } + }, + "zIndex": -999, + "width": 150, + "height": 100, + "style": { + "width": 150, + "height": 100 + }, + "measured": { + "width": 361, + "height": 765 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 94.8618127280065, + "y": 205.7051467174066 + } + }, + { + "id": "HU7wZWiES3m3xl1-NYP6F", + "type": "title", + "position": { + "x": -375.6381872719935, + "y": -47.09925177765109 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Software Design & Architecture", + "style": { + "fontSize": 28, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "measured": { + "width": 434, + "height": 68 + }, + "dragging": false, + "focusable": true, + "width": 434, + "height": 68, + "positionAbsolute": { + "x": -375.6381872719935, + "y": -47.09925177765109 + } + }, + { + "id": "uqyE79OItPOX33E5FoGel", + "type": "vertical", + "position": { + "x": -168.6381872719935, + "y": -133.0992517776511 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.75, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 81 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -168.6381872719935, + "y": -133.0992517776511 + } + }, + { + "id": "CCmziWV0VnzZxVbjVF_br", + "type": "paragraph", + "position": { + "x": 94.8618127280065, + "y": -148.2948532825934 + }, + "selected": false, + "data": { + "label": "Find the interactive version of this roadmap and more roadmaps at", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "borderColor": "#000000", + "backgroundColor": "#FFFFFf" + }, + "oldId": "kpF15oUmlUmk1qVGEBB7Y" + }, + "zIndex": 999, + "width": 355, + "height": 143, + "positionAbsolute": { + "x": 94.8618127280065, + "y": -148.2948532825934 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "style": { + "width": 355, + "height": 143 + }, + "resizing": false, + "measured": { + "width": 361, + "height": 151 + } + }, + { + "id": "if9eTna5NRTMStVwpSwDP", + "type": "button", + "position": { + "x": 109.8618127280065, + "y": -62.09925177765109 + }, + "selected": false, + "data": { + "label": "roadmap.sh", + "href": "https://roadmap.sh", + "color": "#ffffff", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "oldId": "2zqZkyVgigifcRS1H7F_b" + }, + "zIndex": 999, + "width": 330, + "height": 49, + "dragging": false, + "style": { + "width": 330, + "height": 49 + }, + "resizing": false, + "positionAbsolute": { + "x": 109.8618127280065, + "y": -62.09925177765109 + }, + "selectable": true, + "focusable": true, + "measured": { + "width": 331, + "height": 49 + } + }, + { + "id": "TJZgsxpfOmltUUChMzlEM", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": -98.59925177765109 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Clean Code", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": -98.59925177765109 + } + }, + { + "id": "RgYq3YOJhPGSf5in1Rcdp", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": -45.59925177765109 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Programming Paradigms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": -45.59925177765109 + } + }, + { + "id": "qZQDOe2MHBh8wNcmvkLQm", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 7.400748222348909 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Object Oriented Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 7.400748222348909 + } + }, + { + "id": "p96fNXv0Z4rEEXJR9hAYX", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 60.40074822234891 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Design Principles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 60.40074822234891 + } + }, + { + "id": "gyQw885dvupmkohzJPg3a", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 113.40074822234891 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Design Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 113.40074822234891 + } + }, + { + "id": "XBCxWdpvQyK2iIG2eEA1K", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 166.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Architectural Principles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 166.4007482223489 + } + }, + { + "id": "En_hvwRvY6k_itsNCQBYE", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 219.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Architectural Styles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 219.4007482223489 + } + }, + { + "id": "jq916t7svaMw5sFOcqZSi", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 272.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Architectural Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "WrzsvLgo7cf2KjvJhtJEC" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 272.4007482223489 + } + }, + { + "id": "WrzsvLgo7cf2KjvJhtJEC", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 325.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Enterprise Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 325.4007482223489 + } + }, + { + "id": "uLYSP9v3y51h8Ttdt5ije", + "type": "label", + "position": { + "x": -643.6381872719935, + "y": -146.5992517776511 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Minimap of Topics", + "style": { + "fontSize": 17 + }, + "href": "", + "color": "#000000" + }, + "zIndex": 999, + "measured": { + "width": 155, + "height": 38 + }, + "dragging": false, + "focusable": true, + "width": 155, + "height": 36, + "positionAbsolute": { + "x": -643.6381872719935, + "y": -146.5992517776511 + } + }, + { + "id": "pd0_ffU8fTHcg_nLPae6W", + "type": "button", + "position": { + "x": -298.1381872719935, + "y": 134.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Backend Developer Roadmap", + "style": { + "fontSize": 17 + }, + "href": "", + "color": "#ffffff", + "backgroundColor": "#2a79e4", + "oldId": "JS5a5FraWCwfgwt8GAyc7" + }, + "zIndex": 999, + "width": 276, + "height": 49, + "measured": { + "width": 279, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -298.1381872719935, + "y": 134.4007482223489 + } + }, + { + "id": "kpF15oUmlUmk1qVGEBB7Y", + "type": "paragraph", + "position": { + "x": 94.8618127280065, + "y": 20.90074822234891 + }, + "selected": false, + "data": { + "label": "Also visit Khalil's guide covering how to learn Software Design & Architecture", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "borderColor": "#000000", + "backgroundColor": "#FFFFFf" + }, + "oldId": "yHmHXymPNWwu8p1vvqD3o" + }, + "zIndex": 999, + "width": 355, + "height": 143, + "positionAbsolute": { + "x": 94.8618127280065, + "y": 20.90074822234891 + }, + "dragging": false, + "selectable": true, + "focusable": true, + "style": { + "width": 355, + "height": 143 + }, + "resizing": false, + "measured": { + "width": 361, + "height": 149 + } + }, + { + "id": "JS5a5FraWCwfgwt8GAyc7", + "type": "button", + "position": { + "x": 109.8618127280065, + "y": 104.40074822234891 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Software Design and Architecture", + "style": { + "fontSize": 17 + }, + "href": "", + "color": "#ffffff", + "backgroundColor": "#878787" + }, + "zIndex": 999, + "width": 302, + "height": 49, + "measured": { + "width": 331, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": 109.8618127280065, + "y": 104.40074822234891 + } + }, + { + "id": "08qKtgnhJ3tlb5JKfTDf5", + "type": "topic", + "position": { + "x": -298.1381872719935, + "y": 307.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Clean Code Principles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 216, + "height": 49, + "measured": { + "width": 279, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -298.1381872719935, + "y": 307.4007482223489 + } + }, + { + "id": "2SOZvuEcy8Cy8ymN7x4L-", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 218.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Be consistent", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "6Cd1BbGsmPJs_5jKhumyV" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 218.4007482223489 + } + }, + { + "id": "6Cd1BbGsmPJs_5jKhumyV", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 271.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Meaningful names over comments", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "width": 335, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 271.4007482223489 + } + }, + { + "id": "81WOL1nxb56ZbAOvxJ7NK", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 324.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Indentation and Code Style", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 324.4007482223489 + } + }, + { + "id": "XEwC6Fyf2DNNHQsoGTrQj", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 377.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Keep methods / classes / files small", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 377.4007482223489 + } + }, + { + "id": "5S5A5wCJUCNPLlHJ5fRjU", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 430.4007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Pure functions", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 430.4007482223489 + } + }, + { + "id": "qZzl0hAD2LkShsPql1IlZ", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 483.40074822234897 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Minimize cyclomatic complexity", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 483.40074822234897 + } + }, + { + "id": "yyKvmutbxu3iVHTuqr5q4", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 536.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Avoid passing nulls, booleans", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 536.400748222349 + } + }, + { + "id": "OoCCy-3W5y7bUcKz_iyBw", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 589.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Keep framework code distant", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 589.400748222349 + } + }, + { + "id": "S1m7ty7Qrzu1rr4Jl-WgM", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 642.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Use correct constructs", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 642.400748222349 + } + }, + { + "id": "mzt7fvx6ab3tmG1R1NcLO", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 695.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Tests should be fast and independent", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 695.400748222349 + } + }, + { + "id": "JKK6bli3P_cqJ128wPnot", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 748.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Use meaningful names", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 748.400748222349 + } + }, + { + "id": "kp86Vc3uue3IxTN9B9p59", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 801.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Organize code by actor it belongs to", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 801.400748222349 + } + }, + { + "id": "tLbckKmfVxgn59j_dlh8b", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 854.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Command query separation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "9naCfoHF1LW1OEsVZGi8v" + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 854.400748222349 + } + }, + { + "id": "9naCfoHF1LW1OEsVZGi8v", + "type": "subtopic", + "position": { + "x": 108.99419451849974, + "y": 907.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Keep it simple and refactor often", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 335, + "height": 49, + "measured": { + "width": 335, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "style": { + "width": 335 + }, + "positionAbsolute": { + "x": 108.99419451849974, + "y": 907.400748222349 + } + }, + { + "id": "isbQTvteWitvwVwBtwAr3", + "type": "horizontal", + "position": { + "x": -20.138187271993502, + "y": 321.9007482223489 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "horizontal node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 50, + "height": 20, + "measured": { + "width": 116, + "height": 20 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -20.138187271993502, + "y": 321.9007482223489 + } + }, + { + "id": "TDhTYdEyBuOnDKcQJzTAk", + "type": "topic", + "position": { + "x": -298.1381872719935, + "y": 452.2051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Programming Paradigms", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 234, + "height": 49, + "measured": { + "width": 279, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -298.1381872719935, + "y": 452.2051467174066 + } + }, + { + "id": "VhSEH_RoWFt1z2lial7xZ", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 453.52104026608447 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Structured Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 284, + "height": 49, + "style": { + "width": 284 + }, + "measured": { + "width": 292, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 453.52104026608447 + } + }, + { + "id": "YswaOqZNYcmDwly2IXrTT", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 506.52104026608447 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Functional Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 284, + "height": 49, + "style": { + "width": 284 + }, + "measured": { + "width": 292, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 506.52104026608447 + } + }, + { + "id": "VZrERRRYhmqDx4slnZtdc", + "type": "subtopic", + "position": { + "x": -707.6381872719935, + "y": 559.5210402660845 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Object Oriented Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 284, + "height": 49, + "style": { + "width": 284 + }, + "measured": { + "width": 292, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -707.6381872719935, + "y": 559.5210402660845 + } + }, + { + "id": "HhYdURE4X-a9GVwJhAyE0", + "type": "topic", + "position": { + "x": -299.1381872719935, + "y": 666.2051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Object Oriented Programming", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 275, + "height": 49, + "measured": { + "width": 279, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -299.1381872719935, + "y": 666.2051467174066 + } + }, + { + "id": "0VO_-1g-TS29y0Ji2yCjc", + "type": "topic", + "position": { + "x": -705.1381872719935, + "y": 1081.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Model-Driven Design", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + }, + "oldId": "UQFaghIjWxbf5RmkE7EjH" + }, + "zIndex": 999, + "width": 283, + "height": 49, + "style": { + "width": 283 + }, + "measured": { + "width": 292, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1081.4007482223487 + } + }, + { + "id": "I25ghe8xYWpZ-9pRcHfOh", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 1138.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Domain Models", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SrcPhS4F7aT80qNjbv54f" + }, + "zIndex": 999, + "width": 267, + "height": 49, + "style": { + "width": 267, + "height": 49 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 1138.4007482223487 + } + }, + { + "id": "c6n-wOHylTbzpxqgoXtdw", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 1297.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Class Variants", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "nVaoI4IDPVEsdtFcjGNRw" + }, + "zIndex": 999, + "width": 267, + "height": 49, + "style": { + "width": 267, + "height": 49 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 1297.4007482223487 + } + }, + { + "id": "HN160YgryBBtVGjnWxNie", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 1350.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Layered Architectures", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "pbfws0r25gMuRoEOlm2zi" + }, + "zIndex": 999, + "width": 267, + "height": 49, + "style": { + "width": 267, + "height": 49 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 1350.4007482223487 + } + }, + { + "id": "kWNQd3paQrhMHMJzM35w8", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 1244.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Domain Language", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "nVaoI4IDPVEsdtFcjGNRw" + }, + "zIndex": 999, + "width": 267, + "height": 49, + "style": { + "width": 267, + "height": 49 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 1244.4007482223487 + } + }, + { + "id": "nVaoI4IDPVEsdtFcjGNRw", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 1191.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Anemic Models", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 267, + "height": 49, + "style": { + "width": 267, + "height": 49 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 1191.4007482223487 + } + }, + { + "id": "RMkEE7c0jdVFqZ4fmjL6Y", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 864.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Abstract Classes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "GJxfVjhiLuuc36hatx9dP" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 864.7051467174065 + } + }, + { + "id": "hd6GJ-H4p9I4aaiRTni57", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 917.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Concrete Classes", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SrcPhS4F7aT80qNjbv54f" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 917.7051467174065 + } + }, + { + "id": "b-YIbw-r-nESVt_PUFQeq", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 970.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Scope / Visibility", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SrcPhS4F7aT80qNjbv54f" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 970.7051467174065 + } + }, + { + "id": "SrcPhS4F7aT80qNjbv54f", + "type": "subtopic", + "position": { + "x": -692.6381872719935, + "y": 1023.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Interfaces", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "nVaoI4IDPVEsdtFcjGNRw" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -692.6381872719935, + "y": 1023.7051467174065 + } + }, + { + "id": "Dj36yLBShoazj7SAw6a_A", + "type": "subtopic", + "position": { + "x": -691.1381872719935, + "y": 701.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Inheritance", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "GJxfVjhiLuuc36hatx9dP" + }, + "zIndex": 999, + "width": 125, + "height": 49, + "style": { + "width": 125 + }, + "measured": { + "width": 125, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -691.1381872719935, + "y": 701.7051467174066 + } + }, + { + "id": "4DVW4teisMz8-58XttMGt", + "type": "subtopic", + "position": { + "x": -561.6381872719935, + "y": 700.2051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Polymorphism", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "GJxfVjhiLuuc36hatx9dP" + }, + "zIndex": 999, + "width": 136, + "height": 49, + "style": { + "width": 136 + }, + "measured": { + "width": 136, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -561.6381872719935, + "y": 700.2051467174066 + } + }, + { + "id": "VA8FMrhF4non9x-J3urY8", + "type": "subtopic", + "position": { + "x": -691.1381872719935, + "y": 754.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Abstraction", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "GJxfVjhiLuuc36hatx9dP" + }, + "zIndex": 999, + "width": 125, + "height": 49, + "style": { + "width": 125 + }, + "measured": { + "width": 125, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -691.1381872719935, + "y": 754.7051467174066 + } + }, + { + "id": "GJxfVjhiLuuc36hatx9dP", + "type": "subtopic", + "position": { + "x": -561.6381872719935, + "y": 753.2051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Encapsulation", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SrcPhS4F7aT80qNjbv54f" + }, + "zIndex": 999, + "width": 136, + "height": 49, + "style": { + "width": 136 + }, + "measured": { + "width": 136, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -561.6381872719935, + "y": 753.2051467174066 + } + }, + { + "id": "9dMbo4Q1_Sd9wW6-HSCA9", + "type": "topic", + "position": { + "x": -318.1381872719935, + "y": 1019.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Design Principles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 179, + "height": 49, + "measured": { + "width": 304, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -318.1381872719935, + "y": 1019.7051467174065 + } + }, + { + "id": "Izno7xX7wDvwPEg7f_d1Y", + "type": "subtopic", + "position": { + "x": -319.1381872719935, + "y": 1119.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Composition over Inheritance", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "0rGdh72HjqPZa2bCbY9Gz" + }, + "zIndex": 999, + "width": 272, + "height": 49, + "measured": { + "width": 304, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -319.1381872719935, + "y": 1119.400748222349 + } + }, + { + "id": "3eWirbQGbJZd4g7CS1xk_", + "type": "label", + "position": { + "x": -636.1381872719935, + "y": 661.2051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Primary Principles", + "style": { + "fontSize": 17 + }, + "href": "", + "color": "#000000", + "oldId": "9slZPeVCSqU5-5PqaNJOh" + }, + "zIndex": 999, + "measured": { + "width": 154, + "height": 38 + }, + "dragging": false, + "focusable": true, + "width": 154, + "height": 36, + "positionAbsolute": { + "x": -636.1381872719935, + "y": 661.2051467174066 + } + }, + { + "id": "9slZPeVCSqU5-5PqaNJOh", + "type": "label", + "position": { + "x": -650.6381872719935, + "y": 824.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Paradigm Features", + "style": { + "fontSize": 17 + }, + "href": "", + "color": "#000000" + }, + "zIndex": 999, + "measured": { + "width": 161, + "height": 38 + }, + "dragging": false, + "focusable": true, + "width": 161, + "height": 36, + "positionAbsolute": { + "x": -650.6381872719935, + "y": 824.400748222349 + } + }, + { + "id": "DlefJ9JuJ1LdQYC4WSx6y", + "type": "subtopic", + "position": { + "x": -319.1381872719935, + "y": 1172.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Encapsulate what varies", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "0rGdh72HjqPZa2bCbY9Gz" + }, + "zIndex": 999, + "width": 279, + "height": 49, + "style": { + "width": 279 + }, + "measured": { + "width": 304, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -319.1381872719935, + "y": 1172.7051467174065 + } + }, + { + "id": "UZeY36dABmULhsHPhlzn_", + "type": "subtopic", + "position": { + "x": -319.1381872719935, + "y": 1225.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Program against abstractions", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "0rGdh72HjqPZa2bCbY9Gz" + }, + "zIndex": 999, + "width": 279, + "height": 49, + "style": { + "width": 279 + }, + "measured": { + "width": 304, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -319.1381872719935, + "y": 1225.7051467174065 + } + }, + { + "id": "WzUhKlmFB9alTlAyV-MWJ", + "type": "subtopic", + "position": { + "x": -126.6381872719935, + "y": 926.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Hollywood Principle", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "0rGdh72HjqPZa2bCbY9Gz" + }, + "zIndex": 999, + "width": 196, + "height": 49, + "style": { + "width": 196 + }, + "measured": { + "width": 196, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -126.6381872719935, + "y": 926.400748222349 + } + }, + { + "id": "vnLhItObDgp_XaDmplBsJ", + "type": "subtopic", + "position": { + "x": -126.6381872719935, + "y": 820.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Law of Demeter", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "0rGdh72HjqPZa2bCbY9Gz" + }, + "zIndex": 999, + "width": 196, + "height": 49, + "style": { + "width": 196 + }, + "measured": { + "width": 196, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -126.6381872719935, + "y": 820.400748222349 + } + }, + { + "id": "0rGdh72HjqPZa2bCbY9Gz", + "type": "subtopic", + "position": { + "x": -126.6381872719935, + "y": 873.400748222349 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Tell, don't ask", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 196, + "height": 49, + "style": { + "width": 196 + }, + "measured": { + "width": 196, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -126.6381872719935, + "y": 873.400748222349 + } + }, + { + "id": "3XckqZA--knUb8IYKOeVy", + "type": "subtopic", + "position": { + "x": -318.1381872719935, + "y": 824.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "SOLID", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "eEO-WeNIyjErBE53n8JsD" + }, + "zIndex": 999, + "width": 129, + "height": 49, + "style": { + "width": 129 + }, + "measured": { + "width": 129, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -318.1381872719935, + "y": 824.7051467174066 + } + }, + { + "id": "ltBnVWZ3UMAuUvDkU6o4P", + "type": "subtopic", + "position": { + "x": -318.1381872719935, + "y": 877.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "DRY", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "eEO-WeNIyjErBE53n8JsD" + }, + "zIndex": 999, + "width": 129, + "height": 49, + "style": { + "width": 129 + }, + "measured": { + "width": 129, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -318.1381872719935, + "y": 877.7051467174066 + } + }, + { + "id": "eEO-WeNIyjErBE53n8JsD", + "type": "subtopic", + "position": { + "x": -318.1381872719935, + "y": 930.7051467174066 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "YAGNI", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 129, + "height": 49, + "style": { + "width": 129 + }, + "measured": { + "width": 129, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -318.1381872719935, + "y": 930.7051467174066 + } + }, + { + "id": "Jd79KXxZavpnp3mtE1q0n", + "type": "topic", + "position": { + "x": 94.8618127280065, + "y": 1019.7051467174065 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Design Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 168, + "height": 49, + "measured": { + "width": 233, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": 94.8618127280065, + "y": 1019.7051467174065 + } + }, + { + "id": "hlHl00ELlK9YdnzHDGnEW", + "type": "subtopic", + "position": { + "x": 188.8618127280065, + "y": 1111.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "GoF Design Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "6VoDGFOPHj5p_gvaZ8kTt" + }, + "zIndex": 999, + "width": 218, + "height": 49, + "style": { + "width": 218 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 188.8618127280065, + "y": 1111.4007482223487 + } + }, + { + "id": "6VoDGFOPHj5p_gvaZ8kTt", + "type": "subtopic", + "position": { + "x": 188.8618127280065, + "y": 1164.4007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "PoSA Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 218, + "height": 49, + "style": { + "width": 218 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 188.8618127280065, + "y": 1164.4007482223487 + } + }, + { + "id": "dBq7ni-of5v1kxpdmh227", + "type": "topic", + "position": { + "x": 94.8618127280065, + "y": 1553.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Architectural Principles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 221, + "height": 49, + "measured": { + "width": 233, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": 94.8618127280065, + "y": 1553.9007482223487 + } + }, + { + "id": "8Bm0sRhUg6wZtnvtTmpgY", + "type": "subtopic", + "position": { + "x": 189.88625207048023, + "y": 1289.610395110492 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Component Principles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "-Kw8hJhgQH2qInUFj2TUe" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 189.88625207048023, + "y": 1289.610395110492 + } + }, + { + "id": "b_PvjjL2ZpEKETa5_bd0v", + "type": "subtopic", + "position": { + "x": 189.88625207048023, + "y": 1342.610395110492 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Policy vs Detail", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "-Kw8hJhgQH2qInUFj2TUe" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 189.88625207048023, + "y": 1342.610395110492 + } + }, + { + "id": "TXus3R5vVQDBeBag6B5qs", + "type": "subtopic", + "position": { + "x": 189.88625207048023, + "y": 1395.610395110492 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Coupling and Cohesion", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "-Kw8hJhgQH2qInUFj2TUe" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 189.88625207048023, + "y": 1395.610395110492 + } + }, + { + "id": "-Kw8hJhgQH2qInUFj2TUe", + "type": "subtopic", + "position": { + "x": 188.8618127280065, + "y": 1448.610395110492 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Boundaries", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 188.8618127280065, + "y": 1448.610395110492 + } + }, + { + "id": "37xWxG2D9lVuDsHUgLfzP", + "type": "topic", + "position": { + "x": -289.3282213632988, + "y": 1553.6208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Architectural Styles", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 191, + "height": 49, + "measured": { + "width": 233, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -289.3282213632988, + "y": 1553.6208448974862 + } + }, + { + "id": "j9j45Auf60kIskyEMUGE3", + "type": "topic", + "position": { + "x": -329.3282213632988, + "y": 1426.0405202008678 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Messaging", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + }, + "oldId": "86Jw9kMBD7YP5nTV5jTz-" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 197, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -329.3282213632988, + "y": 1426.0405202008678 + } + }, + { + "id": "KtzcJBb6-EcIoXnwYvE7a", + "type": "subtopic", + "position": { + "x": -329.3282213632988, + "y": 1320.0405202008678 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Event-Driven", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IELEJcKYdZ6VN-UIq-Wln" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 197, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -329.3282213632988, + "y": 1320.0405202008678 + } + }, + { + "id": "SX4vOVJY9slOXGwX_q1au", + "type": "subtopic", + "position": { + "x": -329.3282213632988, + "y": 1373.0405202008678 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Publish-Subscribe", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 197, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -329.3282213632988, + "y": 1373.0405202008678 + } + }, + { + "id": "3V74lLPlcOXFB-QRTUA5j", + "type": "topic", + "position": { + "x": -123.39712154422624, + "y": 1426.0405202008678 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Distributed", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + }, + "oldId": "86Jw9kMBD7YP5nTV5jTz-" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 197, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -123.39712154422624, + "y": 1426.0405202008678 + } + }, + { + "id": "ZGIMUaNfBwE5b6O1yexSz", + "type": "subtopic", + "position": { + "x": -123.37268220175247, + "y": 1317.5497203099687 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Client-Server", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "a0geFJWl-vi3mYytTjYdb" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 197, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -123.37268220175247, + "y": 1317.5497203099687 + } + }, + { + "id": "Cf9Z2wxBcbnNg_q9PA6xA", + "type": "subtopic", + "position": { + "x": -122.37268220175247, + "y": 1370.5497203099687 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Peer-to-Peer", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IELEJcKYdZ6VN-UIq-Wln" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 197, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -122.37268220175247, + "y": 1370.5497203099687 + } + }, + { + "id": "86Jw9kMBD7YP5nTV5jTz-", + "type": "topic", + "position": { + "x": -691.6137479295197, + "y": 1558.6208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Structural", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "colorType": "h" + } + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -691.6137479295197, + "y": 1558.6208448974862 + } + }, + { + "id": "a0geFJWl-vi3mYytTjYdb", + "type": "subtopic", + "position": { + "x": -691.6137479295197, + "y": 1451.6208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Component-Based", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IELEJcKYdZ6VN-UIq-Wln" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 267, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -691.6137479295197, + "y": 1451.6208448974862 + } + }, + { + "id": "xYPR_X1KhBwdpqYzNJiuT", + "type": "subtopic", + "position": { + "x": -691.6137479295197, + "y": 1504.6208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Monolithic", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IELEJcKYdZ6VN-UIq-Wln" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 122, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -691.6137479295197, + "y": 1504.6208448974862 + } + }, + { + "id": "IELEJcKYdZ6VN-UIq-Wln", + "type": "subtopic", + "position": { + "x": -565.6137479295197, + "y": 1504.6208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Layered", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SX4vOVJY9slOXGwX_q1au" + }, + "zIndex": 999, + "width": 197, + "height": 49, + "style": { + "width": 197 + }, + "measured": { + "width": 141, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -565.6137479295197, + "y": 1504.6208448974862 + } + }, + { + "id": "WdXJlH985x9GhAQfif26x", + "type": "horizontal", + "position": { + "x": -325.1381872719935, + "y": 1477.9007482223487 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "horizontal node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.65 + } + }, + "zIndex": 999, + "width": 50, + "height": 20, + "measured": { + "width": 394, + "height": 20 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -325.1381872719935, + "y": 1477.9007482223487 + } + }, + { + "id": "2uTlVYj9CvYcqtv9TN_8K", + "type": "vertical", + "position": { + "x": -419.6137479295197, + "y": 1451.6208448974862 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "stroke": "#2B78E4", + "strokeWidth": 3.65 + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 154 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -419.6137479295197, + "y": 1451.6208448974862 + } + }, + { + "id": "gJYff_qD6XS3dg3I-jJFK", + "type": "topic", + "position": { + "x": -289.3282213632988, + "y": 1841.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Architectural Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "h0aeBhQRkDxNeFwDxT4Tf" + }, + "zIndex": 999, + "width": 210, + "height": 49, + "measured": { + "width": 233, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -289.3282213632988, + "y": 1841.7672657344651 + } + }, + { + "id": "CD20zA6k9FxUpMgHnNYRJ", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 1682.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Domain-Driven Design", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1682.7672657344651 + } + }, + { + "id": "-arChRC9zG2DBmuSTHW0J", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 1735.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Model-View Controller", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1735.7672657344651 + } + }, + { + "id": "eJsCCURZAURCKnOK-XeQe", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 1788.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Microservices", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1788.7672657344651 + } + }, + { + "id": "Kk7u2B67Fdg2sU8E_PGqr", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 1841.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Blackboard Pattern", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1841.7672657344651 + } + }, + { + "id": "r-Yeca-gpdFM8iq7f0lYQ", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 1894.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Microkernel", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1894.7672657344651 + } + }, + { + "id": "5WSvAA3h3lmelL53UJSMy", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 1947.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Serverless Architecture", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 1947.7672657344651 + } + }, + { + "id": "GAs6NHBkUgxan3hyPvVs7", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 2000.7672657344651 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Message Queues / Streams", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 2000.7672657344651 + } + }, + { + "id": "K8X_-bsiy7gboInPzbiEb", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 2053.767265734465 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Event Sourcing", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 273, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 2053.767265734465 + } + }, + { + "id": "FysFru2FJN4d4gj11gv--", + "type": "subtopic", + "position": { + "x": -705.1381872719935, + "y": 2106.767265734465 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "SOA", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "IU86cGkLPMXUJKvTBywPu" + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 138, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -705.1381872719935, + "y": 2106.767265734465 + } + }, + { + "id": "IU86cGkLPMXUJKvTBywPu", + "type": "subtopic", + "position": { + "x": -562.1381872719935, + "y": 2106.767265734465 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "CQRS", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 273, + "height": 49, + "style": { + "width": 273 + }, + "measured": { + "width": 130, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": -562.1381872719935, + "y": 2106.767265734465 + } + }, + { + "id": "h0aeBhQRkDxNeFwDxT4Tf", + "type": "topic", + "position": { + "x": -289.3282213632988, + "y": 1975.839200216446 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Enterprise Patterns", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 194, + "height": 49, + "measured": { + "width": 233, + "height": 49 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -289.3282213632988, + "y": 1975.839200216446 + } + }, + { + "id": "y_Qj7KITSB8aUWHwiZ2It", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 1711.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "DTOs", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 1711.8012136557593 + } + }, + { + "id": "tb0X1HtuiGwz7YhQ5xPsV", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 1764.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Identity Maps", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 1764.8012136557593 + } + }, + { + "id": "gQ7Xj8tsl6IlCcyJgSz46", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 1817.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Usecases", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 1817.8012136557593 + } + }, + { + "id": "8y0ot5sbplUIUyXe9gvc8", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 1870.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Repositories", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 1870.8012136557593 + } + }, + { + "id": "ndUTgl2YBzOdu1MQKJocu", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 1923.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Mappers", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 1923.8012136557593 + } + }, + { + "id": "tyReIY4iO8kmyc_LPafp1", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 1976.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Transaction Script", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 1976.8012136557593 + } + }, + { + "id": "j_SUD3SxpKYZstN9LSP82", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 2029.8012136557593 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Commands / Queries", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 2029.8012136557593 + } + }, + { + "id": "Ks6njbfxOHiZ_TrJDnVtk", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 2082.8012136557595 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Value Objects", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 2082.8012136557595 + } + }, + { + "id": "NpSfbzYtGebmfrifkKsUf", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 2135.8012136557595 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Domain Models", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 2135.8012136557595 + } + }, + { + "id": "VnW_7dl5G0IFL9W3YF_W3", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 2188.8012136557595 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "Entities", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + }, + "oldId": "SYYulHfDceIyDkDT5fcqj" + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 2188.8012136557595 + } + }, + { + "id": "SYYulHfDceIyDkDT5fcqj", + "type": "subtopic", + "position": { + "x": 99.23920485686646, + "y": 2241.8012136557595 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "ORMs", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center" + } + }, + "zIndex": 999, + "width": 240, + "height": 49, + "style": { + "width": 240 + }, + "measured": { + "width": 240, + "height": 49 + }, + "resizing": false, + "dragging": false, + "focusable": true, + "positionAbsolute": { + "x": 99.23920485686646, + "y": 2241.8012136557595 + } + }, + { + "id": "k_AR2YBSv077a6RwpCpZT", + "type": "vertical", + "position": { + "x": -182.82822136329878, + "y": 2024.839200216446 + }, + "selected": false, + "selectable": true, + "draggable": true, + "deletable": true, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.55, + "stroke": "#2B78E4" + } + }, + "zIndex": 999, + "width": 20, + "height": 150, + "measured": { + "width": 20, + "height": 240 + }, + "dragging": false, + "resizing": false, + "focusable": true, + "positionAbsolute": { + "x": -182.82822136329878, + "y": 2024.839200216446 + } + }, + { + "width": 21, + "height": 74, + "id": "ef-jFKMs8jw3Ti94jem96", + "type": "vertical", + "position": { + "x": -183.82822136329878, + "y": 2362.6547713337786 + }, + "selected": false, + "data": { + "label": "vertical node", + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2B78E4" + }, + "oldId": "RLtk1C3gofHnLJ17x3o5b" + }, + "zIndex": 999, + "positionAbsolute": { + "x": -183.82822136329878, + "y": 2362.6547713337786 + }, + "dragging": false, + "focusable": true, + "style": { + "width": 21, + "height": 74 + }, + "resizing": false, + "selectable": true, + "measured": { + "width": 21, + "height": 74 + } + }, + { + "width": 410, + "height": 119, + "id": "0vLaVNJaJSHZ_bHli6Qzs", + "type": "paragraph", + "position": { + "x": -493.74416945365664, + "y": 2259.509113900669 + }, + "selected": false, + "data": { + "label": "Continue learning with following roadmaps", + "style": { + "fontSize": 17, + "justifyContent": "flex-start", + "textAlign": "center", + "borderColor": "#000000", + "backgroundColor": "WHITe" + }, + "oldId": "m9eO0jLGuR_9w2JJbe_g2" + }, + "zIndex": 999, + "positionAbsolute": { + "x": -493.74416945365664, + "y": 2259.509113900669 + }, + "dragging": false, + "style": { + "width": 410, + "height": 119 + }, + "resizing": false, + "focusable": true, + "selectable": true, + "measured": { + "width": 477, + "height": 117 + } + }, + { + "width": 380, + "height": 49, + "id": "StxLh1r3qXqyRSqfJGird", + "type": "button", + "position": { + "x": -482.1381872719935, + "y": 2313.6547713337786 + }, + "selected": false, + "data": { + "label": "Backend", + "href": "https://roadmap.sh/backend", + "color": "#FFf", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D6", + "oldId": "OIcmPSbdsuWapb6HZ4BEi" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -482.1381872719935, + "y": 2313.6547713337786 + }, + "style": { + "width": 380, + "height": 49 + }, + "focusable": true, + "resizing": false, + "selectable": true, + "measured": { + "width": 229, + "height": 49 + } + }, + { + "width": 380, + "height": 49, + "id": "OIcmPSbdsuWapb6HZ4BEi", + "type": "button", + "position": { + "x": -246.1381872719935, + "y": 2313.6547713337786 + }, + "selected": false, + "data": { + "label": "System Design", + "href": "https://roadmap.sh/system-design", + "color": "#FFf", + "backgroundColor": "#4136D6", + "style": { + "fontSize": 17 + }, + "borderColor": "#4136D6", + "oldId": "cmSSwPPiiHwYh9ct14N6A" + }, + "zIndex": 999, + "dragging": false, + "positionAbsolute": { + "x": -246.1381872719935, + "y": 2313.6547713337786 + }, + "style": { + "width": 380, + "height": 49 + }, + "focusable": true, + "resizing": false, + "selectable": true, + "measured": { + "width": 219, + "height": 49 + } + } + ], + "edges": [ + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "HU7wZWiES3m3xl1-NYP6F", + "sourceHandle": "x2", + "target": "pd0_ffU8fTHcg_nLPae6W", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__HU7wZWiES3m3xl1-NYP6Fx2-JS5a5FraWCwfgwt8GAyc7w2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "pd0_ffU8fTHcg_nLPae6W", + "sourceHandle": "x2", + "target": "08qKtgnhJ3tlb5JKfTDf5", + "targetHandle": "w2", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__pd0_ffU8fTHcg_nLPae6Wx2-h0aeBhQRkDxNeFwDxT4Tfw2", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "08qKtgnhJ3tlb5JKfTDf5", + "sourceHandle": "x2", + "target": "TDhTYdEyBuOnDKcQJzTAk", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__08qKtgnhJ3tlb5JKfTDf5x2-h0aeBhQRkDxNeFwDxT4Tfw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "TDhTYdEyBuOnDKcQJzTAk", + "sourceHandle": "y2", + "target": "VhSEH_RoWFt1z2lial7xZ", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-VhSEH_RoWFt1z2lial7xZz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "TDhTYdEyBuOnDKcQJzTAk", + "sourceHandle": "y2", + "target": "YswaOqZNYcmDwly2IXrTT", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-YswaOqZNYcmDwly2IXrTTz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "TDhTYdEyBuOnDKcQJzTAk", + "sourceHandle": "y2", + "target": "VZrERRRYhmqDx4slnZtdc", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-VZrERRRYhmqDx4slnZtdcz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "TDhTYdEyBuOnDKcQJzTAk", + "sourceHandle": "x2", + "target": "HhYdURE4X-a9GVwJhAyE0", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__TDhTYdEyBuOnDKcQJzTAkx2-h0aeBhQRkDxNeFwDxT4Tfw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "9dMbo4Q1_Sd9wW6-HSCA9", + "sourceHandle": "z2", + "target": "Jd79KXxZavpnp3mtE1q0n", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__9dMbo4Q1_Sd9wW6-HSCA9z2-h0aeBhQRkDxNeFwDxT4Tfy1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "37xWxG2D9lVuDsHUgLfzP", + "sourceHandle": "z2", + "target": "dBq7ni-of5v1kxpdmh227", + "targetHandle": "y1", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-dBq7ni-of5v1kxpdmh227y1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "37xWxG2D9lVuDsHUgLfzP", + "sourceHandle": "x2", + "target": "gJYff_qD6XS3dg3I-jJFK", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__37xWxG2D9lVuDsHUgLfzPx2-h0aeBhQRkDxNeFwDxT4Tfw1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "Kk7u2B67Fdg2sU8E_PGqr", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-Kk7u2B67Fdg2sU8E_PGqrz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "eJsCCURZAURCKnOK-XeQe", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-eJsCCURZAURCKnOK-XeQez1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "-arChRC9zG2DBmuSTHW0J", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2--arChRC9zG2DBmuSTHW0Jz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "CD20zA6k9FxUpMgHnNYRJ", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-CD20zA6k9FxUpMgHnNYRJz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "r-Yeca-gpdFM8iq7f0lYQ", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-r-Yeca-gpdFM8iq7f0lYQz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "5WSvAA3h3lmelL53UJSMy", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-5WSvAA3h3lmelL53UJSMyz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "GAs6NHBkUgxan3hyPvVs7", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-GAs6NHBkUgxan3hyPvVs7z1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "K8X_-bsiy7gboInPzbiEb", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-K8X_-bsiy7gboInPzbiEbz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "y2", + "target": "IU86cGkLPMXUJKvTBywPu", + "targetHandle": "z1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfy2-IU86cGkLPMXUJKvTBywPuz1", + "selected": false, + "focusable": true, + "selectable": true + }, + { + "style": { + "strokeDasharray": "0", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "gJYff_qD6XS3dg3I-jJFK", + "sourceHandle": "x2", + "target": "h0aeBhQRkDxNeFwDxT4Tf", + "targetHandle": "w1", + "data": { + "edgeStyle": "solid" + }, + "id": "xy-edge__gJYff_qD6XS3dg3I-jJFKx2-h0aeBhQRkDxNeFwDxT4Tfw1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "tyReIY4iO8kmyc_LPafp1", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-tyReIY4iO8kmyc_LPafp1y1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "ndUTgl2YBzOdu1MQKJocu", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-ndUTgl2YBzOdu1MQKJocuy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "8y0ot5sbplUIUyXe9gvc8", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-8y0ot5sbplUIUyXe9gvc8y2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "gQ7Xj8tsl6IlCcyJgSz46", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-gQ7Xj8tsl6IlCcyJgSz46y1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "tb0X1HtuiGwz7YhQ5xPsV", + "targetHandle": "y2", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-tb0X1HtuiGwz7YhQ5xPsVy2", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "y_Qj7KITSB8aUWHwiZ2It", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-y_Qj7KITSB8aUWHwiZ2Ity1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "j_SUD3SxpKYZstN9LSP82", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-j_SUD3SxpKYZstN9LSP82y1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "Ks6njbfxOHiZ_TrJDnVtk", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-Ks6njbfxOHiZ_TrJDnVtky1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "NpSfbzYtGebmfrifkKsUf", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-NpSfbzYtGebmfrifkKsUfy1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "VnW_7dl5G0IFL9W3YF_W3", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-VnW_7dl5G0IFL9W3YF_W3y1", + "selected": false, + "selectable": true, + "focusable": true + }, + { + "style": { + "strokeDasharray": "0.8 8", + "strokeLinecap": "round", + "strokeWidth": 3.5, + "stroke": "#2b78e4" + }, + "source": "h0aeBhQRkDxNeFwDxT4Tf", + "sourceHandle": "z2", + "target": "SYYulHfDceIyDkDT5fcqj", + "targetHandle": "y1", + "data": { + "edgeStyle": "dashed" + }, + "id": "xy-edge__h0aeBhQRkDxNeFwDxT4Tfz2-SYYulHfDceIyDkDT5fcqjy1", + "selected": false, + "selectable": true, + "focusable": true + } + ] } \ No newline at end of file diff --git a/src/data/roadmaps/software-design-architecture/software-design-architecture.md b/src/data/roadmaps/software-design-architecture/software-design-architecture.md index f2ffd158b..b0671af6f 100644 --- a/src/data/roadmaps/software-design-architecture/software-design-architecture.md +++ b/src/data/roadmaps/software-design-architecture/software-design-architecture.md @@ -6,11 +6,12 @@ briefTitle: 'Design and Architecture' briefDescription: 'Guide to learn software design and architecture' title: 'Software Design and Architecture' description: 'Step by step guide to learn software design and architecture' +renderer: 'editor' isNew: false hasTopics: true dimensions: width: 968 - height: 1764.66 + height: 2150 schema: headline: 'Software Design and Architecture Roadmap' description: 'Learn Software Design and Architecture with this interactive step by step guide in 2025. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place.'