Semaine 43-2015

Quelles sont les tâches les plus difficiles pour un développeur ?

Une petit sondage très intéressant a été publié cette semaine, sur le thème ci-dessus. Si des réponses auxqueles on pouvait s’attendre ressortent (comme « travailler sur le code d’un autre »), des choses plus étonnantes sont mises en avant : « Concevoir une solution » ne reçoit que 0.83% des votes, soit, en passant, ce qui pourrait passer pour la chose la plus difficile à faire, est bonne dernière. J’ai bien rigolé en voyant « Nommer correctement les choses » recevoir pratiquement 8% de votes, au final, nous développeurs on est tous les mêmes. Les $tmp, $bidon et autres $a ont une belle vie devant eux 😉

Source : http://www.developpez.com/actu/91436/Quelles-sont-les-taches-les-plus-difficiles-pour-un-developpeur/

Quelques ressources sur Code Igniter

Un développeur a eu la gentillesse de rencenser des ressources récentes sur Code Igniter (attention à la boucle infinie, certaines se trouvent sur ce blog 😉 )

Source : http://www.developpez.net/forums/d1548180/php/bibliotheques-frameworks/code-igniter-ressources-code-igniter-developpeurs-php-experimentes/#post8413005

La veille techno

J’ai déjà relayé un article sur la veille techno sans fin , c’était du même auteur, il a un peu mûri sa réflexion et propose un article plus abouti, plus complet, avec d’autres solutions.

Source : http://www.miximum.fr/veille-techno-vieux-croutons-paris-web-2015.html

Semaine 35 2015

Les mails, la nouvelle plaie

D’après une étude menée par Adobe, les cadres passent 5h par jour à lire et répondre aux mails. On pourra objecter qu’après tout c’est leur boulot, ou en tout cas que ça en fait partie, n’empêche que 5h, c’est quand même beaucoup. La faute en serait au fait que l’on peut désormais les consulter partout, grâce à ce petit objet connecté qui a envahi notre quotidien : le téléphone portable… Eh oui, premier bidule consulté le matin en se levant, un dernier coup d’oeil avant de se coucher, l’hyper-connexion va nous rendre fous.

Source : http://www.usine-digitale.fr/article/les-mails-c-est-5-heures-de-travail-par-jour-pour-les-cadres-de-2015.N346564

Mots de passe : zéro pointé

Alors non seulement on n’a plus le droit de mettre azerty ou password en mot de passe, mais en plus il faut faire gaffe… sur les smartphones ! Ben oui, vous savez, le petit schéma à dessiner avec le doigt pour déverrouiller l’écran ? Ca aussi il faut y prêter un peu d’attention… Bon, je dis rien, mon schéma contient 4 points et démarre dans un coin :p

Source : http://fr.ubergizmo.com/2015/08/25/extremement-mauvais-mots-passe.html

Comment your code

En avril j’ai relayé un article sur l’art d’écrire du code propre (ici), cet article est l’occasion de se pencher plus particulièrement sur les commentaires.

Source : https://dzone.com/articles/comment-your-fking-code

 

Nouveautés de CodeIgniter 3

Après la sortie en mars de Code Igniter 3, mon framework préféré depuis 2009, j’avais promis ici de faire un compte-rendu plus en détail des nouveautés. N’ayant pas démarré de projet sous CI depuis, ça a un peu traîné mais ça y est.

L’inventaire ci-dessous n’a pas l’intention d’être exhaustif sur les points présentés, seulement sur les points qui m’ont semblé marquants.

Nommage

Le nommage a changé : désormais les classes doivent commencer par une majuscules, et les noms de fichiers aussi. Ainsi le controleur News s’appelle News.php, le modèle, News_model et son fichier News_model.php.

CI recommande d’écrire les méthodes et les variables en minuscules avec des underscopes comme séparateur, mais voilà une recommandation sur laquelle je vais m’asseoir.

Les sessions

Les sessions ont peu changé. Désormais les sessions sont lockées quand on accède aux données, deux requêtes HTTP ne peuvent plus accéder à la même session en même temps. D’après la doc, cela peut entraîner des problèmes de performance. Pour éviter cela, il suffit d’utiliser une nouvelle méthode : session_write_close()

Le reste n’a pas changé, on accède aux données de la même manière :

$this->session->userdata('item');

plus un getter :

$this->session->item

