Poster un commentaire

Bien coder c’est coder proprement

Je suis tombé précédemment sur une présentation faite par Jean-Baptiste Nizet, informaticien chez NinjaSquad : https://speakerdeck.com/jnizet/5-apprentissages-pour-le-programmeur-debutant

J’ai trouvé intéressant de rebondir là-dessus vu mon dernier post. Je reviens donc sur cette présentation et je présente mon point de vue. En clair, je commente cette présentation :-)

1 – Indentez votre code

Oui, comme le dit JB Nizet, l’indentation est promordial en programmation. Sur ce point, rien à dire. C’est comme si j’écrivais ce post sans accents, sans ponctuation. Ce serait illisible ! (Pour faire hype, branché, à la mode, on emploiera le terme refactoring).

2 – Erreurs et trace de bugs

La plupart des étudiants en informatique ne lisent pas ces traces d’erreurs car c’est un bloc illisible à première vue ! Puis même après avoir pris l’habitude de lire ces traces d’erreur, voire avoir pris l’habitude d’utiliser le débugueur de l’IDE, ça reste chiant ce gros pavé.

Que ce soit Eclipse ou IntelliJ (je suis agnostique là-dessus en ce qui concerne ces usines à gaz, pas de préférences), l’apprentissage reste faible. Les gens vont aller sur google et recopient la trace d’erreur et avec un peu de chance, ils trouveront une tentative de résolution sur StackOverflow…

3 – La documentation c’est pour les rigolos

Google c’est magique. Encore plus si vous faîtes votre recherche : 1) en anglais 2) avec des mots-clés.

Personnellement, je trouve que la documentation c’est utile, mais de temps en temps c’est vachement pas très instructif et ça n’aide pas tout le temps. Surtout en développement web quand vous utilisez des frameworks et autres librairies.

Donc le RTFM [1], c’est gentil mais dès fois pour des cas complexes ce serait plutôt LMTGTFY [2] ! :P

4 – Killing the name of

J’en ai déjà parlé précedemment. Les variables foor, bar, toto, c’est cool quand vous testez pour vous-même. Les variables qui n’ont aucun sens c’est à proscrire. De même pour les variables trop verbales. Surtout en Java ! Oui Java est déjà tellement verbeux alors si vous en rajoutez une couche…

5 – Throws, catch…

Je ne suis pas encore un expert dans tous les langages mais à vue de nez ça sent le Java !

Je profite de ce cinquième point pour faire une parenthèse sur Java.Java ne sera jamais mon langage préféré pour plusieurs raisons.

La première : Il est trop verbeux.

Un exemple :

Capture d’écran 2014-07-03 à 16.20.53

La deuxième : Les exceptions.

Pour un débutant voire quelqu’un qui a au minimum un an d’expérience en Java (voire deux dans mon cas), les exceptions c’est un autre monde.

La troisième : Un langage objet devrait être simple.

Je n’ai pas encore manipulé d’autres langages objets jusqu’à présent mais je reste persuadé que le langage objet fut créé tout d’abord pour simplifier la programmation. Il faudrait comparer Java avec le langage C++ ou encore le langage Objective-C. Mieux encore ! Avec le langage Smalltalk !

Il y a d’autres raisons, mais ce sont les principales. Java n’en reste pas moins un langage intéressant mais il est loin d’être le meilleur à mon goût.


Poster un commentaire >

Petite mise au point autour de SoapClub

J’avais durant mes jeunes années un blog "personnel" que j’avais délaissé au profit de celui-ci. Étant donné ma lenteur légendaire pour sortir un ou deux articles (que je juge plutôt assez complets pour la plupart, mais ça c’est mon avis), il est tout à fait compréhensible que SoapClub fut délaissé.

Pourquoi j’en parle du coup ?

Parce que j’ai décidé de reprendre tout à partir de zéro, from scratch comme dirait les informaticiens. Quelques articles restent pour prouver que ce blog n’est pas si jeune que ça, mais j’essaierai de rehausser le niveau "intellectuel" de ce blog (oui, j’ai honte de certains articles de ce blog, d’ailleurs certains ont été supprimés). Il y a également une "refonte" du design du blog (il y en aura sûrement une aussi pour nerdycode) au niveau du logo ainsi que du style choisi.

soapclub_logo

Et nerdycode dans tout ça ?

