Help us understand the problem. What are the problem?

この記事はJX通信社 Advent Calendar 2019 2日目の記事です。 昨日は、たっちさんの「Kubernetes Admission Webhookでリソース作成を自在にコントロールする」でした。 こんにちは、サーバーサイドエンジニアの @kimihiro_n です。 今回は長年動かしてた Scala のマイクロサービスのリビルドを行った話をしようと思います。 TL;DR 新しい言語を投入するのにマイクロサービスは便利 Scala で感じていた問題点を解消しつつ Go へ移行できた 消費メモリが大きく減って安定稼働できるようになった 予防線を貼っておきますと、Scala より Go のほうがいいよね、といった本旨ではありません。 Scala で書いたマイクロサービス 弊社のマイクロサービスの一つにカテゴリ分類専用のサービスが存在します。 カテゴリやキーワードを登録しておくとル
アプリケーションエンジニアの id:tanishiking24 です。2019年6月27日から29日にかけて開催されたScalaMatsuri2019にて、「いかにして我々は10年もののPerlプロダクトをScalaでリプレースしたか」というタイトルで登壇しました。 speakerdeck.com (イベントのレギュレーション上、発表資料は英語+日本語字幕で構成されていますが、トーク自体は日本語でした。) この発表では我々が運用しているWebサービスの一つであるはてなブックマークのScalaを用いたフルリニューアルプロジェクトについてお話しました。同じ時間帯に他にも様々な魅力的なトラックがあったにもかかわらず多くの人が発表を聞きに来てくださり、Twitterのハッシュタグで様々な感想をいただき、また発表後にも何人もの方が時間が足りず話しきれなかったデータ移行などについて質問しにきてください
本日7月1日にエムスリーにデータエンジニアとして入社しました。「入社っぽいモチーフと言えば桜だな」と思ったので、季節外れですがアイキャッチ画像に使いました。 なぜ入社(転職)ブログを書くのか?なぜこのような文章を書くかというと、自分が入社する時に考えていたことを記録して、言語化しておきたいからです。 今回この記事を書く個人的な目的をまとめると、以下のとおりです。 ・言語化しておくことで自分の考えを客観的に見ることができる ・言語化しておかないと当初やりたかったことや初心を忘れてしまう ・読んだ人が一人でも参考にしてくれたり、「いいね」してくれると嬉しい入社・転職など人生の中でも大きな決断だと思います。しかし、入社してから仕事を一生懸命やればやるほど、数ヶ月・数年後に「なんでこの会社に入ったんだっけ?」とか「どういう仕事をやりたかったんだろう?」というように当初考えてたこと・やりたかったこと
いかにして我々は10年もののPerlプロダクトをScalaでリプレースしたか はてなブックマークはサービス開始から10年以上が経ち、Perlで書かれたコードベースの肥大化・複雑化、アーキテクチャの老朽化によるメンテナンスコスト増大という課題を抱えていました。これらの課題への対処のため2015年にいちからシステムを作り直すプロジェクトがスタートし、最近このプロジェクトが完了しました!(※2019年3月現在は開発中) 作り直しに際して、すべてのコードベース・DBスキーマ・アーキテクチャなどを刷新し、コアアプリケーションの実装には堅牢なシステムの開発/運用に適しており社内での採用実績のあるScalaを採用しました。 このセッションでは、我々がどのようにしてレガシーなソフトウェアのリプレースプロジェクトを進めたか、Perlを得意とするエンジニアの多い環境でのScalaの採用、プロジェクトを通じて得
この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2018 の投稿記事です。 こんにちは。スタディサプリENGLSHでサーバーサイドとインフラを担当している松川です。 CleanArchitectureにEffを組み込むことによって、これまでモナドトランスフォーマーでは辛かった数種類以上のモナドを取り扱う処理をフラットに書けるようになったり、多くのメリットがあったので紹介させていだきます。 はじめに スタディサプリ ENGLISHのサーバーサイドは全てScalaで書かれており、CleanArchitectureを採用しています。 1つのサービスにおけるsbtプロジェクトの依存関係は以下のようになっています1)StreamAdapter,InternalAdapterは存在しないサービスもあります。。 基本的にはオブジェクトが主役な設計ですが、
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 先日、全ての開発者が学ぶべき5つの言語という翻訳記事を投稿させて頂いたのですが、「プログラミング力を伸ばす」という観点においては記事主の方のご意見に大きな異論はないものの、これからエンジニアを目指す初学者の方や経験の浅い方が「日本のWeb業界でキャリアを爆速で成長させるための最適な習得順序」としてはまた別の組み合わせが必要だと思いますので、この記事ではそれに関する私の考えを簡単に述べさせて頂きたいと思います。 (注:主にバックエンドエンジニアの方を対象としています) 結論 未経験から日本のWeb業界でキャリアを爆速で成長させるためにはR
Kotlinは、Javaより簡単&スマートに書けると人気の言語です。Android Studioでも正式採用され、現在は主にAndroidアプリ開発で利用されています。 本書は、Kotlinの基本について、8つのPartに分けてサンプルコードとともに詳しく解説しています。本書掲載のサンプルは、サポートページからダウンロード可能です。どんどん動かして試してみてください。 担当編集者からのコメント WINGSプロジェクト刊行のKindle電子書籍、9冊目です。 気になる技術を短時間で素早く学ぶ、『時間もお金も低コストに』をコンセプトとした「速習シリーズ」。 これまで「速習 React」「速習 ECMAScript 2018」「速習 webpack」「速習 Vue.js」「速習 TypeScript」など、おかげさまで、いずれもご好評いただいており、今回はシリーズ第8弾「速習 Kotlin」です
はじめに はじめまして。ニコニコ生放送でマイクロサービスチームのグループリーダーを務めています、 ビビる(@vivil@friends.nico) です。以前歌舞伎座.techでニコニコ生放送フロント レガシーシステムの改善の発表をさせていただきました。 ニコニコ生放送(以下「生放送」)ではバックエンド・フロントエンドのサーバーを建てる環境として、2016年からDocker Swarmを採用し始めています。ここではその際に得た知見等を書いていきます。 ご意見・ご質問等あればコメント・トゥート等でお声をおかけ下さい。 何故docker化を始めたの? マイクロサービス化の機運 生放送は肥大化したモノリシックなサービスが2つ並列運用されており、それぞれロジックを保有する見通しの悪い状態になっていました。 そこで、各種のロジックをマイクロサービスとして切り出すことで、サービス全体の見通しを良くする
最近AkkaやAlpakkaなどのドキュメントで使われているLightbend製のParadoxというドキュメンテーションツールを試してみました。 *1 github.com 使い方はドキュメントを見ればわかると思いますが、要点だけまとめておきます。 はじめの一歩 Paradoxはsbtプラグインとして実装されているのでまずはproject/plugins.sbtに以下を追記します。 addSbtPlugin("com.lightbend.paradox" % "sbt-paradox" % "0.2.12") build.sbtに以下の設定を追加します。 enablePlugins(ParadoxPlugin) paradoxTheme := Some(builtinParadoxTheme("generic")) ドキュメントはsrc/main/paradoxディレクトリ配下に作成しま
このドメインモデルに基づいて、まず第一に、このアーティクルでは、どのようにHibernate/JPAを使って、Scalaにおける Personエンティティ用の ジェネリックData Access Object (DAO) と具体的なDAOの実装方法を示す。その結果、 PersonDaoに、 CRUD操作が実行できるようになりる。例: val p1 = new Person(“Rod Johnson”) val p2 = dao.findByName(“Martin Odersky”) p1.link(p2) personDao.save(p1) Step 2 それからこのアーティクルは、Person エンティティを「リッチな」ドメインオブジェクトに変換するのに、何が必要なのかを要約する。このオブジェクトは、内部で NotificationServiceを使って、linkメソッドが呼ばれたと
以下を実行 cd helloworld mvn eclipse:eclipseコンパイルする mvn testリポジトリのパスをプロジェクトに追加 mvn -Declipse.workspace="C:\Documents and Settings\[ユーザ名]\workspace" eclipse:add-maven-repoEclipseを起動し、パッケージエクスプローラ上で、インポート>一般>既存プロジェクトをワークスペースへ>次へ>ルート・ディレクトリの選択>参照>workspace>helloworld>完了 で、インポートができる。 クラスパス変数M2_REPOを"C:\Documents and Settings\[ユーザ名]\.m2\repository"に設定し、プロジェクトをクリーンアップする。
はじめに Google App Engine(GAE)/Javaでは、Java仮想マシン上で動作する言語を利用することができます。例えば、JRubyやGroovyなどです。 Scalaも、コンパイルすることによりJava仮想マシン上で動作するクラスファイルを生成する言語ですので、当然、GAE/Java上で動作させることができます。 Scalaが動作するということは、ScalaでできているWebアプリケーションフレームワークであるLiftを元に作成されたアプリケーションを、GAE/Javaに載せることができるということです。 前後編で構成される本連載では、ScalaおよびLiftをGAE/Java上で動作させる方法を解説した後、サンプルアプリケーションでGoogleが提供するさまざまなAPIを利用した、GAEならではのアプリケーションを作成して、GAEでのアプリケーション作成のイメージをつか
Qcon Tokyo 2010 Scala + Lift による 超実用開発 Takafumi Miki @ PatentBureau.Co.,Ltd PatentBureau Co., Ltd. ご来場頂き ありがとうございます。 PatentBureau Co., Ltd. まずは、自己紹介 PatentBureau Co., Ltd. 自己紹介 • 三木 隆史 • 株式会社パテントビューロ所属 • twitter: kuma3_neko3 • インフラ、サーバーエンジニア • データベースエンジニア • アプリケーションエンジニア • 研究・開発部門マネージャー PatentBureau Co., Ltd. 「何でも屋さん」だね PatentBureau Co., Ltd. ・・・という事で PatentBur
Java仮想マシン上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 本連載ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 はじめに Java仮想マシン(以下JVM)上で動くオブジェクト指向+関数型言語として、Scala(スカラ)が最近注目を集めています。 Scalaで構築されたWebアプリケーションフレームワークはいくつかありますが、 本稿ではその中で比較的歴史のある(といっても2年程度ですが) フレームワークである、Lift(リフト)を紹介したいと思います。 対象読者 Javaは知っているが、Scalaも学んでみたいと思っている方 ScalaでのWebアプリケーション開発に興味がある方 必要な
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く