[Dev] Ahii ma scrum master me pousse des choses auquel j'ai pas confiance ...

JVChiottard
2024-10-05 00:50:29

Le 05 octobre 2024 à 00:42:48 :

Le 05 octobre 2024 à 00:30:22 :
Oui mais les record sont immutables c'est chiant quand tu veux juste un objet générique mutable, comme un let x = {"machin": truc } en JS

Y'a plein emmerdes que ça implique à cause de readonly, ou du fait que tout soit passé par copie du coup, et pas par référence.

L'autre truc de merde comme en Java c'est les wrappers pour les primitives

C# utilise des structures pour les primitives, pas des wrappers, donc ce ne sont pas véritablement des classes.
D'ailleurs la CLR va mettre tes primitives dans la pile, pas dans le tas, contrairement à la JRE qui les traitera comme des objets.

Et non, Int32 n'est pas un wrapper, c'est un alias pour inthttps://image.noelshack.com/fichiers/2022/01/3/1641393057-ahi-main.png

De toute manière tu le vois si t'as des génériques avec comme contrainte que T : class, ça impose le passage de types référençable, ce qui exclut les primitives en C#

Oui justement c'est tout le problème :rire:
Même jusque dans les templates ils ont incrusté cette corvée de différencier les struct et les class pour savoir si c'est efficient et si ça match les contraintes :fou:
Le garbage collector est malin mais il faut savoir utiliser un finalizer et la aussi c'est beaucoup plus complexe qu'un destructeur ou un Drop à l'usage bien que techniquement nécessaire. Et dangereux à cause d'éventuels double free
C# est loin d'être parfait c'est clair, mais par rapport à Java ça vaut le coup de faire l'effort

lachanceoumoi
2024-10-05 00:53:59

Le 05 octobre 2024 à 00:44:12 :

Le 05 octobre 2024 à 00:37:18 :

Le 05 octobre 2024 à 00:31:03 :

Le 05 octobre 2024 à 00:24:12 :
Franchement l'auteur je te conseille de te spécialiser dans le devops, une certification comme aws certified devops engineer professinal + certified kubernetes application déveloper = combo très recherché en entreprise. Les entreprises se tuent pour trouver se genre de profil. Si tu maîtrises déjà python, bash, JSON, YAML, c'est déjà un très bon début , généralement les dev soft qui veut se spécialiser font ça car actuellement ils sont en manque totale de devops qualifié

je pensais que la boucle des devops était terminé, du coup c'est quoi le métier d'un devops, je fais du python, bash assez souvent JSON et YAML c'est juste des format de fichier rien de bien compliqué, mais un devops il fait quoi concrètement ?

Tu vas faire de l'automatisation des déploiements, gestion des pipelines, intégrer des outils de surveillance et journalistion, gérer l'environnement aws ou Microsoft, Google. Ensuite faut gérer des clusters kubernetes pour orchestrer des conteneur, et assurer la scabilité des applications. Faut maîtriser des outils comme cloudformation, terraform, prometheus, cloudwatch.

Ok en fait un dev ops c'est un peu une sorte d'admin sys du coup non ?

Bah un sys/admin c'est 80% du temps gestion des infrastructures et 20% de l'automatisation alors que un devops travaille à écrire des scripts d'automatisation, gérer les infrastructures cloud, et travailler avec les conteneur, et travailler avec les équipes de développement. On va dire c'est la version évoluer d'un sys/admin avec plus de responsabilité tout en bossant sur de nouvelles technos

JVChiottard
2024-10-05 00:58:32

Le 05 octobre 2024 à 00:43:30 :

Le 05 octobre 2024 à 00:37:11 :

Le 05 octobre 2024 à 00:27:48 :

Le 05 octobre 2024 à 00:24:25 :

Le 05 octobre 2024 à 00:20:08 :

> Le 05 octobre 2024 à 00:10:50 :

>> Le 04 octobre 2024 à 23:44:24 :

> >De mon point de vue C# écrase Java à tous les niveaux. Il y a des choix très discutables qui ont été faits au fil des années et plein de choses qui ne me conviennent pas mais Java est un incroyable foutoir de 30 ans de poussière accumulée, C# beaucoup moins.

> > Et petit plus faire des GUI en C# est beaucoup plus sympa qu'avec des librairies pourries en Java. Tu peux aussi precompiler le code et le livrer sous forme d'exe au lieu d'un jar ou d'un apk. Pas besoin d'expliquer au client qu'il doit avoir un environnement Java de centaines de Mo :hap:

>

