並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 255件

新着順 人気順

Scalaの検索結果81 - 120 件 / 255件

  • 10年モノのサービスをアーキテクチャから再設計─はてなブックマークがScalaとDDDを使う理由 - エンジニアHub|Webエンジニアのキャリアを考える!

    10年モノのサービスをアーキテクチャから再設計─はてなブックマークがScalaとDDDを使う理由 10年以上運用されているサービスには、さまざまな技術的な負債が発生しています。今後の継続的な改善のため、いったん新規開発を止めて4年かけて全面的なリニューアルを実施した「はてなブックマーク」の開発者に、プロジェクトの課題や解決する手法などを聞きました。 改善1つに数カ月かかるなら全てを書き換えられないか 2000年代にトレンドだった開発手法の負債 過去の開発意図を探る考古学的手法 データセンター移行も見据えて刷新しよう ドメインモデル設計とScalaとマイクロサービス化 コアロジックにはScalaを採用 きちんとしたドメインモデルによる設計と実装を継続したい 段階的なリリースとデータの移行という2つの大きな課題 求められる機能に沿ったデータベーススキーマに再構築 新旧の2システムを維持しながら

      10年モノのサービスをアーキテクチャから再設計─はてなブックマークがScalaとDDDを使う理由 - エンジニアHub|Webエンジニアのキャリアを考える!
    • Scala Love in the CityでGitBucketの発表をさせていただきました - たけぞう瀕死ブログ

      主催者のOliさんからのDMで急遽 Scala Love in the City で話させていただくことになり、あまり時間もなかったので準備なしでも話せるGitBucketの紹介をさせていただきました。スライドは以下になります。 GitBucket: Open source self-hosting Git server built by Scala from takezoe www.slideshare.net 他のトークはScalaでの関数型プログラミングやScala3の話題が多かったと思いますが、具体的なアプリケーションレイヤから見たScalaという観点での話ができればと思い、前半はGitBucketの紹介、後半は8年間開発を続けてきて難しかったこととしてScala 2.12へのアップグレードについて話させていただきました。 なぜScala 2.12へのアップグレードが辛かったのかと

        Scala Love in the CityでGitBucketの発表をさせていただきました - たけぞう瀕死ブログ
      • KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG

        計測プラットフォーム部バックエンドチームの鈴木です。 この記事では、Akka gRPCを利用しているScalaアプリケーションのZOZOMATに対してKamonを通じてAPMを導入した際に得られた知見、うまくいかなかった内容やその対応策を紹介します。 Akkaとは 最初にAkkaについて簡単に紹介します。Akkaは、JVM上で並行および分散アプリケーションの構築を容易にするツールキットとランタイムです。 Actorモデルの実装であるAkka Actorsを中心とし、Akka StreamsやAkka HTTP、Akka Clusterなど様々なツールが提供されています。詳しくは公式ドキュメントやAkka実践バイブルを読むことで深く理解できます。書籍で紹介されているAkkaのAPIは、今では古いものとなっていますが、Akkaの楽しさを知るにはとても良い本です。 私たちが開発しているZOZOM

          KamonによるAPM導入 - Akka gRPCを用いたScalaアプリケーション編 - ZOZO TECH BLOG
        • Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog

          ScalaでもJavaでも、overrideする際に、sub typeでoverrideすることが可能です。 (すごく古い1.4以前のJavaでは不可能だったはずだが) Javaの仕様書で英語だと covariant return type というはず?の機能です。 https://docs.oracle.com/javase/specs/jls/se11/html/jls-8.html#d5e14373 $ jshell | Welcome to JShell -- Version 17.0.6 | For an introduction type: /help intro jshell> interface A { Object a(); } | created interface A jshell> class B implements A { @Override public St

            Scalaでoverrideした際の共変戻り値型と型推論 - xuwei-k's blog
          • Scalaをスクリプト言語にしよう! Ammonite文法最速マスター - Lambdaカクテル

            追記(2023-04-04): Scala CLIを使いましょう Ammoniteをベースにより洗練されたScala CLIが開発され、Scalaのデファクトスタンダードとして定着しつつあります。公式にscalaと入力した際の標準アプリケーションとなることも予見されているため、こちらを学ぶとよいでしょう。 scala-cli.virtuslab.org tanishiking24.hatenablog.com zenn.dev Ammonite文法最速マスター この記事は、Scalaのスクリプティング環境でありREPLでもあるAmmoniteの基礎的な利用方法をマスターし、ちょっと凝ったシェルスクリプトをAmmoniteスクリプトに書き換えられる程度のAmmonite力を手に入れるためのものです。 追記(2023-04-04): Scala CLIを使いましょう Ammonite文法最速マ

              Scalaをスクリプト言語にしよう! Ammonite文法最速マスター - Lambdaカクテル
            • Akkaを使ってScalaのFutureにタイムアウトメソッドを生やす(あと注意点) - ravineport blog

              ScalaのFutureにはタイムアウトを設定するメソッドはない。 Await.result で設定時間待つことができるが、失敗した場合は例外がスローされてしまうのでTryなりで扱う必要があるし、なによりブロッキングするのでスレッドを無駄遣いしてしまっている。 そこで akka.pattern.after メソッドを使う。 akka.pattern.afterを使ったFutureのタイムアウト設定 こちらを参考にした stackoverflow.com import akka.actor.ActorSystem import scala.concurrent.duration._ import scala.concurrent.{ ExecutionContext, Future, TimeoutException } object Main { implicit class Future

                Akkaを使ってScalaのFutureにタイムアウトメソッドを生やす(あと注意点) - ravineport blog
              • 関数型ニキ達にインスパイアされた最近の Scala 開発の取り組み - FLINTERS Engineer's Blog

                こんにちは、中途三年目の堀越です。 近頃、Scalaのコミュニティにおいて Functional Programming による実装テクニックを紹介する記事や発表を見たり聞いたりすることは珍しいことではなくなってきました。弊社にもたくさんの関数型ニキ*1が在籍しており、わたしも日々影響を受けています。 ということで、本日はわたしが所属するチームでの日々の Scala 開発における取組みや戦略をサンプルコード*2と合わせて紹介していきます。 高カインド型によるEffect型の抽象化 私達はドメイン駆動設計を実践しています。なのでドメインロジックはドメインの関心事に集中できるのが理想です。ドメイン層を抽象化し、特定の実行環境や技術的関心事に依存しない戦略として 高カインド型 を用いてEffect型を抽象化します。 インターフェース定義 例えば Repository のインターフェイスのは以下の

                  関数型ニキ達にインスパイアされた最近の Scala 開発の取り組み - FLINTERS Engineer's Blog
                • The Death of Hype: What's Next for Scala

                  A recent tweet by a friend of mine noted how the public interest in the Scala programming language seems to have plateaued or waned, which matches my feeling of the latest trends and zeitgeist. This blog post will go into why I think that has happened, where Scala stands now, and what the future holds for the Scala community. About the Author: Haoyi is a software engineer, and the author of many o

                  • サマーインターンシップ2019で学生とDDDなScala開発に取り組んだ / Working on DDD and Scala development with students at Summer Internship 2019

                    Scala秋祭り https://scala-aki-matsuri.connpass.com/event/142817/

                      サマーインターンシップ2019で学生とDDDなScala開発に取り組んだ / Working on DDD and Scala development with students at Summer Internship 2019
                    • Scala関西Summit 2019に参加してきました #scala_ks - Unipos engineer blog

                      こんにちは!Fringe81 エンジニアの谷口です。2019年10月26日(土) - 27日(日)に開催されたScala関西Summit 2019に同期の大沼と参加してきました。 2019.scala-kansai.org Scala関西Summit Scala関西Summitは、Scalaをテーマとした関西で最大級の技術カンファレンスです。Scalaの導入事例やTIPSなどなどScalaに関わるあらゆる人を対象にしたカンファレンスです。 2日間の開催で、1日目は講演・ハンズオンdayです。講演は公募によって選ばれ、大変幸運なことに私のプロポーザルを採択して頂きました! 2日目はアンカンファレンスdayです。当日の朝に参加者全員で何を話すかが決められます。1日目の会場のホワイトボードに挙げられた『こんなこと話してほしい!』について話せる人を募ってセッションのタイムテーブルを決めていきます。

                        Scala関西Summit 2019に参加してきました #scala_ks - Unipos engineer blog
                      • record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types

                        In this talk, we learn about the basics of my library called "record4s", which provides type-safe extensible records for Scala 3. It runs on JVM, JS, and Native platforms. You will see how it is implemented efficiently by using Scala 3 macros, and how record types as structural types, which work without reflection in Scala 3, are helpful in domain modeling. record4s --- Scala 3のための拡張可能レコード、そして構造的型

                          record4s --- Extensible Records for Scala 3, and Domain Modeling with Structural Types
                        • Scala 2 Roadmap Update: the Road to Scala 3

                          ⚠️ Beware of Scams: since Feb 2024, scammers are using fake Scala websites to sell courses, please check you are using an official source. Together with the Scala 3 team at EPFL (aka the Dotty team), led by Martin Odersky, we have decided that, rather than developing Scala 2.14, our efforts should go to Scala 3 instead. While we’re very excited to shift our focus to Scala 3, we will continue to ma

                            Scala 2 Roadmap Update: the Road to Scala 3
                          • ペーパーバック版の『Functional Programming in Scala, Second Edition』を買った - Magnolia Tech

                            既にセールの時に電子書籍版で買っていた『Functional Programming in Scala, Second Edition』、ペーパーバック版の方も追加で買った。 Functional Programming in Scala, Second Edition (English Edition) 作者:Pilquist, Michael,Chiusano , Paul,Bjarnasson, RúnarManningAmazon ソフトウェア関係の技術書がこの先、どのくらい需要があるのか、タイムリーに改版されるのか、更には日本で翻訳版が出版されるのか......市場のことはよく分からないけど、「この本はずっと手元に置いておく価値が有る」と思ったものはなるべく紙の書籍で手元に置くようにしている。 電子書籍だと、すっかりその存在を忘れてしまって、最後まで読まなくなってしまうのと、情報

                              ペーパーバック版の『Functional Programming in Scala, Second Edition』を買った - Magnolia Tech
                            • 4年ぶりのScala国際カンファレンス、Scala Days Madrid 2023 に参加しました! - たにしきんぐダム

                              画像元: https://twitter.com/scaladays/status/1701616520546206039 Scala の世界最大のオフラインカンファレンス、Scala Days Madrid 2023 に参加してきました。Scala Days は例年に2回、アメリカとヨーロッパで開催されており、今年は Madrid での開催でした。 scaladays.org コロナ期間中 Scala Days は開催されておらず、2019年以来4年ぶりの開催!(前回はLausanne開催でした) developer.hatenastaff.com 会場は世界中から集ったたくさんの人で賑わい、参加者の熱意の高さから感じられるとても良いイベントでした。その中で印象に残ったセッションの紹介を交えつつ、会場の様子をレポートしたいと思います。 カンファレンス本体の話に移る前に、周辺イベントを紹介

                                4年ぶりのScala国際カンファレンス、Scala Days Madrid 2023 に参加しました! - たにしきんぐダム
                              • 2020年11月現在のScala 3(Dotty)とScala 2のコンパイル速度比較 - xuwei-k's blog

                                最初に結論 Scala 2.13.3 と 3.0.0-M2-bin-20201031-1ab76c1-NIGHTLY をscalaz最新版でベンチマークしたところ、 Scala 2.13.3は平均約57秒、Scala 3の最新版は平均約31秒で 約45%短縮!!! めでたいなぁ。 他の条件で計測した場合にどうなるのかわからないが、このままの速度を維持して欲しい。 以下詳細な条件や結果記載。 条件 scalazの最新版masterで、JVM側のmain側のみ(つまりtest除く。除いたのは、test含めると、よりコード量に差が出てしまうなどの理由) (数時間前に7.4.0-M4リリースしたので、実質それ) ベンチマークのために.travis.ymlだけ改変 https://github.com/xuwei-k/scalaz/commit/5956af9d2b280ef05b42eac9241

                                  2020年11月現在のScala 3(Dotty)とScala 2のコンパイル速度比較 - xuwei-k's blog
                                • Scala3と圏論とプログラミング - Qiita

                                  最近、圏論とプログラミングという素晴らしい資料を拝読しました。圏論とプログラミング愛に溢れる資料で読んでいて目頭が熱くなりました。そうだよな・・・プログラマにも圏論いるよな・・・ ただ、自分にとって残念だったのは、資料で説明用に選択されたプログラミング言語が「Haskell」だったことです。もちろんHaskellは素晴らしい言語です。ただ、自分にとってHaskellは外国語なのでちょっと理解が難しいのです。なのでこの資料が「Scala」で書かれていたらと夢想せずにはいられなかったのです。 Scalaと言えば昨年末にScala3のリサーチコンパイラのDottyがFeature Completeを宣言しました1。この宣言で新機能の追加は終了して、あとは2020年末のリリースに向けてひたすら品質を上げていく段階に突入しました。つまり、ようやく次世代のScalaが全貌を現したということです。 ここ

                                    Scala3と圏論とプログラミング - Qiita
                                  • Emacs+MetalsでScalaのデバッガを使う - 貳佰伍拾陸夜日記

                                    こういう話がありました。 Feature Request : Support for scala in dap-mode · Issue #196 · emacs-lsp/dap-mode を見てもdap-modeの使い方がよく分からなかったし別に時間をかける所じゃないなと思ったので、デバッグする時だけはIntelliJを使うことにしようとしたのですが、私の環境だとUIが崩壊してデバッグ設定以前の問題になってしまいます。 実はMetalsの(というかlsp-mode+dap-modeの)デバッガはいま普通に機能するけど、確かに使い方(使える状態にするコツ)がちょっとむずかしい感じがしますね。実際にはやることはあんまりないんだけど、いざやろうとすると時間を食うと思うので、時間を食われてやった側の人間としてやり方を書き記しておこうと思います。本当は最近のEmacsのモダンな環境ぜんぶ紹介するみ

                                      Emacs+MetalsでScalaのデバッガを使う - 貳佰伍拾陸夜日記
                                    • 面倒なことはScalaスクリプトにやらせよう

                                      面倒なことは Scalaスクリプトにやらせよう 2019/09/16 Scala秋祭り Takumi Kadowaki @blac_k_ey

                                        面倒なことはScalaスクリプトにやらせよう
                                      • ベルリンでScala Meetupを開催しました! - Unipos engineer blog

                                        こんにちは! Fringeのエンジニアの藤野です。 今回ベルリンでScala Meetupを開催しましたので、開催レポートとベルリンのScala事情について紹介します。 開催するまでの経緯 そもそもなんでベルリンで開催?という疑問を持つ方もいるかもしれませんが、実は今年の2月にFringeの子会社であるUniposがベルリンでドイツ支社を立ち上げました! 私もそのタイミングで2月から現地で働いています。 ピアボーナス「Unipos」ドイツの有力メガベンチャーで試験導入開始 〜同時にベルリンに支社を設立しヨーロッパへ進出〜 | News | Journal | Fringe | Be an Explorer ベルリンではMeetupが盛んに行われており、様々なテーマのMeetupがベルリン各地で頻繁に行われています。 参加者はMeetupアプリを通して定期的にイベント情報を取得し、興味のある

                                          ベルリンでScala Meetupを開催しました! - Unipos engineer blog
                                        • Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜

                                          「Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜」 2019/10/05 【マイクロアド】〜ネット広告を支える技術を知る〜 #microad_CAMPHOR https://camphor.connpass.com/event/146724/Read less

                                            Scala、DDD、Akkaで立ち向かう 〜広告配信システムに課せられた100msの制約〜
                                          • GitHub - polynote/polynote: A better notebook for Scala (and more)

                                            A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

                                              GitHub - polynote/polynote: A better notebook for Scala (and more)
                                            • Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog

                                              Scala 3のmatch typeで何かのparserでも書くか?と思ったけど、コンパイル時にリテラルのStringを、型情報というか分解した場合の値情報?を、保ったままの分解が単純には出来そうにはないというか… あるいは一旦CharのHListにしたいんだけど、何か方法あるのかな— Kenji Yoshida (@xuwei_k) February 28, 2021 https://t.co/sNupBRy3rV type Substringが増えてるからいける…?— Kenji Yoshida (@xuwei_k) 2022年2月28日 できました。 parserなどに慣れてないので、とりあえず以下のクソ雑仕様?だけど、tokenにするのとparseとevalをなんとなくちゃんと分けたぞ! みんなScala 3のmatch typeで、任意の言語などのparserや評価機を書こう!!

                                                Scala 3のmatch typeでcompile timeにString literalをparseして評価する - xuwei-k's blog
                                              • So, What's So Special About The Mill Scala Build Tool?

                                                So, What's So Special About The Mill Scala Build Tool? Mill is a Scala build tool that offers an alternative to the venerable SBT toolchain. Mill aims for simplicity by reusing concepts you are already familiar with, borrowing ideas from Functional Programming and modern tools like Bazel. Feedback from users of Mill is often surprisingly positive, with people saying it is "intuitive" or feels "jus

                                                • PythonとScalaの連携: 高度なプログラミングの融合 - Python転職初心者向けエンジニアリングブログ

                                                  こんにちは、皆さん。今回はPythonとScalaを連携させ、両言語の強みを活かしたプログラミングについて詳しくご紹介します。PythonとScalaは、異なるプログラミングパラダイムを採用していますが、その組み合わせにより柔軟で効率的な開発が可能です。 1. Scala関数をPythonから呼び出す まずは、PythonからScalaの関数を呼び出す例を見てみましょう。Scalaの関数をJavaの形式でコンパイルし、それをPythonから呼び出します。 // Scalaのコード(Add.scala) object Add { def add(a: Int, b: Int): Int = { a + b } } このScalaのコードをscalacを使ってコンパイルします。 $ scalac Add.scala そして、PythonからこのScalaの関数を呼び出します。 # Python

                                                    PythonとScalaの連携: 高度なプログラミングの融合 - Python転職初心者向けエンジニアリングブログ
                                                  • Scalaを手っ取り早く学ぶのに適したリソースを紹介する(2020年版) - kmizuの日記

                                                    はじめに こんにちは。水島です。例のQiita炎上の件で、「ああ、これはもう自分向きのサービスじゃないな」と思ってサックリとアカウント消して退会したわけですが、ちょっとこれくらいはレスキューしておけば良かったな…と思った記事があったので、リライトしてみました。 昨今、Scalaは色々なところで使われている一方で、特に日本語でScalaを学習したい人には、どこから手をつけていいやらさっぱり、という状況があります。特に、古い書籍だと現状のScalaのエコシステムを反映していませんし、Webサイトでも、古い情報のままということがあります。というわけで、今、日本語でScalaを学習したい人にとって適切なリソースをご紹介したいと思います。 オンライン講座 N予備校 プログラミングコース Scala基礎 www.nnn.ed.nico オンライン学習サイトの一つである、N予備校にはプログラミングコース

                                                      Scalaを手っ取り早く学ぶのに適したリソースを紹介する(2020年版) - kmizuの日記
                                                    • 株式会社はてな後援、Scalaわいわい勉強会を開催しました! #scala_waiwai - Scalaわいわいブログ

                                                      さる2023年10月13日にプログラミング言語Scalaの勉強会『Scalaわいわい勉強会』を開催しました。この記事では会場の様子や勉強会の理念、その他もろもろを紹介します(この記事はid:Windymeltとid:tanishiking24による共同執筆です)! わいわいしている様子(活況でした) Scala Tokyo meetup is back! 🤩 26 engineers gathered for 2 presentations and 4 LTs. The meetup was friendly and lively, and everyone looked forward to the next one! Thanks to @hatenatech for providing the nice venue and food🍣🍱 #Scala #scala_waiwai

                                                        株式会社はてな後援、Scalaわいわい勉強会を開催しました! #scala_waiwai - Scalaわいわいブログ
                                                      • ScalaのコンパイラにFizzBuzz問題を解いてもらう

                                                        2019年7月29日、Opt Technologiesが主催するイベント「Fun Fun Functional (2) 関数型言語Lightning Talks!!」が開催されました。関数型プログラミングについて楽しく学び、知見を共有することを目的に開催されている本勉強会。今回は6名のエンジニアが、関数型プログラミング言語にまつわるユニークな発表を行いました。プレゼンテーション「ScalaのコンパイラにFizzBuzzを解いてもらう」に登壇したのは、jooohn1234氏。講演資料はこちら FizzBuzzをコンパイラに解いてもらう @jooohn1234氏:じゃあ発表させていただきます。「ScalaのコンパイラにFizzBuzzを解いてもらう(Dottyもあるよ)」ということで、ちなみにDottyというのは、現行はScala2がメジャーバージョンなんですけど、Scala3にあたるやつで

                                                          ScalaのコンパイラにFizzBuzz問題を解いてもらう
                                                        • ScalaにGoroutineがやってくる!非同期処理ライブラリOxで遊んだ - Lambdaカクテル

                                                          Channelスタイルの並行処理の記述を(もちろん型安全に)可能にするライブラリOxについて調べて試してみた。結論から言うと書き味がめちゃくちゃ良くて面白い。 ソースコードも置いておく。 github.com Ox Oxとは、sttpなどの開発でお馴染のSoftwareMillによって開発されているScala用の非同期ライブラリである。まだ非常に若く、活発に開発されている。 github.com Oxの特徴は、というか目的といっても差し支えないのだが、それはChannel指向の非同期処理、つまりGoroutineをScalaの上で実現している点だ。Goユーザならすぐに理解できるだろう。 百聞は一見に如かず。こんな感じのコードを書くことができる(v0.0.25時点)。 import ox.* import ox.channels.* import scala.concurrent.durat

                                                            ScalaにGoroutineがやってくる!非同期処理ライブラリOxで遊んだ - Lambdaカクテル
                                                          • airframe-launcherとsbt-packでScalaでCLIツールを作る - たけぞう瀕死ブログ

                                                            私は普段主にScalaを使っているので、ちょっと手の込んだ処理が必要だったりJava/Scalaライブラリを使ったツールが必要な場合にScalaで書けると便利だなと思うことがあります。 AirframeはScala用のDIコンテナを中心とした様々な機能を提供するライブラリ群ですが、そのうちの1つとしてairframe-launcherというCLIツール作成用のモジュールがあり、コマンドラインオプションを簡単に扱うことができます。また、sbt-packというsbtプラグインを使うと作成したアプリケーションを実行可能なコマンドとしてパッケージング、インストールできます。これらを組み合わせてScalaでCLIツールを作る方法を紹介したいと思います。 wvlet.org github.com まずはbuild.sbtに以下の記述を追加し、airframe-launcherを依存関係に追加します。

                                                              airframe-launcherとsbt-packでScalaでCLIツールを作る - たけぞう瀕死ブログ
                                                            • Scalaわいわい勉強会へ参加した - Magnolia Tech

                                                              scala-tokyo.connpass.com 最近、圧倒的なScala情報の発信でおなじみの id:Windymelt さんによる主催の「Scalaわいわい勉強会」に参加した。 場所は、「はてな東京オフィス」……1年に1回くらいビルの前を通ることは有っても、コロナ禍が始まってから中に入ることの無かった場所に久しぶりに入ることができた。 久しぶりの、はてな東京オフィスに来た https://t.co/KLKKrO9TCy— magnoliak🍧 (@magnolia_k_) 2023年10月13日 ちょっと遅れて会場に到着、その時点ですでに id:tanishiking24 さんの「Scala Days Madrid レポート」が始まっていた。発表の後も含めて海外のScalaの動向が聞けたのと、ScalaDaysの様子のオシャレ映像が良かった。 tanishiking24.hatena

                                                                Scalaわいわい勉強会へ参加した - Magnolia Tech
                                                              • お気に入りのScalaライブラリ・ツールをだらだら紹介する - FLINTERS Engineer's Blog

                                                                この記事は Scala Advent Calendar 2019 の6日目です。 こんにちは。最近はPYXISのデータ基盤チームでSREっぽいことしている 門脇(@blac_k_ey)です。 TETRIS99の次はポケモンに進捗を奪われる日々を送っています。 締め切りギリギリまで ポケモンで忙しかった 「これ書きたい!」というテーマが思いつかなかったので、個人的に最近のScala開発でお世話になっているライブラリやツールなどを紹介していこうと思います。 詳細はあまり書かず、「ここが好き!」ぐらいのお気持ち表明ぐらいの文章でしかないので、ゆるく暖かい気持ちで読んでくれたら幸いです。 Ammonite リッチなScalaREPL、Scalaスクリプト。 自分のScala生活が豊かになっている大きな要因のひとつ。 Magic Importsを使って、ライブラリをちょっと試したいときにササッと使え

                                                                  お気に入りのScalaライブラリ・ツールをだらだら紹介する - FLINTERS Engineer's Blog
                                                                • Cloudflare functions with Scala.js

                                                                  Indoor VivantsAnton Sviridov. I love reinventing the wheel and I usually use Scala for that. TL;DR We are deploying an app to Cloudflare using Scala.js We are using ScalablyTyped We are using Scala 3 heavily Code on Github Deployed app Cloudflare API bindings Welcome to the "Put ma Scala on yo cloud" series I want to say that I'm kicking off a blog series, but even I don't believe that. If I did,

                                                                  • Scala、Picocli、GraalVMによるネイティブCLIツールの作成 - たけぞう瀕死ブログ

                                                                    以前、Scalaを使ってCLIツールを作るという記事を書いたのですが、やはりJVMベースのアプリケーションには起動時間のオーバーヘッドが付き物なのでちょっとしたCLIツールをScalaで書こうという感じにはなかなかなりません。そこで今回はPicocliというJava向けのCLIツール用ライブラリとGraalVMを使ってネイティブCLIコマンドをScalaで作る方法を試してみました。 github.com sbtプロジェクトの作成 今回はPicocliのドキュメントで例として掲載されていたchecksumコマンドをScalaで実装してみます。まずは以下の内容でbuild.sbtを作成します。 name := "picocli-scala-example" version := "0.1" scalaVersion := "2.12.7" libraryDependencies ++= Seq

                                                                      Scala、Picocli、GraalVMによるネイティブCLIツールの作成 - たけぞう瀕死ブログ
                                                                    • Chatworkでリアクション機能をリリースした話_scala_ks.pdf

                                                                      その Swift コード、
こう書き換えてみないか / Polishing your Swift code with me!

                                                                        Chatworkでリアクション機能をリリースした話_scala_ks.pdf
                                                                      • WEB+DB PRESSでScala特集記事を執筆しました - Unipos engineer blog

                                                                        エンジニアの大沼です。 8/24に発売されるWEB+DB PRESS Vol.112にて、同僚の谷口、豊島の3人で『実践Scala オブジェクト指向×関数型』という題で特集記事を執筆しました。Fringe81エンジニアとしては前号に続き2号連続での執筆をさせていただきました。 私たちの特集では、Scalaの基本的な文法からアプリケーション作成までを27ページの中に凝縮してお届けしています。 WEB+DB PRESS誌では初のScalaについての特集ということで、Scalaを初めて触る方を対象に、Scalaの基本的な使い方からScalaプログラミングの楽しさが伝わる事を目指して、執筆しました。 特集は5章構成となっており、それぞれの概要は下記の通りです。 1章:Scalaの歴史からScalaを利用するためのセットアップ方法について解説しています。 2章/3章:初めて触る方向けにScalaの基

                                                                          WEB+DB PRESSでScala特集記事を執筆しました - Unipos engineer blog
                                                                        • Scalaでwhileやvarを使ってもいい理由 - Qiita

                                                                          まえがき Scalaを利用している現場では、しばしば、コーディング規約、あるいは、コードレビューで「varやwhileを使っている」ことが指摘されて、使わないように修正させれることががあります。 どこの現場で、という話はしないですが、私が実際に見たり聞いたりした範囲では、5社以上はあるんじゃないか、という感じです。 もちろん、コーディング規約やコードレビューの指針はそれぞれの会社で適切に運用されていればよくて、個々の話に私を口を出す権利は無いのですが、この話はScala現場でしばしば問題にされるので、一度書いておきたくなりました。 何故whileやvarが忌避されるのか これは、関数型プログラミングの文脈を知っている方なら、おおよそ推測がつくと思うのですが、本質的にそれらの言語機能は、副作用を前提としているから、というのがあると思います。 たとえば、以下のプログラムは、1から9までの数につ

                                                                            Scalaでwhileやvarを使ってもいい理由 - Qiita
                                                                          • Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル

                                                                            ScalaをネイティブコンパイルしてJVM無しで実行ファイルとして動かせるようにする仕組みであるScala Nativeが、いつのまにかシングルバイナリを出力できるようになっていた。これにより、Goと同じように1つのバイナリさえコピーすればScalaを動かせる環境が整ったことになる。 シングルバイナリ シングルバイナリとは、実行に必要なライブラリが静的にリンクされ、単体のバイナリとして完結した実行ファイルの通称*1である。より正確な表現として、静的リンクされた実行ファイルとか、静的実行ファイル(statically linked executable, static executable)というのがストレートだろう。この意味におけるシングルバイナリの対義語は動的リンクされた実行ファイル、動的実行ファイルである。英語だとdynamic executableだ。静的リンクされた実行ファイルは必

                                                                              Scala Nativeがいつのまにかシングルバイナリを吐けるようになっていた - Lambdaカクテル
                                                                            • ScalaだけではなくGo/Rustもやっていくぞというお話|かとじゅん(j5ik2o)

                                                                              こういうつぶやきをした。書いたまんま。ScalaというよりJVMがしんどいって話。Scala Nativeに希望を見出せるだろうか… あ、誤解がないように書いておくと、Scalaを辞めるという話ではない。仕事は普通にあるのでScalaは使っていく(Scala3もやると思う) Scalaについては、2019年ぐらいが潮目だったのかもしれないなと。 グーグル・トレンドをみると、2014年ぐらいからGoの検索ボリュームが伸びていてScalaより増えている。Goの勢いがすごい。KotlinがAndroid公式言語に採用されたのは2017年。2019年ぐらいからKotilnとScalaの検索ボリュームが反転して、ScalaよりKotlinのほうが多くなっている。まぁ比較すると相関があるとミスリードしがちなんで要注意だけど、なんにしも2019年ぐらいからScalaの検索ボリュームがだいぶ減ってきている

                                                                                ScalaだけではなくGo/Rustもやっていくぞというお話|かとじゅん(j5ik2o)
                                                                              • Coursier を使って最速でScalaの開発環境を整える - ぶらっ記ぃ

                                                                                ざっくりまとめ Coursierの setup コマンドを使うとJDKとScala開発に必要なツールをまとめてインストールできるよ。 最近追加された install コマンド get-coursier.io Coursier といえば sbt v1.3.0 で取り込まれた高速でライブラリ依存を取得するためのOSSとして有名ですが、このCoursierにはCLIが提供されており、ライブラリ依存のグラフを出力したり、アプリケーションの起動スクリプトを用意するコマンドが提供されています。 最近の Coursier v2.0.0-RC のアップデートで install コマンドが追加されました。 Announcement: The install command of coursier is not experimental anymore, and is ready for prime time

                                                                                  Coursier を使って最速でScalaの開発環境を整える - ぶらっ記ぃ
                                                                                • Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog

                                                                                  はじめに こんにちは。マイクロアドでソフトウェアエンジニアをしている田口と申します。 私が所属しているチームでは COMPASS というプロダクトに関する開発をメインで行っており、広告配信システム(Scala)、管理画面(Kotlin・Java)、バッチ系(Digdag(Python)・Spark Streaming(Scala)) ...etc など幅広い分野を担当しています。 担当しているプロダクトの中で広告配信システム(Scala)は、2014年に初期実装され現在(2021年)まで追加改修を継続的に行っているプロダクトになります。2019年の後半に「そろそろ刷新しよう」という声が上がり粛々と基盤固めを進めていましたが、他のプロダクトが落ち着いた今、ようやくチーム一丸となって広告配信システムのリプレイスに取り掛かり始めています。 今回のリプレイスでは Scala の関数型ライブラリであ

                                                                                    Scala With Cats を読む前に知っておきたかったこと - MicroAd Developers Blog