L’idée est que SoapClub reste très en retrait (du moins) vis à vis de l’univers informatique donc nerdycode (qui a deux ans et quatre mois maintenant d’ailleurs) reste toujours là. Peut-être même bien que j’écrirais d’avantage (qui sait ? :mrgreen: )

Des ebooks en cours de rédaction

C’est un petit projet personnel que j’essaie de mettre en place. Rien d’exceptionnel. L’idée est que comme j’écrire et faire de l’informatique j’ai envie de partager un peu mes connaissances sous forme d’ebooks. Il y aura sûrement des articles de ce blog qui apparaîtront sous forme d’ebooks. Le côté bénéfique pour moi sera la mise en place de la plateforme de téléchargement des ebooks à l’aide de technos web dernier cri.

Seront-ils gratuits ?

Oui, ils seront gratuits. D’une part parce que le contenu des ebooks n’apportera rien de bien nouveau vis à vis du dense contenu que vous trouverez sur Internet. D’autre part, car je n’ai pas envie de me casser les pieds à mettre en place un système de payement.

Il y aura quoi au menu ?

Je n’ai pas encore anticipé tout le contenu. Il y aura sûrement une collection "Web Dev" qui traite de tout ce qui a un rapport avec le développement web, une collection "From scratch"qui sera une suite de ebooks portant sur divers sujets, et des annexes.

Voici un bref aperçu du début d’un des premiers ebooks rédigés (à chaud) :

Capture d’écran 2014-07-03 à 20.28.39

 


1 commentaire

Coder proprement

2035041015-0

Je ne serais ni le premier, ni le dernier à vous parler de code propre, vous en conviendrez. Si je suis venu parler de ceci c’est parce que je suis en train de lire l’intéressant livre de Robert C Martin : "Coder proprement". J’adhère sur certains propos que j’ai pu lire dans ce livre et j’avais envie de partager sur la toile mon avis à ce propos. *trop excité*

original

Qu’est-ce un code propre ?

Un code propre est :

  • un code lisible
  • un code simple
  • un code bien pensé/réfléchi
  • un code minimal si possible
  • un code améliorable par n’importe qui

Le fond c’est bien, mais la forme ça aide.

Un code indenté est toujours plus beau qu’un code non indenté ou mal indenté. J’en veux pour preuve la norme de l’école française réputée : l’Epitech. J’ai un copain qui y est et qui m’avait raconté que dès la première année, il vous impose une norme d’écriture. Si vous cherchez un peu sur Google, vous trouverez des bribes concernant cette norme. Elle apprend aux élèves à écrire du bon code (Il y a un autre raison à cette norme, mais là n’est pas le sujet).

Quand vous codez, faîtes comme si quelqu’un irait lire votre code après et que vous ne serez pas à ses côtés. En entreprise ce sera très certainement le cas. Le code sera maintenu par quelqu’un d’autre que vous.

Vous êtes une sorte d’écrivain, vous écrivez un roman, pour vous mais surtout pour les autres.

Un code propre c’est un bon code.

Je ne suis pas un programmeur expert, mais ma faible expérience me permet déjà d’adhérer à ces propos ! Combien de fois j’ai pu voir un code illisible bien qu’efficace ? Pour compléter la définition de code propre, je devrais rajouter qu’on devrait mettre un maximum de commentaires, pas forcément de faire un pavé digne de Guerre et Paix, mais une phrase explicite. L’anglais est effectivement le langage de rigueur. Je m’explique :

A titre d’expérience, j’ai travaillé sur un projet scolaire de logiciel de dessin vectoriel simplifié avec deux collègues. Le projet est visible sur un compte github. Durant le projet, j’ai pu jauger le niveau de mes deux collègues. L’un était très très fort, l’autre aussi bon que moi. Celui qui était très fort on va l’appeler Jacques, et celui qui l’était moins Michel. On a bossé en équipe et on s’est ramassé un 20/20. :D

auiomd

Bon, d’accord j’avoue j’ai choisi mes mots pour placer cette vanne :D

Jacques était très fort donc assez rapide à nous fournir du code. Son premier jet fut quasi illisible sauf pour lui. Mais pas seulement son premier jet en fait : peu à peu on avançait dans le projet, ses variables restaient parfois un mystère. Avec un peu de bon sens, j’arrivais à comprendre (mais pas tout) son code. Ce qui n’était, hélas, pas le cas de Michel !

