Le sujet original à beaucoup dérivé depuis que vous avez mentionné les ingénieurs !
Pour en revenir sur le sujet initial justement, je pense que connaître ce qu'est le polymorphisme, ou la différence entre les list et les set, fait partie de la culture général qu'un développeur se doit de connaître car ces éléments font partie intégrante de chaque langage.
Mais poser des questions superpointue sur une spécificité du langage, c'est le meilleurs moyen de passer à coté du mec motivé qui va rapidement progresser et parfaitement s'intégrer.
Pour finir, je ne peux m'empêcher de réagir à certains posts.
Les questions techniques précise sur les langages et API peuvent permettre de distinguer les développeurs expérimenté qui ont du bagage. Je penses qu'elles doivent être systématique pour s'assurer des compétences affiché sur le CV.
On a eu un type comme ça où je bosse. C'était vraiment un maître sur une API utilisée mais avec l'arrivée des tablettes et des smartphone, cette techno s'est retrouvée obselète. Résultat, le mec super fort ne voulant pas se remettre en question et ne voulant pas se donner la peine de s'interresser à d'autre techno. Ce mec là s'est tout bonnement retrouvé à la qualité (et depuis il rale constament)
La seule question "technique" ça a été "Pouvez vous me faire une requête SQL qui me donne tous les clients dont le prénom contient 'Jean' ?"... je l'ai regardé bizarrement car à ce moment, j'ai cru qu'il me faisait une blague !
Vous seriez étonné du nombre de postulants qui ne peuvent pas répondre à cette question !
Le type qui m'a fait mon premier entretien avait une feuille de question et de réponses toutes faites. Je me souviens de la première.
1 2 3 4 5 6 7
| function GetNom : String;
var Q: TQuery;
begin
Q := OpenReq('select utilsateur.nom from utilisateur where utilisateur.Code="XXX"')
result := Q.fields[0].AsString;
Close(Q);
end; |
Il fallait améliorer cette fonction (delphi 7)
J'ai transformé la signature en
function GetNom(const CodeUtilisateur : String) : String;
encadré la recherche dans la query par un try-finally et remplacé le code en dur par le paramètre CodeUtilisateur, précisé que si c'était possible je changerais le nom de la fonction (trop générique à mon gout)
Le type m'a demandé ce que signifiait "const" parce que ça n'était pas dans sa fiche réponse. J'ai tout naturellement répondu que c'était un pur réflexe de passer une chaine de caractère en paramètre en const si celle-ci n'a pas vocation à être modifiée ne serait-ce que pour éviter la copie. Il m'a regardé comme si j'étais un extraterreste et ne m'a jamais rappelé.
1 2
| Il me semble que le polymorphisme d'inclusion c'est ce qui te permet de faire appel à tes méthodes d'une classe de base dans une classe dérivée grâce à l'héritage.
Si je me trompe n'hésitez pas à me rectifier |
.
Appeler une méthode de l'ancêtre, je n'appelle pas ça du polymorphisme mais bon... ça fait partie des quatre formes.
Pour faire simple, le polymorphisme permet d'avoir un code valide pour plusieurs types. Il existe plusieurs formes de polymorphismes (surcharge, coercition, paramétrique, d'inclusion).
J'avoue que je ne me souvenait plus des différences. J'utilise principalement la surcharge car ma méthode préférée est un processus inconnu par le chef de projet.
Ma méthode préférée : créer une interface, puis des classes implémentant cette interface de manière différente. Et comme je suis un fou furieux, je le fait de manière à faire de l'inversion de controle.
La réponse de ce cher monsieur : ça sert à rien et c'est trop long à réaliser !
Il n'empêche qu'il est bien content quand, il me dit de prendre trois jours pour modifier tout le code et que je lui répond que je n'ai besoin de modifier le source qu'à un seul endroit pour que ça marche.
Je ne sais pas dans quel environnement tu travailles mais là encore, un projet sans MCD, je n'en ai jamais vu. Mais encore une fois, je ne vois pas le rapport.
Comme je t'envie ! Mon premier boulot, j'ai fait l'erreur fatale de demander un MCD pour voire un petit peu la structure du projet sur lequel j'allais m'embarquer. Réponse de mon tout premier responsable. "Bah, j'en ai un qui date de y'a dix ans quand on a commencé le projet mais depuis, il a beaucoup trop évolué. On a même du virer les trigger et les clés étangères parce que c'était trop le bordel."
Partager