1/ Commenter et indenter son code
Les IDE (Eclipse, Netbeans, etc.) permettent facilement de vous retrouver dans votre code notamment grâce au navigator / project explorer mais aussi grâce aux info bulles. En effet, ajouter les cartouches renseignés ou pré-renseignés avec quelques indications pertinentes, permet d’avoir un retour d’information très rapide et efficace sur toutes vos fonctions et librairies (retours de données, paramètres, etc.). Ce qui différencie un commentaire utile d’un autres, c’est sa pertinence, sa structure et son emplacement.
<?php
function test()
{
//C'est le traitement un
/*TRAITEMENT 1*/
//C'est le traitement deux
/*TRAITEMENT 2*/
}
?>
Renseignez les structures de façon concise plutôt que ligne par ligne, utilisez également les tags référencés comme @author, @version, @copyright, etc.
<?php
/**
* Fonction permetteant de faire un test
*
*
* @return unknown_type
*/
function test()
{
/*TRAITEMENT 1*/
/*TRAITEMENT 2*/
}
?>
Pour ce qui est de l’indentation et de la structure du code, il existe plusieurs écoles. La relecture vous permettra de recadrer les choses pour gagner en lisibilité et en clarté et gagner en compréhension, surtout si votre projet suscitera de nombreuses TMA (évolutions/bugs).
2/ Utiliser des templates
L’utilisation de templates sur Eclipse mais également sur tous les bons IDE, permet de debugger votre code à vitesse grand V en tapant quelques lettres pour retrouver vôtre template comme l’indique la capture, mais aussi en choisissant soigneusement l’affichage par défaut du curseur une fois celui ci validé. Notez le preview également très utile (sur Eclipse ici) permettant de vérifier avant valider l’insertion du template.

Pensez à partager entre vous vos préférences et configurations d’environnements de codage et autres outils pour unifier le code.
3/ Le codage collaboratif
C’est toujours compliqué de mettre en place une interface ou même simplement de travailler à plusieurs sur l’élaboration d’un module. Même s’il existe des outils de live-coding qui vous permettent donc de coder à plusieurs et simultanément, très utile pour la productivité certes mais relativement fragile et sensible. Fragile car cela implique que tout les codeurs possèdent les mêmes normes et habitudes de codage. Sensible dans le sens où être à plusieurs sur le même projet multiplie les sources d’erreurs.
Utilisez un CVS, SVN ou GIT. C’est un outil de versionning puissant et redoutable quant à la perte d’information. L’implémentation du code, donc de vos évolutions se fera de façon automatique lors d’une synchronisation avec le repository. C’est encore plus pratique si des équipes autonomes travaillent sur des branches précises d’un projet qui devront à terme être fusionnées.
Sauvegarder vos configurations et préférences d’environnements de vos outils (TOAD, Eclipse, etc.) et partagez les. Que chacun ait ses méthodes c’est bien, mais uniformiser et unifier vos méthodes de développement c’est assurer la pérennité d’un code propre et d’un outil efficace. C’est également un gage de lisibilité : vous vous retrouverez plus facilement dans vos développements et évolutions. Vous saurez où agir précisément dans le code, avec efficacité vous ciblerez d’emblée l’endroit crucial où la TMA / intervention est nécessaire. Pour ce qui concerne la maintenance, vous identifierez clairement du code de type : debug / traitement / affichage grâce aux cartouches de commentaires.

