Skip to content

Commit 8586de2

Browse files
authored
Merge pull request #449 from 1024pix/tech-new-contributing-format
[TECH] Redesign du dossier docs et du contributing.md.
2 parents b8d5191 + 97fc032 commit 8586de2

9 files changed

+334
-357
lines changed

docs/API.md

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# API
2+
3+
## Conventions de nommage
4+
5+
Les classes prennent une majuscule au début.
6+
Les modules et variables prennent une minuscule au début.
7+
Sauf exception, privilégier l'ordre alphabétique pour trier une suite de déclarations, require, ...
8+
9+
```javascript
10+
// BAD
11+
const sessionRepository = require(...);
12+
const assessmentRepository = require(...);
13+
const certificationRepository = require(...);
14+
15+
// GOOD
16+
const assessmentRepository = require(...);
17+
const certificationRepository = require(...);
18+
const sessionRepository = require(...);
19+
```
20+
21+
Exemples :
22+
23+
```javascript
24+
const User = require(...);
25+
const userRepository = ...
26+
const userName = ...
27+
```
28+
29+
Une entité du domaine ne contient pas de préfix.
30+
31+
```javascript
32+
const User = require('../../User');
33+
34+
const myUser = new User({});
35+
```
36+
37+
## Déclaration de routes
38+
39+
Ajout de tags et de notes au moment de la déclaration des routes de l'API.
40+
41+
```javascript
42+
server.route([
43+
{
44+
method: 'GET',
45+
path: '/api/sessions',
46+
config: {
47+
handler: sessionController.find,
48+
tags: ['api', 'sessions'],
49+
notes: [
50+
'- **Cette route est restreinte aux utilisateurs authentifiés avec le rôle Pix Master**\n' +
51+
'- Elle permet de consulter la liste de toutes les sessions (retourne un tableau avec n éléments)',
52+
]
53+
}
54+
}
55+
]
56+
);
57+
```
58+
59+
## Utilisation de transitionTo
60+
61+
Éviter les `transistionTo` dans le hook `model()`. Privilégier leur utilisation dans l’`afterModel()`, une fois que le modèle est chargé.
62+
63+
```javascript
64+
// BAD
65+
export default Route.extend({
66+
model() {
67+
const store = this.get('store');
68+
return store.findRecord('user', this.get('session.data.authenticated.userId'))
69+
.then((user) => {
70+
if (user.get('organizations.length') > 0) {
71+
return this.transitionTo('board');
72+
}
73+
return user;
74+
});
75+
},
76+
});
77+
78+
// GOOD
79+
export default Route.extend({
80+
model() {
81+
return this.store.findRecord('user', this.get('session.data.authenticated.userId'));
82+
},
83+
84+
afterModel(model) {
85+
if (model.get('organizations.length') > 0) {
86+
return this.transitionTo('board');
87+
}
88+
}
89+
});
90+
```

docs/Accessibilite.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Accessibilité
2+
3+
## Unités CSS
4+
5+
Utilisation des __rem__ pour les fonts: size, lettering, letter-spaces.
6+
Utilisation des __px__ pour le positionnement: padding, border, margin.
7+
8+
```scss
9+
.my-class {
10+
size: 1.3rem;
11+
padding: 10px 12px;
12+
}
13+
```
14+
15+
## Utilisation des balises <h*> </h*>
16+
17+
Peu importe l'apparence des h*, les personnes qui voient les titres comprennent. En revanche les personnes qui naviguent avec le clavier au __voiceOver__ ont besoin que le html soit explicite le plus possible pour que leur outil sache les lire correctement.
18+
19+
Concrètement, ce n'est pas une mauvaise pratique d'avoir un h1 visuellement plus petit/moins contrasté/etc. qu'un h2. L'important est de conserver une __structure html en cascade__ pour le voiceOver (et le référencement web).

docs/Bookshelf.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Bookshelf
2+
3+
## Conventions de nommage
4+
5+
Une entité bookshelf doit être préfixée par "Bookshelf".
6+
```javascript
7+
const BookshelfUser = require('../../User');
8+
9+
const myBookshelfUser = new BookshelfUser({});
10+
```

0 commit comments

Comments
 (0)