Skip to content

Commit

Permalink
Merge pull request #11 from syvita/cryptopanter-patch-1
Browse files Browse the repository at this point in the history
Update README.md
  • Loading branch information
Asteria authored May 5, 2021
2 parents 04f5336 + e8021ac commit 0a9fd5a
Show file tree
Hide file tree
Showing 13 changed files with 35 additions and 47 deletions.
50 changes: 19 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,52 @@
# Standards

This is the org-wide repository that contains the labs3 standards. These are standards mainly regarding code style for organisation projects. They are not enforced, only recommendended.
This is the org-wide repository that contains Syvita standards. These are standards mainly regarding code style for Guild projects. They are not enforced, only recommendended.

## Current list of (potential) standards

* L3S-01.md - Clarity coding standard
* L3S-02.md - Architecture model standard
* L3S-03.md - Unit testing standard
* L3S-04.md - Markdown standard
* Syv-01.md - Clarity coding standard
* Syv-02.md - Architecture model standard
* Syv-03.md - Unit testing standard
* Syv-04.md - Markdown standard

## Naming

### Standard naming

Standards are named in the format `L3S-XX` where `XX` is the standard identifier. This identifier changes incrementally.
Standards are named in the format `Syv-XX` where `XX` is the standard identifier. This identifier changes incrementally.

## Release naming
A standard is in `alpha` phase until it is finalised and `beta` phase until it's implemented in a Standard Release.

### Tags

If the release is a pre-release (an alpha or beta), the tag will be the next available version number with the suffix of `alpha` or `beta`.

A standard is in `alpha` until it is finalised and `beta` until it's implemented in an L3 project.

After the pre-release is implemented by a project, the pre-release becomes a recognised release without the suffix.
### Release naming

Example:

Previous release was `v4`...
`v5-alpha`, `v5-beta` and then `v5`.
Standard Releases are groups of `Syv-XX` standards launched as versions.

### Title

The title of a release is usually a reference from one of Neal Stephenson's writings. This could be a city, a book title, a character etc. It's free for the author to choose. Just don't be rude, or it won't be implemented. They should be unique org-wide.
They follow the form `SyvR-vX` where `X` is the next available integer version.

Example:

`A Young Lady's Illustrated Primer`
`SyvR-v4` (Standard Release v4)

### Name
### Tags

A release's name is the abbreviation of the title, a forward-slash and the release tag.
Releases are released as `vX`s where `X` is the next available integer version.

Example:

`EOC/v1`
Previous release was `v4` so next will be `v5`.

## Implementing standards

When implementing deployed standards from this repo, you should state implementation in the following ways:

If you're using a *release*, where you comply with every standard in said release, you should say something like this...

