DIを使わない状態ではUserRepositoryというインターフェースが定義されているのにもかかわらず、UserServiceはUserRepositoryImplの参照も持っていました。 これではせっかくインターフェースを分離した意味がありません。 UserServiceがUserRepositoryインターフェースだけを参照(依存)するようにすれば、具体的な実装であるUserRepositoryImplの変更に影響されることはありません。 この問題を解決するのがDIの目的です。 それではDIのインジェクタを加えて、上記のクラス図を修正しましょう。 謎のインジェクタの登場によりUserServiceからUserRepositoryImplへの参照がなくなりました。 おそらくインジェクタは何らかの手段でサービスであるUserRepositoryImpl(Dependency)をクライアン
モデレーター紹介 メルペイ プロダクトマネージャー Mizuki Tanno NTTアクセス網研究所にてロボットの研究開発に従事し、その後バーチャレクス・コンサルティング、サイボウズ、ビズリーチを経て2018年にメルペイ入社。インターネットサービスのプロダクトマネジメントに10年以上携わる。「プロダクトマネージャーカンファレンス」の開催など、日本におけるプロダクトマネジメントの普及活動も行っている。 スピーカー紹介 メルペイ プロダクトマネージャー Megumi Tanabe 2007年から6年間NTTデータでCRMのPMとSEを経験後、企画営業担当。DeNAではソーシャルゲームのPOとしてモバゲーで1位のDAUに。スマートエデュケーションに転職し、知育アプリのPOとなりGoogleベストアプリ受賞。その後、ストリートアカデミーでスキルシェアサービスをプロデューサーを経験し、2015年メル
インターネット業界でもプロダクトマネージャーという存在への注目が高まっている。グッドパッチ、DeNA Games Tokyo、freee、FiNC、Increments各社が考えるプロダクトマネージャーの役割、そして定義とは?ヒットプロダクトを生み出す人物像に迫る! 優秀なプロダクトマネージャーの条件とは? 多くのプロダクトが生まれては消えていくなか、大きなヒットを記録するプロダクトには、ある共通点があるようだ。それは、優秀なプロダクトマネージャーがプロジェクトを指揮していたということ。 株式会社FiNCにて開催されたイベント『白熱プロダクト教室』では、これまで数々のヒットプロダクトを生み出してきた登壇者たちが、優秀なプロダクトマネージャーの資質や条件、成功するプロダクトを作るためのチームビルディングについて語った。 [登壇者] ●株式会社グッドパッチ 代表取締役社長・土屋尚史氏 ●株式会
日々、スタートアップの方とお話をさせて頂く中で、Product/Market Fit(以降、PMF)の話を聞かない日は無い。シード~アーリーステージの投資家としても、次のファイナンスを見据えるとPMFをいかにうまく持っていくか、価値提供していくか、は頭を悩ませる大きなテーマの1つだ。 PMFの方法論に関しては、素晴らしい先達の方々がまとめられている(例えばこちら)ので深くは触れないが、ここではPMFに関するUSスタートアップ業界の賢人の言葉に触れつつ、PMFを進める上で覚えておくべき6つの学びについてまとめておきたい。 Andreessenの言葉を借りると、Product/Market Fit(PMF)は2つのピースから成り立つ:「市場を満足させるプロダクト」と「正しい市場(=Good market)」。良く起こりがちな間違いとして、前者の「市場を満足させるプロダクト」に集中し過ぎることで
Mojaveのダイナミックデスクトップでは時刻によって壁紙が変化する。 これを用いてミクさんが部屋の中を歩きまわる壁紙を作成した。 (livetune feat. 初音ミク「Redial」Music Video - YouTubeより) 🖥ダイナミックデスクトップ macOS Mojaveの紹介ページに記載されているとおり、Mojaveでは時間の経過に応じて壁紙が変化する。 WWDCのキーノートでも、生活にあわせて変化する壁紙のデモがあった。 🛠仕組み ダイナミックデスクトップ用の壁紙は他の壁紙と同様 /Library/Desktop Pictures に配置されている。 異様にファイルサイズがでかい。 プレビューで開くと16枚の画像が確認できる。HEIFでは一つのファイルに複数の画像をまとめられるので、その機能を利用している。 それに加えてメタデータに時刻と画像の対応、より正確には太
Java 11正式版がリリース、本バージョンからOracle JDKのサポートは有償に。OpenJDKで無償の長期サポート提供は現時点で期待薄 Java 11正式版がリリースされました。 Java 11は2017年9月から始まった6カ月ごとのJavaバージョンアップサイクルからちょうど1年となるバージョンであり、また2014年3月に登場したJava 8以来、4年半ぶりに長期サポート(LTS:Long Term Support)対象となるバージョンでもあります。 JDK 11 General Available Release is Out! #OpenJDK #JDK11 Download: https://t.co/GxeXcyGUiv Release Notes: https://t.co/h5tqx7d9U5 pic.twitter.com/XByIzINXCj — Java (@j
macOS Mojaveにユーザーの情報を流出させてしまう未解決の脆弱性が見つかったとして、セキュリティ研究者がデモ映像を公開した。 米Appleが9月24日に公開したmacOSの新バージョン「Mojave」(10.14)について、ユーザーの情報を流出させてしまう未解決の脆弱性が見つかったとして、著名セキュリティ研究者のパトリック・ウォードル氏がデモ映像を公開した。 Appleは同日公開したセキュリティ情報で、Mojaveでは8件の脆弱性を修正したことを明らかにしているが、この中にウォードル氏の指摘する脆弱性は含まれていない。 ウォードル氏がVimeoに掲載したデモ映像では、脆弱性を突いてユーザーのアドレス帳の場所を突き止め、プライバシーアクセス制限をかわして、アドレス帳の全内容をデスクトップにコピーすることに成功したと報告。Appleに連絡しようとしたが、macOSの脆弱性情報提供を募る
両者の特徴についてはOur Keycaps - ErgoDox EZにて説明されています。以下に、両者の特徴を引用します。 Blankキーキャップ Blankについては次のように説明されています。 ErgoDox EZ Blank DCS keycaps The professional name for these keycaps is DCS, and they are made by Signature Plastics. There are a few things you should know about them: They are sculptured, which means each row of keys is differently shaped. If you carefully look at the image above, you will see this
以前以下のようなDottyに関する記事を書きました. amaya382.hatenablog.jp それから暫く経ち, 多くの更新が入ったため新しくまとめました. 公式ドキュメントだけでなくあちこちにちらばった情報を集めています. 過去記事と同じくあくまで真新しい機能のみに注目し, 理論的な部分や実装については深掘りしません. 概要のみなので, 個々の詳細は各見出しのリンク先を御覧ください. Dottyとは Dependent Object Types (DOT) に基づいた新しいScalaコンパイラです. Scala3系に相当します. DOT計算理論の詳細は省きます (まとめるほど理解できていないとも言う…). 現行のコンパイラと比べ, コンパイラサイズの減少・コンパイル速度向上・様々な機能追加の他, コンパイラ自体の開発安定性も増すパワフルなアップグレードが期待できます. 現行のSca
継続モナドを使ってPlay FrameworkのActionを作るという話をします。 Play FrameworkはScalaのWebアプリケーションフレームワークであり、Actionはそのコントローラー部分になります。 この記事を読むにあたって継続モナドの知識は前提としませんが、 ある程度のモナドの知識(Scalaのfor構文の使い方、ScalaのモナドがflatMapメソッドで合成できることなど) Play Frameworkの使い方(PlayのActionがどのようなものであるかなど) などの知識は前提とし、説明を省略させていただきます。 話の流れとしては以下のようになります。 コントローラーで継続モナドを使いたい動機 継続モナドとは? なぜコントローラーで継続モナドを使うと便利なのか? 継続モナドとFutureを組み合わせることでエラー処理を整理する 継続モナドを使ったAction
Rules of Machine Learning: Stay organized with collections Save and categorize content based on your preferences. Best Practices for ML Engineering Martin Zinkevich This document is intended to help those with a basic knowledge of machine learning get the benefit of Google's best practices in machine learning. It presents a style for machine learning, similar to the Google C++ Style Guide and othe
モナドは「アクション」を表す抽象的な構造である。モナドは、Haskellにさまざまな概念に対する記述能力をもたらす。 モナドの基礎 return :: a -> m a: 純粋な値をモナドで包む。 m >>= f :: m a -> (a -> m b) -> m b: モナドmに包まれた値をfに渡し、その結果として現れたモナドを結合する。 固有アクション: それぞれのモナドに固有の方法でモナドを生み出す。 実行: モナドに包まれた値を、より根源的な形に還元する。 モナド則 モナドに以下の三つの制約を課すことによって、最低限度の記述能力を保証している。 return a >>= k == k a m >>= return == m m >>= (\x -> k x >>= h) == (m >>= k) >>= h より強い制約は、より強い力を生み出す。 モナドの分類 モナドは、以下の6つ
もともと Selenium 2.0 で導入された WebDriver ですが、単に 「WebDriver」 と言ってもいろいろなものを指すことがあり *1、WebDriver を初めて使おうとする人にはややこしい状況だと感じています。 (私は数か月前に WebDriver を使おうとして混乱しました。) というわけなので、私が調べた 「WebDriver とは何か」 を簡単にまとめておきます。 WebDriver とは何か WebDriver とは、ユーザーエージェント (web ブラウザ) を外部のソフトウェアから操作したり情報を取得したりできるようにするためのものです。 テストの自動実行などに便利ですね。 W3C WebDriver と Selenium WebDriver 冒頭で述べた通り、Selenium 2.0 の目玉機能として導入された WebDriver なのですが、現在は
技術書典5に向けて、執筆環境の整備を行なっています。前回の技術書典4では、最終的にGoogleドキュメントで執筆しました。 前回の技術書典4の模様は、過去のブログ記事で綴っておりますので、もし宜しければご覧ください。 www.konosumi.net さて、今回は、GitBookかRe:VIEWを使おうと決めていました。そこで、実際に両方で執筆をしてみたのですが、比較した結果Re:VIEWで書くことに決めました。 その際のRe:Viewの環境構築手順を共有したいと思います。最初に言っておきますが、Re:VIEWの執筆環境の構築は、物凄く簡単です。 必要なモノはDockerだけである 私は、今回の執筆にはDockerを活用することにしました。なお、Docker for Macのインストールは、HomeBrew経由が最もお手軽です。 # HomeBrewのインストール(入ってない人だけ) /u
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く