Ce genre de chose varie énormément d'un endroit à l'autre. Sur mon site actuel, la ligne de démarcation entre les développeurs et les administrateurs de base de données est très floue: nous (les administrateurs de base de données) écrivons aussi en PL / SQL, et ils (les développeurs) dissèquent les plans de requête. Nous nous considérons tous comme des pairs dotés simplement de compétences et de responsabilités différentes. C'est très amusant: la société a récemment pris le train en marche de DevOps . La communauté de base de données ne comprend pas du tout cela; nous avons toujours travaillé comme ça. Inutile de dire que nous sommes extrêmement productifs si nous travaillons comme ceci: le niveau base de données est de loinla partie la plus fiable de la pile technologique de la société, elle est facile à utiliser (car nous possédons les compétences de l’équipe DBA pour comprendre l’application en profondeur, et les développeurs ont la possibilité d’être DBA pour comprendre les opérations 24/7/365 et comment structurer leurs applications pour cela).
Mais je sais ce que vous voulez dire quand vous parlez du "mauvais" type de développeur. Il est autodidacte, ce qui en soi est une chose noble, mais au fil du temps, il s'est méfié de toute sorte d'instructions formelles. Il ne sait pas ce qu'il ne sait pas et il en veut à quiconque tente de l'éclairer, il y voit une insulte à son auto-apprentissage. Il a appris le style de programmation impératif, car vous pouvez l’apprendre sans aucune de ces théories sur lesquelles les types CS ne cessent de parler (bon, mal; tout le monde a besoin de savoir grand-Oet des morceaux de théorie similaires). Il a également appris un peu le langage OO, simplement parce qu'il doit utiliser Java. Mais un bon professionnel des bases de données - développeur ou administrateur de base de données - doit être à l’aise dans un style déclaratif, en pensant à la théorie des ensembles, aux formes normales, voire en mesure de comprendre l’algèbre et le calcul relationnels. Il est très, très difficile de communiquer avec ces personnes, car elles sont activement hostiles à tout ce qui pourrait les sortir de leur zone de confort, qui se limite généralement à la façon de formater quelque chose sur une page Web. S'ils pensent aux bases de données, ils pensent qu'une table est comme une classe et qu'une ligne est comme un objet. Ces gars vont littéralement juste faire SELECT * FROM TABLE
et filtrer et trier les résultats dans leur propre code. Ils ne comprennent vraiment vraiment pas pourquoi une base de données est meilleure qu'un fichier plat (et ils ne pensent pas si secrètement que quiconque utilise une base de données relationnelle est un idiot).
Permettez-moi de vous donner un exemple concret: récemment, je parlais avec l'un de ces types des problèmes liés à la rétrogradation d'une version de notre logiciel après sa mise en production, si un problème avait déjà échappé à l'assurance qualité. J'ai expliqué que même si nous pouvions restaurer son application (l'une des nombreuses applications accédant à la base de données), il faudrait qu'elle puisse fonctionner avec la base de données toujours déployée. Il a demandé pourquoi, et j'ai dit: dans ces nouvelles tables et colonnes, il y aura de vraies données sur les clients. Il a ensuite dit, copiez-le simplement dans une table temporaire, quel est le problème. Je le regardais avec incrédulité: lorsqu'un client appelle pour me dire que mon argent a disparu de mon compte, que lui dit-on, que ça va, qu'il est dans une table temporaire? Il n'a tout simplement pas compris que lorsque vous traitez avec l'argent des autres, vous devez vous comporter en adulte responsable. Pour autant que je sache, il ne le sait toujours pas. il n'est plus avec nous.
Le camp MySQL a été comme ça pendant longtemps; ils diraient que vous n'avez pas besoin de transactions, de clés étrangères, etc., si vous pensiez le faire, c'était uniquement parce que vous n'aviez aucune idée de ce que vous faisiez, etc., etc. Ce sont les types de personnes pour lesquelles les ORM tels qu'ActiveRecord ou Hibernate ont été développés, afin de pouvoir écrire des applications de base de données sans avoir à toucher à SQL. Je considère que l’utilisation de ces technologies est un drapeau rouge: ce n’est pas une entreprise qui valorise les compétences de DBA. Ce qu'ils veulent vraiment, c'est une baby-sitter ...