J'ai participé à ** Scala Fukuoka 2019 ** qui s'est tenue à LINE Fukuoka le 19 janvier 2019!
2019/01/19 (sam) 11: 00- LINE Fukuoka https://scala-fukuoka.org
Gakuzo-san (Tech to Value) @gakuzzzz
Un résumé des caractéristiques linguistiques de Scala et de l'environnement environnant, et de l'orientation de Scala.
Langue typée statiquement.
Pour les applications critiques, les langages à typage statique sont mieux adaptés.
Un langage typé dynamiquement est une idée pour éviter un état où l'ensemble ne fonctionne pas même s'il y a un problème dans une pièce.
L'expressivité du type est supérieure à Java.
Convient également à la conception pilotée par domaine (DDD).
La méta-programmation (réflexion, macros, etc.) est aussi simple que Java.
Les macros Scala sont encore des fonctionnalités expérimentales et sont susceptibles de changer à l'avenir.
Le paradigme est l'intégration orientée objet et fonctionnelle.
Le sous-typage est un sous-typage nominal.
En outre, Go est un sous-typage structurel et Ruby est un type de canard.
Convient aux produits soumis à des changements continus. S'il reste inchangé, c'est peut-être trop.
JavaScript est le nombre écrasant de référentiels sur GitHub. Il y a aussi beaucoup de Java. Il y a encore peu de Scala and Go.
Pour Scala, il y a Spark et Akka.
Dans de nombreux cas, Scala est sélectionné pour utiliser Akka.
L'avantage de Scala est que vous pouvez utiliser la bibliothèque Java telle quelle.
Cependant, de nombreuses bibliothèques pour Java sont conçues pour être modifiables, et il peut être un peu difficile à utiliser à partir de Scala, qui est basé sur immutable.
Il y a peu d'ingénieurs Scala.
On dit que le coût d'apprentissage de Scala est élevé, mais en réalité ce n'est pas dû aux caractéristiques de la langue, mais cela peut être dû à d'autres facteurs.
En premier lieu, il est très difficile de programmer correctement de manière orientée objet.
Remarque: de nombreux ingénieurs abandonnent cela et passent à la programmation fonctionnelle.
M. Fujii (travail de chat) @yoshiyoshifujii
Explication des points de l'architecture propre et introduction d'exemples d'implémentation dans Scala.
https://speakerdeck.com/yoshiyoshifujii/shi-jian-clean-architecture
Politique: valeur et objectif du produit.
Détails: Moyens de réalisation du produit. Frameworks et middleware.
Le but est de séparer le cœur.
Je veux me concentrer sur la «politique».
Je suis accro au DDD.
Je veux que la "politique" ne dépende pas des "détails".
Pour prendre en compte les «détails», implémentez la «politique».
Ceux-ci sont en conflit, l'équilibre est donc important.
Voir la diapositive.
nulab
fourche
297 sponsors communautaires de plus de 10 millions de yens
Connaissez vos idéaux et connaissez l'écart avec la réalité.
Le revenu annuel moyen des ingénieurs Scala est le plus élevé. Cependant, il n'y a pas beaucoup de différence de revenu entre les langues.
Si vous souhaitez gagner plus d'argent, il est plus rapide de rejoindre une entreprise rentable que de différencier vos compétences.
Tournez la boucle de sortie et de réception de la rétroaction.
Il est important de verbaliser.
Apprenez à négocier.
Évaluation du marché> Évaluation interne ・ ・ ・ Aucune compensation légitime n'est obtenue.
Évaluation du marché <Évaluation interne ・ ・ ・ Non écrasable
Évaluation du marché = Évaluation interne ・ ・ ・ Idéal.
En faisant appel à la fois à l'intérieur et à l'extérieur et en équilibrant les évaluations, vous pourrez travailler librement.
Jun Kato (travail de chat) @ j5ik2o
Présentation de la méthode de modélisation de domaine axée sur les événements de domaine et de l'exemple d'implémentation de Scala.
https://speakerdeck.com/j5ik2o/scalakodototomonikao-erudomeinmoderingu
Humain: acteur hors du système
Choses ... modèle de domaine
Choses ... Événement de domaine
Puisque les choses représentent la relation entre les gens et les choses, nous allons nous concentrer sur les choses et organiser les choses.
Event Storming
Cas d'utilisation-> Événements de domaine-> Commandes (opérations) -> Acteurs et modèles de domaine
Le modèle de domaine (route agrégée) a une histoire (liste) des événements de domaine.
Le modèle de domaine est trait pour que le modèle ne dépende pas des moyens de mise en œuvre (Event Soucing).
Les méthodes commerciales génèrent un nouvel événement de domaine et l'ajoutent à la fin de sa colonne d'événements et le renvoient.
Si plusieurs méthodes métier doivent être appelées en tant qu'ensemble, il existe un moyen de l'implémenter en tant que service de domaine.
Gardez les méthodes commerciales invisibles de l'extérieur.
Dans le référentiel, persistez (INSÉRER) la colonne d'événement.
Il est nécessaire d'éviter que l'ordre des colonnes d'événements ne soit désordonné (verrouillage, etc.) lorsque vous essayez de persister à partir de plusieurs threads / processus multiples en même temps.
Avec Akka Cluster, il y a toujours un acteur avec une instance de l'itinéraire global, donc il n'y a pas de conflit.
M. Shimada (tous les) @smdmts
Explication de la pratique Databricks / Spark et de la visualisation des données. (Je n'ai pas beaucoup de connaissances préalables en analyse de données, donc je ne peux pas suivre le rythme ...)
https://speakerdeck.com/smdmts/databricks-and-spark-with-etl-and-visualization
Databricks
ETL
M. Hosoya (Cyber Agent) @bake_nezumi
https://www.slideshare.net/bakenezumi/sierscala-web
L'histoire de l'introduction de Scala avec SIer.
Play Framework peut utiliser à la fois Scala / Java.
Les ressources Java peuvent être réutilisées.
Caractéristiques du langage telles que la correspondance de modèles et la programmation immuable
Remarque: l'utilisation du mappeur Java O / R de Scala semble pénible.
Emballage Doma pour Scala https://github.com/bakenezumi/domala
Mizushima-san (Dwango) @kmizu
http://kmizu.github.io/scalafukuoka2019/#/
Vous maîtrisez déjà un ou plusieurs langages de programmation, et comment apprendre un nouveau langage de programmation.
Obstacles à l'apprentissage d'autres langues.
Il y a une opinion que si vous comprenez une langue, vous pouvez comprendre d'autres langues.
Il est difficile d'apprendre un paradigme inconnu.
Il est important de comprendre la structure commune à de nombreuses langues.
Il est bon de le décomposer en syntaxe, système de type et sémantique ci-dessus.
Quel type de programme dois-je écrire pour apprendre? → Un combinateur parseur convient.
Parce que vous utiliserez diverses fonctions de la langue, vous pouvez comprendre les principaux points de la langue.
Ayez votre propre "Hello World".
LT
Emotional Scala
@HonMarkHunt (Bizreach)
# Emosca
Daigoro-san (Rakuten)
Quick introduction to scalafix
M. Taniguchi (Hatena) @tanishiking
https://speakerdeck.com/tanishiking/quick-introduction-to-scalafix
Apache Kafka
Mushroom (freelance) @ aa7th
https://speakerdeck.com/sammy7th/apachekafkanituitetiyotutomian-qiang-simasita
Kishida-san (LIGNE) @kis
http://d.hatena.ne.jp/nowokay/20190120#1548011826
1.Faites FAT-jar avec sbt assembly
.
native-image -jar ****. Jar
de GraalVM.Pourquoi voulez-vous être natif?
Démarre plus rapidement. (Cependant, Scala Native est un peu plus rapide)
Toutes les bibliothèques Java peuvent être utilisées. (Scala Native ne peut utiliser que les bibliothèques fournies)
Il y a des pièges tels qu'un programme optimisé pour la queue compilé nativement mais une erreur lors de l'exécution.
Nous sommes montés sur le front à Fukuoka et avons débuté la nuit de Hakata avec quatre ingénieurs qui s'entendent bien.
La boutique motsu-yaki ici est déjà exquise, et j'ai pensé que j'aimerais y retourner quand je viendrai à Hakata.
Classement associé: strong> Motsunabe | Yakuin Station , Watanabe-dori Station , Nishitetsu Hirao Station p>
Je veux revenir l'année prochaine! !!
Recommended Posts
en conclusion