49446854

Peut être bien que Jacques trouvait compréhensible d’écrire private Coord mse = new Coord(0,0); les coordonnées de la souris (mse > mouse), mais ce n’est pas forcément le cas pour nous autres !

Bon attention quand même à ne pas non plus à faire trop long comme nom de variable ! private Coord coordinatesOfTheMousePointerWeUseOnCanvas = new Coord(0,0); C’est un poil trop verbal. Préférez par exemple : private Coord coordMouse = new Coord(0,0);

Chacun à sa façon d’écrire, bien entendu. Mais il n’en reste pas moins qu’il vous incombe la responsabilité d’être compréhensible.

Toujours sur ce même projet, j’ai pris l’habitude de toujours commenter mon code. Je n’en suis pas peu fier ! :D Ce qui n’était pas le cas de mes collègues !

49447312

Franchement, c’est très probablement la deuxième raison pour laquelle Michel était perdu. (Du coup, comme on devait rendre un projet commenté, on a passé nos deux nuits blanches pour tout commenter…Merci les copains! Les joies du code).

En résumé, si vous revenez dans 3 mois sur votre code, et que cela vous semble pas très compréhensible du premier coup d’œil, peut-être que vous avez mal écrit vos variables, ou que les commentaires sont pas très utiles à la compréhension. D’un coup c’est moins parlant. D’où : un code propre, c’est un bon code.

Scout toujours, scout un jour !

Le-film-Quand-Gerard-Jugnot-joue-au-chef-scout-sur-W9-a-20h50_portrait_w674

Un truc qui m’a "marqué" dans ce livre c’est ce proverbe de scout : « Laissez le campement plus propre que vous ne l’avez trouvé en arrivant »
Rien à dire, tout y est dit :mrgreen:

Nan sérieusement, j’ai eu à un moment reprendre du code, quand j’ai vu le truc ça voilà ma réaction :

49447308

Le boulot est donc comme le dit la citation très illustrative, rendez ça propre. Et normalement, celui qui est passé avant vous devrait vous filer du code un peu près propre, et celui qui passera après vous aura un code encore plus propre. On partage notre code en communauté. C’est quasi communiste comme mode de pensée ahah…

Head in HandsNulle la blague.

 

Allez, conclusion hâtive (vachement même)

Je n’ai pas fini de lire le livre, certaines choses me dépassent encore, mais il est clair que c’est un ouvrage très intéressant à avoir dans sa bibliothèque ! :)

Je vous ai exposé les principales lignes, les plus importantes quoi, pour vous mettre l’eau à la bouche *splash*

BONUS (parce que je savais où le caser)

Code Simple de Beck (vu dans le livre) :

Par ordre de priorité, un code simple :

  • passe tous les tests ;
  • n’est pas redondant
  • exprime toutes les idées de conception présentes dans le système
  • minimise le nombre d’entités, comme les classes, les méthodes, les fonctions et assimilées


Poster un commentaire

Pacman : allons plus loin

gamejava

Précédemment, nous avions vu comment dessiner Pacman et le faire déplacer. Cette fois, nous allons essayer de le déplacer à l’aide des flèches du clavier ! :)

Voici le code :

package Pacman;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;

public class Jeu extends JFrame implements KeyListener{

	private int compteur ;

	/* PACMAN COLORS */
	Color couleur1, couleur2;

	/* COORDINATES */
	public int x=10;
	public int y=30;

	/* DEFAULT COORDINATES */
	public final int X_INIT=10;
	public final int Y_INIT=30;

	/* DIRECTION */
	/*H : 1 B : 2 D : 3 G : 4*/
	public int direction = 0, nb;

	public boolean test=false;

	/* LIMITS */
	public final int X_MIN = 10;
	public final int X_MAX = 440;
	public final int Y_MIN = 30;
	public final int Y_MAX = 440;

	public Jeu(String titre, int largeur,int hauteur,int posX,int posY) {
		super(titre);
		setSize( largeur, hauteur );
		setVisible( true );
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocation(posX,posY);
		couleur2 = Color.yellow;
		addKeyListener(this);
	}

