Le passage par référence est supporté en C#, mais possède une syntaxe spécifique.
Donc, à moins que tu l'utilises explicitement, c'est la même chose qu'en Java.
Moi c'est une des pires choses que j'ai entendu par un dev web:
"Oui ici on utilise que des liens absolus"
C'est surtout qu'il est difficile de se passer d'un mécanisme de passage par référence quand on ne dispose pas de la possibilité d'isoler les valeurs dans une classe (cas des langages non objet comme VB mais aussi Pascal et C) alors que dans le cadre d'un langage objet, il est toujours possible de contourner cette nécessité par l'ajout d'une classe supplémentaire.
Ça impose d'avoir sur la machine de dev une arborescence de dossier identique à la prod.
Or, dans mon cas, j'ai plusieurs projets que j'ai dans un répertoire "Développement" qui est lié à un contrôleur de sources. Et chacun de mes projets ne va pas sur le même serveur de prod à l'arrivée. Donc il m'est impossible de respecter une arborescence quelconque (à moins d'avoir une machine par projet...).
Et pour ce qui est des liens, ils sont du type "http://localhost:XXXX" sur mon serveur de dev, ce qui est bien évidemment différent en prod.
Sinon, il existe une technique souvent utilisée pour utiliser des liens/chemins absolus. C'est de mettre la racine du chemin/lien dans un fichier de configuration qui change selon l'environnement.
Suffit de mettre ton nom de domaine en config (voir plusieurs : un pour les pages, un pour les fichiers statiques) et tout est réglé.
Comme ça si un jour il te prends la bonne idée de mettre tes images sur un serveur externe fait pour renvoyer des fichier statique (en gros t'enlève tout ce qui est inutile, tu monte les cache, tu booste ton disque dur), ben ta modif prend 4 sec, pas 2 semaines.
Si t'a envie que ton site soit référencé, tu vas faire de l'url rewriting, et pour ce faire il te faut avoir une arborescence d'url côté client qui est différente de l'arborescence côté serveur et dans ces cas la les url absolu sont essentielle.
Donc si tu détermine ça comme la plus grosse c.....e entendue par un développeur web, tu as beaucoup, beaucoup de chance.
http://thedailywtf.com/Articles/Tril...-Language.aspx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 ALTER PROCEDURE [sp_Tickets_Select_Main] @StatusID int, @UserFilter varchar(255) = NULL, @DateFilter varchar(255) = NULL, @PriorityFilter varchar(255) = NULL, @CategoryFilter varchar(255) = NULL, @TechFilter varchar(255) = NULL, @DescriptionFilter varchar(255) = NULL AS SELECT '<input type="button" class="p' + cast(Tickets.PriorityID as varchar) + '" onmouseover="hov(this,''hov p' + cast(Tickets.PriorityID as varchar) + ''')" onmouseout="hov(this,''p' + cast(Tickets.PriorityID as varchar) + ''')" onclick="st('+ cast(Tickets.TicketID as varchar) + ')" value="#' + cast(Tickets.TicketID as varchar) + '">' , Category.CategoryName, UserInfo.UserFullName, (left(Tickets.Description,512) + '...'), Tickets.IssueDate FROM Tickets INNER JOIN Status ON Tickets.StatusID = Status.StatusID INNER JOIN Tech ON Tickets.TechID = Tech.TechID INNER JOIN Category ON Tickets.CategoryID = Category.CategoryID INNER JOIN Priority ON Tickets.PriorityID = Priority.PriorityID INNER JOIN UserInfo ON Tickets.UserName = UserInfo.UserName WHERE Tickets.StatusID = @StatusID AND (UserInfo.UserFullName LIKE '%' + ISNULL(@UserFilter, UserInfo.UserFullName) + '%' OR Tickets.UserName LIKE '%' + ISNULL(@UserFilter, Tickets.UserName)+ '%' OR UserInfo.UserExt LIKE '%' + ISNULL(@UserFilter, UserInfo.UserExt)+ '%' ) AND convert(varchar, Tickets.IssueDate,101) LIKE '%' + ISNULL(@DateFilter, convert(varchar, Tickets.IssueDate,101)) + '%' AND (Tickets.PriorityID LIKE '%' + ISNULL(@PriorityFilter, Tickets.PriorityID) + '%' OR Priority.PriorityName LIKE '%' + ISNULL(@PriorityFilter, Priority.PriorityName) + '%') AND (Category.CategoryName LIKE '%' + ISNULL(@CategoryFilter, Category.CategoryName) + '%' OR Category.CategoryName LIKE '%' + ISNULL(@CategoryFilter, Category.CategoryName) + '%') AND (Tickets.TechID LIKE '%' + ISNULL(@TechFilter, Tickets.TechID) + '%' OR Tech.TechUserName LIKE '%' + ISNULL(@TechFilter,Tech.TechUserName) + '%') AND Tickets.Description LIKE '%' + ISNULL(@DescriptionFilter, Tickets.Description) + '%' ORDER BY Tickets.PriorityID DESC, Tickets.TicketID DESC
C'est un des beau codeSOD , SQL + HTML + javascript = Separation of Concern
J'ai déja fait java + javascript + html : j'ai vu que c'est la m****
J'ai aussi réinventer les sémaphores à ma sauce pour synchroniser des threads. Synchroniser des threads avec des sémaphores "maison" en variable globales, malin !!
ils se sont arracher les cheuveux pour débuguer.
C'était il y a bien longtemps !
Trouvé à l'instant :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 try { ... du code } catch(UneException ex) { // Don't care }
Ahah j'ai trouvé le même genre il y a pas longtemps, je l'ai plus sous la main mais c'était du genre :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 try { ... code ... } catch(ex) { // Si tu passes ici c'est que j'ai pondu un code de m*rde... }
Cela dit... Je vois pas tellement le rapport entre un code de m*rde et la levée d'une exception...
Car le code merdique en question c'est justement ce morceau, le fait de ne pas gérer les exceptions.
Cela n'existe pas en PHP les NullPointerException, mea culpa pour le code j'ai fait un bête copier/coller du précédent et j'ai laissé le type de variable qui n'apparait pas dans ce langage...
Je suis tombé sur le code suivant dans une application réalisée par une autre personne que je dois maintenir
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 For i := 0 to 25 do begin // code If Blabla then Break; End; For i := 1 to i do begin // Code end;
Voici comment on vérifie les codes postaux sur le site que je maintiens :
Le résultat de la requête est utilisé pour pour faire ceci :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part select * from code_posteau
Code php : Sélectionner tout - Visualiser dans une fenêtre à part if(array_key_exists($codepostal,$list))
Étant donné la lenteur d'affichage du site associé, il a été décidé de mettre en cache le résultat de la requête...
La personne qui a produit ce code était payé plus cher que moi.
Et avait les droits d’accès à toutes les machines.
3 semaines que j'ai vue l'erreur, j'ai toujours pas eu le droit de faire la modification sur la prod.
Cordialement,
Patrick Kolodziejczyk.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager