2010-10-01 9 views
5

J'ai été consulté sur la mise en place d'un projet et j'aimerais faire part de mes idées à quelqu'un pour obtenir des opinions supplémentaires.Décisions architecturales: site principal, forum, blog

La partie principale de ce site est très complexe et a des fonctionnalités très personnalisées, donc de ce que j'ai vu c'est plus d'une webapp. Cependant, un blog est nécessaire et un forum est également nécessaire. Ceci est l'aperçu général de ce projet. Parce que la partie principale du site Web est plus d'une webapp, je pense que ce projet devrait être séparé en morceaux individuels pris en charge par différents cadres et CMS afin que chaque composant ne limite pas d'autres composants. C'est une décision assez difficile à vendre parce que personne ne veut maintenir des cadres et des CMS différents à moins que ce soit vraiment la bonne chose à faire pour eux. Ma logique est que parce que la partie principale du site est vraiment une webapp complexe, essayant de l'intégrer dans un CMS comme Drupal ou Joomla ou quoi que ce soit qui va augmenter le temps et le coût de développement. Cette partie a du sens pour être créée avec une technologie plus flexible comme le Zend Framework ou Symfony, ce qui n'est pas un CMS.

Pour le reste des composants, je ne vois pas l'intérêt d'utiliser un framework puisque beaucoup d'entre eux sont des composants standards comme un blog et un forum. Donc, pour le reste du site, mes options sont 1) de construire tout le nécessaire avec un seul CMS que je connais bien (disons Drupal), mais comme je suis déjà tombé sur la voie de la division du site, j'ai pensé option 2) pourquoi ne pas diviser le site encore plus et choisir le meilleur logiciel pour chaque composant. Drupal par exemple ne fait pas un excellent forum. Ce n'est pas là que réside son pouvoir. Il s'avère également que les gens qui participeront à la rédaction des blogs ne sont pas les mêmes que ceux qui contribuent aux forums, donc je pense que je ne devrais pas m'inquiéter de quelque chose comme former le même personnel le 2 mai. logiciel séparé.

Cependant, je ne peux pas me décider concernant la maintenabilité de ce site Web. D'un côté je pense qu'il va être plus difficile de maintenir 3 principales technologies différentes: cadre pour l'application, logiciel de forum spécialisé (suggestions bienvenue), et logiciel de blogging spécialisé (suggestions accueillir), mais d'autre part, Je pense que cela peut être beaucoup plus facile à maintenir car une partie du site peut être supprimée ou modifiée beaucoup plus facilement sans affecter tout le reste.

Cela a été mon idée générale, mais je crains que cela puisse être difficile à vendre, car il semble que j'essaie de compliquer un projet. Je pense cependant que cette approche le simplifie réellement. Donc, des pensées à ce sujet? Y a-t-il des problèmes que je ne considère pas complètement? Quelles décisions architecturales feriez-vous de la même façon ou différemment si vous aviez le même type de problème?

Répondre

8

Sa décision difficile, en effet. Cependant, avant toute autre chose, il y a quelques questions critiques auxquelles il faut répondre.

1: Est-ce le blog va contenir toutes les fonctionnalités des logiciels de blogs que vous voyez là-bas? Ou vous avez besoin d'un ensemble de fonctions plus petit et plus simple? Idem pour le forum.

2: Est-il nécessaire de partager la base d'utilisateurs sur les trois systèmes?

3: est-il nécessaire que la conception du site soit exactement la même chose dans tous les domaines?

Si les gars ont besoin les forums et les blogs Full Blown, alors il serait sage d'aller avec des systèmes séparés. Cependant, si l'ensemble de fonctionnalités requis est petit, il peut être plus judicieux de le personnaliser, sans passer trop de temps. Si la base d'utilisateurs doit être partagée, il serait difficile d'intégrer les sessions et la base d'utilisateurs sur trois systèmes différents, il est toujours plus facile et plus facile d'utiliser une seule table d'utilisateurs. Vous devrez pirater le forum et la plate-forme de blogs pour le faire fonctionner avec les cms principaux, il y aura des problèmes à faire cela.

Si la conception peut varier sur ces systèmes, il serait correct, mais ce qui en fait exactement la même chose serait exploit et nécessiterait des personnes spécialisées pour le forum concerné et la plate-forme de blogs. Donc, le maintien du design serait également un problème.

Ceci est une décision très difficile. Il va être coût à court terme vs coût à long terme. Si vous pensez que l'application Web est là pour rester pendant un certain temps, je vote pour augmenter les coûts à court terme, cela faciliterait les choses à long terme.

Une autre note: Si vous concevez votre architecture modulaire, vous pouvez développer votre système de forum et un blog sous forme de modules que vous pouvez plug-in. Donc, vous donne la liberté de rendre le site partiellement déconnecté.

2

Il va être beaucoup plus facile de maintenir des frameworks qui ont beaucoup d'utilisateurs qui savent ce qu'ils font. Il va être plus difficile de maintenir une application personnalisée qui essaie d'être une application, un blog et un forum en un.

Celui qui se maintient, il sera heureux que quand ils ont besoin de faire un changement au blog:

  • ils ne ont pas besoin de regarder à l'un des autres composants
  • il y a beaucoup de documentation là-bas pour votre moteur de blog (en supposant que vous allez avec un populaire, par exempleWordpress
+0

Je pense que si vous allez le séparer, vous pourriez aussi bien le faire correctement. Il est beaucoup plus facile de maintenir quelque chose qui essaie juste de faire un bon travail d'être un blog, et de même avec un forum. – Skilldrick

1

J'aime les questions de @ Sabeen. En supposant que les trois composants vont partager les utilisateurs et la mise en page, il me semble préférable d'avoir un seul framework sous-jacent, pas un monstre multi-têtes Drupal-Wordpress-phpBB-Zend dans lequel vous devez gérer une authentification distincte et schémas de thèmes. Mais comme l'a noté Sabeen, si le forum et le blog doivent vraiment être complets, alors les implémenter à partir de zéro semble beaucoup de travail pour réinventer des roues déjà éprouvées. Coût à court terme, certes, mais avec des avantages à long terme.