AM3D
01/05/2020
On parle du projet C++.
RAII: Resource acquisition is initialization
Quand on parle d’héritage, on parle de spécialisation. L’ECS (entity component system) permet une autre approche que la spécialisation.
En Rust, on peut faire des tests unitaires directement dans les commentaires.
Metrics:
- Cyclomatic complexity (si cela grossit, c’est mauvais signe)
- Dependances de l’heritage
- Dependances entre classes
- Nombre de methodes par classes
- Nombre de lignes par fichier
18/05/2020
class File {
private File* f;
File(...) {
f = fopen(...);
}
~File() {
fclose(f)
}
read(...) {
f.read(...);
}
}
void main() {
FILE* file = fopen(...);
f->read(...);
fclose(file);
File* f { ... };
f->read(...);
}
struct S;
template <typename T>
class Ptr {
private T* t;
Ptr() {
t = new T;
}
~Ptr() {
delete t;
}
T* operator ->() {
return t;
}
T& operator *() {
return *t;
}
}
int main() {
S* s = (S*)alloc(sizeof(S));
s->...;
s->uninit();
free(s);
S* s = new S(...);
s->...;
delete s;
Ptr<S> ptr {...};
ptr->...;
auto s1 = std::make_unique<S> {...};
s1->...;
}
Session #6
Command pattern:
- créer une instance d’une classe qui va s’occuper uniquement d’appeler une commande:
La serialization en Rust utilise Serde -> 29 types possibles.
Projet Python
On utilise Qt.
Dependency graphs - Work for lesson 2
Complete version
Simplified version
AM3D
On parle du projet C++.
RAII: Resource acquisition is initialization
Quand on parle d’héritage, on parle de spécialisation. L’ECS (entity component system) permet une autre approche que la spécialisation.
En Rust, on peut faire des tests unitaires directement dans les commentaires.
Metrics:
Command pattern:
La serialization en Rust utilise Serde -> 29 types possibles.
Projet Python
On utilise Qt.
Dependency graphs - Work for lesson 2
Complete version
Simplified version