2010-09-05 6 views
0

en tant que développeur web utilisant PHP/JS/CSS depuis des années, je souffre de me répéter encore et encore et encore, même si j'utilise un framework PHP, je ressens la même chose à chaque fois, je commence à construire de nouvelles fonctionnalités, donc chaque fois que j'ai commencé une nouvelle chose je sens le 'Déjà vu' (je l'écris avant), et je réécris beaucoup de choses à partir de zéro malgré que j'écrive quelque chose avant, si j'utilise du code écrit, je prendrai plus de temps pour le réutiliser j'aime la programmation et le développement web, mais cette façon, je vais perdre ce :(...Quelle est la meilleure pratique pour le développement de logiciels php?

lorsque le problème? dans le langage, ma façon de construire un logiciel ou quoi?

+0

Merci pour le lien Deja Vu! –

+2

De quel domaine de développement de logiciels PHP parlez-vous? Des classes? Héritage? Séparation de code? Les «meilleures pratiques» pour une langue entière est de VOIR un sujet. –

+0

bien, je veux dire les meilleures pratiques pour écrire du code réutilisable solide, chaque fois que je commence un nouveau projet je devrais incrémenter les progrès des projets précédents, ne pas recommencer à zéro – shox

Répondre

2

si j'utilise le code écrit précédent, je peux prendre plus de temps pour le réutiliser

Ceci, je crois, est votre vrai problème: vous écrivez beaucoup trop rapide -et-sale code et souffrent du résultat techincal debt. Le problème est que ce qui est rapide à court terme peut conduire à être très lent à long terme.

Si je peux offrir une comparaison non technique, envisager une Ferrari et un cargo. Lors de la livraison d'une seule lettre, il semble évident que la Ferrari serait beaucoup plus rapide pour ne pas mentionner beaucoup plus pratique par rapport à l'utilisation d'un cargo. Juste charger le navire avant de quitter les quais peut prendre des heures. A ce moment, la Ferrari aurait déjà terminé la livraison. Mais quand vous devez livrer cent tonnes de courrier, le cargo achèverait la livraison tandis que la Ferrari serait toujours occupée à expédier la livraison de chaque lettre.

C'est la même chose dans votre cas. Lorsque vous développez un seul site Web, il semble toujours évident que vous devez écrire le moins de code possible pour faire le travail rapidement. Et si toute votre carrière est consacrée à un seul site Web, je dirais même que c'est la bonne façon de le faire.C'est, après tout, l'esprit essentiel des méthodes Agiles. Mais si votre travail est de développer sites Web(pluriel) alors cette approche commencera à devenir plus lent avec chaque nouveau site. Tout comme la Ferrari n'est pas idéale pour livrer une centaine de tonnes de n'importe quoi.

Un exemple réel est 37signals. Lorsque leur modèle d'affaires exige qu'ils soient en mesure de développer et de déployer rapidement des sites selon leurs besoins, au lieu de se contenter de développer et de développer rapidement leur premier site, ils ont pris du recul et développé Ruby on Rails à la place. Je ne dis pas que vous devriez aller de l'avant et commencer votre propre cadre, réinventer la roue est exactement ce que vous voulez éviter à ce stade. Ce que je suggère est de séparer la fonctionnalité que vous développez du code Web. En d'autres termes, lorsque vous écrivez un nouveau code, écrivez-le en tant que bibliothèque. Oui, il est un peu plus impliqué dans l'écriture de code dans deux fichiers ou plus par rapport à l'intégration de la fonctionnalité directement dans la page PHP. Mais à la fin, votre prochain site Web sera plus facile/plus rapide à mettre en œuvre.

Je crée toujours un répertoire lib dans le répertoire de base d'un projet à chaque fois que je démarre un nouveau projet. Je me force alors à écrire tout le code même vaguement réutilisable en tant que modules séparés dans ce répertoire. Ces jours-ci, je trouve que, le plus souvent, je copierais simplement (ou plus communément créer un lien symbolique) des fichiers dont j'ai besoin dans le répertoire lib au lieu d'écrire le code nécessaire.

0

le problème est que lorsque PHP a commencé , chaque tutoriel, chaque démo et tout le code a été fait dans un très Cela est dû au fait que PHP est descendu de la famille C/C++. Beaucoup de développeurs ont pris ce problème et l'ont porté, et il était visible que nous ne pouvions pas le garder.

Maintenant, nous avons PHP 5.3.3 disponible, nous avons des espaces de noms, des objets, des classes, des interfaces et tout cela. Beaucoup de choses qui ont aidé à faire du mauvais code comme des citations magiques et des globales de registre sont maintenant obsolètes. PHP évolue dans le monde OO, cela a pris assez de temps, mais ça se passe. Donc, si vous voulez recommencer à « réapprendre » PHP, je vous conseille de prendre vos mains sur certains cadres comme:

symfony

, joomla, propulser la doctrine

en savoir plus sur les modèles de mvc et de conception appliqués à PHP et vous voyez comment vous allez commencer à faire du bon code OO, et le deja-vus pourrait s'arrêter avant que vous le connaissiez.

Espoir je peux aider David

+0

bien j'apprends le modèle MVC et je l'implémente petit pour un usage personnel, et j'utilise déjà codeigntier mais, toujours la même chose: répéter mon moi encore et encore :), et j'ai beaucoup lu sur OOP, la même boucle existe ... – shox

0

C'est exactement pourquoi un cadre est la meilleure façon d'aller. Il supprime les parties banales du code (les choses que vous avez toujours à écrire encore et encore comme les connexions DB). Je suggérerais de choisir un bon framework (j'utilise CakePHP, mais il y en a d'autres comme Symphony, Codeignitor, Zend, etc.), et comme vous construisez divers composants, vous pouvez les réutiliser dans d'autres projets. Cela réduira le temps nécessaire pour écrire tous les futurs projets.

Questions connexes