Spolsky a des défauts, mais les langages qu'il utilise sont ceux de son industrie (il fait des trucs Web, donc il faut penser PHP, JavaScript, ASP, .Net, etc.).
J'aime bien le typage statique, mais ça n'empêche pas qu'il existe des cas compliqués ou à la marge. Par exemple : programmation parallèle en mémoire partagée. C'est pour ça que j'aime préfixer mes variables quand elles sortent du contexte « normal » qu'on s'attend à trouver. Par exemple :
#include<pthread.h>#include<stdio.h>#include<stdint.h>#define N 100ulvolatileintg_COUNTER;typedefstruct{intid;}id_t;void*worker(void*arg){id_tid=(id_t*)arg;/* Façon très mauvaise de créer une section critique dans le cas général */while(g_COUNTER!=id->id);//nothing++g_COUNTER;return0;}intmain(void){pthread_tthreads[N];id_tids[N];for(size_ti=0;i<N;++i){ids[i].id=N-i-1;if(0!=pthread_create(threads+i,NULL,worker,ids+i))abort();// pour faire simple}for(size_ti=0;i<N;++i)if(0!=pthread_wait(threads[i],NULL))abort();// pour faire simpleprintf("counter = %d\n",g_COUNTER);}
Dans ce contexte, presque tout suit une convention de nommage classique, mais mes macros sont écrites en majuscules pour bien montrer qu'on parle de constantes (N), et pour mes variables globales, je préfixe par g_ ET je mets en majuscules, parce que dans un contexte multi-threadé, on ne met jamais trop d'avertissements dans le nom de la variable pour qu'on se souvienne qu'il faut faire attention ⇒ g_COUNTER.
[^] # Re: Pourquoi un tiret bas?
Posté par lasher . En réponse au journal C✙✙ Le tiret bas (underscore) au début des variables membres ?. Évalué à 2.
Spolsky a des défauts, mais les langages qu'il utilise sont ceux de son industrie (il fait des trucs Web, donc il faut penser PHP, JavaScript, ASP, .Net, etc.).
J'aime bien le typage statique, mais ça n'empêche pas qu'il existe des cas compliqués ou à la marge. Par exemple : programmation parallèle en mémoire partagée. C'est pour ça que j'aime préfixer mes variables quand elles sortent du contexte « normal » qu'on s'attend à trouver. Par exemple :
Dans ce contexte, presque tout suit une convention de nommage classique, mais mes macros sont écrites en majuscules pour bien montrer qu'on parle de constantes (
N), et pour mes variables globales, je préfixe parg_ET je mets en majuscules, parce que dans un contexte multi-threadé, on ne met jamais trop d'avertissements dans le nom de la variable pour qu'on se souvienne qu'il faut faire attention ⇒g_COUNTER.