|
Page : 1 2 Page Précédente | |
Auteur | Sujet : Blabla@Scala |
DDT Few understand | MP public entre LeRiton et moi pour l'instant, pour éviter d'entremêler les questions relatives à Scala dans blabla@prog.
--------------- click clack clunka thunk |
Publicité | Posté le 11-12-2020 à 18:55:55 |
DDT Few understand | Question du Riton, pourquoi utiliser Tapir, ici avec http4s.
--------------- click clack clunka thunk |
LeRiton | C'est top, merci !
|
LeRiton |
|
DDT Few understand | Les codecs de Tapir sont nécessaires à transformer les entrées/sorties de tes endpoints; la sérialisation en JSON des entités en entrée et/ou sortie de tes requêtes et réponses n'est qu'une des combinaisons possibles. Dans certains cas Tapir le fait directement, dans d'autres comme le JSON, tu as besoin d'une autre bibliothèque.
--------------- click clack clunka thunk |
LeRiton | Tu utilises ce pattern pour l'implémentation Tapir <=> http4s ?
|
DDT Few understand | Oui je fais des choses similaires.
--------------- click clack clunka thunk |
LeRiton |
|
DDT Few understand | Oui t'as raison pour <+> (combineK) il faut importer les méthodes d'extension pour SemigroupK
--------------- click clack clunka thunk |
LeRiton |
|
Publicité | Posté le 11-01-2021 à 17:47:20 |
DDT Few understand |
--------------- click clack clunka thunk |
LeRiton | Haha, un énorme merci tu m'as aidé à trouver le problème
C'était bien un problème de compilateur et pas d'imports au final. Important pour la suite : j'utilise Maven (because reasons) sur Intellij, pas sbt. Edit : Message édité par LeRiton le 13-01-2021 à 09:00:18 |
DDT Few understand | Y a pas de raisons que tu puisses pas mais du coup il te faut
ou
selon où tu vas appeler cette méthode. Mais tu vas vraiment connecter l'endpoint à un service qui peut te retourner n'importe quel type en sortie? Message édité par DDT le 11-02-2021 à 11:34:55 --------------- click clack clunka thunk |
LeRiton | Chez moi ça compile pas, les encoders/decodes/schemas ne sont pas accessibles.
que je veux utiliser ensuite de cette manière
Et oui je comprend ta remarque, je pense que je passe à côté de quelque chose. Dans mon code tous les sous types de MyTrait sont des case class, mais le compilo n'a pas moyen de le savoir. Je pense qu'il y a moyen de faire autrement, mais j'aimerais avant d'exposer ça de manière détaillée expérimenter jusqu'au bout cette première implem, et je ne butte que sur le jsonBody. Message édité par LeRiton le 11-02-2021 à 11:51:48 |
DDT Few understand | Dans ce cas
--------------- click clack clunka thunk |
LeRiton |
Tu peux compléter ce point particulier ?
Message édité par LeRiton le 11-02-2021 à 13:42:44 |
DDT Few understand | Y a plusieurs stratégies pour dériver les codecs d'un ADT, mais oui tu peux appeler deriveEncoder/deriveDecoder (ou deriveCodec tant qu'à faire) dans chaque objet companion de tes case classes.
--------------- click clack clunka thunk |
LeRiton | Vous utilisez quoi comme formateur / règles de formatage de code, des imports ?
|
DDT Few understand | J'utilise scalafmt, c'est un truc que j'ai introduit dans toutes mes équipes dès qu'Olaf l'a présenté publiquement. IntelliJ détecte le fichier de configuration et l'utilise par défaut depuis un moment déjà. Pour les imports on se contente de l'optimisation des imports par IntelliJ. L'ordre n'est pas vérifié mais si tu as "-Wunused:imports" au moins tu ne rates pas les imports inutiles. Message édité par DDT le 26-03-2021 à 15:34:13 --------------- click clack clunka thunk |
LeRiton | Je ne suis pas allé plus loin que le preset par défaut. Ce qui m'irrite dans scalafmt, c'est le parti-pris du line break pour les paramètres de classes et arguments de méthode. Alors oui j'imagine que ça se configure, mais je suis plutôt partisan d'adhérer en bloc (à la limite à un preset de haut niveau alternatif) plutôt que de maintenir ses propres règles. Mais si tout le monde aime scalafmt et le default preset, je ferais avec Edit : en se basant sur mon rant et si j'ai bien compris, le preset Intellij devrait faire le job. Message édité par LeRiton le 26-03-2021 à 15:38:10 |
DDT Few understand |
LeRiton | Vous utilisez des best practices / coding conventions / coding styles particuliers, et idéalement documentés et publics ?
|
DDT Few understand | Je dirige les débutants vers https://nrinaudo.github.io/scala-best-practices/ (Nicolas a présenté le contenu à plusieurs conférences, y a même une présentation en français à Scala IO).
--------------- click clack clunka thunk |
DDT Few understand | Wartremover est populaire également, peut-être plus que Scapegoat. Mais son fonctionnement semble plus primitif. --------------- click clack clunka thunk |
LeRiton |
|
DDT Few understand | Par curiosité quels sont les points contre-intuitifs?
--------------- click clack clunka thunk |
LeRiton |
|
DDT Few understand | Oui celle-ci est peut-être contre-intuitive, tu as raison. Mais il explique bien dans quel cas l'utilisation systématique de trait peut poser problème, et si ça te concerne pas... D'ailleurs les traits de Scala 3 supportent des paramètres donc j'imagine qu'on va de moins en moins voir des classes abstraites. Message édité par DDT le 23-04-2021 à 11:05:55 --------------- click clack clunka thunk |
el muchacho Comfortably Numb | Salut !
--------------- Les aéroports où il fait bon attendre, voila un topic qu'il est bien |
DDT Few understand | C'est pour quelle utilisation ? Car Scala pour faire du Spark, Akka ou http4s ça va pas vraiment être la même chose. Le blog de Daniel Westheide est un grand classique : https://danielwestheide.com/books/t [...] -to-scala/ Scala Exercises: https://www.scala-exercises.org/ au moins le chapitre sur la bibliothèque standard. --------------- click clack clunka thunk |
LeRiton | C'est agité ici Edit : Functional Programming for Mortals est fait pour moi sur le papier, mais basé sur Scalaz là où j'ai tendance à partir sur du vanilla pour apprendre un nouveau concept. Accessoirement, on est plutôt sur Typelevel dans notre stack actuelle. Message édité par LeRiton le 17-05-2021 à 09:27:52 |
DDT Few understand | Le livre rouge est daté mais je pense que la théorie des catégories n'a pas changé tant que ça.
--------------- click clack clunka thunk |
LeRiton | Merci.
|
DDT Few understand | Scala with Cats me semble largement suffisant.
--------------- click clack clunka thunk |
LeRiton | Je pars là dessus, merci |
LeRiton | J'ai deux questions Tapir. Comme d'habitude c'est sans doute trivial mais je sèche un peu et la doc ne m'aide pas.
|
DDT Few understand | Pour ton premier point j'ai l'impression que c'est IntelliJ qui ne réalise pas que ta classe hérite bien de Product with Serializable.
--------------- click clack clunka thunk |
DDT Few understand | Pour ta 2e question j'ai pas compris, auth.bearer fonctionne dans un sens (pour le serveur) mais pas dans l'autre (client)? Message cité 1 fois Message édité par DDT le 24-06-2021 à 18:32:23 --------------- click clack clunka thunk |
LeRiton |
Yep my bad, il lui faut les parenthèses. Tu sais s'il existe un moyen simple de voir la requête client qui serait générée à partir d'un endpoint ? Comme d'habitude, merci pour tes réponses Message édité par LeRiton le 24-06-2021 à 22:33:15 |
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
Lunch@blabla@devoxx | blabla@django |
Blabla@Progue | [Topic unique] .Net @ Prog |
Page Jsp qui affiche le ${ blabla } | case in blabla (KSH) ===> fichier CSV |
BlaBla@SQL | Suivant / Précédant dans appli js (non c'est pas history.blabla ...) |
Blabla@Python \o/ | SBP: le Système d'unités de Blabla@Prog |
Plus de sujets relatifs à : Blabla@Scala |