> C# est clairement plus agréable mais ça reste un langage lourd. La syntaxe est bien plus vaste, permet des trucs bien sympa, mais tolère aussi des concepts discutables voire obscures surtout pour de l'orienté objet et dans lesquels on peut se perdre.

>

> Les yield return, les in/out qui me rappellent les procédures en ADAhttps://image.noelshack.com/fichiers/2020/47/4/1605746723-ronaldotrianglel.png

>

> Les méthodes d'extension, les surcharges d'opérateur sortis de C++, l'injection de dépendances rendu un jeu d'enfant depuis .NET Core, l'incroyable facilité de créer son système d'annotations via une simple classe à hériterhttps://image.noelshack.com/fichiers/2024/01/7/1704633613-citrouillearrogantederevenant.png

Est est-ce que le tooling autour de C# et confortable a utiliser ou on est conseillé d'utiliser leurs éditeurs pour compiler et programmer, en gros ce que je veux savoir c'est est ce qu'ils ont un tooling comme les languages modernes genre Rust ou Go ?

Non y'a pas de cargo pour C# :hap:
Mais contrairement à rust tu as accès directement et sans trop d'imports à d'excellentes librairies pour l'interface graphique. T'es littéralement un éditeur visuel/xml qui font que t'as presque 0 code event à écrire pour la plupart des boutons.
L'avantage de rust c'est que c'est compilé mais communauté cancer, ils sont horribles ces gauchos. Si t'as un peu dxp en c++ Rust ne pose absolument aucune difficulté ça passe comme une lettre à la poste.

Oui justement j'ai du faire un projet en Rust dans la boite pour qui je bosse c'était un POC pour voir en gros les avantages de Rust, mais quand même je trouve que même si tu passes de C++ a Rust il y a plein de nouvelles choses a maitriser programmer en Rust ça va encore, mais bien programmer en Rust ça demandes beaucoup de temps je pense :peur:

Et oui donc du coup en fait C# est vraiment un concurrent direct de Java et Kotlin du coup je vais de regarder le .net MAUI, ça a l'air vraiment pas mal .net, et la documentation a l'air excellente chez Microsoft :oui:

Ben il faut juste réfléchir à ton borrow checker et aux propriétés send et sync, et pour surcharger les operateurs c'est un peu chiant il faut une macro pour faire tous les types primitifs d'un coup parfois, et du coup il y a aussi des lifetime dans les implemetations de traits sur des références. C'est des petits trucs qui rajoutent du boilerplate et sélectionnent les low IQ mais ça va.
Les const generics sont récents et assez approximatifs et ça peut être frustrant de devoir Pin du code et on se tape parfois des horreurs comme des refcell imbriqués simplement pour ne pas avoir à écrire de unsafe {}
Faut de bonnes capacités d'abstraction quoi, mais c'est pas plus compliqués que les templates concepts de c++ et savoir ce qui différencie une xvalue d'une lvalue :hap:

Oui voila bordelent t'as l'air de bien connaitre Rust mon khey, mais ouai tout ça pour dire que même si t'as fait du C++, faut pas que tu utilises la même technique de programmation en C++ qu'en Rust, genre si un mec bataille trop pour avec le compilateur, au lieu de comprendre pourquoi ça marche pas, de mettre un Unsafe direct pour que les choses passent :hap:, mais ouai Rust c'est pas un langage de no brainer, et j'aime bien le délire de la programmation asynchrone avec Tokio en Rust, vu que je fais souvent de la programmation orienté réseau en C++, on fait des trucs horrible en C++ alors qu'en Rust c'est beaucoup plus simple mais bon après on peut pas utiliser les langages qu'on veut dans des projets qui ont des années :hap:

Pas toujours le choix effectivement. On ne trouve que des projets de crypto à la con qui paient bien en rust...
Rust a plein d'autres petits soucis comme le fait que les try blocks mettent du temps à venir ça fait des années qu'on attend. Et les hashmap entry pour pas rendre zinzin le borrow checker alors que ce que tu fais est simple en réalité.
Ils sont trop lents les gens, il aura fallu du temps pour avoir des let else et LazyStatic. Même les NonZero c'est tout récent :hap:
Ce qui est chiant en Rust c'est les impl en type de sortie, qui rendent difficiles à fractionner les codes portent sur des iterateurs.
Iterateurs défaillants par ailleurs quand tu veux modifier un iterable au fur et à mesure. T'es obligé en gros de récrire les for pour les remplacer par des loop et mettre des scope manuels pour les & mut :(

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    ⚠️ Les archives de novembre sont désormais disponibles.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.