	/* METHODS KEYLISTENER */
	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		switch (e.getKeyCode()){
			/* HAUT */
			case KeyEvent.VK_UP :
				//y=y-10;
				direction=1;
				System.out.println("HAUT");
				break;
			/* BAS */
			case KeyEvent.VK_DOWN :
				//ver = 3;
				//y=y+10;
				direction=2;
				System.out.println("BAS");
				break;
			/* DROIT */
			case KeyEvent.VK_RIGHT :
				//ver = 1;
				//x=x+10;
				direction=3;
				System.out.println("DROIT");
				break;
			/* GAUCHE */
			case KeyEvent.VK_LEFT :
				//ver = 4;
				//x=x-10;
				direction=4;
				System.out.println("GAUCHE");
				break;
			default :
				System.out.println(e.getKeyCode());

		}

	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

	/* METHOD ANIMATING PACMAN */
	public void animer (int nbr_mouvement){
		nb=nbr_mouvement;
		for (compteur=0; compteur<nb; compteur++) {
			this.repaint();
			try {
				Thread.sleep(100);//pause between each pics.
			}
			catch (InterruptedException e) {
				e.printStackTrace();
			}
			nb++; // INFINI

		}
	}
	/* DRAWING METHOD */
	public void paint (Graphics g){
		/* BACKGROUND */
		g.setColor( Color.white);
		g.fillRect(0,0,500,500);

		Graphics2D g2 = (Graphics2D)g;

		/* COLOR ALTERNING */
		if (compteur%2==0){
			couleur1 = Color.yellow;
		}else{
			couleur1 = Color.white;
		}
		/* DRAW PACMAN ACCORDING THE DIRECTION CHOSEN */
		if(direction==0){
			x=x+10;
			g.setFont(new Font("Serif",Font.ITALIC,50));
			g.setColor(Color.ORANGE);
			g.drawString("PACMAN",150,250);
			g.setFont(new Font("Serif",Font.ITALIC,20));
			g.drawString("by A.RAVAUX",150,270);
			g.setColor( couleur1);
			g.fillArc(x, y, 50, 50,0, 360);
			g.setColor( couleur2);
			g.fillArc(x,y, 50, 50, 30, 280);
			g.setColor(Color.DARK_GRAY);
			g.fillArc(x+25, y+5, 7,7,0, 360);
		}else if(direction==1){
			y=y-10;
			g.setColor( couleur1);
			g.fillArc(x, y, 50, 50,0, 360);
			g.setColor( couleur2);
			g.fillArc(x, y, 50, 50,135, 250);
			g.setColor(Color.DARK_GRAY);
			g.fillArc(x+10, y+20, 7,7,0, 360);

		}else if(direction==2){
			y=y+10;
			g.setColor( couleur1);
			g.fillArc(x, y, 50, 50,0, 360);
			g.setColor( couleur2);
			g.fillArc(x, y, 50, 50,240, -290);
			g.setColor(Color.DARK_GRAY);
			g.fillArc(x+10, y+20, 7,7,0, 360);
		}else if(direction==3){
			x=x+10;
			g.setColor( couleur1);
			g.fillArc(x, y, 50, 50,0, 360);
			g.setColor( couleur2);
			g.fillArc(x,y, 50, 50, 30, 280);
			g.setColor(Color.DARK_GRAY);
			g.fillArc(x+25, y+5, 7,7,0, 360);
		}else if(direction==4){
			x=x-10;
			g.setColor( couleur1);
			g.fillArc(x, y, 50, 50,0, 360);
			g.setColor( couleur2);
			g.fillArc(x, y, 50, 50,140, -280);
			g.setColor(Color.DARK_GRAY);
			g.fillArc(x+25, y+5, 7,7,0, 360);
		}
		if(x==X_MAX || y==Y_MAX || x<X_MIN || y<Y_MIN){
			g.setColor( Color.white);
			g.fillRect(0,0,500,500);
			g.setFont(new Font("Serif",Font.ITALIC,50));
			g.setColor(Color.ORANGE);
			g.drawString("PERDU !",160,250);
			System.out.println("PERDU");
			nb=0;
		}
	}
	public static void main(String[] args) {
		Jeu animation = new Jeu("Pacman", 500, 500,200,150);
		animation.animer(1);
	}
}

Commentons un peu ce code.
Tout d’abord, notre objectif principal est d’ajouter la possibilité de faire bouger le pacman avec les touches du clavier. Je vais donc faire appel à une interface très particulière qui écoute le clavier, c’est à dire qui va regarder sur quelles touches vous appuyez. Ainsi, par la suite, nous pourrons lancer des actions selon la touche appuyée. On implémente cette interface :

