• Contact
  • Annonceurs

AURELIENPI.AT

Anything but the web !

  • Toutes les Archives
  • Blog
    • Wiki Technique
    • RDW
    • Panoramiques
    • Musique
  • Photos
  • Voyages

Tagged: eclipse

Plugins Indispensables pour Eclipse (PHP / Oracle / FTP / Serveur)

  • by Aurélien PIAT
  • in Wiki Technique
  • — 7 Juin, 2013

Le meilleur moyen pour s’assurer d’un univers cohérent et stable à travers l’installation des plugin sur Eclipse est de vous assurer dans un premier temps d’avoir vôtre Eclipse à jour (JUNO à l’heure ou ces lignes sont écrites). Vous vous éviterez ainsi d’avoir bien mal au crâne si vous partez d’une version trop vielle où les élement slorsque vous essayez de les mettre à jour sont trop interdépendant et font donc planté systématiquement toute tentative de mise à jour.

Mylyn pour Mantis

Gérez vos Mantis depuis votre environnement eclipse et sur les branches de vôtre repository.

Les ressources :

  • http://download.eclipse.org/tools/mylyn/update/e3.4/
  • http://mylyn-mantis.sourceforge.net/eclipse/update

TOAD

Vous bénéficiez de la possibilité de joindre les fonctions primaires (mais nécessaire) pour rapidement vérifier la cohérence des données retournées ou bien le nom d’un champ, son occurrence dans la base, etc. Voici le lien du plugin.

Notez que vous aurez peut être besoin d’un driver Oracle spécifique (ojdbc6.jar), vous le trouverez sur le site d’Oracle, munissez vous d’un compte Oracle pour le télécharger. Une fois l’archive récupérée, l’extraire dans un dossier spécifique et préciser le chemin à Eclipse.

Un CVS pour la gestion de version de vos documents

Vous pouvez avoir plus d’informations à ce sujet ici, j’en avais déjà un peu parlé.

En Vrac, la méthodologie :

  • Installer un nouvel eclipse dans le repertoire de votre choix
  • Lui demander lors de la première exécution la mise à jour du core
  • Demander installation du plugin pour toad : Toad Eclipse
  • Demander installation du plugin pour subversion : Subclipse 1.6.x 
  • Demander installation du plugin pour mantis mylyn avec ça et ça
  • Configurer l’accès au SVN avec la procédure eclipse déja existante
  • Configurer l’accès a la BDD en indiquant le ojdbc6.jar (réccupéré sur le site oracle.com) dans un dossier (exemple : c:\eclipse\driver\)
Maintenant vous pouvez :
  1. Tester création d’un nouveau repertoire de travail Toad
  2. Tester import / export sur SVN d’un projet php et TOAD
  3. Tester cloture mantis
C’est fini ! A vous les :
  • Fichiers XML
  • Gestion BDD Oracle et repository SVN
  • SVN
  • Liaison des Mantis

Joie, bonheur et night coding à profusion vous attendent !

En savoir plus

Incosolata : Police de Developpement (EDI)

  • by Aurélien PIAT
  • in Wiki Technique
  • — 8 Nov, 2011

Si comme moi vous ne supportez plus les effets d’aliasing (effets d’escalier) ou les défauts d’alignements (espaces mixés avec des tabulations) lorsque vous codez sous TOAD, NotePad++ ou Eclipse, optez pour une police qui a été orientée spécifiquement pour le code : Incosolata. Elle apporte un grand confort de vision, le code apparaît moins confus et l’ensemble paraît plus clair.

Elle remplace pour ma part déjà la police par défaut de TOAD et Eclipse face à ‘Courrier New‘, elle bénéficie de l’anti-aliasing et est de type mono-case ce qui signifie que l’espacement entre chaque lettre est de même taille quelque soit la lettre tapée. Exemple : I et L ne font pas la même largeur d’après la CSS du site, hé bien avec Incosolata si.

Pour l’installer, copiez la police dans votre répertoire c:\windows\font puis changez dans les options de TOAD la police par défaut (View, Toad Option, General, Encadré Fonts puis Editor) :

Procédez de la même façon pour Eclipse (Windows>Préférences, Onglet : General>Appearance>Colors and Fonts puis Basic>Text Font et enfin pressez le bouton ‘Edit’) :

Voici un effet type d’aliasing (en vert) :

Et voici le problème de font non mono-case, les combinaisons espaces / tabulations ne concordent pas et les alignements sautent (en rouge) :

Pour aller plus loin 

  • Cet article est inspiré de ceci.
  • Voici le site de l’auteur.
En savoir plus

Serveur FTP Local (FTP)

  • by Aurélien PIAT
  • in Wiki Technique
  • — 8 Juin, 2011

Si vous avez à synchroniser plusieurs interfaces le moyen le plus simple et le plus répandu est souvent l’échange de fichier plat / XML via FTP ou SSH.

Avec FileZilla Server, allez vous créer un utilisateur commun admettons ‘user‘ avec comme mot de passe ‘pwd‘.

