Livres sur le code reverse engineering


#1

Je tombe souvent sur une codebase sans doc , sans commentaire, le vide.

Avez-vous des bons livres à recommander pour lire une codebase et essayer de la comprendre ?

Merci


#2

Salut @Andy_Kw, pas de livres sorry, mais je peux, néanmoins, te partager mon expérience pour ce genre de cas, que je rencontre aussi.

Disclaimer : j’avais déjà commencé à te répondre quand je me suis aperçu que je ne connaissais pas ton objectif pour comprendre le code et que je suis parti du principe que c’est pour y contribuer : faire un refacto, implémenter une nouvelle fonctionnalité. C’est donc dans ce but qu’est formulé ma réponse.

En premier lieu, je commence par récupérer le plus de contexte possible autour du code. Ça donne des questions tels que : quelle est la problématique que cherche à résoudre le logiciel ? En répondant à cette question, je cherche à savoir si j’ai les connaissances requises pour aborder le logiciel. i.e. s’il s’agit de l’implémentation d’un protocole que je connais peu, même si le code est propre et bien documenté, j’aurai du mal à le comprendre et encore plus à intervenir dessus.

Ensuite, je cherche quelqu’un qui puisse m’expliquer la big picture du design. Celle qu’on dégage difficilement, juste en lisant le code (à fortiori si celle-ci est grande). Avec ça, j’espère savoir, à peu près, où je me situe quand je souhaite intervenir sur une partie. Le plus important selon moi : récuperer un maximum de termes que j’espère retrouver dans la codebase -> le jargon propre au domaine. Ça m’aidera à donner du sens quand je me balade dans les sources.

Ensuite, les tests (s’il y en a), car ils me permettent de savoir comment s’utilisent les différentes entités. De plus, les tests, s’ils sont bien fait, agissent aussi comme de la documentation.

Enfin, et pour être au plus proche de ta question (i.e. le reverse-engineering, d’une code base), j’utilise le débuggeur pour suivre l’exécution du programme.

Voilà, j’espère que ça t’aidera, même un peu.


#3

Salut @tho,

merci pour ta réponse.

Cela m’aide.

Je m’aperçois qu’il y’a de plus en plus de cas où j’interviens sur la codebase sans rien comprendre ou pire sur un framework maison, où il n’y a aucune indication et bien sûr, sans que personne puisse m’indiquer , sans tests unitaires. C’est glauque, d’où ma question.

Si tu as d’autres tips plus tard, je suis preneur.

Merci encore.

@+


#4

Cool alors :slight_smile:
du coup, en relisant, je pense à celui-ci, qui me paraît essentiel -> ne pas aborder une codebase seul, en fait.

Pair, pair, pair ! ^^