docs: fix some more spelling issues (#167)
This commit is contained in:
@@ -6,5 +6,5 @@ tags: [frontend, architecture]
|
|||||||
---
|
---
|
||||||
|
|
||||||
DGS has proven to simplify the development of GraphQL server applications.
|
DGS has proven to simplify the development of GraphQL server applications.
|
||||||
Thus we recommend a broader usage across AOE and decided to move the blip
|
Thus, we recommend a broader usage across AOE and decided to move the blip
|
||||||
to "trial".
|
to "trial".
|
||||||
|
|||||||
@@ -5,8 +5,14 @@ quadrant: methods-and-patterns
|
|||||||
tags: [devops]
|
tags: [devops]
|
||||||
---
|
---
|
||||||
|
|
||||||
In the past years many tools have evolved and especially [Gitlab CI](https://docs.gitlab.com/ee/ci/), [Github Actions](https://github.com/features/actions) and [AWS CodeDeploy](https://aws.amazon.com/de/codedeploy/) matured or became available and widely used across many teams.
|
In the past years many tools have evolved and especially [Gitlab CI](https://docs.gitlab.com/ee/ci/),
|
||||||
|
[GitHub Actions](https://github.com/features/actions) and [AWS CodeDeploy](https://aws.amazon.com/de/codedeploy/)
|
||||||
|
matured or became available and widely used across many teams.
|
||||||
|
|
||||||
Continuous Integration and Delivery is an important part in every project. Pipelines which are maintained as code, can now be handled like most other parts of your software. The pipeline configuration can run through lint checks, or a test suite before the configuration is shared across teams in your organisation.
|
Continuous Integration and Delivery is an important part in every project. Pipelines which are maintained as code, can
|
||||||
|
now be handled like most other parts of your software. The pipeline configuration can run through lint checks, or a test
|
||||||
|
suite before the configuration is shared across teams in your organisation.
|
||||||
|
|
||||||
Using [container based builds](https://www.aoe.com/techradar/methods-and-patterns/container-based-builds.html) is now also the de facto standard. Combining these two techniques enables running isolated builds in an easily reproducible environment so teams can get quick feedback on every change.
|
Using [container based builds](https://www.aoe.com/techradar/methods-and-patterns/container-based-builds.html) is now
|
||||||
|
also the de facto standard. Combining these two techniques enables running isolated builds in an easily reproducible
|
||||||
|
environment so teams can get quick feedback on every change.
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ tags: [coding, frontend]
|
|||||||
|
|
||||||
Remix is a full stack web framework that lets us focus on the user interface and work with web standards.
|
Remix is a full stack web framework that lets us focus on the user interface and work with web standards.
|
||||||
|
|
||||||
One of Remix biggest features is the availability of nested routes. Through nested routes, Remix can eliminate nearly every loading state.
|
One of Remix biggest features is the availability of nested routes. Through nested routes, Remix can eliminate nearly
|
||||||
|
every loading state.
|
||||||
|
|
||||||
Most web apps fetch inside of components, creating request waterfalls which leads to slower page loads. Remix loads data in parallel on the server and sends a fully formed HTML document
|
Most web apps fetch inside of components, creating request waterfalls which leads to slower page loads. Remix loads data
|
||||||
|
in parallel on the server and sends a fully formed HTML document
|
||||||
|
|
||||||
At AOE we use Remix for our enterprise web applications to provide a first class UX and fast page loads.
|
At AOE we use Remix for our enterprise web applications to provide a first class UX and fast page loads.
|
||||||
|
|||||||
@@ -5,15 +5,23 @@ quadrant: methods-and-patterns
|
|||||||
tags: [architecture]
|
tags: [architecture]
|
||||||
---
|
---
|
||||||
|
|
||||||
Resilience is the capability of an application or service to resist different error scenarios. Especially for distributed systems - where a lot of communication between different services happen - it's very important to explicitly think of implementing resilience.
|
Resilience is the capability of an application or service to resist different error scenarios. Especially for
|
||||||
|
distributed systems - where a lot of communication between different services happen - it's very important to explicitly
|
||||||
|
think of implementing resilience.
|
||||||
|
|
||||||
There are a lot of different resilience patterns and it is also a matter of the overall software design. Typical patterns and methods used are:
|
There are a lot of different resilience patterns, and it is also a matter of the overall software design. Typical
|
||||||
|
patterns and methods used are:
|
||||||
|
|
||||||
* Do not hide API calls or any other external communication in your application (for example with unnecessary abstraction) - instead make it explicit that an external communication happens - e.g. by using the Facade Pattern. On the one hand, this makes it obvious that a potential slow and error prone communication is going to happen, and it makes it easier to implement error handling.
|
* Do not hide API calls or any other external communication in your application (for example with unnecessary
|
||||||
|
abstraction) - instead make it explicit that an external communication happens - e.g. by using the Facade Pattern. On
|
||||||
|
the one hand, this makes it obvious that a potential slow and error-prone communication is going to happen, and it
|
||||||
|
makes it easier to implement error handling.
|
||||||
* Detect errors explicitly: Check the response message format and configure proper timeouts for external communication
|
* Detect errors explicitly: Check the response message format and configure proper timeouts for external communication
|
||||||
* Handle errors in a smart way: Show a nice error message to your customer or, even better, graceful degrade features - e.g. by showing some fallback text
|
* Handle errors in a smart way: Show a nice error message to your customer or, even better, graceful degrade features -
|
||||||
|
e.g. by showing some fallback text
|
||||||
* Use message-based communication where useful ([Decoupling Infrastructure via Messaging](/methods-and-patterns/decoupling-infrastructure-via-messaging.html))
|
* Use message-based communication where useful ([Decoupling Infrastructure via Messaging](/methods-and-patterns/decoupling-infrastructure-via-messaging.html))
|
||||||
* Use circuit breakers to isolate errors and allow systems to recover
|
* Use circuit breakers to isolate errors and allow systems to recover
|
||||||
* Use short activation paths in your strategic architecture - so that there is only a minimal set of communications between your services required for certain features or business requests
|
* Use short activation paths in your strategic architecture - so that there is only a minimal set of communications
|
||||||
|
between your services required for certain features or business requests
|
||||||
|
|
||||||
"Embrace Errors" should be the mindset - because it is not a question if errors appear - it's just a question of when.
|
"Embrace Errors" should be the mindset - because it is not a question if errors appear - it's just a question of when.
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ featured: false
|
|||||||
---
|
---
|
||||||
|
|
||||||
Since the heydays of Sass, the requirements for styling solutions have changed.
|
Since the heydays of Sass, the requirements for styling solutions have changed.
|
||||||
With modern solutions like [CSS-in-JS](/methods-and-patterns/css-in-js.html), [Tailwind](/languages-and-frameworks/tailwindcss.html) or [PostCSS](/tools/postcss.html), you get scoped CSS out of the box and can get rid of the manual and therefore error-prone BEM methodology.
|
|
||||||
Furthermore, mapping class names to elements is no longer necessary.
|
|
||||||
|
|
||||||
In general the modern solutions bring a better and more robust developer experience. Therefore we put Sass on hold.
|
With modern solutions like [CSS-in-JS](/methods-and-patterns/css-in-js.html),
|
||||||
|
[Tailwind](/languages-and-frameworks/tailwindcss.html) or [PostCSS](/tools/postcss.html), you get scoped CSS out of the
|
||||||
|
box and can get rid of the manual and therefore error-prone BEM methodology. Furthermore, mapping class names to
|
||||||
|
elements is no longer necessary.
|
||||||
|
|
||||||
|
In general the modern solutions bring a better and more robust developer experience. Therefore, we put Sass on hold.
|
||||||
|
|||||||
@@ -5,11 +5,15 @@ quadrant: tools
|
|||||||
tags: [ci/cd, documentation, quality assurance]
|
tags: [ci/cd, documentation, quality assurance]
|
||||||
---
|
---
|
||||||
|
|
||||||
[Semanticore](https://github.com/AOEpeople/semanticore) is an open source tool fulfilling our needs for managing changelogs and semantic releases.
|
[Semanticore](https://github.com/AOEpeople/semanticore) is an open source tool fulfilling our needs for managing
|
||||||
Build upon git histories and conventional commits, Semanticore creates and maintains changelogs using Gitlab or Github merge requests, and, once merged, creates appropriate tags and releases.
|
changelogs and semantic releases.
|
||||||
Automating this workflow improves our daily work a lot, and always gives us a clear view on outstanding changes as well as a proper-maintained changelog.
|
|
||||||
|
Build upon git histories and conventional commits, Semanticore creates and maintains changelogs using Gitlab or GitHub
|
||||||
|
merge requests, and, once merged, creates appropriate tags and releases. Automating this workflow improves our daily
|
||||||
|
work a lot, and always gives us a clear view on outstanding changes as well as a proper-maintained changelog.
|
||||||
|
|
||||||
Check out our Semanticore repository at https://github.com/AOEpeople/semanticore or run it locally for testing purposes:
|
Check out our Semanticore repository at https://github.com/AOEpeople/semanticore or run it locally for testing purposes:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cd ~/path/to/my/repository
|
$ cd ~/path/to/my/repository
|
||||||
$ go run github.com/aoepeople/semanticore@v0
|
$ go run github.com/aoepeople/semanticore@v0
|
||||||
|
|||||||
@@ -5,10 +5,14 @@ quadrant: languages-and-frameworks
|
|||||||
tags: [coding, frontend]
|
tags: [coding, frontend]
|
||||||
---
|
---
|
||||||
|
|
||||||
Stitches is a lightweight & performant CSS-in-JS styling library with a focus on component architecture and developer experience.
|
Stitches is a lightweight & performant CSS-in-JS styling library with a focus on component architecture and developer
|
||||||
|
experience.
|
||||||
|
|
||||||
Unlike most CSS-in-JS libraries, Stitches promises near-zero runtime costs. This is possible by avoiding unnecessary prop interpolations and defining variants upfront.
|
Unlike most CSS-in-JS libraries, Stitches promises near-zero runtime costs. This is possible by avoiding unnecessary
|
||||||
|
prop interpolations and defining variants upfront.
|
||||||
|
|
||||||
Stitches has a fully typed API to provide an awesome developer experience. It comes with built-in theme support, server-side rendering & much more.
|
Stitches has a fully typed API to provide an awesome developer experience. It comes with built-in theme support,
|
||||||
|
server-side rendering & much more.
|
||||||
|
|
||||||
At AOE we use Stitches when we want to write performant and scalable CSS, but don't want to give up the flexibility and developer experience of React components.
|
At AOE we use Stitches when we want to write performant and scalable CSS, but don't want to give up the flexibility and
|
||||||
|
developer experience of React components.
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ including Alibaba, Tencent and BMW adopted Flutter to develop their apps. This i
|
|||||||
a [blog post by Stackoverflow](https://stackoverflow.blog/2022/02/21/why-flutter-is-the-most-popular-cross-platform-mobile-sdk/)
|
a [blog post by Stackoverflow](https://stackoverflow.blog/2022/02/21/why-flutter-is-the-most-popular-cross-platform-mobile-sdk/)
|
||||||
where it shows the increase in popularity in comparison to React Native
|
where it shows the increase in popularity in comparison to React Native
|
||||||
|
|
||||||
Based on these facts, we decided to get a deeper look on FLutter. We were able to prove that Flutter is more performant
|
Based on these facts, we decided to get a deeper look on Flutter. We were able to prove that Flutter is more performant
|
||||||
than, React Native by building an identical Prototype application with both Frameworks.
|
than, React Native by building an identical Prototype application with both Frameworks.
|
||||||
|
|
||||||
In addition to the Framework itself, Flutter does a lot to improve the developer experience (DX) due to its hot reload
|
In addition to the Framework itself, Flutter does a lot to improve the developer experience (DX) due to its hot reload
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ tags: [devops, security]
|
|||||||
For years, we used LDAP Login mechanisms to authenticate our employees.
|
For years, we used LDAP Login mechanisms to authenticate our employees.
|
||||||
|
|
||||||
While this worked as some kind of "single credential" model, it does not support extended Security features such as
|
While this worked as some kind of "single credential" model, it does not support extended Security features such as
|
||||||
WebAuthN, Multifactor-Authentication, etc.
|
WebAuthN, Multi-Factor Authentication, etc.
|
||||||
|
|
||||||
These we do prefer to use integrations using OpenID Connect into SSO solutions such
|
These we do prefer to use integrations using OpenID Connect into SSO solutions such
|
||||||
as [Bare.ID](/platforms-and-aoe-services/bareid.html) or [Keycloak](/tools/keycloak.html), which provide proper
|
as [Bare.ID](/platforms-and-aoe-services/bareid.html) or [Keycloak](/tools/keycloak.html), which provide proper
|
||||||
|
|||||||
Reference in New Issue
Block a user