public class Jeu extends JFrame implements KeyListener{

Et on ajoute ces méthodes liées à cette interface :

	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

J’ai ajouté des variables globales :

	private int compteur ;

	/* PACMAN COLORS */
	Color couleur1, couleur2;

	/* COORDINATES */
	public int x=10;
	public int y=30;

	/* DEFAULT COORDINATES */
	public final int X_INIT=10;
	public final int Y_INIT=30;

	/* DIRECTION */
	/*H : 1 B : 2 D : 3 G : 4*/
	public int direction = 0, nb;

	public boolean test=false;

	/* LIMITS */
	public final int X_MIN = 10;
	public final int X_MAX = 440;
	public final int Y_MIN = 30;
	public final int Y_MAX = 440;

Nous pouvons déjà deviner le rôle de certaines de ces variables. Le x et y sont bien entendu les coordonnées de pacman. couleur1 et couleur2 sont les couleurs du pacman, couleur2 est une couleur qui ne changera jamais, et qui est jaune.

Si vous avez lu l’article précédent sur pacman, vous avez pu reconnaître certaines parties du code très semblables. Entre autres le constructeur :

	public Jeu(String titre, int largeur,int hauteur,int posX,int posY) {
		super(titre);
		setSize( largeur, hauteur );
		setVisible( true );
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocation(posX,posY);
		couleur2 = Color.yellow;
		addKeyListener(this);
	}

Comme je vous le disais auparavant couleur2 est la couleur jaune. Le petite différence avec le constructeur de l’article précédent est qu’on a rajouté ceci : addKeyListener(this), c’est l’écoute du clavier.

Vous reconnaîtrez aussi la méthode animer(int nbr_mouvement) qui nous permettra d’animer Pacman :

	public void animer (int nbr_mouvement){
		nb=nbr_mouvement;
		for (compteur=0; compteur<nb; compteur++) {
			this.repaint();
			try {
				Thread.sleep(100);//pause between each pics.
			}
			catch (InterruptedException e) {
				e.printStackTrace();
			}
			nb++; // INFINI

		}
	}

La méthode animer() appelle la méthode repaint() qui redessine par desssus tout Pacman. A l’aide d’une boucle for, tant que le compteur est inférieur à nb , j’appelle donc repaint(). Seulement voilà, j’incrémente nb. Ainsi ma boucle est infinie et ne s’arrête jamais !! Enfin presque…Nous verrons ça plus loin.
Si vous êtes un lecteur aguerri et que vous avez pris le soin de lire l’article précédent, vous avez dû remarquer que ma façon de dessiner à l’infini la méthode repaint() est très différente. En effet, j’avais mis une condition if au lieu d’incrémenter :

		//on relance la méthode pour obtenir une boucle infinie !
		if(compteur==nbr_mouvement){
			compteur=0;
			x1=0;
			animer(48);
		}

Pas de panique, les deux méthodes sont bonnes, mais si j’ai choisi de créer une variable globale appelée nb qui reprend dans un premier temps la valeur passée en paramètre puis ensuite s’incrémente à l’infinie, c’est qu’il y a une bonne raison, et vous allez comprendre ça en lisant la suite de l’article :D

Gérons maintenant les touches et le dessin du pacman selon la touche choisie.

Nous avions tout à l’heure parlé de l’implémentation de de l’écoute du clavier (keylistener) : implements KeyListener, maintenant occupons nous des méthodes liées à cette écoute :

/* METHODS KEYLISTENER */
    @Override
    public void keyPressed(KeyEvent e) {
        // TODO Auto-generated method stub
        switch (e.getKeyCode()){
            /* HAUT */
            case KeyEvent.VK_UP :
                //y=y-10;
                direction=1;
                System.out.println("HAUT");
                break;
            /* BAS */
            case KeyEvent.VK_DOWN :
                //ver = 3;
                //y=y+10;
                direction=2;
                System.out.println("BAS");
                break;
            /* DROIT */
            case KeyEvent.VK_RIGHT :
                //ver = 1;
                //x=x+10;
                direction=3;
                System.out.println("DROIT");
                break;
            /* GAUCHE */
            case KeyEvent.VK_LEFT :
                //ver = 4;
                //x=x-10;
                direction=4;
                System.out.println("GAUCHE");
                break;
            default :
                System.out.println(e.getKeyCode());
 
        }
 
    }
 
