Décision sur syntaxe
Yop, dans ma lib DataPackDSL, j'ai un dilemne pour définir la syntaxe de plusieurs DSLs, ils ont exactement la même syntaxe, c'est juste les paramètres et nom de fonctions qui change quoi, par exemple pour les DensityFunctions, je peux créer des
densityFunction
comme ça :
Le souci c'est que si j'appelle abs()
plusieurs fois, je sais pas trop quoi faire...
Est-ce que :
- Je l'ignore sauf le dernier appel ? (ce qui se fait actuellement)
- Je renvoie une erreur ?
J'ai aussi une syntaxe avec un builder à part :
Ça évite le problème mais c'est plus verbeux :/
Sachant que dans le JSON y'a qu'un seul DensityFunctionType
par fichier, vous me conseillez quoi ?
Renvoyer une erreur si abs() est appelé plusieurs fois dans le premier style ? Ou utiliser le builder direct ?11 Replies
Unknown User•14mo ago
Message Not Public
Sign In & Join Server To View
oui oui, c'est pour ça que les autres sont ignorés actuellement, mais dans ma lib y'a plein de fois où chaque ligne compte, et là ça pourraît être confu, fin je sais pas y'a que moi qui l'ait utilisé jusque là donc je connais tout par cœur x)
Unknown User•14mo ago
Message Not Public
Sign In & Join Server To View
ben par exemple pour des commandes tu vas faire
Puis t'as certains DSLs où les fichiers JSONs peuvent accueillir plusieurs entrées, genre Là ça va faire en sorte que le prédicat soit validé uniquement si les 2 conditions sont validées
Mais dans mon exemple de mon premier message, c'est pas possible de mettre plusieurs entrées, c'est 1 par fichier JSON, mais du coup faut pas que les gens soient confus etc, et j'ai la flemme de full documenter tout quoi
Unknown User•14mo ago
Message Not Public
Sign In & Join Server To View
Ouais j'avais fait ça au début pour certains, mais je trouve ça plus moche au final, genre des fois t'avais des trucs du genre Le
})
je déteste x)
On dirait du JS mdrrUnknown User•14mo ago
Message Not Public
Sign In & Join Server To View
Mais au final je me retrouve dans une situation où chuis obligé de faire une lambda en dernier argument, parce que j'avais oublié que tous les JSONs tu peux aussi choisir leur namespace, le dossier où ils vont être créés
D'habitude quand tu fais un pack tu mets tout dans ton dossier, mais pour certains cas ou pour réécrire les fichiers de Minecraft de base par exemple, tu mets la namespace
minecraft
, du coup ça se retrouve dans
.minecraft/saves/{ton_monde}/datapacks/{ton_pack}/data/{ta_namespace}/density_functions/mes_couilles.json
Donc chuis obligé de finir avec une lambda où en tant que receiver (le this
) y'a la classe DensityFunction
, qui extends de Generator
(jusque là c'était le cas, Generator
ça a une méthode abstraite generateJson
pour définir comment sérialiser), et maintenant les Generator
ont une propriété namespace
C'est grave complexe à expliquer comme t'as vu mais en gros, chuis obligé d'avoir une lambda à la finUnknown User•14mo ago
Message Not Public
Sign In & Join Server To View
Mais du coup tu penses que c'est quoi le mieux @Loockeeer ?
Unknown User•14mo ago
Message Not Public
Sign In & Join Server To View