Merge branch 'master' of github.com:kamranahmedse/developer-roadmap

pull/2367/head
Kamran Ahmed 2 years ago
commit 05efa1691d
  1. 2
      content/guides/history-of-javascript.md
  2. 4
      content/guides/journey-to-http2.md
  3. 2
      content/roadmaps.json
  4. 2
      content/roadmaps/100-frontend/content/100-internet/101-what-is-http.md
  5. 2
      content/roadmaps/100-frontend/content/101-html/104-accessibility.md
  6. 6
      content/roadmaps/100-frontend/content/107-package-managers/102-pnpm.md
  7. 7
      content/roadmaps/100-frontend/content/111-pick-a-framework/103-svelte.md
  8. 7
      content/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/104-mantine.md
  9. 6
      content/roadmaps/100-frontend/content/114-css-frameworks/114-js-first/105-daisy-ui.md
  10. 2
      content/roadmaps/100-frontend/content/118-server-side-rendering/100-react-js/101-after-js.md
  11. 2
      content/roadmaps/101-backend/content-paths.json
  12. 2
      content/roadmaps/101-backend/content/103-learn-a-language/106-python.md
  13. 2
      content/roadmaps/101-backend/content/107-nosql-databases/101-column-databases.md
  14. 0
      content/roadmaps/101-backend/content/123-scalability/103-horizontal-vertical-scaling.md
  15. 2
      content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/134-strace.md
  16. 10
      content/roadmaps/102-devops/content/102-managing-servers/101-live-in-terminal/141-scp.md
  17. 2
      content/roadmaps/102-devops/content/103-networking-protocols/107-port-forwarding.md
  18. 6
      content/roadmaps/102-devops/content/112-management-and-monitoring.md
  19. 2
      content/roadmaps/102-devops/meta.json
  20. 2
      content/roadmaps/103-react/content-paths.json
  21. 0
      content/roadmaps/103-react/content/102-react-ecosystem/107-state-management/100-context-state.md
  22. 11
      content/roadmaps/104-angular/content/101-rxjs-basics/101-observable-lifecycle.md
  23. 43
      content/roadmaps/104-angular/content/101-rxjs-basics/104-operators/readme.md
  24. 5
      content/roadmaps/104-angular/content/102-angular-basics/105-services.md
  25. 6
      content/roadmaps/104-angular/content/103-angular-cli/106-schematics.md
  26. 5
      content/roadmaps/104-angular/content/104-templates/100-interpolation.md
  27. 7
      content/roadmaps/104-angular/content/107-routing/101-router-outlets.md
  28. 5
      content/roadmaps/104-angular/content/112-creating-a-custom-x/102-library.md
  29. 6
      content/roadmaps/104-angular/content/113-angular-ssr/100-angular-universal.md
  30. 6
      content/roadmaps/104-angular/content/114-angular-ssg/100-scully.md
  31. 6
      content/roadmaps/104-angular/content/115-testing-angular-apps/100-testing-pipes.md
  32. 6
      content/roadmaps/104-angular/content/115-testing-angular-apps/101-testing-services.md
  33. 5
      content/roadmaps/104-angular/content/115-testing-angular-apps/102-testing-component-bindings.md
  34. 6
      content/roadmaps/104-angular/content/115-testing-angular-apps/103-testing-directives.md
  35. 5
      content/roadmaps/104-angular/content/115-testing-angular-apps/104-testing-component-templates.md
  36. 2
      content/roadmaps/105-vue/content/102-ecosystem/108-vue-testing-library.md
  37. 2
      content/roadmaps/106-javascript/content/102-javascript-datatypes/101-object/readme.md
  38. 2
      content/roadmaps/106-javascript/content/105-javascript-equality-comparisons/100-equality-algorithms/100-is-loosely-equal.md
  39. 2
      content/roadmaps/106-javascript/content/105-javascript-equality-comparisons/100-equality-algorithms/101-is-strictly-equal.md
  40. 13
      content/roadmaps/106-javascript/content/107-javascript-control-flow/readme.md
  41. 2
      content/roadmaps/106-javascript/content/109-javascript-functions/101-function-parameters/101-rest-params.md
  42. 2
      content/roadmaps/106-javascript/content/109-javascript-functions/106-built-in-functions.md
  43. 4
      content/roadmaps/106-javascript/content/117-javascript-chrome-dev-tools/readme.md
  44. 5
      content/roadmaps/107-nodejs/content/101-nodejs-modules/readme.md
  45. 2
      content/roadmaps/107-nodejs/content/107-nodejs-apis/109-passport-js.md
  46. 5
      content/roadmaps/107-nodejs/content/109-nodejs-template-engines/100-marko.md
  47. 4
      content/roadmaps/107-nodejs/content/110-nodejs-databases/100-relational/readme.md
  48. 6
      content/roadmaps/107-nodejs/content/110-nodejs-databases/101-document/101-prisma.md
  49. 4
      content/roadmaps/107-nodejs/content/110-nodejs-databases/101-document/102-native-drivers.md
  50. 8
      content/roadmaps/107-nodejs/content/112-nodejs-logging/readme.md
  51. 6
      content/roadmaps/107-nodejs/content/113-nodejs-keep-app-running-prod/101-forever.md
  52. 7
      content/roadmaps/107-nodejs/content/113-nodejs-keep-app-running-prod/102-nohup.md
  53. 2
      content/roadmaps/108-python/content/106-python-frameworks/101-asynchronous/102-tornado.md
  54. 2
      content/roadmaps/109-golang/content/100-go-basics/111-type-inference.md
  55. 6
      content/roadmaps/109-golang/content/101-go-advanced/108-select.md
  56. 9
      content/roadmaps/109-golang/content/107-go-api-clients/100-rest/readme.md
  57. 7
      content/roadmaps/110-java/content/104-java-orm/103-ebean.md
  58. 3
      content/roadmaps/110-java/content/104-java-orm/readme.md
  59. 6
      content/roadmaps/110-java/content/106-java-jdbc/100-jdbi3.md
  60. 3
      content/roadmaps/110-java/content/106-java-jdbc/101-jdbc-template.md
  61. 10
      content/roadmaps/110-java/content/107-testing-java-apps/101-cucumber-jvm.md
  62. 8
      content/roadmaps/110-java/content/107-testing-java-apps/readme.md
  63. 2
      content/roadmaps/111-postgresql-dba/landscape.md
  64. 2
      content/roadmaps/112-blockchain/content/109-dapps/107-supporting-languages/101-python.md
  65. 8
      content/roadmaps/113-qa/content/100-qa-basics/105-manage-your-testing/101-test-rail.md
  66. 8
      content/roadmaps/113-qa/content/100-qa-basics/105-manage-your-testing/102-test-link.md
  67. 8
      content/roadmaps/113-qa/content/100-qa-basics/105-manage-your-testing/103-zephyr.md
  68. 7
      content/roadmaps/113-qa/content/100-qa-basics/105-manage-your-testing/readme.md
  69. 8
      content/roadmaps/113-qa/content/101-qa-sdlc/102-agile-model/100-kanban.md
  70. 6
      content/roadmaps/113-qa/content/101-qa-sdlc/102-agile-model/101-scrum.md
  71. 7
      content/roadmaps/113-qa/content/101-qa-sdlc/102-agile-model/102-safe.md
  72. 8
      content/roadmaps/113-qa/content/101-qa-sdlc/102-agile-model/103-xp.md
  73. 11
      content/roadmaps/113-qa/content/104-qa-non-functional-testing/101-accessibility-testing/100-chrome-devtools.md
  74. 8
      content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/100-oop.md
  75. 9
      content/roadmaps/114-software-architect/content/105-patterns-and-design-principles/102-cqrs-eventual-consistency.md
  76. 7
      content/roadmaps/114-software-architect/content/106-architect-tools/102-trello.md
  77. 13
      content/roadmaps/114-software-architect/content/107-architectures/105-service-oriented.md
  78. 9
      content/roadmaps/114-software-architect/content/109-working-with-data/102-sql-databases.md
  79. 11
      content/roadmaps/114-software-architect/content/109-working-with-data/103-nosql-databases.md
  80. 50
      content/roadmaps/114-software-architect/content/111-web-and-mobile/101-react-vue-angular.md
  81. 11
      content/roadmaps/114-software-architect/content/111-web-and-mobile/103-pwa.md
  82. 2
      public/project/backend.json
  83. 2
      public/project/react.json
  84. 2
      public/project/software-architect.json