Une fois le user défini pensez à lui attribuer un dossier partagé avec les droits associés à ce que vous souhaitez faire. Pour la création de fichiers fournissez lui au moins le droit d’écriture (Write) sur le dossier partagé.

Puis assurez vous dans la fenêtre de tracage de filezilla de pouvoir facilement identifier les connections entrante sortante. Vous pouvez pour cela simplement définir un message personnalisé pour les nouveaux arrivant se connectant a votre machine. Toujours dans FileZilla Server aller dans ‘Edit > Settings‘, puis définissez dans ‘Welcome Message’ des lignes supplémentaires avec des caractères bien spécifiques comme # @ et faite en des lignes.

Vous avez toujours des soucis pour vous connecter ? Ha oui c’est possible, avez vous testé la connexion simple depuis le serveur censé exécuter votre package créant votre fichier sur votre serveur distant et l’envoyant sur le votre (local) ? Utilisez simplement les commandes ‘ftp‘ puis ‘open <ip_de_votre_machine>‘ que vous retrouverez en tapant ‘ipconfig‘ sous commande msdos sur votre machine windows : touche ‘windows+r‘ (Run) puis tapez ‘cmd‘.

Vous n’avez pas de client SSH ? Prennez MRemote, Putty, Putty Connection Manager ou même encore le plugin eclipse pour rester ‘in-app’.

Si les problèmes de connexion persistent consultez les codes de retours propre au protocole FTP.

En savoir plus

Les 10 meilleurs pratiques de codage pour une lisibilite optimale, une maintenance facilitee et un projet perenne (Php/MySql)

  • by Aurélien PIAT
  • in Wiki Technique
  • — 6 Avr, 2011

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 :

  • La ferme du web un blog rempli de bons conseils, d’outils/services dédiés au web.
  • Le site du zéro rempli de tutoriels et de bonnes pratiques sur différents langages php, c++,etc.
  • Php Src possède des plugins intégrable à Eclipse : détecteur de copier/coller, détection des violation de standards,etc.

Article inspire de :

  • Net.Tuts-plus.com – Top 15+ Best Practices for Writing Super Readable Code
En savoir plus
  • Onglets

    • Recent Posts
    • Most Popular
    • Comments
    • Tags
    • L’Écosse en une semaine6 mars 2020
    • Belkin Wemo Switch : allumer, éteindre et statut de tous vos switchs !20 mars 2016
    • Réparer VM Oracle VirtualBox Avorté11 décembre 2014
    • NAS Thecus N25607 octobre 2014
    • Afficher la couverture du livre en cours de lecture sur le Kobo By Fnac18 mai 2012
    • Comment installer des presets (paramètres prédéfinis) sur Adobe Lightroom 4 sur Mac20 juillet 2013
    • Sauvez votre lapin ! (Nabaztag)2 août 2011
    • Test du Videoprojecteur BenQ W700+22 février 2013
    • Fanny's Party 40 - Noël à la pelle - CatnGeek on:Sauvez votre lapin ! (Nabaztag)
    • maxime arnaudet on:Comment installer des presets (paramètres prédéfinis) sur Adobe Lightroom 4 sur Mac
    • Kb on:Afficher la couverture du livre en cours de lecture sur le Kobo By Fnac
    • Muriel on:Afficher la couverture du livre en cours de lecture sur le Kobo By Fnac
    • alternative app apple application astuce bretagne coding eclipse film flore fonction ftp Google gopro guadeloupe ios iphone kobo le sud liseuse mac os x media mer nas nature nowatch oracle os x panoramique photo photographie php pl/sql plugin podcast procedure qnap server serveur ssh video wallpaper wordpress xml youtube
  • Home
  • Tagged: eclipse
  • Wiki Technique

    • Belkin Wemo Switch : allumer, éteindre et statut de tous vos switchs !20 mars 2016
    • Réparer VM Oracle VirtualBox Avorté11 décembre 2014
    • QNAP inclut le chiffrement intégral du NAS basé sur la technologie de chiffrement de volume2 octobre 2014
    • Augmenter un File System sous Linux6 juin 2014
    • Augmenter la taille d’un disque dur d’une VM sous VirtualBox (VDI)4 mars 2014
  • Blog

    • L’Écosse en une semaine6 mars 2020
    • NAS Thecus N25607 octobre 2014
    • QNAP inclut le chiffrement intégral du NAS basé sur la technologie de chiffrement de volume2 octobre 2014
    • HPC, la course à la puissance.4 juin 2014
    • YunoHost : Adieu Gmail, Drive, Dropbox, etc.19 mars 2014
  • Médias

    • Revue du web du 25/05/201325 mai 2013
    • Revue du web du 16/05/201316 mai 2013
    • Revue du web du 30/03/201330 mars 2013
    • Revue du web du 04/03/20134 mars 2013
    • freshnews #357 Samsung Galaxy Note III / Appels telephoniques sur Facebook Messenger / iPad detrone17 janvier 2013
  • A propos
  • Mentions legales
  • FAQ

Aurélien PIAT 2011~2020 - aurelienpi.at - Certains droits réservés : Creative Commons (France)

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web. Si vous continuez à utiliser ce site, nous supposerons que vous en êtes satisfait.Ok