Pour ajouter ou modifier des données, $this->session->set_userdata($array); et $this->session->set_userdata('some_name', 'some_value'); sont toujours disponibles.

Les informations temporaires (flashdata) sont toujours disponibles et utilisées de la même manière qu’avant. Désormais il est possible de transformer une donnée existante en session en donnée flash avec mark_as_flash :

$this->session->mark_as_flash('item');

Cette méthode permettant également d’ajouter une donnée, fonctionnant comme l’ancienne :

$this->session->set_flashdata('item', 'value');

Une autre nouveauté se situe au niveau des Tempdata : il s’agit de noter une donnée de session avec une date d’expiration. Passé cette date d’expiration l’info est automatiquement supprimée.

$this->session->mark_as_temp('item', 300);
$this->session->set_tempdata('item', 'value', 300);

Et pour retrouver l’info :

$this->session->tempdata('item');

Le stockage des sessions utilise désormais 4 « drivers » : files, database, redis et memcached. Leur utilisation est détaillée dans la doc.

La structure de la table ci_sessions (si le « driver » database est utilisé) a changé : on « perd » le user-agent.

Plus d’infos sur les sessions :

http://www.codeigniter.com/user_guide/libraries/sessions.html

Utilisation de la base de données

Le Query Grouping

Si la syntaxe n’a pas changé, il y a maintenant le Query Grouping, qui permet de faire des sous-requêtes ou de grouper des clauses.

Très utile pour faire des OR WHERE par exemple. Là où avant, on devait utiliser du SQL :

$this->db->where('champ1 = 0 OR (champ2 = 'titi' AND champ3 = 'toto')') ;

On a :

$this->db->where('champ1', '0')
->or_group_start()
->where('champ2', 'titi')
->where('champ3', 'toto')
->group_end() ;

Plus d’infos sur le Query Grouping :

http://www.codeigniter.com/user_guide/database/query_builder.html#query-grouping

Le Query Caching

Je ne me souviens pas si le Query Caching existait sur les versions précédentes, en tout cas je ne l’utilisais pas. Ayant décidé de rendre mon code portable et donc de laisser tomber la précieuse instruction SQL_CALC_FOUND_ROWS, je me suis tournée vers le Query Caching :

$this->db->start_cache();
$this->db->select()
->from('news')
->where('display', '1')
->order_by('orderby asc');
$this->db->stop_cache();
$this->db->get();
$total = $this->db->count_all_results(); // compte l'ensemble des entrées
$this->db->limit($num, $from); // on ajoute le limit pour la pagination
$query = $this->db->get(); // et l'on ne récupère que les entrées que l'on souhaite

Plus d’infos sur le Query Caching :

http://www.codeigniter.com/user_guide/database/query_builder.html?highlight=count_all_results#query-builder-caching

Voilà déjà un début, la suite arrivera dès que j’aurai balayé le reste.

 

Semaine 14-2015

Ecrire du code propre

Dans cet article , l’auteur propose des méthodes assez simples à mettre en oeuvre pour garder son code propre. À mettre entre toutes les mains !

http://blog.octo.com/ecrire-du-code-propre-les-piliers/

L’innovation frugale : faire mieux avec moins

L’article présente le livre de Navi Radjou, « L’innovation frugale ». Navi Radjou est persuadé que le système D est la clé de l’innovation, à l’heure où le marché se replie sur lui-même et que les budgets R&D ont tendance à être rognés. Développement durable, économie collaborative et économie circulaire, partage et faire soi-même, voilà les thèmes développés par l’auteur. Certainement un livre intéressant à lire.

Source : http://bfmbusiness.bfmtv.com/entreprise/faire-mieux-avec-moins-l-innovation-frugale-873538.html

Le Dark Pattern

Je ne parle pas souvent design sur mon blog mais c’est un sujet auquel je m’intéresse, même si c’est plus spécifiquement l’ergonomie dont je me soucie.

Un « Dark Pattern » est un type d’interface utilisateur qui a été soigneusement conçue pour inciter les utilisateurs à acheter des choses non désirées au départ. Ceux qui pensent à l’interface de voyages-sncf, levez la main ! J’aurais pu mettre certaines compagnies aériennes low-cost à la place, mais il y en a un peu partout, sur les sites e-commerces, les billeteries en ligne… L’auteur distingue la mauvaise conception du dark pattern en tenant compte de l’intention de tromperie.

L’article : http://graphism.fr/les-dark-pattern-ou-la-perversion-conomique-du-webdesign/