@ -1,7 +1,7 @@
Around 10 years ago, Jeff Atwood (the founder of stackoverflow) made a case that JavaScript is going to be the future and he coined the “Atwood Law” which states that *Any application that can be written in JavaScript will eventually be written in JavaScript*. Fast-forward to today, 10 years later, if you look at it it rings truer than ever. JavaScript is continuing to gain more and more adoption.
### JavaScript is announced
JavaScript was initially created by [Brendan Eich](https://twitter.com/BrendanEich) of NetScape and was first announced in a press release by Netscape in 1995. It has a bizarre history of naming; initally it was named `Mocha` by the creator, which was later renamed to `LiveScript`. In 1996, about a year later after the release, NetScape decided to rename it to be `JavaScript` with hopes of capitalizing on the Java community (although JavaScript did not have any relationship with Java) and released Netscape 2.0 with the official support of JavaScript.
JavaScript was initially created by [Brendan Eich](https://twitter.com/BrendanEich) of NetScape and was first announced in a press release by Netscape in 1995. It has a bizarre history of naming; initially it was named `Mocha` by the creator, which was later renamed to `LiveScript`. In 1996, about a year later after the release, NetScape decided to rename it to be `JavaScript` with hopes of capitalizing on the Java community (although JavaScript did not have any relationship with Java) and released Netscape 2.0 with the official support of JavaScript.
### ES1, ES2 and ES3
In 1996, Netscape decided to submit it to [ECMA International](https://en.wikipedia.org/wiki/Ecma_International) with the hopes of getting it standardized. First edition of the standard specification was released in 1997 and the language was standardized. After the initial release, `ECMAScript` was continued to be worked upon and in no-time two more versions were released ECMAScript 2 in 1998 and ECMAScript 3 in 1999.

@ -71,7 +71,7 @@ Three-way handshake in its simplest form is that all the `TCP` connections begin
- `SYN ACK` - Server acknowledges the request by sending an `ACK` packet back to the client which is made up of a random number, let's say `y` picked up by server and the number `x+1` where `x` is the number that was sent by the client
- `ACK` - Client increments the number `y` received from the server and sends an `ACK` packet back with the number `y+1`
Once the three-way handshake is completed, the data sharing between the client and server may begin. It should be noted that the client may start sending the application data as soon as it dispatches the last `ACK` packet but the server will still have to wait for the `ACK` packet to be recieved in order to fulfill the request.
Once the three-way handshake is completed, the data sharing between the client and server may begin. It should be noted that the client may start sending the application data as soon as it dispatches the last `ACK` packet but the server will still have to wait for the `ACK` packet to be received in order to fulfill the request.
![](http://i.imgur.com/uERG2G2.png)
@ -121,7 +121,7 @@ Google went ahead and started experimenting with alternative protocols to make t
It was seen that if we keep increasing the bandwidth, the network performance increases in the beginning but a point comes when there is not much of a performance gain. But if you do the same with latency i.e. if we keep dropping the latency, there is a constant performance gain. This was the core idea for performance gain behind `SPDY`, decrease the latency to increase the network performance.
> For those who don't know the difference, latency is the delay i.e. how long it takes for data to travel between the source and destination (measured in milliseconds) and bandwidth is the amount of data transfered per second (bits per second).
> For those who don't know the difference, latency is the delay i.e. how long it takes for data to travel between the source and destination (measured in milliseconds) and bandwidth is the amount of data transferred per second (bits per second).
The features of `SPDY` included, multiplexing, compression, prioritization, security etc. I am not going to get into the details of SPDY, as you will get the idea when we get into the nitty gritty of `HTTP/2` in the next section as I said `HTTP/2` is mostly inspired from SPDY.

@ -125,7 +125,7 @@
"devops roadmap 2022",
"sre roadmap 2022",
"operations roadmap 2022",
"guide to becoming a devops enginer",
"guide to becoming a devops engineer",
"devops roadmap",
"sre roadmap",
"site reliability engineer roadmap",

@ -1,6 +1,6 @@
# What is HTTP?
HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. HTTP follows a classical "Client-Server model" with a client opening a connection request, then waiting until it recieves a response. HTTP is a stateless protocol, that means that the server does not keep any data (state) between two requests.
HTTP is the `TCP/IP` based application layer communication protocol which standardizes how the client and server communicate with each other. HTTP follows a classical "Client-Server model" with a client opening a connection request, then waiting until it receives a response. HTTP is a stateless protocol, that means that the server does not keep any data (state) between two requests.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.cloudflare.com/en-gb/learning/ddos/glossary/hypertext-transfer-protocol-http/'>What is HTTP?</BadgeLink>

@ -2,6 +2,8 @@
Web accessibility means that websites, tools, and technologies are designed and developed in such a way that people with disabilities can use them easily.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3.org/WAI/tips/developing/'>Developing for Web Accessibility by W3C WAI
</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.w3schools.com/accessibility/index.php'>Accessibility Tutorial
</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://www.smashingmagazine.com/2021/03/complete-guide-accessible-front-end-components/'>A Complete Guide To Accessible Front-End Components</BadgeLink>

@ -1 +1,7 @@
# pnpm
PNPM is an alternative package manager for Node. js which stands for “Performant NPM”. The main purpose of PNPM is to hold all the packages at a global (centralized) store and use them if needed by other projects too by creating hard links to it.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://pnpm.io'>Official Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://blog.bitsrc.io/pnpm-javascript-package-manager-4b5abd59dc9'>Meet PNPM: The Faster, More Performant NPM</BadgeLink>

@ -1 +1,8 @@
# Svelte
Svelte is a javascript framework that unlike Vue and React does not use vertical DOM diffing but instead knows exactly what and where to update when the state changes. It's mainly focused on frontend and building user interfaces.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://svelte.dev/'>Svelte Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Guide' href='https://svelte.dev/docs'>Svelte Documentation</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/playlist?list=PL4cUxeGkcC9hlbrVO_2QFVqVPhlZmz7tO'>Svelte Course Playlist for beginners</BadgeLink>

@ -1 +1,8 @@
# Mantine
Mantine is a React components library with more than 100 customizable components and 40 hooks to cover you in any situation.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://mantine.dev/'>Mantine Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://mantine.dev/guides/cra/'>Usage with Create React App</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://blog.logrocket.com/5-mantine-hooks-simplifying-ui-management-react/'>5 Mantine Hooks for UI management</BadgeLink>

@ -1 +1,7 @@
# Daisy UI
Component library around Tailwind CSS that comes with several built-in components.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://daisyui.com/'>DaisyUI Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://daisyui.com/docs/install/'>DaisyUI Documentation</BadgeLink>

@ -4,4 +4,4 @@ After.js is an open-source JavaScript framework for developing SSR (Server Side
<ResourceGroupTitle>Free Resources</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Repository' href='https://github.com/jaredpalmer/after.js'>Official GitHub repository</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://www.npmjs.com/package/@jaredpalmer/after'>Documetation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://www.npmjs.com/package/@jaredpalmer/after'>Documentation</BadgeLink>

@ -133,6 +133,6 @@
"scalability:mitigation-strategies": "/roadmaps/101-backend/content/123-scalability/100-mitigation-strategies.md",
"scalability:instrumentation-monitoring-telemetry": "/roadmaps/101-backend/content/123-scalability/101-instrumentation-monitoring-telemetry.md",
"scalability:migration-strategies": "/roadmaps/101-backend/content/123-scalability/102-migration-strategies.md",
"scalability:horizontal-vertial-scaling": "/roadmaps/101-backend/content/123-scalability/103-horizontal-vertial-scaling.md",
"scalability:horizontal-vertical-scaling": "/roadmaps/101-backend/content/123-scalability/103-horizontal-vertical-scaling.md",
"scalability:observability": "/roadmaps/101-backend/content/123-scalability/104-observability.md"
}

@ -6,7 +6,7 @@
# Python
Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedureal or object-oriented programmatic ways.
Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedural or object-oriented programmatic ways.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.python.org/'>Python Website</BadgeLink>

@ -1,6 +1,6 @@
# Column Databases
A **<u>wide-column database</u>** (sometimes refered to as a column database) is similar to a relational database. It store data in tables, rows and columns. However in opposite to relational databases here each row can have its own format of the columns. Column databases can be seen as a two-dimensional key-value database. One of such database system is **Apache Cassandra**.
A **<u>wide-column database</u>** (sometimes referred to as a column database) is similar to a relational database. It store data in tables, rows and columns. However in opposite to relational databases here each row can have its own format of the columns. Column databases can be seen as a two-dimensional key-value database. One of such database system is **Apache Cassandra**.
**Warning:** <a href="https://en.wikipedia.org/wiki/Wide-column_store#Wide-column_stores_versus_columnar_databases">note that a "columnar database" and a "column database" are two different terms!</a>

@ -1,6 +1,6 @@
# strace
`strac` is a useful diagnsotic, debugging tool for unix based operating systems. It traces the system calls and signals a processs uses during its lifetime. And usually returns the name of the each system calls , its arguments and what it returned.
`strac` is a useful diagnsotic, debugging tool for unix based operating systems. It traces the system calls and signals a process uses during its lifetime. And usually returns the name of the each system calls , its arguments and what it returned.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://strace.io/'>Strace Official Website</BadgeLink>

@ -1 +1,9 @@
# Scp
# SCP
`SCP` is an acronym for Secure Copy Protocol.It is a command line utility that allows the user to securely copy files and directories between two locations usually between unix or linux systems.The protocol ensures the transmission of files is encrypted to prevent anyone with suspicious intentions from getting sensitive information.`SCP` uses encryption over an `SSH` (Secure Shell) connection, this ensures that the data being transferred is protected from suspicious attacks.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/scp-linux-command-example-how-to-ssh-file-transfer-from-remote-to-local/'>SCP Linux Command</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.tecmint.com/scp-commands-examples/'>10 SCP command examples</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://phoenixnap.com/kb/linux-scp-command'>SCP command explained</BadgeLink>

@ -4,4 +4,4 @@ Port forwarding, sometimes called **port mapping**, allows computers or services
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://learn.g2.com/port-forwarding'>What is Port Forwarding?</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://cybernews.com/what-is-vpn/port-forwarding/'>Types of Port Fowarding</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://cybernews.com/what-is-vpn/port-forwarding/'>Types of Port Forwarding</BadgeLink>

@ -1 +1,5 @@
# Management and monitoring
# Management and Monitoring
DevOps management and monitoring entails overseeing the entire development process from planning, development, integration and testing, deployment, and operations. It involves a complete and real-time view of the status of applications, services, and infrastructure in the production environment. Features such as real-time streaming, historical replay, and visualizations are critical components of application and service monitoring.
<BadgeLink badgeText='Get Started Guide' colorScheme='blue' href='https://www.atlassian.com/devops/devops-tools/devops-monitoring'>Management and Monitoring Get Started Guide</BadgeLink>

@ -6,7 +6,7 @@
"devops roadmap 2022",
"sre roadmap 2022",
"operations roadmap 2022",
"guide to becoming a devops enginer",
"guide to becoming a devops engineer",
"devops roadmap",
"sre roadmap",
"site reliability engineer roadmap",

@ -52,7 +52,7 @@
"react-ecosystem:testing:react-testing-library": "/roadmaps/103-react/content/102-react-ecosystem/106-testing/101-react-testing-library.md",
"react-ecosystem:testing:cypress": "/roadmaps/103-react/content/102-react-ecosystem/106-testing/102-cypress.md",
"react-ecosystem:state-management": "/roadmaps/103-react/content/102-react-ecosystem/107-state-management/readme.md",
"react-ecosystem:state-management:conext-state": "/roadmaps/103-react/content/102-react-ecosystem/107-state-management/100-conext-state.md",
"react-ecosystem:state-management:context-state": "/roadmaps/103-react/content/102-react-ecosystem/107-state-management/100-context-state.md",
"react-ecosystem:state-management:redux": "/roadmaps/103-react/content/102-react-ecosystem/107-state-management/101-redux.md",
"react-ecosystem:state-management:mobx": "/roadmaps/103-react/content/102-react-ecosystem/107-state-management/102-mobx.md",
"react-ecosystem:styling": "/roadmaps/103-react/content/102-react-ecosystem/108-styling/readme.md",

@ -1 +1,12 @@
# Observable lifecycle
An observable is a function that acts as a wrapper for a data stream. They support to pass messages inside your application. An observable is useless until an observer subscribes to it. An observer is an object which consumes the data emitted by the observable. An observer keeps receiving data values from the observable until the observable is completed, or the observer unsubscribes from the observable. Otherwise observers can receive data values from the observable continuously and asynchronously. So we can perform various operations such as updating the user interface, or passing the JSON response.
There are 4 stages for a life cycle of an observable.
- Creation
- Subscription
- Execution
- Destruction
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://medium.com/analytics-vidhya/understanding-rxjs-observables-ad5b34d9607f'>Understanding Observable LifeCycle</BadgeLink>

@ -1 +1,42 @@
# Operators
# RxJS Operators
RxJS is mostly useful for its operators, even though the Observable is the foundation. Operators are the essential pieces that allow complex asynchronous code to be easily composed in a declarative manner.
Operators are functions. There are two kinds of operators:
**Pipeable Operators** are the kind that can be piped to Observables using the syntax observableInstance.pipe(operator()). These include, filter(...), and mergeMap(...). When called, they do not change the existing Observable instance. Instead, they return a new Observable, whose subscription logic is based on the first Observable.
A Pipeable Operator is essentially a pure function which takes one Observable as input and generates another Observable as output. Subscribing to the output Observable will also subscribe to the input Observable.
**Creation Operators** are the other kind of operator, which can be called as standalone functions to create a new Observable. For example: of(1, 2, 3) creates an observable that will emit 1, 2, and 3, one right after another. Creation operators will be discussed in more detail in a later section.
## Piping
Pipeable operators are functions, so they could be used like ordinary functions: op()(obs) — but in practice, there tend to be many of them convolved together, and quickly become unreadable: op4()(op3()(op2()(op1()(obs)))). For that reason, Observables have a method called .pipe() that accomplishes the same thing while being much easier to read:
```bash
obs.pipe(op1(), op2(), op3(), op4());
```
## Creation Operators
**What are creation operators?** Distinct from pipeable operators, creation operators are functions that can be used to create an Observable with some common predefined behavior or by joining other Observables.
A typical example of a creation operator would be the interval function. It takes a number (not an Observable) as input argument, and produces an Observable as output:
```bash
import { interval } from 'rxjs';
const observable = interval(1000 /* number of milliseconds */);
```
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://rxjs.dev/guide/operators#creation-operators-list'>List of creation operators</BadgeLink>
## Higher-order Observables
Observables most commonly emit ordinary values like strings and numbers, but surprisingly often, it is necessary to handle Observables of Observables, so-called higher-order Observables.
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://rxjs.dev/guide/operators'>Full RxJS Operators Documentation</BadgeLink>

@ -1 +1,6 @@
# Services
Services let you define code or functionalities that are then accessible and reusable in many other components in the Angular project. It also helps you with the abstraction of logic and data that is hosted independently but can be shared across other components.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://angular.io/tutorial/toh-pt4'>Services</BadgeLink>

@ -1 +1,7 @@
# Schematics
A schematic is a template-based code generator that supports complex logic. It is a set of instructions for transforming a software project by generating or modifying code.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Official Website' href='https://angular.io/guide/schematics#:~:text=A%20schematic%20is%20a%20template,collections%20and%20installed%20with%20npm.'>Angular Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Official Website' href='https://blog.angular.io/schematics-an-introduction-dc1dfbc2a2b2?gi=ad9571373944'>Angular Blog</BadgeLink>

@ -1 +1,6 @@
# Interpolation
Interpolation refers to embedding expressions into marked up text. By default, interpolation uses the double curly braces {{ and }} as delimiters. Angular replaces currentCustomer with the string value of the corresponding component property.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='ttps://angular.io/guide/interpolation'>Angular Official Website</BadgeLink>

@ -1 +1,8 @@
# Router outlets
The router-outlet is a directive that's available from the @angular/router package and is used by the router to mark where in a template, a matched component should be inserted.
Thanks to the router outlet, your app will have multiple views/pages and the app template acts like a shell of your application. Any element, you add to the shell will be rendered in each view, only the part marked by the router outlet will be changed between views.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://angular.io/api/router/RouterOutle'>Understanding Router Outlets</BadgeLink>

@ -1 +1,6 @@
# Library
Use the Angular CLI and the npm package manager to build and publish your library as an npm package.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Official Website' href='https://angular.io/guide/creating-libraries'>Angular Website</BadgeLink>

@ -1 +1,7 @@
# Angular universal
Angular Universal also known as server-side rendering is tool which allows server to pre-render Angular application while user hits your website for first time.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Official Website' href='https://angular.io/guide/universal'>Angular Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Github Repository' href='https://github.com/angular/universal'>Github Repository</BadgeLink>

@ -1 +1,7 @@
# Scully
Scully is the best static site generator for Angular projects looking to embrace the Jamstack. It will use your application and will create a static index. html for each of your pages/routes.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Official Website' href='https://scully.io/'>Scully Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Github Repository' href='https://github.com/scullyio/scully'>Github Repository</BadgeLink>

@ -1 +1,7 @@
# Testing pipes
An Angular Pipe is a special function that is called from a Component template. Its purpose is to transform a value: You pass a value to the Pipe, the Pipe computes a new value and returns it.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://angular.io/guide/testing-pipes'>Angular.io Website</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://testing-angular.com/testing-pipes/'>Testing-Angular.com</BadgeLink>

@ -1 +1,7 @@
# Testing services
In an Angular application, Services are responsible for fetching, storing and processing data. Services are singletons, meaning there is only one instance of a Service during runtime. They are fit for central data storage, HTTP and WebSocket communication as well as data validation.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://angular.io/guide/testing-services'>Angular.io Website</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://testing-angular.com/testing-services/'>Testing-Angular.com</BadgeLink>

@ -1 +1,6 @@
# Testing component bindings
Angular processes all data bindings once for each JavaScript event cycle, from the root of the application component tree through all child components. Data binding plays an important role in communication between a template and its component, and is also important for communication between parent and child components.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://angular.io/guide/architecture-components#:~:text=Angular%20processes%20all%20data%20bindings,between%20parent%20and%20child%20components.'>Angular.io Website</BadgeLink>

@ -1 +1,7 @@
# Testing directives
Directives are classes that add new behavior or modify the existing behavior to the elements in the template. Basically directives are used to manipulate the DOM, for example adding/removing the element from DOM or changing the appearance of the DOM elements.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://angular.io/guide/testing-attribute-directives'>Angular.io Website</BadgeLink>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://testing-angular.com/testing-directives/'>tesing-angular Website</BadgeLink>

@ -1 +1,6 @@
# Testing component templates
With a component template , you can save and reuse component processes and properties and create components from them; template-based components inherit the template's properties and process.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme='yellow' href='https://angular.io/guide/architecture-components'>Angular.io Website</BadgeLink>

@ -3,4 +3,4 @@
The Vue Testing Library is a very lightweight solution for testing Vue components. Its primary guiding principle is: The more your tests resemble the way your software is used, the more confidence they can give you.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Getting Started' href='https://testing-library.com/docs/vue-testing-library/intro/'>Geting Started with Vue Testing Library</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Getting Started' href='https://testing-library.com/docs/vue-testing-library/intro/'>Getting Started with Vue Testing Library</BadgeLink>

@ -6,5 +6,5 @@ JavaScript object is a data structure that allows us to have key-value pairs; so
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/object'>Objects</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects'>Working with Objects</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.w3schools.com/js/js_object_definition.asp'>JavaScript Object Defination</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.w3schools.com/js/js_object_definition.asp'>JavaScript Object Definition</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/objects-in-javascript/'>Objects in JavaScript </BadgeLink>

@ -4,4 +4,4 @@
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality'> Loosely Equality (==) Operator</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/comparison'>Comparsion - javascript.info</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/comparison'>Comparison - javascript.info</BadgeLink>

@ -4,4 +4,4 @@
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Strict_equality'> Strictly Equality (===) Operator</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/comparison'>Comparsion - javascript.info</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://javascript.info/comparison'>Comparison - javascript.info</BadgeLink>

@ -1 +1,12 @@
# Javascript control flow
# Control Flow
In JavaScript, the `Control flow` is a way of how your computer runs code from top to bottom. It starts from the first line and ends at the last line unless it hits any statement that changes the control flow of the program such as loops, conditionals, etc.
We can control the flow of the program through any of these control structures:
- Sequential (default mode)
- Conditional Statements
- Exception Handling
- Loops and Iterations
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.mozilla.org/en-US/docs/Glossary/Control_flow'>Control Flow - MDN</BadgeLink>

@ -2,4 +2,4 @@
The rest parameter syntax allows a function to accept an indefinite number of arguments as an array, providing a way to represent [variadic functions](https://en.wikipedia.org/wiki/Variadic_function) in JavaScript.
<BadgeLink colorScheme='yellow' badgeText='Rest parameters MDN documentation' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters'>Rest Paremeters - MDN Docs</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Rest parameters MDN documentation' href='https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters'>Rest Parameters - MDN Docs</BadgeLink>

@ -1,7 +1,7 @@
# Built in functions
- A JavaScript **method** is a property containing a **function definition** . In other words, when the data stored on an object is a function we call that a method.
- To differenciate between properties and methods, we can think of it this way: **A property is what an object has, while a method is what an object does.**
- To differentiate between properties and methods, we can think of it this way: **A property is what an object has, while a method is what an object does.**
- Since JavaScript methods are actions that can be performed on objects, we first need to have objects to start with. There are several objects built into JavaScript which we can use.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>

@ -1,8 +1,8 @@
# Javascript chrome dev tools
These are a set of tools built into the browser to aid frontend developers diagnose and solve various issues in their applications — such as JavaScript and logical bugs, CSS styling issues or even just making quick temprary alterations to the DOM.
These are a set of tools built into the browser to aid frontend developers diagnose and solve various issues in their applications — such as JavaScript and logical bugs, CSS styling issues or even just making quick temporary alterations to the DOM.
To enter the dev tools, right click and click **Inspect** (or press `ctrl+shift+c`/`cmd+opt+c`) to enter the Elements panel. Here you can debug CSS and HTML issues. If you want to see logged messages or interact with javascript, enter the **Console** tab from the tabs above (or press `ctrl+shift+j`/`cmd+opt+j` to enter it directly). Another very useful feature in the Chrome dev tools is the Lighthouse (for checking perfomance) — more on this later.
To enter the dev tools, right click and click **Inspect** (or press `ctrl+shift+c`/`cmd+opt+c`) to enter the Elements panel. Here you can debug CSS and HTML issues. If you want to see logged messages or interact with javascript, enter the **Console** tab from the tabs above (or press `ctrl+shift+j`/`cmd+opt+j` to enter it directly). Another very useful feature in the Chrome dev tools is the Lighthouse (for checking performance) — more on this later.
NOTE: This isn't a chrome-specific feature, and most browsers (Chromium based or otherwise) will have their own, largely-similar set of devtools.

@ -1,9 +1,10 @@
# Node.js modules
# Node.js Modules
We split our code into different files to maintain, organize and reuse code whenever possible. A module system allows us to split and include code and import code written by other developers whenever required. In simple terms, a module is nothing but a JavaScript file. Node.js has many built-in modules that are part of the platform and comes with Node.js installation, for example, HTTP, fs, path, and more.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Read' href='https://nodejs.org/api/modules.html'>Official Documentation</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://nodejs.org/api/modules.html#modules-commonjs-modules'>Modules: CommonJS modules</BadgeLink>
<BadgeLink badgeText='yellow' colorScheme="yellow" href='https://blog.logrocket.com/commonjs-vs-es-modules-node-js/'>CommonJS vs. ES modules in Node.js</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/node-js-modules/'>More about modules</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/modular-programming-nodejs-npm-modules/'>Using Modules</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=9Amxzvq5LY8&'>Modules in Node.js</BadgeLink>

@ -1,6 +1,6 @@
# Passport js
Passport.js is authentication middleware for Node.js. It makes implementing authetication in express apps really easy and fast. It is extremely flexible and modular. It uses "strategies" to support authentication using a username and password, Facebook, Twitter, and a lot of other sites.
Passport.js is authentication middleware for Node.js. It makes implementing authentication in express apps really easy and fast. It is extremely flexible and modular. It uses "strategies" to support authentication using a username and password, Facebook, Twitter, and a lot of other sites.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.passportjs.org/'>PassportJS Website</BadgeLink>

@ -1 +1,6 @@
# Marko
Marko is a fast and lightweight HTML-based templating engine that compiles templates to CommonJS modules and supports streaming, async rendering, and custom tags. It is HTML re-imagined as a language for building dynamic and reactive user interfaces.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official' href='https://markojs.com/docs/guides-overview/'>Marko Documentation</BadgeLink>

@ -1 +1,5 @@
# Relational
A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relational database systems are equipped with the option of using the SQL (Structured Query Language) for querying and maintaining the database.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>

@ -1 +1,7 @@
# Prisma
Prisma is an open source next-generation ORM in the TypeScript ecosystem. It offer a dedicated API for relation filters. It provide an abstraction layer that makes you more productive compared to writing SQL. Prisma currently supports `PostgreSQL`, `MySQL`, `SQL Server`, `SQLite`, `MongoDB` and `CockroachDB`.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.prisma.io/'>Prisma Website</BadgeLink>

@ -1 +1,3 @@
# Native drivers
# Native Drivers
Another way to connect to different databases in Node.js is to use the official native drivers provided by the database. For example, here is the [list of drivers by MongoDB](https://www.mongodb.com/docs/drivers/)

@ -1 +1,7 @@
# Nodejs logging
# Node.js Logging
**Logging** is an essential part of understanding the complete application life cycle of the `Node.js` application. We can much more easily and quickly fix errors by looking at logs throughout the development process, from creating to debugging to designing new features. **Error**, **warn**, **info**, and **debug** are the four basic logging levels in `Node.js`. Logging involves persistently collecting information about an application's runtime behaviour.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read more' href='https://stackify.com/node-js-logging/'>Node.js Logging</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://blog.appsignal.com/2021/09/01/best-practices-for-logging-in-nodejs.html'>Logging best practices</BadgeLink>

@ -1 +1,7 @@
# Forever
Forever is a node.js package for ensuring that a given script runs continuously (i.e. forever) even when the server crash/stops. A CLI tool for the production environment to manage the Node applications and their processes.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.npmjs.com/package/forever'>Forever package documentation</BadgeLink>

@ -1 +1,8 @@
# Nohup
Nohup, short for no hang up is a command in Linux systems that keep processes running, will ignore the SIGHUP signal even after exiting the shell or terminal.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.digitalocean.com/community/tutorials/nohup-command-in-linux'>Nohup command</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/nohup-command-in-linux-with-examples/'>geekforgeeks Nohup example</BadgeLink>

@ -5,6 +5,6 @@ Tornado is a scalable, non-blocking web server and web application framework wri
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.tornadoweb.org/'>Tornado — Official Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://phrase.com/blog/posts/tornado-web-framework-i18n/'>A Step-by-Step Tutorial on Python Tornado</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=-gJ21qzpieA'>Torando Python Framework</BadgeLink>
<BadgeLink colorScheme='red' badgeText='Watch' href='https://www.youtube.com/watch?v=-gJ21qzpieA'>Tornado Python Framework</BadgeLink>

@ -1,6 +1,6 @@
# Type Inference
Type inference gives go the capability to detect the type of a value without being explicitly indicated , hence the posibility to declare variables without providing its type at first
Type inference gives go the capability to detect the type of a value without being explicitly indicated , hence the possibility to declare variables without providing its type at first
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.callicoder.com/golang-variables-zero-values-type-inference/#type-inference'>Go Variables: Type Inference</BadgeLink>

@ -1 +1,7 @@
# Select
The `select` statement is similar to a `case` statement, but is primarily used for handling reading from multiple channels.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://gobyexample.com/select'>Go by Example: Select</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://golangdocs.com/select-statement-in-golang'>Select Statement in Go</BadgeLink>

@ -1 +1,8 @@
# Rest
# REST
REST (Representational State Transfer) API (Application Programming Interface) is used to deliver user functionality when dealing with websites. HTTP requests are used to communicate with REST APIs so users can navigate a URL website. These URLs can return certain information that is stored as part of the API.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://go.dev/doc/tutorial/web-service-gin'>Tutorial</BadgeLink>
<BadgeLink badgeText='Watch' colorScheme="red" href='https://youtube.com/playlist?list=PLzUGFf4GhXBL4GHXVcMMvzgtO8-WEJIoY'>RESTful APIs Series</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.geeksforgeeks.org/rest-api-introduction/'>Introduction to RESTful APIs</BadgeLink>

@ -1 +1,8 @@
# Ebean
Ebean is an object-relational mapping tool written in Java. It supports the standard JPA annotations for declaring entities. However, it provides a much simpler API for persisting. In fact, one of the points worth mentioning about the Ebean architecture is that it is sessionless, meaning it does not fully manage entities.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Site' href='https://ebean.io/'>Ebean</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Doc' href='https://ebean.io/docs/'>Ebean Documentation</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.baeldung.com/ebean-orm'>Guide to Ebean</BadgeLink>

@ -5,3 +5,6 @@ A programming method to map objects in Java to relational entities in a database
- Spring Data JPA
- Hibernate
- Ebean
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.altexsoft.com/blog/object-relational-mapping/'>ORM tutorial</BadgeLink>

@ -1 +1,7 @@
# Jdbi3
Jdbi is an open source Java library (Apache license) that uses lambda expressions and reflection to provide a friendlier, higher level interface than JDBC to access the database.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Site' href='https://jdbi.org/'>Jdbi</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.baeldung.com/jdbi'>Jdbi Tutorial</BadgeLink>

@ -1,3 +1,6 @@
# JDBC Template
JDBCTemplate is a central class in the JDBC core package that simplifies the use of JDBC and helps to avoid common errors. It internally uses JDBC API and eliminates many problems with JDBC API. It executes SQL queries or updates, initiating iteration over ResultSets, catching JDBC exceptions, and translating them to the generic. It executes core JDBC workflow, leaving application code to provide SQL and extract results. It handles the exception and provides informative exception messages with the help of exception classes defined in the `org.springframework.dao` package.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.baeldung.com/spring-jdbc-jdbctemplate'>JDBC Template tutorial</BadgeLink>

@ -1 +1,9 @@
# Cucumber jvm
# Cucumber JVM
Cucumber is a testing tool that supports Behavior Driven Development (BDD). It offers a way to write tests that anybody can understand, regardless of their technical knowledge.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Site' href='https://cucumber.io/'>Cucumber</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Doc' href='https://cucumber.io/docs/cucumber/'>Cucumber Documentation</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://automationpanda.com/2017/10/24/cucumber-jvm-for-java/'>Cucumber-JVM for Java</BadgeLink>
<BadgeLink colorScheme='purple' badgeText='Watch' href='https://www.youtube.com/watch?v=jCzpxvAJoZM'>Cucumber-JVM 5 with Enhanced Cucumber Expression</BadgeLink>

@ -1 +1,7 @@
# Testing java apps
# Testing
A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/software-testing-introduction-importance.html'>What is Software Testing?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.browserstack.com/guide/testing-pyramid-for-test-automation'>Testing Pyramid</BadgeLink>

@ -148,7 +148,7 @@ Get basic understanding about troubleshooting tools and get practical skills of
- [Linux Performance](http://www.brendangregg.com/linuxperf.html) by Brendan Gregg
- [USE Method](http://www.brendangregg.com/usemethod.html)
## Learn SQL optimization technics
## Learn SQL optimization techniques
Get understanding and practical skills of how to optimize SQL queries.
- **Indexes, and their use cases**: B-tree, Hash, GiST, SP-GiST, GIN, BRIN
- SQL queries patterns and anti-patterns

@ -6,7 +6,7 @@
# Python
Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedureal or object-oriented programmatic ways.
Python is a well known programming language which is both a strongly typed and a dynamically typed language. Being an interpreted language, code is executed as soon as it is written and the Python syntax allows for writing code in functional, procedural or object-oriented programmatic ways.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Python Website' href='https://www.python.org/'>Python Website</BadgeLink>

@ -1 +1,7 @@
# Test rail
# TestRail
TestRail is a web-based test case management tool. It is used by testers, developers and team leads to manage, track, and organize software testing efforts. TestRail allows team members to enter test cases, organize test suites, execute test runs, and track their results, all from a modern and easy to use web interface.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://www.gurock.com/testrail/'>TestRail Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.softwaretestinghelp.com/testrail-tutorial/'>TestRail Review Tutorial: Learn End-To-End Test Case Management</BadgeLink>

@ -1 +1,7 @@
# Test link
# TestLink
TestLink is most widely used web based open source test management tool. It synchronizes both requirements specification and test specification together. Tester can create test project and document test cases using this tool. With TestLink you can create an account for multiple users and assign different user roles.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://testlink.org/'>TestLink Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/testlink-tutorial-complete-guide.html'>TestLink Tutorial: A Complete Guide</BadgeLink>

@ -1 +1,9 @@
# Zephyr
Zephyr is a testing solution that improves the quality of your software by managing and monitoring end-to-end testing. It is very effective for managing manual testing. Its key capabilities include:
- Test-case creation
- Organization of tests by product releases and components
- Assignment of tests to the Quality Assurance team
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/zephyr-agile-jira.html'>Zephyr for JIRA Tutorial: Test Management Tool</BadgeLink>

@ -1 +1,6 @@
# Manage your testing
# Manage Your Testing
Test Management is a process of managing the testing activities in order to ensure high quality and high-end testing of the software application. The method consists of organizing, controlling, ensuring traceability and visibility of the testing process in order to deliver the high quality software application. It ensures that the software testing process runs as expected.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/test-management-phases-a-complete-guide-for-testing-project.html'>Test Management Process in Software Testing</BadgeLink>

@ -1 +1,9 @@
# Kanban
Kanban is a very popular framework for development in the agile software development methodology. It provides a transparent way of visualizing the tasks and work capacity of a team. It mainly uses physical and digital boards to allow the team members to visualize the current state of the project they are working on.
A kanban board is an agile project management tool designed to help visualize work, limit work-in-progress, and maximize efficiency.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.atlassian.com/agile/kanban'>Kanban - A brief introduction</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/kanban-cards-boards-methodology.html'>Kanban Model in Software Engineering</BadgeLink>

@ -1 +1,7 @@
# Scrum
Scrum in Software Testing is a methodology for building complex software applications. It provides easy solutions for executing complicated tasks. Scrum helps the development team to focus on all aspects of the software product development like quality, performance, usability, and so on. It provides with transparency, inspection and adaptation during the software development to avoid complexity.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/scrum-testing-beginner-guide.html'>Scrum Testing Methodology Tutorial</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.atlassian.com/agile/scrum'>Scrum - What is, How it works</BadgeLink>

@ -1 +1,6 @@
# Safe
# SAFe
Scaled Agile Framework (SAFe) is a freely available online knowledge base that allows you to apply lean-agile practices at the enterprise level. It provides a simple and lightweight experience for software development. It is a set of organizations and workflow patterns intended to guide enterprises for scaling lean and agile practices. It is divided into three segments which are Team, Program and Portfolio.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.guru99.com/scaled-agile-framework.html'>SAFe (Scaled Agile Framework) Tutorial</BadgeLink>

@ -1 +1,7 @@
# Xp
# XP
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.agilealliance.org/glossary/xp'>What is Extreme Programming (XP)?</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/software-engineering-extreme-programming-xp/'>Software Engineering | Extreme Programming (XP)</BadgeLink>

@ -1 +1,10 @@
# Chrome devtools
# Chrome dev tools
These are a set of tools built into the browser to aid frontend developers diagnose and solve various issues in their applications — such as JavaScript and logical bugs, CSS styling issues or even just making quick temprary alterations to the DOM.
To enter the dev tools, right click and click **Inspect** (or press `ctrl+shift+c`/`cmd+opt+c`) to enter the Elements panel. Here you can debug CSS and HTML issues. If you want to see logged messages or interact with javascript, enter the **Console** tab from the tabs above (or press `ctrl+shift+j`/`cmd+opt+j` to enter it directly). Another very useful feature in the Chrome dev tools is the Lighthouse (for checking perfomance) — more on this later.
NOTE: This isn't a chrome-specific feature, and most browsers (Chromium based or otherwise) will have their own, largely-similar set of devtools.
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://developer.chrome.com/docs/devtools/overview/'>Official Docs</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.freecodecamp.org/news/mastering-chrome-developer-tools-next-level-front-end-development-techniques-3ac0b6fe8a3/'>Mastering Chrome Dev Tools</BadgeLink>

@ -1,3 +1,11 @@
# OOP
Object-oriented programming (OOP) is a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object-oriented_programming'>Basic concepts of object-oriented programming</BadgeLink>
<BadgeLink badgeText="course" colorScheme="blue" href="https://www.youtube.com/watch?v=wN0x9eZLix4">Object Oriented Programming (OOP) in C++ Course</BadgeLink>
<BadgeLink badgeText="Course" colorSheme="blue" href="https://www.youtube.com/watch?v=Ej_02ICOIgs">Object Oriented Programming with Python</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/object-oriented-programming-oops-concept-in-java/'>OOP Concepts</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.w3schools.com/java/java_oop.asp'>OOP Concepts w3schools</BadgeLink>

@ -1 +1,8 @@
# Cqrs eventual consistency
# CQRS eventual consistency
CQRS (Segregation of Responsibility for Command Queries) is an architectural pattern that comes with the idea of separating read and write operations into two distinct logical processes.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText="Read" colorScheme="yellow" href="https://martinfowler.com/bliki/CQRS.html">CQRS</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://learn.microsoft.com/en-us/azure/architecture/patterns/cqrs'>Introduction to CQRS</BadgeLink>

@ -1 +1,8 @@
# Trello
Trello is the visual tool that empowers your team to manage any type of project, workflow, or task tracking.
<ResourceGroupTitle>Reference Resource</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://trello.com'>Trello</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=AyfupeWS0yY'>A Tour Of Trello</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://trello.com/guide'>Trello Guide</BadgeLink>

@ -1 +1,14 @@
# Service oriented
Service-oriented architecture (SOA) is an enterprise-wide approach to software development of application components that takes advantage of reusable software components, or services.
SOA provides four different service types:
1. Functional services (i.e., business services), which are critical for business applications.
2. Enterprise services, which serve to implement functionality.
3. Application services, which are used to develop and deploy apps.
4. Infrastructure services, which are instrumental for backend processes like security and authentication.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Docs' href='https://aws.amazon.com/what-is/service-oriented-architecture/'>SOA Architecture By AWS</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.geeksforgeeks.org/service-oriented-architecture/'>SOA Architecture</BadgeLink>

@ -1 +1,10 @@
# Sql databases
SQL stands for Structured Query Language. It's used for relational databases. A SQL database is a collection of tables that stores a specific set of structured data.
Examples of SQL Databases
* MariaDB and MySQL
* PostgreSQL
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.openlogic.com/blog/what-sql-database'>SQL Databases</BadgeLink>

@ -1 +1,12 @@
# Nosql databases
NoSQL databases (aka "not only SQL") are non-tabular databases and store data differently than relational tables. NoSQL databases come in a variety of types based on their data model. The main types are document, key-value, wide-column, and graph. They provide flexible schemas and scale easily with large amounts of data and high user loads.
Types of NoSQL databases
* Document databases Ex. MongoDB
* Key-value databases Ex. Amazon S3
* Wide-column databases Ex. Cassandra
* Graph databases Ex. Neo4J
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://www.mongodb.com/nosql-explained'>NoSQL Databases</BadgeLink>

@ -1 +1,49 @@
# React vue angular
<DedicatedRoadmap
href='/react'
title='React Roadmap'
description='Click to check the detailed React Roadmap.'
/>
# React
React is the most popular front-end JavaScript library for building user interfaces. React can also render on the server using Node and power mobile apps using React Native.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://reactjs.org/'>React Website</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://reactjs.org/tutorial/tutorial.html'>Official Getting Started</BadgeLink>
<BadgeLink colorScheme='yellow' badgeText='Read' href='https://beta.reactjs.org/'>Beta React Docs</BadgeLink>
<BadgeLink badgeText='Course' colorScheme='green' href='https://egghead.io/courses/the-beginner-s-guide-to-react'>The Beginner's Guide to React</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=nTeuhbP7wdE'>React JS Course for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=bMknfKXIFA8'>React Course - Beginner's Tutorial for React JavaScript Library [2022]</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=i793Qm6kv3U'>Understanding React's UI Rendering Process</BadgeLink>
<DedicatedRoadmap
href='/vue'
title='Vue Roadmap'
description='Click to check the detailed Vue Roadmap.'
/>
# Vue.js
Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications. It is mainly focused on front end development.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink colorScheme='blue' badgeText='Official Website' href='https://vuejs.org/'>Vue.js Website</BadgeLink>
<BadgeLink colorScheme='blue' badgeText='Official Guide' href='https://vuejs.org/v2/guide/'>Official Getting Started</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=FXpIoQ_rT_c'>Vue.js Course for Beginners</BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=qZXt1Aom3Cs'>Vue.js Crash Course</BadgeLink>
<DedicatedRoadmap
href='/angular'
title='Angular Roadmap'
description='Click to check the detailed Angular Roadmap.'
/>
# Angular
Angular is a component based front-end development framework built on TypeScript which includes a collection of well-integrated libraries that include features like routing, forms management, client-server communication, and more.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://angular.io/start'>Official - Getting started with Angular</BadgeLink>

@ -1 +1,10 @@
# Pwa
# PWA
Progressive Web Apps (PWAs) are websites that are progressively enhanced to function like installed, native apps on supporting platforms, while functioning like regular websites on other browsers.
<ResourceGroupTitle>Free Content</ResourceGroupTitle>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://www.freecodecamp.org/news/what-are-progressive-web-apps/'>Progressive Web Apps for Beginners</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://web.dev/learn/pwa/'>Learn PWA</BadgeLink>
<BadgeLink badgeText='Read' colorScheme="yellow" href='https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/'>MDN Web Docs: Progressive Web Apps </BadgeLink>
<BadgeLink badgeText='Watch' href='https://www.youtube.com/watch?v=sFsRylCQblw'>Build a Progressive Web App</BadgeLink>

@ -14252,7 +14252,7 @@
"x": "959",
"y": "2932",
"properties": {
"controlName": "103-scalability:horizontal-vertial-scaling"
"controlName": "103-scalability:horizontal-vertical-scaling"
},
"children": {
"controls": {

@ -4411,7 +4411,7 @@
"x": "847",
"y": "1127",
"properties": {
"controlName": "100-react-ecosystem:state-management:conext-state"
"controlName": "100-react-ecosystem:state-management:context-state"
},
"children": {
"controls": {

@ -662,7 +662,7 @@
"y": "12",
"properties": {
"size": "18",
"text": "ACID, CAP Thoerem"
"text": "ACID, CAP Theorem"
}
}
]

Loading…
Cancel
Save