Salut à tous !
Ce n'est sans doute pas le meilleur endroit pour poster cette question mais je n'ai pas trouvé de meilleures sections qu'ici.
Ma question porte sur l'architecture/conception d'un programme :
Description du logiciel :
Permet d'utiliser plusieurs services sociaux (Twitter, Facebook, MySpace, MSN, RSS, mails, etc...) à partir d'un même programme grâce aux différentes API proposées par ces services (en grande majorité en HTTP avec le composant Indy idHTTP).
Fonctionnement actuel
Utilisation des design patterns MVC et Observer/Observable pour l'interaction entre l'interface graphique et le modèle.
Le modèle est composé comme suit :
TApp_Core
TBookmarkingServices_Core
TDelicious (implémente IBookmarkingServices)
TDigg (implémente IBookmarkingServices)
Tetc... (implémente IBookmarkingServices)
TChatServices_Core
TMSN (implémente IChatServices)
TGoogleChat (implémente IChatServices)
TAOLChat (implémente IChatServices)
Tetc...
TRSSServices_Core
etc...
Il y a une instance de TAPP_Core dans le logiciel et en fonction des services que souhaitent l'utilisateur, on ajoute des services supplémentaires (ex : pour ajouter un compte DIGG, on va faire App_Core.BookmarkingServices_Core.AddServices(Digg, User, Password).
Questions
- Cette architecture tient-elle la route ?
- Elle semble extrêmement complexe à tout relier avec le design patttern MVC, est ce normal ?
- Il y a actuellement un seul thread... d'où des problèmes d'utilisation car blocages à chaque interaction.
Le mieux serait-il de créer un thread à chaque requête d'un service où on va créer un idHTTP, générer la requête (ex : obtenir les derniers messages d'un compte utilisateur sur Facebook), interpréter la réponse, notifier les "observers" (callback) et fermer le thread ?
- Créer trop de threads rapidement risque de créer de gros ralentissements, quelle solution ?
- Au niveau de la base de données, j'utilise SQLite3 pour l'archivage des rss, mails, etc... Est ce une bonne solution ou est-ce plus adaptée de créer mon propre système de stockage ?
Merci d'avance 
PS : s'il y a des développeurs intéressés par ce projet, contactez-moi ! Je viens de me lancer seul sur ce projet depuis quelques mois à pleins temps (je suis étudiant en année de césure dans l'incubateur de mon école)
Partager