4/ Centralisez vos TMA
Utilisez un bug-tracker pour centraliser les demandes et diverses évolutions de vos projets. Il existe plusieurs projets libres à ce sujet : Mantis, Bugzilla,…
5/ Nommer, hierarchiser & ordonner
Gardez en tête qu’un code n’est pas uniquement utilisé par une seule personne (dans la plupart des cas). Quand bien même, vous n’êtes jamais à l’abris d’un oubli. Structurez donc votre projet de façon claire et cohérentes : dossiers / fichiers / classes / images /scripts js /etc.
Si vous avez ordonné vos fichier, il en va de même avec vos lignes de code également : utilisez des noms de fonctions explicite : GetId(), Get_Id(), get_id(), etc. Regroupez les ensuite en librairies de fonctions / classes.
Sachez qu’il existe également des outils pour vous aider à standardiser vos développements, les Framework ou les générateurs de Templates.
6/ Mutualiser le code redondant
Si un bout de code est utilisé de plus en plus souvent, ou une qu’il pourrait être utilisé par plusieurs modules / méthodes etc. Remontez les fonctions aux niveaux adéquats : classes, librairies de fonctions… Sans rentrer dans une logique d’usine à gaz, jugez vous même de la pertinence de ce qui nécessite d’être mutualisé en fonction, procédure, méthode ou classe et ce aussi bien coté script qu’en base de données (Package, Fonctions, Procédures, Triggers…).
La construction d’un DAO simple vous permettant de structurer vos données et d’appeler ceux ci sous forme d’objet permet dans un premier temps de vous donner les clefs pour les instructions de base élémentaires. Vous aurez la possibilité de faire appel simplement aux pricipaux ordres SQL de façon à sélectionner, insérer, supprimer ou mettre à jour vos données et ce de façon cohérente et simplement.
<?php
class humain{
public $type;
public $nom;
public function __construct() {
// ...
}
public function create() {
// ...
}
public function save() {
// ...
}
public function delete() {
// ...
}
}
?>
7/ Styliser le code
Même si celui ci est le plus pertinent, il doit toujours être accessible et donc très lisible afin d’en assurer sa maintenance.
<?php
//A eviter
$query="select id,object,colonne, subject,corps from table1,table2,table3 where table1.id=table2.id and table2.id=table3.id";
//Conseillé
$query="select id
,object
,colonne
,subject
,corps
from table1
,table2
,table3
where 1=1
and table1.id=table2.id
and table2.id=table3.id";
?>
Ce rapide exemple vous montre que par une identation simple et par quelques retours chariots, votre requête gagne en lisibilité et accessibilité de debug. Vous pouvez supprimer où ajouter vos jointures ainsi que les des/activer comme bon vous semble lors de vos recettes comme dans l’exemple type en PL/SQL.
Select a.id
,b.object
,b.subject
,b.type
-- ,c.misc
from table_a ta
, table_b bb
, table_c tc
-- , table_d td
where 1 = 1
--Jointures
and a.id = b.id
and b.id = c.id
-- and c.id = d.id
--Conditions
and a.id = 1
and b.type =2
-- and c.misc is not null
;
Ne faites pas non plus trop de boucles et d’exceptions lors de vos traitements, préférez externaliser vos traitements dans de simples fonctions. La gestion “d’exceptions d’exceptions” devient vite problématique pour la maintenance ou l’évolution de votre projet. Préférez donc la création de fonctions aux noms explicites pour écarter vos exceptions lors de vôtre traitement.
<?php
//A eviter
function test()
{
//Test 1
if()
{
//Test 2
if()
{
//Test 3
if()
{
}
}
}
}
//Conseillé
function test()
{
//Test 1
if( fn_tst_1() )
{
}
//Test 2
if( fn_tst_2() )
{
}
//Test 3
if( fn_tst_3() )
{
}
}
//A eviter
$array=(1=>'1',2=>'2');
//Conseillé
$array = array (
1 => '1',
2 => '2'
);
?>
8/ Centraliser & prioriser les taches
Vous avez la possibilité sur vos IDE d’activer et lister vos tâches par fichiers pour les importer ou même garder un historique local d’une TMA ou d’un projet. Utilisez les à bon escient pour garder en mémoire les historiques locaux d’une ou plusieurs tâche sur un fichier précis de votre projet.

9/ Utiliser des noms de variables temporaires parlantes
N’utilisez pas des noms de variables trop vague, $dumb ou $temp. Préférez l’utilisation de nom de variables temporaires bien explicites tel que : $_temp_tb_records par exemple. Vous devrez remonter à l’alimentation de celui ci, si son nom n’est pas parlant ou bien si vous ne savez pas la façon dont il a été construit.
<?php
//Que contient $tb ?
foreach($tb as $key=>$value)
{
//Que représente $key / $value ?
/*Traitement*/
}
?>
10/ Separation traitement / donnees
C’est un autre principe qui s’applique à presque tous les langages dans tous les environnements. Dans le cas du développement web, les «données» impliquent généralement la sortie HTML. Vous aurez ainsi forcément votre partie traitement php avec votre code et exception, et de l’autre son affichage avec votre code HTML statique.
Lorsque PHP a été publié il ya plusieurs années, il a été essentiellement perçu comme un moteur de template. Il était courant d’avoir de gros fichiers HTML avec quelques lignes de code PHP entre les deux. Toutefois, les choses ont changé au fil des années. Ils sont devenu de plus en plus dynamiques et plus fonctionnels. Certains sont même devenu des outils a part entière et ont supplanté les progiciel type client/serveur. Le code est maintenant une grande partie des applications web, et ce n’est plus une bonne pratique de les combiner avec le code HTML.
Vous pouvez appliquer ce principe vous-même en développant de façon spécifique votre propre framework ou template, ou vous pouvez utiliser des outils tiers (moteurs de template, cadres ou CMS) et suivre leurs conventions. C’est a vous de juger lors de la création de vôtre projet ce qui est le plus judicieux : s’adapter à l’existant ou repartir de zéro.
Il existe plusieurs outils / services qui proposent des moteurs de templates ou frameworks. Parmis les principaux framework vous trouverez : Zend Framework, Symfony, CakePHP, CodeIgniter, etc. Vous trouverez à ce propos sur l’excellent site de “La ferme du web” et Dator, deux tutoriaux vous permettant d’aborder les deux gros framework Zend et Symfony.
Parmis les principaux moteurs de templates : Smarty, Dwoo,etc.
N’oubliez pas non plus de jeter un oeil sur les syntaxe alternatives au framework si vous avez une appréhension à utiliser ceux ci.
Pour conclure
Il n’y a pas de méthode miracle pour garder une API / un projet uniforme, cohérent et stable. Seul un suivi régulier et permanent des développements rendent un projet viable sur le long terme. S’adapter aux standards et rester en veille est la clef pour garder une application compétitive. Ces quelques conseils et méthodes sont issues de retours d’expériences personnelles et de normes existantes. Si vous possédez d’autres trucs et astuces pour simplifier / organiser votre code ou projet n’hésitez pas à le partager dans les commentaires.
Documentez vous, internet regorge de sites très bien fait proposant de nombreux tutoriaux gratuits ainsi que bon nombre de ressources libres. Ceux ci étant codés de façon collaborative justement, leur structures peuvent vous en apprendre beaucoup sur la gestion d’un projet, sa documentation, etc.
J’espère avoir répondu à pas mal de vos questions, n’hésitez pas une nouvelle fois à me faire part de vos remarques, commentaires si j’ai oublié quelque chose.
Pour aller plus loin :
Article inspire de :