    @Override
    public void keyReleased(KeyEvent arg0) {
        // TODO Auto-generated method stub
 
    }
 
    @Override
    public void keyTyped(KeyEvent arg0) {
        // TODO Auto-generated method stub
 
    }

Lorsqu’on appuie sur une touche il y a trois évènements détectable : la touche est pressée, relachée et tapée.
La méthode keyPressed(KeyEvent e) gère les actions liée à la touche pressée, keyReleased(KeyEvent arg0) la touche relachée, et ,enfin, keyTyped(KeyEvent arg0) la touche tapée. L’utilité de distinguer ces trois évènements ? Imaginons que vous souhaitez détecter que votre utilisateur a bien touché la touche Shift/Majuscule avant d’appuyer sur la touche J…Ben c’est là qu’on va se servir de ces méthodes (en jouant avec un boolean par exemple).
Bon nous ce qui nous intéresse c’est keyPressed. On va retourner une valeur (direction) qui permettra ensuite de définir la forme du pacman.

En effet, dans la fonction paint on dessine le pacman selon la valeur direction, c’est-à-dire, si on va vers le bas, on dessine pas de la même façon notre pacman (la bouche vers le bas par exemple).

Dernier point, et ensuite je vous laisse vous amuser avec le code pour découvrir par vous même le dessin avec Swing.
Si le pacman touche les bords, nb prend la valeur 0 afin de sortir de notre boucle for (compteur=0; compteur<nb; compteur++) (de la méthode animer). En sortant de la boucle on arrête de redessiner. :)

        if(x==X_MAX || y==Y_MAX || x<X_MIN || y<Y_MIN){
            g.setColor( Color.white);
            g.fillRect(0,0,500,500);
            g.setFont(new Font("Serif",Font.ITALIC,50));
            g.setColor(Color.ORANGE);
            g.drawString("PERDU !",160,250);
            System.out.println("PERDU");
            nb=0;
        }

Voilà, voilà, à vos claviers !

BONUS

Télécharger le jeu (format .jar) :D


Poster un commentaire

Le community manager

Les Inconnus

C’est en flânant sur facebook (oui je sais pléonasme…) que je suis tombé sur la page officielle des Iconnus, le trio Bourdon, Campan et Légitimus. Oui ces trois là qui ont fait rire les français et qui continuent de les faire rire. Ils venaient d’ouvrir ce compte facebook afin de promouvoir leur film.   En effet, ils font leur comeback le 12 Février 2014 dans vos salles de cinéma !

[Début de publicité]

Les Trois Frères, le retour : la bande annonce

[Fin de publicité]

Puis, j’ai découvert que ce ne sont pas vraiment nos trois compères qui gèrent la page même s’ils gardent un œil dessus. Enfin je m’en doutais, mais j’ai découvert que c’était une personne en particulier qui gérait la page…

gif-who-bcq1

C’est le ou plutôt la dans notre situation community manager ! (C’est Andréa Forté qui s’occupe de la page des Inconnus).

tumblr_mp5t47Ixjd1rknrf9o1_500

Eh oui, c’est elle qui est chargée d’apporter une nouvelle jeunesse au trio sur le web ! Afin de redorer le blason de nos vieux comiques qu’on avait perdu de vue., nous avons à la carte : des sketchs les plus connus en streaming gratuitement sur myskreen, des photos ‘exclusives’ du tournage, des vidéos…Bref tout un foin.

Ouais, mais c’est nécessaire ?

130314062614378068

Je veux dire : Nous avons des gens qui viennent des écoles de commerce qui font du marketing, de la pub, blabla…Alors que fait le Community Manager  ?

FmPYE

Pour répondre à cette question…

130325051956834475

C’est pourquoi je vous invite à lire cette article : Community manager ? Rédacteur web ? C’est quoi ? Ça se mange ? Nan en fait ne lisez pas cet article…Lisez tout le blog ! :D Très concis ce blog vous apportera de nombreuses réponses :)

Pouh ! Je suis torchon chiffon carpette moi, je vais vous laisser. Sur ce je vous souhaite une excellent année 2014 à tous ! :)

giphy

Suivre

Recevez les nouvelles publications par mail.