Bien utiliser le couple PHP/MySQL en évitant les boucles de requêtes – Devblog de Xenos Votre jeu est truffé de boucles de requêtes SQL? Il est lent et vous ne voulez pas dépenser plus pour un plus gros hébergement? Ou avez-vous déjà dépensé cet argent et cela n’a rien amélioré? Alors plongez dans cet article qui vous montrera comment tirer le meilleur parti de PHP+MySQL. Le problème des tutos “simplistes” PHP (et son ami MySQL) sont de très bons outils pour développer un site web: rapides à installer et à prendre en main, avec une forte communauté et des années d’existence ayant permis de régler la plupart des problèmes et de fournir des tutoriaux accessibles à tous, même aux plus débutants. La boucle de requêtes PHP Un créateur de jeu web qui a suivi des tutos de ce genre finit souvent avec ce genre de code: $playerTanks=$pdo->query('SELECT * FROM tanks WHERE id_player = '. Or, ce genre de code finit fatalement par péter à la figure de son créateur (et si cela n’arrive pas, alors cela signifie que le jeu n’est juste pas du tout joué). Les requêtes préparées Transaction
Regex Cheat Sheet The tables below are a reference to basic regex. While reading the rest of the site, when in doubt, you can always come back and look here. (It you want a bookmark, here's a direct link to the regex reference tables). The tables are not exhaustive, for two reasons. The other reason the tables are not exhaustive is that I wanted them to serve as a quick introduction to regex. How to use the tables The tables are meant to serve as an accelerated regex course, and they are meant to be read slowly, one line at a time. You can read the tables online, of course, but if you suffer from even the mildest case of online-ADD (attention deficit disorder), like most of us… Well then, I highly recommend you print them out. Enjoy! If you overdose, make sure not to miss the next page, which comes back down to Earth and talks about some really cool stuff: The 1001 ways to use Regex. Regex Accelerated Course and Cheat Sheet For easy navigation, here are some jumping points to various sections of the page:
9 ways to master awful code, fast You've been given the task of implementing a new feature on an old codebase, but the code looks awful. How can you understand it as quickly as possible? Here are several shortcuts to help learn the important parts of new code without getting lost in the irrelevant details. As programmers, we often have to join new projects, and the quality of the code can be all over the place. Even with an organized team, keeping code quality consistent throughout a medium-size-to-large project is a challenge. That's why understanding poor code quickly can be a valuable skill to have. On the other hand, this is a prime opportunity for showing your client or boss your worth and that you can get up to speed quickly and impress them. Here's how to master awful code quickly. Gartner Magic Quadrant for Software Test Automation Ask for help. Other people have already learned how the code works, so why not ask them about it? Everyone takes time to get up to speed. Make it easy to reproduce bugs Share your ideas
les expressions régulières ; gilles.hunault Il arrive souvent qu'on ait à manipuler des groupes de valeurs numériques ou caractères. Par exemple, à partir d'un numéro de plaque d'immatriculation de voiture des années 80 comme 322 RK 75 on peut déduire le département (ici 75). De même, si H001, K002, I003...désignent des numéros de batiments et de bureaux, on est capable de dire qu'il s'agit des batiments H, I et K. Enfin, si on décortique une URL comme<a href=" class="mongoog">Google !</a> on peut trouver qu'il s'agit d'un site français (.fr). Pour décrire comment ces groupes de valeurs sont définis, on utilise des modèles (ou motifs, patterns, règles ...) qui sont en fait des chaînes de caractères dont certains caractères jouent une rôle particulier. ? Si aucun caractère de répétition ne suit une ER, alors l'ER est considérée comme présente exactement une et une seule fois. Et voici quelques exemples simples avec des chaines de caractères : Il est clair que les ER, ce n'est pas clair !
Comment créer un site sans stocker de données et sans serveur Si vous souhaitez vous faire une petite page web sans avoir besoin de vous créer un compte sur un site, sans compétence technique et sans serveur, j’ai ce qu’il vous faut. Ce service s’appelle itty.bitty.site et permet d’encoder votre contenu HTML directement dans l’URL, ce qui va vous permettre de vous exprimer ou partager de l’info sans stocker de données sur un serveur. Ainsi, vous pourrez passer des messages de manière totalement privée et anonyme, et sans sacrifier la mise en page puisque le CSS et le HTML sont parfaitement interprétés. Et si vous maitrisez javascript, vous pouvez même créer vos applications. Le mode d’emploi de itty.bitty est ici et si vous voulez héberger ce script sur votre serveur, pour proposer à vos visiteurs de créer leur contenu sans stocker aucune donnée, tout est sur Github. Qu’est-ce que j’obtiens ? 12 mois de services gratuits populairesCrédit de 170 €, pour explorer Azure pendant 30 joursToujours gratuits: Plus de 25 services
Mémo sur les expressions régulières Les expressions régulières, c'est super simple... Il suffit que quelqu'un les écrivent pour vous ! En effet, j'ai longtemps galéré avec les expressions régulières.. En fait, dès que j'avais affaire à elles, je demandais à quelqu'un de me l'écrire. C’était beaucoup plus rapide que de réfléchir par moi même! ( technique souvent employée en programmation). Définition Les expressions régulières permettent d'identifier dans un texte, des sous ensembles respectant un pattern particulier. \s[A-Z][a-z]+(\-[A-Z][a-z]+)? Incompréhensible n'est ce pas ? Expression simple Le pattern le plus simple, est un groupe de lettre. exemple Les recherches alliant physique quantique, ingénierie électrique, chimie et biologie, sont particulièrement pertinentes, car elles pourraient donner naissance à des thérapies entraînant beaucoup moins d’effets secondaires que les médicaments. Attention, ce n'est pas un mot que je cherche, mais un pattern. Caractère spéciaux Le point Les classes de caractères Ohé... L' étoile
Le code coverage, cet éternel incompris Le code coverage ou la couverture de code par les tests en bon français est probablement l'une des métriques les plus incomprise et l'un des concepts les plus maltraité lorsqu'on parle de tests logiciels et de qualité de code en général. C'est d'ailleurs un bon sujet de conversation pour animer un open space rempli de développeur·ses un tant soit peu intéressé·es par les tests. Mais au fait qu'est-ce que c'est au juste ? D'après Wikipédia: En génie logiciel, la couverture de code est une mesure utilisée pour décrire le taux de code source exécuté d'un programme quand une suite de test est lancée. Si on met de côté le fait qu'en fonction des outils, des configurations ou de qui extrait cette valeur, ce taux est un pourcentage d'instructions, de branches, de fonctions ou de lignes, il n'y a rien de très compliqué. Assez paradoxalement, chaque camp n'a pas totalement tort. Malgré tout, le taux de couverture peut être un outil intéressant.
Tutoriel pour maîtriser les expressions régulières (regex) Les expressions régulières, ou plus communément regex (contraction de regular expression) permettent de représenter des modèles de chaînes de caractère. Ce sont des outils très puissants et très utilisés : on peut les retrouver dans de nombreux langages comme le PHP, MySQL, Javascript... ou encore dans des logiciels d'édition de code ! Cependant, si cet outil est très puissant, il est relativement difficile à appréhender au début car les expressions régulières peuvent prendre des formes de ce genre : #^[a-zA-Z-]+@[a-zA-Z-]+\.[a-zA-Z]{2,6}$# Cet expression régulière permettant, par exemple, de représenter toutes les adresses emails contenues dans un texte. La limite des recherches classiques Pour commencer simplement, ouvrons notre éditeur de code et collons y le texte suivant : Bonjour et au revoir ! Puis, recherchons y, en rendant la recherche sensible à la casse (voir image précédente), le mot Bonjour. Regex simple Les caractères de début et fin de chaîne ^Bonjour revoir$ Le caractères OU <?
Anti-If: The missing patterns Around 10 years ago I encountered the anti-if campaign and found it to be an absurd concept. How on earth would you make a useful program without using an if statement? Preposterous. But then it gets you thinking. Do you remember that heavily nested code you had to understand last week? That kinda sucked right? The anti-if campaign site is sadly low on practical advice. The problems of if statements The first problem with if statements is that they often make it easy to modify code in bad ways. public void theProblem(boolean someCondition) { // SharedState if(someCondition) { // CodeBlockA } else { // CodeBlockB }} This isn’t too bad at this point, but we’ve already given us some problems. You’ll often see the above CodeBlocks abused with further nested if statements and local returns. The second problem with if statements is when they are duplicated. The third problem with if statements is that you have to simulate execution in your own head. Pattern 1: Boolean Params Happy hunting