Quelles sont les plus courantes programmeurs inexpérimentés « erreurs » font sur leur première quelques sites/applications?

Les erreurs graves les plus communes que je vois dans les applications web sont des vulnérabilités attaque injection, habituellement SQL et shell :
Injection de code
Souvent, ceux-ci ne peuvent être corrigées jusqu'à ce qu’ils sont exploités à l’état sauvage.

Aussi, en web et code de l’application régulière, les conventions de nommage pauvres qui font se souvenir des noms de variable/fonction/classe/espace de noms/etc difficiles.

Dans les applications de « gras », je suppose que je devrais dire :

  1. Pointeurs null - le programmateur ne garantit pas les variables sont initialisées dans tous les cas.
  2. Autres Exceptions non interceptées - le programmeur pense naïvement « qui ne pourrait jamais arriver ».
  3. Fuites de mémoire - ce plus seulement s’applique aux C/C++ et est plus préoccupant plus l’application est supposée d’exécuter. Programmeurs naissantes sont beaucoup moins l’allocation de mémoire, ils sont tout simplement pas si bons sur le suivi - libérer cette mémoire.
  4. Stylistic « erreurs », c'est-à-dire code répétition au lieu de la création de la fonction. En outre, la création d’objets « Super » qui tentent de faire beaucoup trop.
  5. Affectation au lieu de comparaison, par exemple en utilisant "=" plutôt que "==" dans la logique booléenne. Autres erreurs similaires, aiment aussi, ne pas utiliser « casser » convenablement dans une instruction switch.
  6. Ballonnement code - là est souvent un moyen plus simple d’écrire la même chose. Par exemple :
 if( a == b ) {
  return true;
 } else {
  return false;
 }

Peut être écrite :

 return ( a == b );

En outre, certains programmeurs obtenir assez loin sans apprendre à utiliser correctement un profileur de débogueur, etc.. Bonne utilisation de ces types d’outils peut réduire considérablement les temps de codage, mais certain retard débutants eux pensant que dans chaque cas possible d’apprendre à utiliser le bon outil d’apprentissage prendra plus de temps que la fixation du problème sans elle. Si cela peut être vrai pour une espèce donnée, la perte de productivité globale de chaque cas s’additionne. Apprendre à utiliser un débogueur au début de votre carrière; il sera grandement améliorer votre productivité, mais aussi accélérer votre apprentissage, réduire votre stress et vous permettent de profiter plus de codage. Voir ma réponse à ce qui est la seule chose que vous avez appris plus tard dans votre carrière que vous souhaitiez que vous avait appris plus tôt?

Quelques outils pour vous aider :
Maison de Valgrind
peluches (logiciel)
Liste des outils d’analyse de code statique


Tags: Apprendre à programme, Programmation informatique, Enseignement des sciences informatiques, Développement Web, Startups, Piratage informatique (sécurité)