Project

General

Profile

Wiki » History » Version 15

Andrea Ciardi, 26/09/2016 12:13 PM

1 2 Nicolas Aunai
# LPP dev guide
2
3 13 Nicolas Aunai
4
## Kick Starter for efficient scientific coding
5
6
You will find here material to help you get started with your coding. Depending on whether you mostly do data analysis or numerical modeling, you'll need slightly different tools and methods. the advice we give you will help to be efficient, rigorous and to write code than you'll be able to use, maintain and share in the long run. Now remember, **If you're a PhD or a post-doc**, following these advice will not only help you improving the quality and reproducibility of your science, but also will make all your coding efforts **reusable** by people in the lab once you're gone, and more importantly will give you the basic knowledge you need to legitimately claim for a data science / computing science position in the private sector.
7
8
9
* [[kickstartercommandments| The commandments of programming]]
10
* [[kickstartercommon| Common tools and methodology]] you'll need to get started.
11
12
Now, what are **you** doing?
13
14
* You're mostly coding for [[dataanalysiskickstarter| data analysis]]
15
* You're mostly coding for [[numericalmodelingkickstarter| numerical modeling]]
16
17 14 Andrea Ciardi
## Code review and analysis
18 15 Andrea Ciardi
### Review
19 13 Nicolas Aunai
20 15 Andrea Ciardi
[Code Review for Teams Too Busy to Review Code] (https://www.youtube.com/watch?v=1m3eRFeCInY) (youtube video)
21
[Nice tutorial on code review with Rhodecode](https://docs.rhodecode.com/RhodeCode-Enterprise/code-review/code-review.html)
22 14 Andrea Ciardi
23 15 Andrea Ciardi
### Analysis
24 14 Andrea Ciardi
25 15 Andrea Ciardi
[CPP Check](http://cppcheck.sourceforge.net)
26 14 Andrea Ciardi
27
### Performance
28
29
Videos
30
31 15 Andrea Ciardi
[Modern C++](https://www.youtube.com/watch?v=TJHgp1ugKGM)
32 14 Andrea Ciardi
33
34
35
Optimizations
36
37 15 Andrea Ciardi
[Instruction tables](http://www.agner.org/optimize/instruction_tables.pdf)
38 13 Nicolas Aunai
39 5 Alexis Jeandet
## Setting up a clean Python environment
40
41
* [[Python_and_virtualenv| Python and virtualenv]]
42
43 1 Alexis Jeandet
44
## C++ development
45
46
*  [[cpplanguage| The C++ language]]
47
* [[designpatterns| Design Pattern]] in general and in C++
48
* [[CppGurus| C++ Gurus]]
49
50 15 Andrea Ciardi
51
## Courses
52
53
These are useful links to check out regularly
54
55
PRACE training: https://events.prace-ri.eu/category/2/
56
57
Catalogue of courses: http://formation-calcul.fr/
58
59
Formation IDRIS: https://cours.idris.fr/php-plan/affiche_planning.php?total
60 6 Nicolas Aunai
61 11 Nicolas Aunai
## Code Design and Architecture
62 7 Nicolas Aunai
63 8 Nicolas Aunai
* [[solidprinciples| The S.O.L.I.D. principles]]
64 7 Nicolas Aunai
65
66 2 Nicolas Aunai
## Writing code
67
68 3 Nicolas Aunai
* [[codereview| Code review]]
69 4 Alexis Jeandet
* [[Useful_resources| Useful resources]]
70 6 Nicolas Aunai
71
72
## Documentation
73
74
* [[hyb-par: Documentationtools| Documentation Tools]]
75
*