diff --git a/content/roadmaps.json b/content/roadmaps.json
index 8c546abff..dbc6d319f 100644
--- a/content/roadmaps.json
+++ b/content/roadmaps.json
@@ -953,5 +953,54 @@
"id": "software-architect",
"metaPath": "/roadmaps/114-software-architect/meta.json",
"isUpcoming": false
+ },
+ {
+ "seo": {
+ "title": "Software Design and Architecture Roadmap",
+ "description": "Learn software design and architecture with this step by step guide and resources.",
+ "keywords": [
+ "guide to learn software design and architecture",
+ "software design roadmap",
+ "software architecture roadmap",
+ "software design and architecture roadmap",
+ "modern software design and architecture roadmap",
+ "fullstack software design and architecture roadmap",
+ "design and architecture roadmap",
+ "scalable design roadmap",
+ "software design patterns roadmap",
+ "software architecture patterns roadmap",
+ "design architecture patterns roadmap",
+ "application architectures",
+ "software architecture guide"
+ ]
+ },
+ "title": "Software Design and Architecture",
+ "description": "Step by step guide to learn software design and architecture",
+ "featuredTitle": "Software Design and Architecture",
+ "type": "tool",
+ "featuredDescription": "Guide to learn software design and architecture",
+ "isTextHeavy": false,
+ "isCommunity": false,
+ "isNew": true,
+ "isUpcoming": false,
+ "featured": true,
+ "jsonUrl": "/project/software-design-architecture.json",
+ "author": {
+ "name": "Kamran Ahmed",
+ "url": "https://twitter.com/kamranahmedse"
+ },
+ "pdfUrl": "/pdfs/software-design-architecture.pdf",
+ "contentPathsFilePath": "/roadmaps/115-software-design-architecture/content-paths.json",
+ "relatedRoadmaps": [
+ "backend",
+ "software-architect",
+ "devops",
+ "python",
+ "java",
+ "nodejs",
+ "golang"
+ ],
+ "id": "software-design-architecture",
+ "metaPath": "/roadmaps/115-software-design-architecture/meta.json"
}
]
\ No newline at end of file
diff --git a/content/roadmaps/115-software-design-architecture/meta.json b/content/roadmaps/115-software-design-architecture/meta.json
new file mode 100644
index 000000000..94bbc35ec
--- /dev/null
+++ b/content/roadmaps/115-software-design-architecture/meta.json
@@ -0,0 +1,47 @@
+{
+ "seo": {
+ "title": "Software Design and Architecture Roadmap",
+ "description": "Learn software design and architecture with this step by step guide and resources.",
+ "keywords": [
+ "guide to learn software design and architecture",
+ "software design roadmap",
+ "software architecture roadmap",
+ "software design and architecture roadmap",
+ "modern software design and architecture roadmap",
+ "fullstack software design and architecture roadmap",
+ "design and architecture roadmap",
+ "scalable design roadmap",
+ "software design patterns roadmap",
+ "software architecture patterns roadmap",
+ "design architecture patterns roadmap",
+ "application architectures",
+ "software architecture guide"
+ ]
+ },
+ "title": "Software Design and Architecture",
+ "description": "Step by step guide to learn software design and architecture",
+ "featuredTitle": "Software Design and Architecture",
+ "type": "tool",
+ "featuredDescription": "Guide to learn software design and architecture",
+ "isTextHeavy": false,
+ "isCommunity": false,
+ "isNew": true,
+ "isUpcoming": false,
+ "featured": true,
+ "jsonUrl": "/project/software-design-architecture.json",
+ "author": {
+ "name": "Kamran Ahmed",
+ "url": "https://twitter.com/kamranahmedse"
+ },
+ "pdfUrl": "/pdfs/software-design-architecture.pdf",
+ "contentPathsFilePath": "./content-paths.json",
+ "relatedRoadmaps": [
+ "backend",
+ "software-architect",
+ "devops",
+ "python",
+ "java",
+ "nodejs",
+ "golang"
+ ]
+}
diff --git a/lib/roadmap.ts b/lib/roadmap.ts
index ed7b71e3d..71409ab5e 100644
--- a/lib/roadmap.ts
+++ b/lib/roadmap.ts
@@ -49,5 +49,5 @@ export function getFeaturedRoadmaps(): RoadmapType[] {
}
export function isInteractiveRoadmap(id: string): boolean {
- return ['frontend', 'backend', 'devops', 'react', 'vue', 'python', 'java', 'blockchain', 'golang', 'javascript', 'nodejs', 'qa', 'design-system', 'angular', 'software-architect'].includes(id);
+ return ['frontend', 'backend', 'devops', 'react', 'vue', 'python', 'java', 'blockchain', 'golang', 'javascript', 'nodejs', 'qa', 'design-system', 'angular', 'software-architect', 'software-design-architecture'].includes(id);
}
diff --git a/public/pdfs/software-design-architecture.pdf b/public/pdfs/software-design-architecture.pdf
new file mode 100644
index 000000000..6bd9c6686
Binary files /dev/null and b/public/pdfs/software-design-architecture.pdf differ
diff --git a/public/project/software-design-architecture.json b/public/project/software-design-architecture.json
new file mode 100644
index 000000000..74f74fdba
--- /dev/null
+++ b/public/project/software-design-architecture.json
@@ -0,0 +1,4814 @@
+{
+ "mockup": {
+ "controls": {
+ "control": [
+ {
+ "ID": "8712",
+ "typeID": "Label",
+ "zOrder": "76",
+ "measuredW": "196",
+ "measuredH": "32",
+ "x": "438",
+ "y": "505",
+ "properties": {
+ "size": "24",
+ "text": "Minimap of Topics"
+ }
+ },
+ {
+ "ID": "8723",
+ "typeID": "TextArea",
+ "zOrder": "58",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "552",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8724",
+ "typeID": "Label",
+ "zOrder": "59",
+ "measuredW": "97",
+ "measuredH": "26",
+ "x": "487",
+ "y": "564",
+ "properties": {
+ "size": "18",
+ "text": "Clean Code"
+ }
+ },
+ {
+ "ID": "8725",
+ "typeID": "TextArea",
+ "zOrder": "60",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "607",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8726",
+ "typeID": "Label",
+ "zOrder": "61",
+ "measuredW": "200",
+ "measuredH": "26",
+ "x": "436",
+ "y": "619",
+ "properties": {
+ "size": "18",
+ "text": "Programming Paradigms"
+ }
+ },
+ {
+ "ID": "8727",
+ "typeID": "TextArea",
+ "zOrder": "62",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "661",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8728",
+ "typeID": "Label",
+ "zOrder": "63",
+ "measuredW": "244",
+ "measuredH": "26",
+ "x": "414",
+ "y": "673",
+ "properties": {
+ "size": "18",
+ "text": "Object Oriented Programming"
+ }
+ },
+ {
+ "ID": "8729",
+ "typeID": "TextArea",
+ "zOrder": "64",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "716",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8730",
+ "typeID": "Label",
+ "zOrder": "65",
+ "measuredW": "142",
+ "measuredH": "26",
+ "x": "465",
+ "y": "728",
+ "properties": {
+ "size": "18",
+ "text": "Design Principles"
+ }
+ },
+ {
+ "ID": "8731",
+ "typeID": "TextArea",
+ "zOrder": "66",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "771",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8732",
+ "typeID": "Label",
+ "zOrder": "67",
+ "measuredW": "130",
+ "measuredH": "26",
+ "x": "471",
+ "y": "783",
+ "properties": {
+ "size": "18",
+ "text": "Design Patterns"
+ }
+ },
+ {
+ "ID": "8733",
+ "typeID": "TextArea",
+ "zOrder": "68",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "990",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8734",
+ "typeID": "Label",
+ "zOrder": "69",
+ "measuredW": "159",
+ "measuredH": "26",
+ "x": "456",
+ "y": "1002",
+ "properties": {
+ "size": "18",
+ "text": "Enterprise Patterns"
+ }
+ },
+ {
+ "ID": "8735",
+ "typeID": "TextArea",
+ "zOrder": "70",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "825",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8736",
+ "typeID": "Label",
+ "zOrder": "71",
+ "measuredW": "187",
+ "measuredH": "26",
+ "x": "442",
+ "y": "837",
+ "properties": {
+ "size": "18",
+ "text": "Architectural Principles"
+ }
+ },
+ {
+ "ID": "8737",
+ "typeID": "TextArea",
+ "zOrder": "72",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "880",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8738",
+ "typeID": "Label",
+ "zOrder": "73",
+ "measuredW": "155",
+ "measuredH": "26",
+ "x": "458",
+ "y": "892",
+ "properties": {
+ "size": "18",
+ "text": "Architectural Styles"
+ }
+ },
+ {
+ "ID": "8739",
+ "typeID": "TextArea",
+ "zOrder": "74",
+ "w": "299",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "935",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8740",
+ "typeID": "Label",
+ "zOrder": "75",
+ "measuredW": "175",
+ "measuredH": "26",
+ "x": "448",
+ "y": "947",
+ "properties": {
+ "size": "18",
+ "text": "Architectural Patterns"
+ }
+ },
+ {
+ "ID": "8746",
+ "typeID": "Label",
+ "zOrder": "77",
+ "measuredW": "395",
+ "measuredH": "36",
+ "x": "777",
+ "y": "530",
+ "properties": {
+ "size": "28",
+ "text": "Software Design & Architecture"
+ }
+ },
+ {
+ "ID": "8752",
+ "typeID": "TextArea",
+ "zOrder": "79",
+ "w": "249",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "794",
+ "y": "1043",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "8753",
+ "typeID": "Label",
+ "zOrder": "80",
+ "measuredW": "182",
+ "measuredH": "26",
+ "x": "828",
+ "y": "1055",
+ "properties": {
+ "size": "18",
+ "text": "Clean Code Principles"
+ }
+ },
+ {
+ "ID": "8755",
+ "typeID": "Arrow",
+ "zOrder": "81",
+ "w": "1",
+ "h": "64",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "936",
+ "y": "446",
+ "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": "8756",
+ "typeID": "TextArea",
+ "zOrder": "82",
+ "w": "249",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "794",
+ "y": "1098",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "8757",
+ "typeID": "Label",
+ "zOrder": "83",
+ "measuredW": "200",
+ "measuredH": "26",
+ "x": "819",
+ "y": "1110",
+ "properties": {
+ "size": "18",
+ "text": "Programming Paradigms"
+ }
+ },
+ {
+ "ID": "8758",
+ "typeID": "TextArea",
+ "zOrder": "84",
+ "w": "193",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1117",
+ "y": "876",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8759",
+ "typeID": "Label",
+ "zOrder": "85",
+ "measuredW": "115",
+ "measuredH": "26",
+ "x": "1156",
+ "y": "888",
+ "properties": {
+ "size": "18",
+ "text": "Be Consistent"
+ }
+ },
+ {
+ "ID": "8760",
+ "typeID": "TextArea",
+ "zOrder": "86",
+ "w": "382",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1314",
+ "y": "876",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8761",
+ "typeID": "Label",
+ "zOrder": "87",
+ "measuredW": "284",
+ "measuredH": "26",
+ "x": "1363",
+ "y": "888",
+ "properties": {
+ "size": "18",
+ "text": "Meaningful names over Comments"
+ }
+ },
+ {
+ "ID": "8762",
+ "typeID": "TextArea",
+ "zOrder": "88",
+ "w": "258",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1117",
+ "y": "931",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8763",
+ "typeID": "Label",
+ "zOrder": "89",
+ "measuredW": "221",
+ "measuredH": "26",
+ "x": "1138",
+ "y": "943",
+ "properties": {
+ "size": "18",
+ "text": "Indentation and Code Style"
+ }
+ },
+ {
+ "ID": "8764",
+ "typeID": "TextArea",
+ "zOrder": "90",
+ "w": "312",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1384",
+ "y": "931",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8765",
+ "typeID": "Label",
+ "zOrder": "91",
+ "measuredW": "275",
+ "measuredH": "26",
+ "x": "1405",
+ "y": "943",
+ "properties": {
+ "size": "18",
+ "text": "Keep methods, classes, files small"
+ }
+ },
+ {
+ "ID": "8768",
+ "typeID": "TextArea",
+ "zOrder": "92",
+ "w": "155",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1118",
+ "y": "987",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8769",
+ "typeID": "Label",
+ "zOrder": "93",
+ "measuredW": "118",
+ "measuredH": "26",
+ "x": "1137",
+ "y": "999",
+ "properties": {
+ "size": "18",
+ "text": "Pure functions"
+ }
+ },
+ {
+ "ID": "8770",
+ "typeID": "TextArea",
+ "zOrder": "94",
+ "w": "416",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1280",
+ "y": "987",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8771",
+ "typeID": "Label",
+ "zOrder": "95",
+ "measuredW": "253",
+ "measuredH": "26",
+ "x": "1361",
+ "y": "999",
+ "properties": {
+ "size": "18",
+ "text": "Minimize cyclomatic complexity"
+ }
+ },
+ {
+ "ID": "8772",
+ "typeID": "TextArea",
+ "zOrder": "96",
+ "w": "273",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1118",
+ "y": "1042",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8773",
+ "typeID": "Label",
+ "zOrder": "97",
+ "measuredW": "236",
+ "measuredH": "26",
+ "x": "1137",
+ "y": "1054",
+ "properties": {
+ "size": "18",
+ "text": "Avoid passing nulls, booleans"
+ }
+ },
+ {
+ "ID": "8774",
+ "typeID": "TextArea",
+ "zOrder": "98",
+ "w": "298",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1398",
+ "y": "1042",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8775",
+ "typeID": "Label",
+ "zOrder": "99",
+ "measuredW": "239",
+ "measuredH": "26",
+ "x": "1427",
+ "y": "1054",
+ "properties": {
+ "size": "18",
+ "text": "Keep framework code distant"
+ }
+ },
+ {
+ "ID": "8776",
+ "typeID": "TextArea",
+ "zOrder": "100",
+ "w": "223",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1118",
+ "y": "1098",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8777",
+ "typeID": "Label",
+ "zOrder": "101",
+ "measuredW": "186",
+ "measuredH": "26",
+ "x": "1137",
+ "y": "1110",
+ "properties": {
+ "size": "18",
+ "text": "Use correct constructs"
+ }
+ },
+ {
+ "ID": "8780",
+ "typeID": "TextArea",
+ "zOrder": "102",
+ "w": "349",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1347",
+ "y": "1098",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8781",
+ "typeID": "Label",
+ "zOrder": "103",
+ "measuredW": "305",
+ "measuredH": "26",
+ "x": "1369",
+ "y": "1110",
+ "properties": {
+ "size": "18",
+ "text": "Tests should be fast and independent"
+ }
+ },
+ {
+ "ID": "8782",
+ "typeID": "TextArea",
+ "zOrder": "104",
+ "w": "222",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1118",
+ "y": "1154",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8783",
+ "typeID": "Label",
+ "zOrder": "105",
+ "measuredW": "188",
+ "measuredH": "26",
+ "x": "1135",
+ "y": "1166",
+ "properties": {
+ "size": "18",
+ "text": "Use meaningful names"
+ }
+ },
+ {
+ "ID": "8784",
+ "typeID": "TextArea",
+ "zOrder": "106",
+ "w": "351",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1345",
+ "y": "1154",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8785",
+ "typeID": "Label",
+ "zOrder": "107",
+ "measuredW": "324",
+ "measuredH": "26",
+ "x": "1359",
+ "y": "1166",
+ "properties": {
+ "size": "18",
+ "text": "Organize code by the actor it belongs to"
+ }
+ },
+ {
+ "ID": "8786",
+ "typeID": "TextArea",
+ "zOrder": "108",
+ "w": "266",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1118",
+ "y": "1209",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8787",
+ "typeID": "Label",
+ "zOrder": "109",
+ "measuredW": "230",
+ "measuredH": "26",
+ "x": "1136",
+ "y": "1221",
+ "properties": {
+ "size": "18",
+ "text": "Command Query Separation"
+ }
+ },
+ {
+ "ID": "8788",
+ "typeID": "TextArea",
+ "zOrder": "110",
+ "w": "306",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1390",
+ "y": "1209",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8789",
+ "typeID": "Label",
+ "zOrder": "111",
+ "measuredW": "267",
+ "measuredH": "26",
+ "x": "1409",
+ "y": "1221",
+ "properties": {
+ "size": "18",
+ "text": "Keep it simple and refactor often"
+ }
+ },
+ {
+ "ID": "8790",
+ "typeID": "TextArea",
+ "zOrder": "57",
+ "w": "608",
+ "h": "412",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1104",
+ "y": "863"
+ },
+ {
+ "ID": "8791",
+ "typeID": "Arrow",
+ "zOrder": "56",
+ "w": "232",
+ "h": "3",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1025",
+ "y": "1065",
+ "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": "8792",
+ "typeID": "Canvas",
+ "zOrder": "112",
+ "w": "463",
+ "h": "141",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "1249",
+ "y": "523"
+ },
+ {
+ "ID": "8802",
+ "typeID": "Label",
+ "zOrder": "113",
+ "measuredW": "396",
+ "measuredH": "25",
+ "x": "1271",
+ "y": "540",
+ "properties": {
+ "size": "17",
+ "text": "Find the detailed version of this roadmap along with"
+ }
+ },
+ {
+ "ID": "8803",
+ "typeID": "Label",
+ "zOrder": "114",
+ "measuredW": "382",
+ "measuredH": "25",
+ "x": "1271",
+ "y": "568",
+ "properties": {
+ "size": "17",
+ "text": "resources, progress tracking and other resources."
+ }
+ },
+ {
+ "ID": "8804",
+ "typeID": "__group__",
+ "zOrder": "115",
+ "measuredW": "403",
+ "measuredH": "45",
+ "w": "403",
+ "h": "45",
+ "x": "1271",
+ "y": "604",
+ "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": "8806",
+ "typeID": "TextArea",
+ "zOrder": "116",
+ "w": "312",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "1094",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8807",
+ "typeID": "Label",
+ "zOrder": "117",
+ "measuredW": "199",
+ "measuredH": "26",
+ "x": "442",
+ "y": "1106",
+ "properties": {
+ "size": "18",
+ "text": "Structured Programming"
+ }
+ },
+ {
+ "ID": "8808",
+ "typeID": "TextArea",
+ "zOrder": "118",
+ "w": "312",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "1149",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8809",
+ "typeID": "Label",
+ "zOrder": "119",
+ "measuredW": "199",
+ "measuredH": "26",
+ "x": "442",
+ "y": "1161",
+ "properties": {
+ "size": "18",
+ "text": "Functional Programming"
+ }
+ },
+ {
+ "ID": "8810",
+ "typeID": "TextArea",
+ "zOrder": "120",
+ "w": "312",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "386",
+ "y": "1204",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8811",
+ "typeID": "Label",
+ "zOrder": "121",
+ "measuredW": "244",
+ "measuredH": "26",
+ "x": "420",
+ "y": "1216",
+ "properties": {
+ "size": "18",
+ "text": "Object Oriented Programming"
+ }
+ },
+ {
+ "ID": "8812",
+ "typeID": "Arrow",
+ "zOrder": "55",
+ "w": "129",
+ "h": "4",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "680",
+ "y": "1118",
+ "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": "8816",
+ "typeID": "TextArea",
+ "zOrder": "122",
+ "w": "305",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "744",
+ "y": "1323",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "8817",
+ "typeID": "Label",
+ "zOrder": "123",
+ "w": "244",
+ "measuredW": "244",
+ "measuredH": "26",
+ "x": "771",
+ "y": "1335",
+ "properties": {
+ "text": "Object Oriented Programming",
+ "size": "18"
+ }
+ },
+ {
+ "ID": "8818",
+ "typeID": "TextArea",
+ "zOrder": "124",
+ "w": "185",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "849",
+ "y": "1437",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "8819",
+ "typeID": "Label",
+ "zOrder": "125",
+ "measuredW": "146",
+ "measuredH": "26",
+ "x": "869",
+ "y": "1449",
+ "properties": {
+ "size": "18",
+ "text": "Primary Principles"
+ }
+ },
+ {
+ "ID": "8820",
+ "typeID": "TextArea",
+ "zOrder": "126",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "848",
+ "y": "1530",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8821",
+ "typeID": "Label",
+ "zOrder": "127",
+ "measuredW": "94",
+ "measuredH": "26",
+ "x": "895",
+ "y": "1542",
+ "properties": {
+ "size": "18",
+ "text": "Inheritance"
+ }
+ },
+ {
+ "ID": "8822",
+ "typeID": "TextArea",
+ "zOrder": "128",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "848",
+ "y": "1584",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8823",
+ "typeID": "Label",
+ "zOrder": "129",
+ "measuredW": "113",
+ "measuredH": "26",
+ "x": "885",
+ "y": "1596",
+ "properties": {
+ "size": "18",
+ "text": "Polymorphism"
+ }
+ },
+ {
+ "ID": "8824",
+ "typeID": "TextArea",
+ "zOrder": "130",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "848",
+ "y": "1639",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8825",
+ "typeID": "Label",
+ "zOrder": "131",
+ "measuredW": "92",
+ "measuredH": "26",
+ "x": "896",
+ "y": "1651",
+ "properties": {
+ "size": "18",
+ "text": "Abstraction"
+ }
+ },
+ {
+ "ID": "8826",
+ "typeID": "TextArea",
+ "zOrder": "132",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "848",
+ "y": "1693",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8827",
+ "typeID": "Label",
+ "zOrder": "133",
+ "measuredW": "116",
+ "measuredH": "26",
+ "x": "884",
+ "y": "1705",
+ "properties": {
+ "size": "18",
+ "text": "Encapsulation"
+ }
+ },
+ {
+ "ID": "8828",
+ "typeID": "TextArea",
+ "zOrder": "134",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "637",
+ "y": "1436",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "8829",
+ "typeID": "Label",
+ "zOrder": "135",
+ "measuredW": "154",
+ "measuredH": "26",
+ "x": "654",
+ "y": "1448",
+ "properties": {
+ "size": "18",
+ "text": "Paradigm Features"
+ }
+ },
+ {
+ "ID": "8830",
+ "typeID": "TextArea",
+ "zOrder": "136",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "637",
+ "y": "1529",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8831",
+ "typeID": "Label",
+ "zOrder": "137",
+ "measuredW": "137",
+ "measuredH": "26",
+ "x": "662",
+ "y": "1541",
+ "properties": {
+ "size": "18",
+ "text": "Abstract Classes"
+ }
+ },
+ {
+ "ID": "8833",
+ "typeID": "TextArea",
+ "zOrder": "138",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "637",
+ "y": "1584",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8834",
+ "typeID": "Label",
+ "zOrder": "139",
+ "measuredW": "145",
+ "measuredH": "26",
+ "x": "658",
+ "y": "1596",
+ "properties": {
+ "size": "18",
+ "text": "Concrete Classes"
+ }
+ },
+ {
+ "ID": "8835",
+ "typeID": "TextArea",
+ "zOrder": "140",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "637",
+ "y": "1638",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8836",
+ "typeID": "Label",
+ "zOrder": "141",
+ "measuredW": "134",
+ "measuredH": "26",
+ "x": "664",
+ "y": "1650",
+ "properties": {
+ "size": "18",
+ "text": "Scope / Visibility"
+ }
+ },
+ {
+ "ID": "8837",
+ "typeID": "TextArea",
+ "zOrder": "142",
+ "w": "187",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "637",
+ "y": "1692",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8838",
+ "typeID": "Label",
+ "zOrder": "143",
+ "measuredW": "83",
+ "measuredH": "26",
+ "x": "689",
+ "y": "1704",
+ "properties": {
+ "size": "18",
+ "text": "Interfaces"
+ }
+ },
+ {
+ "ID": "8841",
+ "typeID": "Arrow",
+ "zOrder": "49",
+ "w": "1",
+ "h": "86",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "941",
+ "y": "1463",
+ "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": "8842",
+ "typeID": "Arrow",
+ "zOrder": "50",
+ "w": "1",
+ "h": "75",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "732",
+ "y": "1462",
+ "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": "8845",
+ "typeID": "TextArea",
+ "zOrder": "144",
+ "w": "235",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "383",
+ "y": "1436",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "8846",
+ "typeID": "Label",
+ "zOrder": "145",
+ "measuredW": "172",
+ "measuredH": "26",
+ "x": "415",
+ "y": "1448",
+ "properties": {
+ "size": "18",
+ "text": "Model-Driven Design"
+ }
+ },
+ {
+ "ID": "8847",
+ "typeID": "TextArea",
+ "zOrder": "146",
+ "w": "234",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1529",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8848",
+ "typeID": "Label",
+ "zOrder": "147",
+ "measuredW": "128",
+ "measuredH": "26",
+ "x": "437",
+ "y": "1541",
+ "properties": {
+ "size": "18",
+ "text": "Domain Models"
+ }
+ },
+ {
+ "ID": "8849",
+ "typeID": "TextArea",
+ "zOrder": "148",
+ "w": "234",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1584",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8850",
+ "typeID": "Label",
+ "zOrder": "149",
+ "measuredW": "126",
+ "measuredH": "26",
+ "x": "438",
+ "y": "1596",
+ "properties": {
+ "size": "18",
+ "text": "Anemic Models"
+ }
+ },
+ {
+ "ID": "8851",
+ "typeID": "TextArea",
+ "zOrder": "150",
+ "w": "234",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1638",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8852",
+ "typeID": "Label",
+ "zOrder": "151",
+ "measuredW": "178",
+ "measuredH": "26",
+ "x": "412",
+ "y": "1650",
+ "properties": {
+ "size": "18",
+ "text": "Layered Architectures"
+ }
+ },
+ {
+ "ID": "8853",
+ "typeID": "TextArea",
+ "zOrder": "152",
+ "w": "234",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1693",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8854",
+ "typeID": "Label",
+ "zOrder": "153",
+ "measuredW": "150",
+ "measuredH": "26",
+ "x": "426",
+ "y": "1705",
+ "properties": {
+ "size": "18",
+ "text": "Domain Language"
+ }
+ },
+ {
+ "ID": "8855",
+ "typeID": "TextArea",
+ "zOrder": "154",
+ "w": "234",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1748",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "8856",
+ "typeID": "Label",
+ "zOrder": "155",
+ "measuredW": "130",
+ "measuredH": "26",
+ "x": "436",
+ "y": "1760",
+ "properties": {
+ "size": "18",
+ "text": "Class Invariants"
+ }
+ },
+ {
+ "ID": "8857",
+ "typeID": "Arrow",
+ "zOrder": "54",
+ "w": "125",
+ "h": "53",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "678",
+ "y": "1130",
+ "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": "8858",
+ "typeID": "Arrow",
+ "zOrder": "53",
+ "w": "119",
+ "h": "95",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "688",
+ "y": "1136",
+ "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": "8859",
+ "typeID": "Arrow",
+ "zOrder": "48",
+ "w": "1",
+ "h": "74",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "500",
+ "y": "1460",
+ "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": "8860",
+ "typeID": "Arrow",
+ "zOrder": "52",
+ "w": "530",
+ "h": "1",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "461",
+ "y": "1461",
+ "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": "8862",
+ "typeID": "Arrow",
+ "zOrder": "51",
+ "w": "2",
+ "h": "474",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "934",
+ "y": "589",
+ "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": "8998",
+ "typeID": "Arrow",
+ "zOrder": "47",
+ "w": "1",
+ "h": "112",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "940",
+ "y": "1353",
+ "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": "8999",
+ "typeID": "Arrow",
+ "zOrder": "46",
+ "w": "320",
+ "h": "110",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "440",
+ "y": "1344",
+ "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": "9000",
+ "typeID": "Arrow",
+ "zOrder": "45",
+ "w": "104",
+ "h": "107",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "670",
+ "y": "1348",
+ "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": "9001",
+ "typeID": "Arrow",
+ "zOrder": "44",
+ "w": "1",
+ "h": "219",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "940",
+ "y": "1132",
+ "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": "9002",
+ "typeID": "Arrow",
+ "zOrder": "43",
+ "w": "204",
+ "h": "1",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1047",
+ "y": "1347",
+ "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": "9003",
+ "typeID": "TextArea",
+ "zOrder": "156",
+ "w": "205",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1138",
+ "y": "1323",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9004",
+ "typeID": "Label",
+ "zOrder": "157",
+ "measuredW": "142",
+ "measuredH": "26",
+ "x": "1170",
+ "y": "1335",
+ "properties": {
+ "text": "Design Principles",
+ "size": "18"
+ }
+ },
+ {
+ "ID": "9005",
+ "typeID": "TextArea",
+ "zOrder": "158",
+ "w": "306",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1406",
+ "y": "1323",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9006",
+ "typeID": "Label",
+ "zOrder": "159",
+ "measuredW": "241",
+ "measuredH": "26",
+ "x": "1438",
+ "y": "1335",
+ "properties": {
+ "size": "18",
+ "text": "Composition over Inheritance"
+ }
+ },
+ {
+ "ID": "9007",
+ "typeID": "TextArea",
+ "zOrder": "160",
+ "w": "306",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1406",
+ "y": "1378",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9008",
+ "typeID": "Label",
+ "zOrder": "161",
+ "measuredW": "198",
+ "measuredH": "26",
+ "x": "1460",
+ "y": "1390",
+ "properties": {
+ "size": "18",
+ "text": "Encapsulate what varies"
+ }
+ },
+ {
+ "ID": "9009",
+ "typeID": "TextArea",
+ "zOrder": "162",
+ "w": "306",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1406",
+ "y": "1434",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9010",
+ "typeID": "Label",
+ "zOrder": "163",
+ "measuredW": "239",
+ "measuredH": "26",
+ "x": "1439",
+ "y": "1446",
+ "properties": {
+ "size": "18",
+ "text": "Program against abstarctions"
+ }
+ },
+ {
+ "ID": "9011",
+ "typeID": "TextArea",
+ "zOrder": "164",
+ "w": "306",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1406",
+ "y": "1490",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9012",
+ "typeID": "Label",
+ "zOrder": "165",
+ "measuredW": "158",
+ "measuredH": "26",
+ "x": "1480",
+ "y": "1502",
+ "properties": {
+ "size": "18",
+ "text": "Hollywood principle"
+ }
+ },
+ {
+ "ID": "9013",
+ "typeID": "TextArea",
+ "zOrder": "166",
+ "w": "108",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1406",
+ "y": "1546",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9014",
+ "typeID": "Label",
+ "zOrder": "167",
+ "measuredW": "54",
+ "measuredH": "26",
+ "x": "1433",
+ "y": "1558",
+ "properties": {
+ "size": "18",
+ "text": "SOLID"
+ }
+ },
+ {
+ "ID": "9015",
+ "typeID": "TextArea",
+ "zOrder": "168",
+ "w": "86",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1523",
+ "y": "1546",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9016",
+ "typeID": "Label",
+ "zOrder": "169",
+ "measuredW": "37",
+ "measuredH": "26",
+ "x": "1547",
+ "y": "1558",
+ "properties": {
+ "size": "18",
+ "text": "DRY"
+ }
+ },
+ {
+ "ID": "9017",
+ "typeID": "TextArea",
+ "zOrder": "170",
+ "w": "94",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1618",
+ "y": "1546",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9018",
+ "typeID": "Label",
+ "zOrder": "171",
+ "measuredW": "53",
+ "measuredH": "26",
+ "x": "1638",
+ "y": "1558",
+ "properties": {
+ "size": "18",
+ "text": "YAGNI"
+ }
+ },
+ {
+ "ID": "9019",
+ "typeID": "Arrow",
+ "zOrder": "42",
+ "w": "130",
+ "h": "1",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1302",
+ "y": "1346",
+ "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": "9020",
+ "typeID": "Arrow",
+ "zOrder": "41",
+ "w": "116",
+ "h": "46",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1303",
+ "y": "1357",
+ "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": "9021",
+ "typeID": "Arrow",
+ "zOrder": "40",
+ "w": "128",
+ "h": "108",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1294",
+ "y": "1354",
+ "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": "9022",
+ "typeID": "Arrow",
+ "zOrder": "39",
+ "w": "137",
+ "h": "162",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1282",
+ "y": "1353",
+ "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": "9023",
+ "typeID": "Arrow",
+ "zOrder": "38",
+ "w": "156",
+ "h": "210",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1266",
+ "y": "1361",
+ "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": "9049",
+ "typeID": "Arrow",
+ "zOrder": "172",
+ "w": "4",
+ "h": "474",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "357",
+ "y": "560",
+ "properties": {
+ "direction": "bottom",
+ "leftArrow": "false",
+ "color": "10027263",
+ "p0": {
+ "x": 4.446932954651686,
+ "y": 0.07707742644868176
+ },
+ "p1": {
+ "x": 0.46763660268664214,
+ "y": 0.001185028847235081
+ },
+ "p2": {
+ "x": 0.2602889435939346,
+ "y": 474.5633986796594
+ },
+ "stroke": "dotted",
+ "rightArrow": "false"
+ }
+ },
+ {
+ "ID": "9068",
+ "typeID": "Arrow",
+ "zOrder": "37",
+ "w": "1",
+ "h": "371",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1235",
+ "y": "1349",
+ "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": "9069",
+ "typeID": "TextArea",
+ "zOrder": "173",
+ "w": "205",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1138",
+ "y": "1692",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9070",
+ "typeID": "Label",
+ "zOrder": "174",
+ "measuredW": "130",
+ "measuredH": "26",
+ "x": "1176",
+ "y": "1704",
+ "properties": {
+ "size": "18",
+ "text": "Design Patterns"
+ }
+ },
+ {
+ "ID": "9071",
+ "typeID": "TextArea",
+ "zOrder": "175",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "1634",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9072",
+ "typeID": "Label",
+ "zOrder": "176",
+ "measuredW": "170",
+ "measuredH": "26",
+ "x": "1500",
+ "y": "1646",
+ "properties": {
+ "size": "18",
+ "text": "GoF Design Patterns"
+ }
+ },
+ {
+ "ID": "9073",
+ "typeID": "TextArea",
+ "zOrder": "177",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "1688",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9074",
+ "typeID": "Label",
+ "zOrder": "178",
+ "measuredW": "116",
+ "measuredH": "26",
+ "x": "1527",
+ "y": "1700",
+ "properties": {
+ "size": "18",
+ "text": "PoSA Patterns"
+ }
+ },
+ {
+ "ID": "9075",
+ "typeID": "Arrow",
+ "zOrder": "36",
+ "w": "170",
+ "h": "8",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1329",
+ "y": "1720",
+ "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": "9076",
+ "typeID": "Arrow",
+ "zOrder": "35",
+ "w": "149",
+ "h": "63",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1323",
+ "y": "1652",
+ "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": "9077",
+ "typeID": "Arrow",
+ "zOrder": "34",
+ "w": "231",
+ "h": "140",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1008",
+ "y": "1711",
+ "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": "9078",
+ "typeID": "TextArea",
+ "zOrder": "179",
+ "w": "263",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "761",
+ "y": "1833",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9079",
+ "typeID": "Label",
+ "zOrder": "180",
+ "measuredW": "187",
+ "measuredH": "26",
+ "x": "799",
+ "y": "1845",
+ "properties": {
+ "size": "18",
+ "text": "Architectural Principles"
+ }
+ },
+ {
+ "ID": "9080",
+ "typeID": "TextArea",
+ "zOrder": "181",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1888",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9081",
+ "typeID": "Label",
+ "zOrder": "182",
+ "measuredW": "121",
+ "measuredH": "26",
+ "x": "457",
+ "y": "1900",
+ "properties": {
+ "size": "18",
+ "text": "Policy vs Detail"
+ }
+ },
+ {
+ "ID": "9082",
+ "typeID": "TextArea",
+ "zOrder": "183",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1833",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9083",
+ "typeID": "Label",
+ "zOrder": "184",
+ "measuredW": "180",
+ "measuredH": "26",
+ "x": "428",
+ "y": "1845",
+ "properties": {
+ "size": "18",
+ "text": "Component Principles"
+ }
+ },
+ {
+ "ID": "9084",
+ "typeID": "TextArea",
+ "zOrder": "185",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1942",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9085",
+ "typeID": "Label",
+ "zOrder": "186",
+ "measuredW": "190",
+ "measuredH": "26",
+ "x": "423",
+ "y": "1954",
+ "properties": {
+ "size": "18",
+ "text": "Coupling and Cohesion"
+ }
+ },
+ {
+ "ID": "9086",
+ "typeID": "TextArea",
+ "zOrder": "187",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "1997",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9087",
+ "typeID": "Label",
+ "zOrder": "188",
+ "measuredW": "94",
+ "measuredH": "26",
+ "x": "471",
+ "y": "2009",
+ "properties": {
+ "size": "18",
+ "text": "Boundaries"
+ }
+ },
+ {
+ "ID": "9088",
+ "typeID": "Arrow",
+ "zOrder": "33",
+ "w": "181",
+ "h": "5",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "618",
+ "y": "1852",
+ "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": "9089",
+ "typeID": "Arrow",
+ "zOrder": "32",
+ "w": "153",
+ "h": "52",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "630",
+ "y": "1864",
+ "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": "9090",
+ "typeID": "Arrow",
+ "zOrder": "31",
+ "w": "175",
+ "h": "106",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "631",
+ "y": "1867",
+ "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": "9091",
+ "typeID": "Arrow",
+ "zOrder": "30",
+ "w": "202",
+ "h": "168",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "632",
+ "y": "1862",
+ "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": "9092",
+ "typeID": "TextArea",
+ "zOrder": "189",
+ "w": "228",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1138",
+ "y": "1945",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9093",
+ "typeID": "Label",
+ "zOrder": "190",
+ "measuredW": "155",
+ "measuredH": "26",
+ "x": "1174",
+ "y": "1957",
+ "properties": {
+ "size": "18",
+ "text": "Architectural Styles"
+ }
+ },
+ {
+ "ID": "9094",
+ "typeID": "Arrow",
+ "zOrder": "29",
+ "w": "234",
+ "h": "95",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1004",
+ "y": "1864",
+ "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": "9095",
+ "typeID": "TextArea",
+ "zOrder": "193",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "1906",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9096",
+ "typeID": "Label",
+ "zOrder": "194",
+ "measuredW": "90",
+ "measuredH": "26",
+ "x": "1540",
+ "y": "1918",
+ "properties": {
+ "size": "18",
+ "text": "Messaging"
+ }
+ },
+ {
+ "ID": "9097",
+ "typeID": "TextArea",
+ "zOrder": "195",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "1971",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9098",
+ "typeID": "Label",
+ "zOrder": "196",
+ "measuredW": "89",
+ "measuredH": "26",
+ "x": "1540",
+ "y": "1983",
+ "properties": {
+ "size": "18",
+ "text": "Distributed"
+ }
+ },
+ {
+ "ID": "9099",
+ "typeID": "TextArea",
+ "zOrder": "191",
+ "w": "228",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1138",
+ "y": "2047",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9100",
+ "typeID": "Label",
+ "zOrder": "192",
+ "measuredW": "79",
+ "measuredH": "26",
+ "x": "1212",
+ "y": "2059",
+ "properties": {
+ "size": "18",
+ "text": "Structural"
+ }
+ },
+ {
+ "ID": "9101",
+ "typeID": "Arrow",
+ "zOrder": "28",
+ "w": "133",
+ "h": "41",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1341",
+ "y": "1920",
+ "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": "9102",
+ "typeID": "Arrow",
+ "zOrder": "27",
+ "w": "120",
+ "h": "21",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1343",
+ "y": "1977",
+ "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": "9103",
+ "typeID": "TextArea",
+ "zOrder": "197",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "1767",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9104",
+ "typeID": "Label",
+ "zOrder": "198",
+ "measuredW": "106",
+ "measuredH": "26",
+ "x": "1532",
+ "y": "1779",
+ "properties": {
+ "size": "18",
+ "text": "Event-Driven"
+ }
+ },
+ {
+ "ID": "9105",
+ "typeID": "TextArea",
+ "zOrder": "199",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "1823",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9106",
+ "typeID": "Label",
+ "zOrder": "200",
+ "measuredW": "147",
+ "measuredH": "26",
+ "x": "1511",
+ "y": "1835",
+ "properties": {
+ "size": "18",
+ "text": "Publish-Subscribe"
+ }
+ },
+ {
+ "ID": "9107",
+ "typeID": "TextArea",
+ "zOrder": "201",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "2045",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9108",
+ "typeID": "Label",
+ "zOrder": "202",
+ "measuredW": "108",
+ "measuredH": "26",
+ "x": "1531",
+ "y": "2057",
+ "properties": {
+ "size": "18",
+ "text": "Client-Server"
+ }
+ },
+ {
+ "ID": "9109",
+ "typeID": "TextArea",
+ "zOrder": "203",
+ "w": "254",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1458",
+ "y": "2101",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9110",
+ "typeID": "Label",
+ "zOrder": "204",
+ "measuredW": "106",
+ "measuredH": "26",
+ "x": "1532",
+ "y": "2113",
+ "properties": {
+ "size": "18",
+ "text": "Peer-to-Peer"
+ }
+ },
+ {
+ "ID": "9111",
+ "typeID": "Arrow",
+ "zOrder": "26",
+ "w": "1",
+ "h": "91",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1584",
+ "y": "1843",
+ "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": "9112",
+ "typeID": "Arrow",
+ "zOrder": "25",
+ "w": "1",
+ "h": "79",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1584",
+ "y": "1995",
+ "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": "9113",
+ "typeID": "Arrow",
+ "zOrder": "24",
+ "w": "1",
+ "h": "176",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1239",
+ "y": "1982",
+ "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": "9114",
+ "typeID": "TextArea",
+ "zOrder": "205",
+ "w": "228",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1139",
+ "y": "2138",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9115",
+ "typeID": "Label",
+ "zOrder": "206",
+ "measuredW": "155",
+ "measuredH": "26",
+ "x": "1175",
+ "y": "2150",
+ "properties": {
+ "size": "18",
+ "text": "Component-Based"
+ }
+ },
+ {
+ "ID": "9116",
+ "typeID": "TextArea",
+ "zOrder": "207",
+ "w": "228",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1139",
+ "y": "2193",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9117",
+ "typeID": "Label",
+ "zOrder": "208",
+ "measuredW": "84",
+ "measuredH": "26",
+ "x": "1211",
+ "y": "2205",
+ "properties": {
+ "size": "18",
+ "text": "Monolithic"
+ }
+ },
+ {
+ "ID": "9118",
+ "typeID": "TextArea",
+ "zOrder": "209",
+ "w": "228",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1139",
+ "y": "2248",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9119",
+ "typeID": "Label",
+ "zOrder": "210",
+ "measuredW": "65",
+ "measuredH": "26",
+ "x": "1220",
+ "y": "2260",
+ "properties": {
+ "size": "18",
+ "text": "Layered"
+ }
+ },
+ {
+ "ID": "9120",
+ "typeID": "Arrow",
+ "zOrder": "23",
+ "w": "254",
+ "h": "180",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "895",
+ "y": "1971",
+ "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": "9121",
+ "typeID": "TextArea",
+ "zOrder": "211",
+ "w": "263",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "731",
+ "y": "2138",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9122",
+ "typeID": "Label",
+ "zOrder": "212",
+ "measuredW": "175",
+ "measuredH": "26",
+ "x": "775",
+ "y": "2150",
+ "properties": {
+ "size": "18",
+ "text": "Architectural Patterns"
+ }
+ },
+ {
+ "ID": "9123",
+ "typeID": "TextArea",
+ "zOrder": "213",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2123",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9124",
+ "typeID": "Label",
+ "zOrder": "214",
+ "measuredW": "180",
+ "measuredH": "26",
+ "x": "428",
+ "y": "2135",
+ "properties": {
+ "size": "18",
+ "text": "Model-View Controller"
+ }
+ },
+ {
+ "ID": "9125",
+ "typeID": "TextArea",
+ "zOrder": "215",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2069",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9126",
+ "typeID": "Label",
+ "zOrder": "216",
+ "measuredW": "184",
+ "measuredH": "26",
+ "x": "426",
+ "y": "2081",
+ "properties": {
+ "size": "18",
+ "text": "Domain-Driven Design"
+ }
+ },
+ {
+ "ID": "9127",
+ "typeID": "TextArea",
+ "zOrder": "217",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2177",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9128",
+ "typeID": "Label",
+ "zOrder": "218",
+ "measuredW": "114",
+ "measuredH": "26",
+ "x": "461",
+ "y": "2189",
+ "properties": {
+ "size": "18",
+ "text": "Microservices"
+ }
+ },
+ {
+ "ID": "9129",
+ "typeID": "TextArea",
+ "zOrder": "219",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2232",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9130",
+ "typeID": "Label",
+ "zOrder": "220",
+ "measuredW": "156",
+ "measuredH": "26",
+ "x": "440",
+ "y": "2244",
+ "properties": {
+ "size": "18",
+ "text": "Blackboard Pattern"
+ }
+ },
+ {
+ "ID": "9131",
+ "typeID": "TextArea",
+ "zOrder": "221",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2288",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9132",
+ "typeID": "Label",
+ "zOrder": "222",
+ "measuredW": "97",
+ "measuredH": "26",
+ "x": "469",
+ "y": "2300",
+ "properties": {
+ "size": "18",
+ "text": "Microkernel"
+ }
+ },
+ {
+ "ID": "9133",
+ "typeID": "TextArea",
+ "zOrder": "223",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2344",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9134",
+ "typeID": "Label",
+ "zOrder": "224",
+ "measuredW": "190",
+ "measuredH": "26",
+ "x": "423",
+ "y": "2356",
+ "properties": {
+ "size": "18",
+ "text": "Serverless Architecture"
+ }
+ },
+ {
+ "ID": "9135",
+ "typeID": "TextArea",
+ "zOrder": "225",
+ "w": "138",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "733",
+ "y": "2038",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9136",
+ "typeID": "Label",
+ "zOrder": "226",
+ "measuredW": "51",
+ "measuredH": "26",
+ "x": "776",
+ "y": "2050",
+ "properties": {
+ "size": "18",
+ "text": "CQRS"
+ }
+ },
+ {
+ "ID": "9137",
+ "typeID": "TextArea",
+ "zOrder": "227",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2454",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9138",
+ "typeID": "Label",
+ "zOrder": "228",
+ "measuredW": "123",
+ "measuredH": "26",
+ "x": "456",
+ "y": "2466",
+ "properties": {
+ "size": "18",
+ "text": "Event Sourcing"
+ }
+ },
+ {
+ "ID": "9139",
+ "typeID": "TextArea",
+ "zOrder": "229",
+ "w": "267",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "384",
+ "y": "2399",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9140",
+ "typeID": "Label",
+ "zOrder": "230",
+ "measuredW": "230",
+ "measuredH": "26",
+ "x": "403",
+ "y": "2411",
+ "properties": {
+ "size": "18",
+ "text": "Message Queues / Streams"
+ }
+ },
+ {
+ "ID": "9141",
+ "typeID": "TextArea",
+ "zOrder": "231",
+ "w": "138",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "733",
+ "y": "1984",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9142",
+ "typeID": "Label",
+ "zOrder": "232",
+ "measuredW": "36",
+ "measuredH": "26",
+ "x": "784",
+ "y": "1996",
+ "properties": {
+ "size": "18",
+ "text": "SOA"
+ }
+ },
+ {
+ "ID": "9143",
+ "typeID": "Arrow",
+ "zOrder": "22",
+ "w": "122",
+ "h": "18",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "632",
+ "y": "2143",
+ "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": "9144",
+ "typeID": "Arrow",
+ "zOrder": "21",
+ "w": "114",
+ "h": "63",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "636",
+ "y": "2087",
+ "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": "9145",
+ "typeID": "Arrow",
+ "zOrder": "20",
+ "w": "126",
+ "h": "36",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "628",
+ "y": "2168",
+ "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": "9146",
+ "typeID": "Arrow",
+ "zOrder": "19",
+ "w": "130",
+ "h": "89",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "626",
+ "y": "2165",
+ "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": "9147",
+ "typeID": "Arrow",
+ "zOrder": "16",
+ "w": "132",
+ "h": "144",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "628",
+ "y": "2170",
+ "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": "9148",
+ "typeID": "Arrow",
+ "zOrder": "17",
+ "w": "139",
+ "h": "202",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "634",
+ "y": "2168",
+ "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": "9149",
+ "typeID": "Arrow",
+ "zOrder": "18",
+ "w": "157",
+ "h": "251",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "633",
+ "y": "2175",
+ "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": "9150",
+ "typeID": "Arrow",
+ "zOrder": "15",
+ "w": "161",
+ "h": "305",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "640",
+ "y": "2175",
+ "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": "9151",
+ "typeID": "Arrow",
+ "zOrder": "14",
+ "w": "1",
+ "h": "110",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "801",
+ "y": "2057",
+ "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": "9152",
+ "typeID": "Arrow",
+ "zOrder": "13",
+ "w": "286",
+ "h": "274",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "896",
+ "y": "2174",
+ "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": "9153",
+ "typeID": "TextArea",
+ "zOrder": "233",
+ "w": "233",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1134",
+ "y": "2425",
+ "properties": {
+ "color": "16776960"
+ }
+ },
+ {
+ "ID": "9154",
+ "typeID": "Label",
+ "zOrder": "234",
+ "measuredW": "159",
+ "measuredH": "26",
+ "x": "1171",
+ "y": "2437",
+ "properties": {
+ "size": "18",
+ "text": "Enterprise Patterns"
+ }
+ },
+ {
+ "ID": "9155",
+ "typeID": "TextArea",
+ "zOrder": "235",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2206",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9156",
+ "typeID": "Label",
+ "zOrder": "236",
+ "measuredW": "45",
+ "measuredH": "26",
+ "x": "1573",
+ "y": "2218",
+ "properties": {
+ "size": "18",
+ "text": "DTOs"
+ }
+ },
+ {
+ "ID": "9157",
+ "typeID": "TextArea",
+ "zOrder": "237",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2261",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9158",
+ "typeID": "Label",
+ "zOrder": "238",
+ "measuredW": "109",
+ "measuredH": "26",
+ "x": "1541",
+ "y": "2273",
+ "properties": {
+ "size": "18",
+ "text": "Identity Maps"
+ }
+ },
+ {
+ "ID": "9159",
+ "typeID": "TextArea",
+ "zOrder": "239",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2316",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9160",
+ "typeID": "Label",
+ "zOrder": "240",
+ "measuredW": "90",
+ "measuredH": "26",
+ "x": "1551",
+ "y": "2328",
+ "properties": {
+ "size": "18",
+ "text": "Use Cases"
+ }
+ },
+ {
+ "ID": "9161",
+ "typeID": "TextArea",
+ "zOrder": "241",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2372",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9162",
+ "typeID": "Label",
+ "zOrder": "242",
+ "measuredW": "104",
+ "measuredH": "26",
+ "x": "1544",
+ "y": "2384",
+ "properties": {
+ "size": "18",
+ "text": "Repositories"
+ }
+ },
+ {
+ "ID": "9163",
+ "typeID": "TextArea",
+ "zOrder": "243",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2427",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9164",
+ "typeID": "Label",
+ "zOrder": "244",
+ "measuredW": "73",
+ "measuredH": "26",
+ "x": "1559",
+ "y": "2439",
+ "properties": {
+ "size": "18",
+ "text": "Mappers"
+ }
+ },
+ {
+ "ID": "9165",
+ "typeID": "TextArea",
+ "zOrder": "245",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2481",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9166",
+ "typeID": "Label",
+ "zOrder": "246",
+ "measuredW": "147",
+ "measuredH": "26",
+ "x": "1522",
+ "y": "2493",
+ "properties": {
+ "size": "18",
+ "text": "Transaction Script"
+ }
+ },
+ {
+ "ID": "9167",
+ "typeID": "TextArea",
+ "zOrder": "247",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2536",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9168",
+ "typeID": "Label",
+ "zOrder": "248",
+ "measuredW": "176",
+ "measuredH": "26",
+ "x": "1508",
+ "y": "2548",
+ "properties": {
+ "size": "18",
+ "text": "Commands / Queries"
+ }
+ },
+ {
+ "ID": "9169",
+ "typeID": "TextArea",
+ "zOrder": "249",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2590",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9170",
+ "typeID": "Label",
+ "zOrder": "250",
+ "measuredW": "112",
+ "measuredH": "26",
+ "x": "1540",
+ "y": "2602",
+ "properties": {
+ "size": "18",
+ "text": "Value Objects"
+ }
+ },
+ {
+ "ID": "9171",
+ "typeID": "TextArea",
+ "zOrder": "251",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2645",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9172",
+ "typeID": "Label",
+ "zOrder": "252",
+ "measuredW": "128",
+ "measuredH": "26",
+ "x": "1532",
+ "y": "2657",
+ "properties": {
+ "size": "18",
+ "text": "Domain Models"
+ }
+ },
+ {
+ "ID": "9173",
+ "typeID": "TextArea",
+ "zOrder": "253",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2703",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9174",
+ "typeID": "Label",
+ "zOrder": "254",
+ "measuredW": "62",
+ "measuredH": "26",
+ "x": "1565",
+ "y": "2715",
+ "properties": {
+ "size": "18",
+ "text": "Entities"
+ }
+ },
+ {
+ "ID": "9175",
+ "typeID": "TextArea",
+ "zOrder": "255",
+ "w": "232",
+ "h": "50",
+ "measuredW": "200",
+ "measuredH": "140",
+ "x": "1480",
+ "y": "2757",
+ "properties": {
+ "color": "16770457"
+ }
+ },
+ {
+ "ID": "9176",
+ "typeID": "Label",
+ "zOrder": "256",
+ "measuredW": "51",
+ "measuredH": "26",
+ "x": "1570",
+ "y": "2769",
+ "properties": {
+ "size": "18",
+ "text": "ORMs"
+ }
+ },
+ {
+ "ID": "9177",
+ "typeID": "Arrow",
+ "zOrder": "12",
+ "w": "153",
+ "h": "6",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1347",
+ "y": "2451",
+ "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": "9178",
+ "typeID": "Arrow",
+ "zOrder": "11",
+ "w": "151",
+ "h": "58",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1342",
+ "y": "2389",
+ "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": "9179",
+ "typeID": "Arrow",
+ "zOrder": "10",
+ "w": "151",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1343",
+ "y": "2338",
+ "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": "9180",
+ "typeID": "Arrow",
+ "zOrder": "9",
+ "w": "186",
+ "h": "158",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1309",
+ "y": "2280",
+ "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": "9181",
+ "typeID": "Arrow",
+ "zOrder": "8",
+ "w": "158",
+ "h": "54",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1329",
+ "y": "2463",
+ "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": "9182",
+ "typeID": "Arrow",
+ "zOrder": "7",
+ "w": "174",
+ "h": "106",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1312",
+ "y": "2463",
+ "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": "9183",
+ "typeID": "Arrow",
+ "zOrder": "6",
+ "w": "177",
+ "h": "160",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1312",
+ "y": "2466",
+ "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": "9184",
+ "typeID": "Arrow",
+ "zOrder": "5",
+ "w": "187",
+ "h": "209",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1298",
+ "y": "2467",
+ "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": "9185",
+ "typeID": "Arrow",
+ "zOrder": "4",
+ "w": "218",
+ "h": "278",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1270",
+ "y": "2458",
+ "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": "9186",
+ "typeID": "Arrow",
+ "zOrder": "3",
+ "w": "200",
+ "h": "208",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1291",
+ "y": "2224",
+ "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": "9187",
+ "typeID": "Arrow",
+ "zOrder": "2",
+ "w": "235",
+ "h": "324",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1255",
+ "y": "2462",
+ "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": "9188",
+ "typeID": "Arrow",
+ "zOrder": "1",
+ "w": "160",
+ "h": "207",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1008",
+ "y": "2454",
+ "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": "9189",
+ "typeID": "__group__",
+ "zOrder": "78",
+ "measuredW": "391",
+ "measuredH": "55",
+ "w": "391",
+ "h": "55",
+ "x": "779",
+ "y": "648",
+ "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": "9190",
+ "typeID": "__group__",
+ "zOrder": "257",
+ "measuredW": "391",
+ "measuredH": "55",
+ "w": "391",
+ "h": "55",
+ "x": "849",
+ "y": "2642",
+ "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": "9191",
+ "typeID": "Arrow",
+ "zOrder": "0",
+ "w": "1",
+ "h": "194",
+ "measuredW": "150",
+ "measuredH": "100",
+ "x": "1010",
+ "y": "2683",
+ "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": "9192",
+ "typeID": "Canvas",
+ "zOrder": "258",
+ "w": "388",
+ "h": "177",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "384",
+ "y": "2564"
+ },
+ {
+ "ID": "9193",
+ "typeID": "Label",
+ "zOrder": "259",
+ "measuredW": "235",
+ "measuredH": "32",
+ "x": "412",
+ "y": "2590",
+ "properties": {
+ "size": "24",
+ "text": "Note on Listed Topics"
+ }
+ },
+ {
+ "ID": "9194",
+ "typeID": "Label",
+ "zOrder": "260",
+ "measuredW": "304",
+ "measuredH": "25",
+ "x": "413",
+ "y": "2627",
+ "properties": {
+ "size": "17",
+ "text": "The roadmap is not an exhaustive list of"
+ }
+ },
+ {
+ "ID": "9195",
+ "typeID": "Label",
+ "zOrder": "261",
+ "measuredW": "324",
+ "measuredH": "25",
+ "x": "413",
+ "y": "2654",
+ "properties": {
+ "size": "17",
+ "text": "topics. It’s just some of the most important"
+ }
+ },
+ {
+ "ID": "9196",
+ "typeID": "Label",
+ "zOrder": "262",
+ "measuredW": "216",
+ "measuredH": "25",
+ "x": "413",
+ "y": "2681",
+ "properties": {
+ "size": "17",
+ "text": "Topics under each category."
+ }
+ },
+ {
+ "ID": "9198",
+ "typeID": "Canvas",
+ "zOrder": "263",
+ "w": "462",
+ "h": "119",
+ "measuredW": "100",
+ "measuredH": "70",
+ "x": "1250",
+ "y": "697"
+ },
+ {
+ "ID": "9199",
+ "typeID": "Label",
+ "zOrder": "264",
+ "measuredW": "106",
+ "measuredH": "28",
+ "x": "1276",
+ "y": "722",
+ "properties": {
+ "size": "20",
+ "text": "References"
+ }
+ },
+ {
+ "ID": "9205",
+ "typeID": "__group__",
+ "zOrder": "265",
+ "measuredW": "389",
+ "measuredH": "26",
+ "w": "389",
+ "h": "26",
+ "x": "1277",
+ "y": "764",
+ "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"
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "ID": "9211",
+ "typeID": "Label",
+ "zOrder": "266",
+ "measuredW": "18",
+ "measuredH": "36",
+ "x": "349",
+ "y": "1008",
+ "properties": {
+ "size": "28",
+ "text": "V",
+ "color": "10027263"
+ }
+ }
+ ]
+ },
+ "attributes": {
+ "name": "New Wireframe 1 copy",
+ "order": 1000022.7455786733,
+ "parentID": null,
+ "notes": ""
+ },
+ "branchID": "Master",
+ "resourceID": "8024860B-B61F-451D-B579-28AA621BB239",
+ "mockupH": "2431",
+ "mockupW": "1363",
+ "measuredW": "1712",
+ "measuredH": "2877",
+ "version": "1.0"
+ },
+ "groupOffset": {
+ "x": 0,
+ "y": 0
+ },
+ "dependencies": [],
+ "projectID": "file:///Users/kamranahmed/Desktop/devops%20roadmap%5C.bmpr"
+}
diff --git a/public/roadmaps/software-design-architecture.png b/public/roadmaps/software-design-architecture.png
new file mode 100644
index 000000000..d30910269
Binary files /dev/null and b/public/roadmaps/software-design-architecture.png differ
diff --git a/public/sitemap.xml b/public/sitemap.xml
index c1b8d3eb0..907573c43 100644
--- a/public/sitemap.xml
+++ b/public/sitemap.xml
@@ -102,6 +102,18 @@
2022-09-26T21:37:21.827Z
1.0
+
+ https://roadmap.sh/software-design-architecture
+ monthly
+ 2022-10-03T17:03:35.645Z
+ 1.0
+
+
+ https://roadmap.sh/guides/http-basic-authentication
+ monthly
+ 2022-10-03T19:59:14.191Z
+ 1.0
+
https://roadmap.sh/guides/basics-of-authentication
monthly