> This project complies with [AYLIP/v2](https://github.com/labs3/standards/releases/tag/v2).
> This project complies with [SyvR-v4](https://github.com/labs3/standards/releases/tag/v4).
- Make it clear
- The release name should be the abbreviation of the title, a forward-slash and the release tag.
- Link the release name to the release link from this repo
- You can put the release title in brackets after if wanted.
* Make it clear
* The release name should be the abbreviation of the title, a forward-slash and the release tag.
* Link the release name to the release link from this repo

If you're using *individual standards*, you should list them.

> This project complies with L3S-01, 02 & 03.
> This project complies with Syv-01, 02 & 03.
2 changes: 1 addition & 1 deletion L3S-01.md → Syv-01.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# L3S-01 - Clarity Standards
# Syv-01 - Clarity Standards

## Constants
Constants have to be declared in all upper case with underscore separators. For example:
Expand Down
24 changes: 12 additions & 12 deletions L3S-02.md → Syv-02.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# L3S-02 - C4model
# Syv-02 - C4model

## Abstract

### Proposed use

labs³ will use the C4model to describe architectures for projects.
Syvita will use the C4model to describe architectures for projects.

### Introduction

Expand Down Expand Up @@ -36,7 +36,7 @@ Zoom in again, and this time you model every element from 3rd level using standa

### Actual use (suggestion)

A suggestion for L3 is to use draw.io to draw the diagrams and to share the working file (.drawio) in the docs folder of a project. Whenever a new version is uploaded an export of the diagrams as an image(s) (.png) should be included in the docs folder for easy viewing by all project members.
A suggestion for Syvita is to use draw.io to draw the diagrams and to share the working file (.drawio) in the docs folder of a project. Whenever a new version is uploaded an export of the diagrams as an image(s) (.png) should be included in the docs folder for easy viewing by all project members.

Note: In the future we could also consider drawing the diagrams in Miro, for more streamlined collaboration.

Expand All @@ -48,19 +48,19 @@ C4model is a methodology to express software architectures in block diagram shap

The zoom-out perspective of the whole system in the biggest scale. Detail isn't important here as this is your zoomed out view showing a big picture of the system landscape. The focus should be on people (actors, roles, personas, etc) and software systems rather than technologies, protocols and other low-level details. It's the sort of diagram that you could show to non-technical people.

![L3S-02/c4model-1st%20level.png](./L3S-02/c4model-1st%20level.png)
![Syv-02/c4model-1st%20level.png](./Syv-02/c4model-1st%20level.png)

So in short, each shape demonstrates the below meanings:
![L3S-02/c4model-1st%20level-2.png](./L3S-02/c4model-1st%20level-2.png)
![Syv-02/c4model-1st%20level-2.png](./Syv-02/c4model-1st%20level-2.png)

**Example:** This is an example System Context diagram for a fictional Internet Banking System. It shows the people who use it, and the other software systems that the Internet Banking System has a relationship with. Personal Customers of the bank use the Internet Banking System to view information about their bank accounts and to make payments. The Internet Banking System itself uses the bank's existing Mainframe Banking System to do this, and uses the bank's existing E-mail System to send e-mails to customers.
![L3S-02/c4model-1st%20level-example.png](./L3S-02/c4model-1st%20level-example.png)
![Syv-02/c4model-1st%20level-example.png](./Syv-02/c4model-1st%20level-example.png)

### Second level of visualization

Once you zoom in a bit, you are in the second level. This level of visualization is shown inside a dash-line boundary with **container** blocks. Once you understand how your system fits in to the overall IT environment, a really useful next step is to zoom in to the system boundary with a Container diagram.

![L3S-02/c4model-2nd%20level.png](./L3S-02/c4model-2nd%20level.png)
![Syv-02/c4model-2nd%20level.png](./Syv-02/c4model-2nd%20level.png)

**Example:**
This is an example Container diagram for a fictional Internet Banking System. It shows that the Internet Banking System (the dashed box) is made up of five containers: a server-side Web Application, a Single-Page Application, a Mobile App, a server-side API Application, and a Database.
Expand All @@ -73,29 +73,29 @@ Both the Single-Page Application and Mobile App use a JSON/HTTPS API, which is p

The API Application also communicates with the existing Mainframe Banking System, using a proprietary XML/HTTPS interface, to get information about bank accounts or make transactions. The API Application also uses the existing E-mail System if it needs to send e-mails to customers.

![L3S-02/c4model-2nd%20level-example.png](./L3S-02/c4model-2nd%20level-example.png)
![Syv-02/c4model-2nd%20level-example.png](./Syv-02/c4model-2nd%20level-example.png)

### Third level of visualisation

You can zoom in more into level-2 containers/blocks to show how a container is made up of several "components"...

Symbol diagrams below listed:
![L3S-02/c4model-3rd%20level.png](./L3S-02/c4model-3rd%20level.png)
![Syv-02/c4model-3rd%20level.png](./Syv-02/c4model-3rd%20level.png)

**Example:**

This is an example Component diagram for a fictional Internet Banking System, showing some (rather than all) of the components within the API Application.

Here, there are three Spring MVC Rest Controllers providing access points for the JSON/HTTPS API, with each controller subsequently using other components to access data from the Database and Mainframe Banking System, or send e-mails.

![L3S-02/c4model-3rd%20level-example.png](./L3S-02/c4model-3rd%20level-example.png)
![Syv-02/c4model-3rd%20level-example.png](./Syv-02/c4model-3rd%20level-example.png)

### Fourth level of visualization

To zoom in to see the codes. This is an optional level of detail and is often available on-demand from tooling such as IDEs.

This is an example (and partial) UML class diagram for a fictional Internet Banking System, showing the code elements (interfaces and classes) that make up the MainframeBankingSystemFacade component. It shows that the component is made up of some classes, with the implementation details directly reflecting the code.
![L3S-02/c4model-4th%20level-example.png](./L3S-02/c4model-4th%20level-example.png)
![Syv-02/c4model-4th%20level-example.png](./Syv-02/c4model-4th%20level-example.png)

## Notations

Expand All @@ -121,7 +121,7 @@ Be consistent with notation and element positioning across diagrams: keeping peo

### Acronyms

Be careful to use acronyms/abbreviations. It will be much easier for new people to onboard if we do not use any abbreviations but that may be to much to ask, lets at least try to avoid making labs³/project specific abbreviations.
Be careful to use acronyms/abbreviations. It will be much easier for new people to onboard if we do not use any abbreviations but that may be to much to ask, lets at least try to avoid making Syvita/project specific abbreviations.

### Elements (boxes)

Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
2 changes: 1 addition & 1 deletion L3S-03.md → Syv-03.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# L3S-03 - Unit Testing
# Syv-03 - Unit Testing

- All pure functions require unit tests.
- All unit tests should follow the Arrange, Act, Assert (AAA) pattern.
Expand Down
4 changes: 2 additions & 2 deletions L3S-04.md → Syv-04.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# L3S-04 - Markdown
# Syv-04 - Markdown

This document contains a description of all rules, what they are checking for,
as well as examples of documents that break the rule and corrected
Expand All @@ -7,7 +7,7 @@ deprecated, but still provided for backward-compatibility.

## Use/compliance

This standard can be used in L3 projects by using [this extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) for VSCode. It should help implementation significantly.
This standard can be used in Syvita projects by using [this extension](https://marketplace.visualstudio.com/items?itemName=DavidAnson.vscode-markdownlint) for VSCode. It should help implementation significantly.

This is taken from [markdownlint's repo](https://github.com/DavidAnson/markdownlint/blob/v0.23.1/doc/Rules.md#md025).

Expand Down

0 comments on commit 0a9fd5a

Please sign in to comment.