Pouvez-vous donner aujourd'hui des exemples d'applications qui sont procédurales et qui maintiennent un haut niveau d'intégrité et d'efficacité? Existe-t-il des livres, des didacticiels ou des liens qui fournissent des exemples de la manière de construire et de maintenir un système impératif? Si vous deviez donner des conseils dans ce domaine, quels conseils donneriez-vous sur la façon dont cela devrait être structuré? Je demande parce que la POO est souvent présentée comme une progression naturelle de la programmation procédurale, mais j'ai du mal à croire que c'est toujours le cas.Est-il possible de concevoir et de construire une application procédurale (impérative) avec succès?
Est-il possible de concevoir et de construire une application procédurale (impérative) avec succès?
Répondre
Vous voulez dire, disons, le noyau Linux? Noyau BSD? Serveur web Apache? La grande majorité des utilitaires d'utilisateur Unix? Des applications comme ça? Bien sûr, les techniques POO ont une valeur dans l'organisation, la maintenabilité et les abstractions dans les logiciels, mais même aujourd'hui, la POO est probablement un sous-ensemble minoritaire de tout le code et les applications écrites aujourd'hui. Considérons tous les codes Java ou C# ou VB qui ont été écrits dans un langage de programmation compatible avec la POO, la seule raison pour laquelle ils utilisent une grande partie de la technique OOP est d'interagir avec des bibliothèques ou des systèmes externes. Pendant ce temps, les applications elles-mêmes, tout en tirant parti des cadres OOP, sont probablement très procédurales dans la conception et la mise en œuvre.
OOP est un paradigme parfait, mais en réalité, il n'est pas vraiment nécessaire pour la majeure partie de la logique dans de nombreux systèmes.
Bien que je ne puisse pointer directement vers un système existant, il existe d'énormes quantités de systèmes d'entreprise hérités écrits avant COBOL. De nombreux programmes 4GL classiques sont procéduraux et visent à l'ingénierie de systèmes à haute intégrité. Certains sont bien écrits, d'autres pas tellement.
Les livres incluent "COBOL de Micro à Mainframes", "Guide de programmation Enterprise COBOL". Les conseils de structure sur le bon code impératif sont similaires aux techniques OO: nommez bien les choses, séparez vos préoccupations, ne vous répétez pas, principe de la responsabilité unique, ne laissez pas les fenêtres cassées non modifiées. En fait, je suggérerais simplement de lire le «programmeur pragmatique» qui donnerait à la plupart des gens la bonne idée dans n'importe quel paradigme. Dans la mesure où une raison convaincante pour passer à OO pour les applications orientées métier; Les langages procéduraux permettent une approche transaction script de la logique de domaine, tandis que les langages OO permettent l'approche domain model. Il est certain que pour des exercices simples, il n'y a pas vraiment besoin d'utiliser des langages OO, mais dès que la complexité augmente, la maintenabilité des langages OO l'emporte sur les langages procéduraux. Exemples d'applications procédurales réussies:
Je peux aussi ajouter le noyau Windows, nous ne pouvons pas voir le code, mais il est écrit en C et fonctionne plutôt bien, et je dirais que c'est un morceau de code complexe :) – Ilya
Qui soulève la question. .. comment les gens testent leur code? – Andrew
Vous pourriez argumenter que certaines parties d'au moins le noyau Linux sont écrites de manière OO, même si elle est implémentée dans un langage avec un mauvais support OOP. –