Bonjour à vous tous,
Depuis quelques temps, je développe en C. J'aimerai pouvoir réaliser des applications dans ce langage de la manière la plus propre possible à savoir, comme les grandes applications (Mozilla, OpenOffice.org, ...).
J'entends par là :
- Phase de génie logiciel / Conception de l'architecture
- Gestion de fichiers de langues (support des variables d'environnement LC_*)
- Parsing du fichier de configuration avec Flex et Bison
- Développement d'une application modulaire avec possibilité d'y greffer des plug-in
- Avoir peut-être un mini-langage relatif à l'appli (genre comme Vim)
- Support "propre" des erreurs
...etc. Bref, comment fait-on une grande application digne de ce nom ? Il y a-t-il une doc qui regroupe la description de toutes ces technos pour avoir une sorte de document de base "HowTo develop big projects en C in Linux/Unix environment·" ?
J'ai beau cherché, j'ai rien trouvé... Avez-vous une idée ?
# wikibooks
Posté par pierthi . Évalué à 1.
Bon avant d'y aller, je te préviens quand même que c'est encore loin, très loin, d'être complet. En tous les cas, c'est ici que j'ai découvert LE langage de programmation ultime : le BrainFuck.
Sinon plus sérieusement, ce que tu cherches semble être se qu'on apprend pendant de longues années dans toutes les universités ou écoles d'ingénieurs du monde. Et encore, j'en connais certains, qui même après avoir suivit se cursus ne savent toujours pas coder (ok, je digresse).
--
Thierry
BF Lead Architect
# Mauvais exemples
Posté par tanguy_k (site web personnel) . Évalué à 5.
Pour ma part je pense que le C en dehors de quelques applications specifiques a vecu. Faire des malloc de char * c'est franchement d'une autre epoque et ca ne devrait plus exister de nos jours.
D'ailleurs au sujet de: Support "propre" des erreurs
les languages recents proposent tous ce genre de chose.
Pour developper de grosses applications, maintenant on a des outils bien plus performants que le couple vi/C: UML, OCL (on commence a y venir cf http://www.key-project.org/(...) ), programmation object... Il suffit de voir des outils comme Borland Together pour comprendre.
Perso j'ai commence a programmer en C et en GTK+, ba j'ai vite compris qu'en utilisant Java ou meme C++/KDE/Qt (d'autres proposerons Python, Ruby...) j'etais beaucoup plus productif, que j'obtenais un code plus propre, plus clair, plus simple, moins de bugs ect...
Pour s'en convaincre c'est d'ailleurs assez simple, GTK reprend le principe de la programmation object malgre etre programme en C. Autant donc utiliser directement un language object et ne pas re-inventer la roue.
# Directories
Posté par neil . Évalué à 1.
En fait tout dépend du style des coders.
A noter : les GNU coding standards qui sont peut-être ce que tu recherche :
http://www.fsf.org/prep/standards/(...)
# Digression : Conception vs Realisation
Posté par RuleZ . Évalué à 2.
Ce que je veux dire, c'est que ma faible expérience de petit amateur du dimanche (=protection anti-puristes ON) me suggére que conception et réalisation doivent à la fois s'opposer et se compléter, que l'on doit avancer l'un juste de quoi avancer l'autre, que conception et réalisation doivent s'alterner fréquement, par période de taille appropriée (on avance l'un juste ce qu'il faut pour continuer l'autre, et ce en boucle). Ce qui permet de donner tout ce qu'il faut de dynamisme à son projet mais en sachant toujours vers où on va.
Qu'en pensez vous ? Ferais-je erreur, devons-nous planifier, architecturer, schématiser tout à 75-95% avant de commencer à coder, ou devons-nous oublier toute cette paperasse pour nous précipité dans le code ?
En bref, je déteste la paperasse, mais je la trouve indispensable pour conserver une abstraction de l'historique de développement du projet, et pour offrir un fil directeur au developpement dans un futur proche. Le code/concret d'un coté, la paperasse/abstrait de l'autre, mutuellement indiscociables et indispensable à la vivacité de l'avancé du projet.
J'en viens donc à : je me demandais s'il existait des approches (méthodes, bouquins, sites, docs quelconques) qui se rapprocherai de ma perception, qui irait dans mon sens, afin que je m'instruise sur le sujet, si ça existait ? (il est hors de question que je change d'approche, je préfére appronfondir et formaliser celle que j'ai adoptée naturellement, même si minoritaire ...)
[^] # Re: Digression : Conception vs Realisation
Posté par TImaniac (site web personnel) . Évalué à 4.
Ces méthodes veulent pouvoir profiter des retours d'implémentations pour modifier la conception, faire évoluer les besoins.
Tu trouveras pleins de bouquins sur ces méthodes uqui ne se limitent pas aux itérations mais sont beaucoup plus complètes.
Ces méthodes "modernes" s'opposent au bon vieux cycles en V (mappé sur tous les projets d'ingénierie comme dans le bâtiment) ou tu conçois tout d'un coup, tu réalise tout d'un coup, et tu pleures à la fin parcque celà n'a rien à voir et y'a rien qui marche.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.