並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 4266件

新着順 人気順

scalaの検索結果1 - 40 件 / 4266件

  • RubyからScalaに乗り換えた15くらいの理由 - ヽ( ・∀・)ノくまくまー(2010-04-26)

    ● [Scala] RubyからScalaに乗り換えた15くらいの理由 [注意] この文章を読むと、既存のRubyコードをScalaでrewriteしたくなる、 Rubyコードで型チェックをやるのが鬱になる、Ruby案件でやる気が出なくなる、 などの幻覚や異常行動が報告されています。 現在関わっているプロジェクトや家族のことを常に意識し、 気を強く持って冷静に読むとよいでしょう。 「Scalaプログラミング入門」を読みはじめて、いきなり大きく頷いてしまった。 "コーディング時間の半分をテスト作成に費やさなければならなかった"(p.3) "Railsによって得られた生産性の向上は、テスト作成の作業に失われてしまいました"(p.3) まさにここ数年私が抱いてた漠然としたストレスの正体が、的確に文章となっていたからだ。そしてほどなく、「あ、この機能がRubyに欲しかった!」という驚きと共に Sc

    • 10年モノのサービスをアーキテクチャから再設計─はてなブックマークがScalaとDDDを使う理由|ハイクラス転職・求人情報サイト AMBI(アンビ)

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

        10年モノのサービスをアーキテクチャから再設計─はてなブックマークがScalaとDDDを使う理由|ハイクラス転職・求人情報サイト AMBI(アンビ)
      • Scala開眼

        1階受付:インストール等 / 1階案内版:コマンド / 2階:書き方 / 3階:文と式 / 4階:関数 / 5階:オブジェクト指向 / 6階:型 / 7階:注釈等 / 屋上:言語仕様要約 / 雲:scalaパッケージ概観 / 青空:その他の付属パッケージ概観 なお、以上の解説はJavaの文法とコマンドや標準ライブラリ等を一応知っていることを前提(現行のScalaはなおJavaライブラリへの依存度が高くScalaだけで完結できる状態では無い。なお、Scalaのコンパイラ自体はJava1.4用のコードも吐けるが、標準ライブラリが多く1.5を前提としている)とし、その違いだけをとりあえずは書き留めるものである。もっぱら文法やライブラリ参照用であることを目指しているので、例や特長等は次のリンクを参照されたい(なおただし、原著者たちの配慮にもかかわらず、それらの例は関数型言語に関する事前の概要的把握

        • PHPからScalaに乗り換えたチャットワークさん、その後どうですか?(前編) | HRナビ by リクルート

          本当にScala化できるんですか? 増井:今日は、チャットワークをPHPからScalaに切り替えるお話を伺うためにやって来ました。 山本:はい。 増井:僕がこの話を知ったのは、ちょうど2年ぐらい前に読んだブログのエントリだったんです。いきなり失礼なんですが、僕はこの話を知って、ぶっちゃけアホじゃないかと思ったんですよ。 山本:あはは(笑) 増井:基本的に開発言語やフレームワーク、方法論を同時に変えるって結構大きな変更ですよね? 山本:そう思います。 増井:それなのに、この決断を発表された当時、御社にはScalaエンジニアがいなかったそうじゃないですか。「本当に大丈夫なのかな?」と思って、気になってたんです。昨年春には「Scala採用を決めて一年たった、CTOの雑感」というエントリをポストされていましたが、さらに1年経った今はどんな状況なんですか? 山本:ひと言で申し上げると「絶賛移行中」と

            PHPからScalaに乗り換えたチャットワークさん、その後どうですか?(前編) | HRナビ by リクルート
          • Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」

            Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」

              Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
            • 刺激を求める技術者に捧げるScala講座---目次

              本連載では,次世代のエンタープライズ・プラットフォームを支える言語として,このところ最も注目を集めている言語「Scala」の魅力をお伝えしていきたいと思います。Scalaは,技術的にもかなり刺激的で,楽しい言語に仕上がっています。最初の一歩から刺激的な技術解説まで,幅広くScalaのおもしろさ,楽しさをお伝えしたいと思います。 第1回 なぜScalaなのか? 第2回 Scalaの基本的な文法 第3回 Scala言語を探検する(1) 第4回 Scala言語を探検する(2) 第5回 Scala言語を探検する(3)関数型言語としてのScala 第6回 Scala言語を探検する(4)Scalaの型システム 第7回 関数脳のつくり方 First Season 第8回 Scala DSLでできること 第9回 Scala DSL事始め(前編) 第10回 Scala DSL事始め(後編)

                刺激を求める技術者に捧げるScala講座---目次
              • Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア

                Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア Twitterは独自に開発した分散フレームワークの「Gizzard」をオープンソースとして公開しました。GizzardはScalaで書かれたJavaVM上で動作するミドルウェアで、PHPやRubyといったWebアプリケーションからの要求を自動的にデータベースに分散することで、大規模で可用性の高い分散データベースを容易に実現するためのものです。 Gizzard:フォルトトレラントな分散データベースを実現 The Twitter Engineering Blog: Introducing Gizzard, a framework for creating distributed datastores Twitterのブログにポストされた「Introducing Gizzard

                  Twitterが分散フレームワーク「Gizzard」公開! Scalaで書かれたShardingを実現するミドルウェア
                • Java使いをScalaに引き込むサンプル集 | mwSoft

                  前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 本記事では、ScalaとJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaはJavaの

                  • Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記

                    Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「

                      Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記
                    • 新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure

                      JJUG CCC 2017 Fallでの発表資料です。

                        新しいプログラミング言語の学び方 HTTPサーバーを作って学ぶ Java, Scala, Clojure
                      • 今からでも遅くない これから始めるScala(前編)

                        なぜ、いまScalaなのか? TwitterがScalaを利用しているのは有名ですが、他にも位置情報を利用したfoursquareはScalaで構築されたLiftというWebフレームワークを利用していますし、GTDツールとして有名なRemember The MilkもScalaの利用を検討しているようです。 Scalaは、Java Virtual Machine(以下JVM)上で動くオブジェクト指向+関数型言語です。簡潔で柔軟な記述が可能であり、マルチコアを意識したライブラリがあり、JVMでのスケールメリットを享受できることが、これらの企業で採用に踏み切った理由であると考えられます。 Scalaは、非常にバランスの取れたプログラミング言語です。本連載では、Scalaの基本的な文法を解説しながら、オブジェクト指向と関数型言語を組み合わせたプログラミングスタイルについて、解説したいと思います。

                          今からでも遅くない これから始めるScala(前編)
                        • Effective Scala

                          Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

                            Effective Scala
                          • Scala採用を決めて一年たった、CTOの雑感 | チャットワーククリエーターズブログ

                            こんにちは!ChatWork CTOの山本です。 ChatWorkでは一年前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。 Scala採用までの経緯を三行で: カウボーイ開発で約4年間積み上げてきたPHPのシステムがもはや限界ゼロベースでつくりなおそうと開発合宿を開催。満場一致でScalaに決定!しかし社内にScalaを書ける人は誰もいないのであった・・(どうすんの・・?)参考記事: チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。 というわけで勢いのままScala採用を決めたはいいものの、ここからどうしよう・・・という状態でした。 そこから約一年。ChatWorkのScala開発はどうなってるの?とご質問いただく機会も増えましたので、現在の状況含め、Scalaってど

                              Scala採用を決めて一年たった、CTOの雑感 | チャットワーククリエーターズブログ
                            • Scalaコードでわかった気になるDDD | GREE Engineering

                              みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。本エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆

                                Scalaコードでわかった気になるDDD | GREE Engineering
                              • Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編

                                Scalaとは Scalaは、2003年にJavac(コンパイラ)やJavaのGenericsの設計/開発貢献者であるMartin Odersky氏(スイス・ローザンヌ工科大学教授)によって、開発が開始された比較的新しいプログラミング言語です。Javaは実用言語として幅広いシステムで使用されてきましたが、下位互換性を保つという要請の中、言語としての機能強化がなかなか進まないといった限界も見えてきています。そのような現状もあることから、ScalaはJavaの後継として実用的な言語を目指して開発されています。 Scala最大の特徴は、Javaの良さを最大限継承しつつ、スクリプト言語や関数型言語の良いところも吸収し、先進的な機能/文法を取り入れている点です。また、今後のハードウェアのマルチコア化を見据え、簡易に並列処理プログラミングを行うことができるライブラリが付属しています。 Scalaのメリ

                                  Javaの限界を超えて実用化を目指す 新開発言語「Scala」のメリットとは~前編
                                • Scala School

                                  Other Languages: 한국어 Русский 简体中文 About Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers. Scala is a relatively new language, but draws on many familiar concepts. Thus, these lectures assumed the audience knew the concepts and showed how to use them in Scala. We found this an effective way of getting new engineers up to spe

                                  • バカ向け言語 Scala - だらだらしてたいなぁ

                                    なぜScalaがバカ向けなのか。 ぼくの経験を元に、バカ向け言語と非バカ向け言語を比較しながら見て行きましょう 非バカ向け言語 C プログラマーとして最初に携わったのがC言語です。 それは以下のようなものでした。 何十ものファイルにまたがるグローバル変数 緻密な制御が必要であるにも関わらず、無秩序に取得/開放が行われているメモリー管理 このような複雑な構造を、ぼくのようなポケコン並の処理能力しか持たないバカに把握可能でしょうか。もちろん不可能です そこで、次のようなコーディングを心がけました。 グローバル変数を使わず、関数に引数を定義して渡す メモリーの取得/解放を同一ファイル内に限定する これで、メモリーや変数参照の影響範囲を限定し、ぼくのようなバカでも理解できるようになります。 ですが、わざわざそんな事をやらなくても全てを理解できるエリート様達は、 「なぜ引数で渡すんだ。グローバル変数

                                      バカ向け言語 Scala - だらだらしてたいなぁ
                                    • TwitterはScalaを捨ててNode.jsに移ったそうです。 - 望月いちろうのREADME.md

                                      2017 - 02 - 24 TwitterはScalaを捨ててNode.jsに移ったそうです。 Node.js Scala Tweet 世界で最も大きなトラフィックを捌いているサービスの1つであるTwitterはそのバックエンドをScalaで独自開発したフレームワーク(Finagle)を採用していましたが、ここ数ヶ月の間にこれをNode.js(Express)に置き換えたそうです。 以下はTwitterのエンジニアであるNicolas Gallagherさんのツィートより github.com Today we moved all of Twitter's mobile web traffic (that's like, a lot) to our new web stack – Node.js, Express, React PWA. — Nicolas (@necolas) Febr

                                        TwitterはScalaを捨ててNode.jsに移ったそうです。 - 望月いちろうのREADME.md
                                      • C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?

                                        ■概要 以前、C#でのデータ処理について解説した。今回は、同様のデータ処理を、C#以外のプログラミング言語ではどうしているのか、(C#も含めて)以下の5つの言語を比較しながら説明していく。 C# Scala Python Ruby F# 結果としてできることは似ているのだが、その内部的な実装方法は言語ごとにさまざまである。 ■データ処理のおさらい 概念的には、「データ処理」というのは、Figure 1に典型例を示すように、条件選択や変換など、小さな処理単位に分けて、それをつないでいく形を取る。

                                          C#/Scala/Python/Ruby/F#でデータ処理はどう違うのか?
                                        • チャットワークのScala移行と大規模メッセージDB再構築、本当にできたんですね!(前編) | HRナビ by リクルート

                                          2016年8月、トレタの増井雄一郎さん(「IT芸人」「フログラマー」で検索!)はPHPからScalaへの移行を表明していたChatWork CTOの山本正喜さんに「本当にScala化できるんですか?」と直球で聞きました(「PHPからScalaに乗り換えたチャットワークさん、その後どうですか?(前編)」)。そして2017年2月。「移行できたら、ぜひもう一回来てください」との誘いを受けて、再び増井さんがチャットワークにやってきました! 増井 Scala化、おめでとうございます! 山本 ありがとうございます。 増井 前回も聞きましたが、読んでない方もいるでしょうから、もう一度聞かせてください。Scalaを入れようと思った時期はいつなんでしょうか。 山本 そのあたりはBlog(「チャットワークがScalaを採用する理由、これからのチャレンジ。」)に書いたんですが、2年半前──合宿をしてScala化

                                            チャットワークのScala移行と大規模メッセージDB再構築、本当にできたんですね!(前編) | HRナビ by リクルート
                                          • Play Framework - Build Modern & Scalable Web Apps with Java and Scala

                                            Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Pekko (Play 3) and Akka (Play 2), Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications. Developer friendly. Make your changes and simply hit refresh! All you need is a browser and a tex

                                            • Scala.js | 天下一AltJS武闘会

                                              あなたは、Javascript で開発をしようと思って一歩を踏み出したけれど、 まだできていないという状況ではありませんか? もしかして、 Scala は知っているけど JavaScript は使いたくない JavaScript は使っているけどメンテナンスがしんどい 型...型... ・・・このような悩みをお持ちではないでしょうか? このウェブサイトは、これらのお悩みをお持ちのあなたのために作りました。 Scala を JavaScript に変換するツールがあったら、今すぐ欲しい!とあなたがお思いなら、 この先を読む必要はありません。 こちらからお申し込みいただき、このサイトを読む時間を実装にあててください。 さて、 Scala は知っているけど JavaScript は使いたくない JavaScript は使っているけどメンテナンスがしんどい 型...型... このような理由で実装が

                                                Scala.js | 天下一AltJS武闘会
                                              • Scalaに関する誤解と事実を語る - kmizuの日記

                                                TL;DR 世間のScalaに関するイメージは、昔のままであることが多い 昔のままどころか、最初から間違ったイメージを持たれていることも多い 実際には、既に解決されている問題は多々あるし、改善に向かっていることも多い プロジェクト管理の問題を言語に押し付けているケースもある はじめに 自分が最初にScalaに触れたのが2005年(Scala 1からカウントした場合)、あるいは2007年(Scala 2以降からカウントした場合)と、Scalaとの付き合いも結構長くなってきましたが、その間に Typesafe社(現Lightbend社)の設立 実質標準ビルドツールとしてのsbtの確立 ライブラリのバイナリ後方互換性に関するポリシーの策定 公式ScalaイベントScala Daysのはじまり Play 2 Frameworkの登場 Scala Center発足 その他色々 がありました。この間、

                                                  Scalaに関する誤解と事実を語る - kmizuの日記
                                                • 「Scala言語らしさ」を理解しよう! オブジェクト指向と関数型プログラミングの融合とは?|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                  「Scala言語らしさ」を理解しよう! オブジェクト指向と関数型プログラミングの融合とは? プログラミング言語Scalaの設計思想にあるという、オブジェクト指向と関数型プログラミングの融合(fusion)という理想と、それを掲げつつも現実主義的な点について、水島宏太(kmizu)さんが解説します。 kmizuと申します。株式会社ドワンゴでエンジニアを務めています。 最近では、毎年の新卒エンジニア向けScala研修の講師や、N予備校 プログラミングコースの一部教材のレビューといった教育、および研究等の面でも活動しています。 ドワンゴでは、私が入社した時点でScalaがかなり採用されており、社内にScalaをより深く広めることも職務の一環でした。私は2007年くらいの、Scalaがまだほとんど注目されていなかった頃からScalaを触り始めており、その縁で新卒エンジニア向けのScala研修資料作

                                                    「Scala言語らしさ」を理解しよう! オブジェクト指向と関数型プログラミングの融合とは?|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                  • ScalaによるWebアプリケーションフレームワーク「Lift」とは

                                                    Java仮想マシン上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 本連載ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 はじめに Java仮想マシン(以下JVM)上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。 Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 本稿ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な

                                                      ScalaによるWebアプリケーションフレームワーク「Lift」とは
                                                    • The Scala Programming Language

                                                      val fruits = List("apple", "banana", "avocado", "papaya") val countsToFruits = // count how many 'a' in each fruit fruits.groupBy(fruit => fruit.count(_ == 'a')) for (count, fruits) <- countsToFruits do println(s"with 'a' × $count = $fruits") // prints: with 'a' × 1 = List(apple) // prints: with 'a' × 2 = List(avocado) // prints: with 'a' × 3 = List(banana, papaya)

                                                        The Scala Programming Language
                                                      • オープンソースのWebIDE「JupyterLab」がベータ公開、Python/R/Scalaなどに対応。データ解析環境から統合開発環境へと進化

                                                        Notebookの機能にターミナル、ファイルブラウザなどを統合 そのJupyter Notebookのメジャーバージョンアップ版として開発されているJupyterLabは、Notebookの機能だけでなく、ターミナル画面の機能、ファイルブラウザ、テキストエディタなどの機能が統合され、それらをタブによって同時にいくつも開くことができるようになり、統合開発環境と呼ぶべきツールへと進化しました。 拡張機能によって機能をあとから追加することも可能(JupyterLabの基本機能であるNotebookやファイルブラウザ、ターミナルも拡張機能として実装されていると説明されています)。すでに、JSONやCSVの読み込み機能、JSONフォーマットで地図情報を記述するgeoJSONによる地図表示などが用意されています。 JupyterLabは今年後半に正式版となるバージョン1.0がリリース予定。また、現バー

                                                          オープンソースのWebIDE「JupyterLab」がベータ公開、Python/R/Scalaなどに対応。データ解析環境から統合開発環境へと進化
                                                        • 今年はScalaもSwiftも! はてなサマーインターン2015を元に「はてな教科書」を最新化しました - Hatena Developer Blog

                                                          こんにちは、アプリケーションエンジニアの id:pokutuna です。 「はてな教科書」は、はてなで Web 開発に携わるエンジニアのために作られた1週間で Web アプリケーション開発の基本を身につけるための教科書です。はてなサマーインターンシップや、入社時研修に利用されています。2012年から GitHub 上で公開しており、どなたでも読むことができます。 はてなでは継続的に教科書を更新していますが、特に毎年のインターンの講義内容をフィードバックしています。今回の更新では、新しくはじまったScalaとSwiftのコースで利用した教科書を追加しました。アプリケーションの学習や研修題材としてどうぞご利用ください。 Scala の教科書を追加しました 今年のインターンでは Mackerel の開発に取り組む 「クラウドサーバ管理システムコース」コースが開催されました。去年までのインターンで

                                                            今年はScalaもSwiftも! はてなサマーインターン2015を元に「はてな教科書」を最新化しました - Hatena Developer Blog
                                                          • Scala使用歴5年のプログラマが、この言語とその環境に関する神話を解き明かす | POSTD

                                                            (注:2016/1/21、頂いたフィードバックをもとに記事を修正いたしました。) 『 Programming in Scala (Scalaでプログラミング) 』の初版を読み始めた(でも読み終えていない)5年前からJavaの代わりにScalaを使うようになりました。最初はテストの時に使用していましたが、すぐにちょっとしたユーティリティクラスでも使用するようになり、気付いたらプロジェクト全てで使用するようになっていました。 Scalaに対する不満は多く存在しますが、この記事は違います。これは非難するものではなく、むしろ称賛するものです。 Scalaに興味ある開発者や聞いたことがあっても詳しく見たことがない人、「スムーズなプログラミングの妨げになる」と思い使用を先送りしていた人のために書きました。もちろんScalaファンに読んでもらうのも、他の人にも紹介してもらうのも大歓迎です。 この記事は3

                                                              Scala使用歴5年のプログラマが、この言語とその環境に関する神話を解き明かす | POSTD
                                                            • Scala で実装した社内ナレッジ共有ツールを OSS にして公開しました

                                                              社内の事業部・プロジェクトを跨いで、社員間で技術やノウハウの共有をもっともっと盛んにしたいーそんな社員の声から生まれ、社内で運用中のツールをこの度 OSS にして公開しました。 公開先 GitHub 上に公開しています。 atware/sharedocs README にデモサイトや Heroku ボタンを記載していますので、すぐに試すこともできます。 Sharedocs Markdown で記事が投稿でき、コメントや Like やストックができる、言ってしまうとどこかで聞いたことがある某有名サービスのような情報共有ツールです。 投稿画面 絵文字も入力できますし、さらにはシーケンス図やフローチャートも Markdown で描けます。 レスポンシブにしてあるのでスマホやタブレットでも使えます。 つくるに至った背景など 背景 弊社には以前から、 他のプロジェクトでどんな技術が使われているのかよ

                                                                Scala で実装した社内ナレッジ共有ツールを OSS にして公開しました
                                                              • Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita

                                                                DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン

                                                                  Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - Qiita
                                                                • はてなブックマーク in Scala

                                                                  2015-08-01 Scala関西 Summit 2015 発表資料 (関係モナドについて発表後に公開したコードなどへのリンクのスライドを追加)

                                                                    はてなブックマーク in Scala
                                                                  • Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani

                                                                    AndroidのためのJava/Kotlinはスコープ外とします まず断っておくと、俺はScalaが好きだ。 自分が作ったScalaプロダクトは二個現存している。うち一つはまだまだ自分が開発している。というか今は会社を作って1人でプロダクトを作っている身なのだが、それもScala3+ZIO2でゴリゴリ書いている。 でも残念、もうScalaというかJVM言語がオススメできません。TypeScriptかGoかRustをオススメします。 どういうこと?まずこの記事を見ていただくのが一番分かりやすい。 https://aws.amazon.com/jp/builders-flash/202310/java-serverless-saas-backend/?awsf.filter-name=*all 素晴らしいエントリーだ。読みに行かないせっかちな方のために概要を紹介する JavaプロダクトをAWS

                                                                      Scalaはもうだめなのか?…というかJVM言語がもうだめじゃん?|sugitani
                                                                    • 15分で始めるScala - | Scala Cookbook

                                                                      これはScalaを使った開発の雰囲気を感じてもらうための文章です。 ここでできるようになること Scalaプロジェクトの作成 簡単なScalaコードの作成 テストコードの実行 ログの表示 コードの実行時間の計測 システムにインストールできる形のパッケージを作成 準備 UNIX環境(Linux、 Mac OS X、あるいは Cygwin をWindowsでセットアップする) javaコマンドが使えること (環境変数PATHの設定など) その他、curl, GNU makeなどのコマンド インターネット接続 (ここから15分です) Scalaプロジェクトの作成 Scalaプロジェクトの必要最低限のひな形をGitHub上にscala-minとして作成してあります。以下のようにダウンロードしながら展開します。 $ mkdir myproject $ cd myproject $ curl -L h

                                                                      • Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD

                                                                        ScalaとJava 8に関する プレゼンテーション が、他の似た内容のものよりも多くリツイートされ、大変うれしく思います。だから、こうして皆さんにブログでも書いてお伝えすることにしました。ScalaとJavaとの違いと、それぞれの重要性についてお話しします。両者は相互にイノベーションしています。言語間でお互いに取り入れています。では、Javaが使える場合であっても、Scalaを学ぶ必要があるのでしょうか? もちろんです。より多くの言語を知れば知るほど、あなたはさらにプロフェッショナルになっていきます。 もし、ScalaエンジニアにScalaとJavaとの基本的な違いについて尋ねたとしても、おそらくその人はラムダ関数とトレイトに関する違いを全て言うことはないでしょう。代わりに次のような例を出すはずです。 public class Person { private String firstN

                                                                          Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD
                                                                        • マイクロサービスとDDDをGo言語とScala+Akkaで比較したらEventSourcingの話にもなって面白かったまとめ - yoskhdia’s diary

                                                                          Reactive Messaging Patterns読書会のなかで、「マイクロサービスとAkkaとGo」な面白い話題が出たので代表でまとめる試みエントリです。(結構、色々な話題に飛んでいるので難度高い。) まとめ方としては、会話ログを転記して、最後にまとめる形をとっています。また、議論と私の考えが混ざらないように所感は分けておきます。 ddd-cqrs-es.connpass.com TL;DR 要素技術(どんな言語使うとか、どんなアーキテクチャにするとか)の前に、組織やプロダクトの性格を考えて戦略を決めましょう。 そして、その中で最適と思われる戦術をとれるような要素技術を採用しましょう。 Akka良いよ。 ログ(一部抜粋) Slackからの引用のためテキストベースです。 事の始まりは、荒木さん(以下、 @applideveloper )の発言でした。 (この記事絡みですね。 集合知で各

                                                                            マイクロサービスとDDDをGo言語とScala+Akkaで比較したらEventSourcingの話にもなって面白かったまとめ - yoskhdia’s diary
                                                                          • ScalaでウェブAPIを書いている人が設計や実装やその他について話そうか

                                                                            Input object ではじめる入力値検証/input-value-validation-using-input-object

                                                                              ScalaでウェブAPIを書いている人が設計や実装やその他について話そうか
                                                                            • 新卒3年目のHaskell好きのScala使いが、はてなでテックリードになるまでの道|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                                              新卒3年目のHaskell好きのScala使いが、はてなでテックリードになるまでの道 「若手エンジニア、どんな活躍してますか?」の第7回目は、はてなが手がける、サーバー監視サービス「Mackerel」の開発エンジニアにお話を聞きました。リモートでありながら、抜群の存在感を発揮する先輩の背中を、超優秀な後輩はいかにして追いかけたのでしょうか。 はてなといえば、ブログサービス、ソーシャルブックマークサービスを展開する企業として知られていますが、サーバー監視サービス「Mackerel」も主力プロダクトのひとつ。今回お話を伺ったお2人も、Mackerelの開発メンバーです。そのうちの一人、2017年4月にMackerelのテックリードになったばかりの濵田さんは2015年入社の若手。愛知からリモートで働く、前テックリードの辻川さんの背中を、ディスプレイ越しに見ながら実績を積み上げてきました。 はてな

                                                                                新卒3年目のHaskell好きのScala使いが、はてなでテックリードになるまでの道|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                                              • ドワンゴScala勉強会で学んだ、ハイブリッド言語「Scala」の魅力 | Lab by engineering@dwango.jp

                                                                                こんにちは初めましてー。2011年度新卒の田中です。 12月から急に寒くなってきましたね。 11月が暖かかったからといって油断していませんか? 私は完全に油断していました。まだ冬服を買っていません。 さて、まだ暖かかった11月、ドワンゴでScala勉強会という熱いイベントがありました。 私は最近Scalaを勉強し始めたのですが、この勉強会で、Scalaの魅力的な機能をたくさん知ることができました。 今回はScala勉強会から持ち帰った情報や今まで私が勉強してきたことを元に、Scalaのどこが魅力的なのかを記事をしていこうと思います。 それではよろしくお願いいたします。 対象読者 Javaを書いたことがある方 Scalaを知りたい方 Scalaを始めたばかりの方 Scala? ドワンゴはエンジニア同士の技術交流が盛んな会社で、プログラミング言語を中心に日々、情報交換、議論が行われています。

                                                                                • Effective Scala

                                                                                  Effective Scala Marius Eriksen, Twitter Inc. marius@twitter.com (@marius) [translated by Yuta Okamoto (@okapies) and Satoshi Kobayashi (@scova0731)] Table of Contents 序章 書式: ホワイトスペース, 命名, インポート, 中カッコ, パターンマッチ, コメント 型とジェネリクス: 戻り型アノテーション, 変位, 型エイリアス, 暗黙 コレクション: 階層, 使う, スタイル, 性能, Java コレクション 並行性: Future, コレクション 制御構造: 再帰, Return, forループと内包, require と assert 関数型プログラミング: 代数的データ型としてのケースクラス, Option, パターンマ

                                                                                    Effective Scala