Articles taggés Programmation

Guide de conception PHP

2

Comme chacun le sait, il existe plusieurs PHP, du très bon au très mauvais. On trouve aujourd’hui sur internet de très (trop) nombreuses sources pour apprendre le PHP, des cours, leçons et tutoriels.

Je donne moi-même un cours de PHP à des étudiants de licence professionnelle, et aborder cet enseignement s’avère assez compliqué, car les étudiants parviennent en général à réaliser quelque chose de fonctionnel, en laissant malheureusement de nombreuses bonnes pratiques de coté, ou en utilisant des fonctionnalités obsolètes de PHP.

PHP est historiquement un langage très répandu et facile à utiliser, et les cours, tutoriels ou exemple que l’on trouve sur internet sont souvent préférés par les gens pour leur facilité de prise en main que pour leur qualités techniques.

Par exemple, le tutoriel numéro 1 de developpez.com sur le PHP (cf http://php.developpez.com/cours/) date de 2009, nous propose d’utiliser les obselètes fonctions mysql_connect & co, et de construire des requêtes non échappées par concaténation. Les cours du Site du Zéro ont l’air quant à eux de bien meilleure facture.

Suite aux projets de l’année dernière, j’ai pu lister quelques uns des problèmes les plus fréquents, et j’ai produit un guide de conception que l’on peut trouver ici:

http://gregwar.com/php/guide-de-conception.html

Ce guide a pour but d’imposer des règles relativement strictes pour essayer de respecter les concepts modernes du développement en PHP.

Toutes les remarques à ce sujet seront les bienvenues !

ruby2

Le confort de Ruby

0

J’ai eu l’occasion de tester Ruby, un langage de programmation assez intéréssant, voici un petit résumé des concepts sympatiques de Ruby.

Une syntaxe légère

La syntaxe du langage est en effet particulièrement sobre et légère, tout en gardant une expression riche.

# Pas de ; ou d'accolads à tour de bras
class Greeter
    def initialize
        # Les attributs préfixés de "@"
        @name = "Jacques"
    end
    # Parametres optionels
    def say_hi (who = "World")
        puts "Hello #{who} je suis #{@name} !"
    end
end

# Simple instance et appel de fonction
g = Greeter.new
g.say_hi "Paul"

On ne peut que reconnaitre la legereté d’écriture, notament:

  • L’absence de points virgules
  • L’absence des accolades (le mot clé end servant de séparateur)
  • La possibilité d’omettre les parentheeses lors d’un appel de fonction, meme en lui passant des arguments
  • Les variables non préfixées comme dans php (avec son $ eternel)

Un langage multi-paradigmes

Ruby offre un grand nombre de possibilités en couvrant plusieurs paradigmes de programmation:

 #Tout est objet dans Ruby
-3.abs #3

# Les tableaux nativement gérés
[1,2,4,6].include?(2) #true

# Les opérateurs surchargeables
[1,2]+[3,4] #[1, 2, 3 ,4]

# Ecriture de classes rapide
class Essay
    def test
        puts "Hi"
    end
end

# Instanciation a la volée
Essay.new.test

# Omission du return, la derniere expression
# evaluee est retournée
def foisdeux (x)
    2*x
end

# Egalement possibilité d'utiliser des fonctions
# anonymes (lambda-calcul)
[1,2,3,4,5].select {|x| x%2==0} #[2, 4]

lambda {puts "Hello"}.call #Hello

# Possibilité d'étendre les classes existantes
class String
    def startwith (s)
        self[0,s.length]==s
    end
end     

"tototiti".startwith("erk") #false
"tototiti".startwith("tot") #true

Il y a beaucoup de calcul « anonymes » (fonctions écrites à la volées et a durée de vie éphémère)

En résumé le langage est assez convivial, surtout très esthétique je dirais (pas forcément extrêmement évident pour un premier langage par exemple, mais très compréhensible à la lecture). Les itérations à tour de bras et les fonctions « à la volée » permettent une bonne clarté et une bonne lisibilité.

Haut de page