一休.com宿泊サイトのE2Eテスト事情をギッリギリまで話しました。このスライドを見た方は一休のエンジニアより一休のE2Eに詳しくなると自負しております。
![一休.comのE2Eテスト事情 ~ギリギリ話せるところまで話します~ /cybozu_ikyu_e2e](https://cdn-ak-scissors.b.st-hatena.com/image/square/95c693db6007483f1e5c92afbcb8a5f28add7080/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F8c20a61b4c8f442588c8733e1c3d6c52%2Fslide_0.jpg%3F6164884)
一休.com宿泊サイトのE2Eテスト事情をギッリギリまで話しました。このスライドを見た方は一休のエンジニアより一休のE2Eに詳しくなると自負しております。
テクノロジーの祭典「The Consumer Electronics Show (CES)」は荒涼としたネバダ州の砂漠の街・ラスベガスで毎年開催される。喧噪、画面、説明するスタッフ、自動車、ドローン、ガチャガチャ音を立てるロボットが所狭しと展示されているコンベンションセンターに、17万人もの来客が詰めかける。その中にGoogleのCEOであるスンダー・ピチャイはいた。 ピチャイは43歳。長身。やせ形で、服装はカジュアルなことが多い。今日はVネックのセーターを襟付きシャツの上に着て、ジーンズを履き、四角いフレームのめがねをかけている。少し白髪交じりの髭は、手入れされている。ぱっと見た感じ、その他大勢のCESの来場者たちと変わらない。モーション・シミュレータに乗り、ホール中のお祭り騒ぎの喧噪のなかで自分の声が届くように調整する。彼にとってはスリリングなことだ。このモーション・シミュレータでは2
ひとつの日常 この間、仕事でちょっとしたハイブリッドアプリ(ネイティブアプリのWebViewの上で動くWebアプリ、とここでは定義しておく)をリリースした。 そのアプリにはタブがあって、(当たり前だが)タブでコンテンツが切り替わる。 リリースして3日くらい経って、企画の人から「なんか、ここのタブ、反応悪くない?」という話が来た。たしかにタブに触れても、すぐには反応しなくて1~2秒経ってからタブが切り替わる。しかも、切り替えたタブのコンテンツが表示されるのにも1~2秒かかっている、うへー... 改善するぞ! ということは、クライアントの開発をおこなっていると、ちょくちょくあるのではなかろうか。意識、あるいは無意識におこなっている改善の手順について、先の問題の改善に至るまでの具体的は話、ツールも含めながら書く。 計測する 「計測するまでは速度のための調整をしてはならない」という有名な格言がある
はじめに 先日 4/13 六本木ヒルズの Google Inc 東京オフィスでTensorFlow勉強会の三回目が開催されました!本記事はそのレポート記事となります。 Machine Intelligence at Google Scale: Vision/Speech API, TensorFlow and Cloud Machine Learning Google Developer クラウドデベロッパー アドボケイト 佐藤一憲氏 新しいAPI Cloud vision API Cloud speech API Tensorflow playground Inputと学習器のプロパティを設定できる、またニューラルネットのレイヤも設定できる Cloud machine learning Tensorflowで定義した分類のグラフをFull managedで分散学習してくれる Destri
先週書いた10年のツケを支払ったフロント界隈におけるJavaScript開発環境(2016年4月現在)。という記事がまずまずの反響を得たのですが、僕の予想とは異なり、「こんなに多くのツールやフレームワークを必要とする現状はおかしい」といった、状況批判の意見が多く集まりました。 Mediumなど海外メディアでは、もはやこの種のツールを組み合わせたフロントエンド開発が当たり前として受け入れらており、この半年間ほどは「実際にどの組み合わせがベストか」という議論が行われていました。そして、そういった議論もようやく落ち着きを見せ、おおよそ僕が書いたような組み合わせに帰結しつつあります。 そのため、まさか「フロントは変化が激し過ぎる」とか「保守が大変そう」などといったような、1年くらい前に言われていた意見が、いまだに多くを占めるとは、まったく予想していなかったというのが正直な意見です。ひと昔まえであれ
HTTP2 化に伴なって、サイト全体の最適化を行ないました 依存の整理 もはや jQuery なしでも簡単に書けそうなスクリプト部分から jQuery 依存を抜きました。また、JSDeferred を Promise で置き換えました。 script 要素の async / defer script 要素については必要に応じて async や defer をつけるようにし、基本的に外部スクリプトでブロックする可能性を排除しました。 async は script 要素同士で独立している場合無条件につけられます (非シーケンシャル)。defer はページのDOMが構築されたあとに実行されるように遅延されます (シーケンシャル) defer は DOMContentLoaded 直前にまとめて呼ばれるようです。 外部ライブラリを自分でホスト 外部ライブラリをCDN経由でロードしている部分がありま
ESLintがv2にアップデートしてからけっこう変わって、だましだましv1系の設定をいじりながら使い続きてたけどだいぶカオスになってきたので気合入れて書き直した。 せっかく気合入れて書いたのでプロジェクトを横断して設定を共有できるようにしたい。 ESLintの設定を使い回すのはいくつか方法が考えられる。 プロジェクトごとにコピペする npmモジュールにしてextendする さらにnpmモジュールとして利用するのはいくつか方法があって、 eslint-config-hokacchaみたいにグローバルな名前でnpmにpublishして使う scoped packageとして@hokaccha/eslint-configみたいな名前でnpmにpublishして使う githubに置いといてnpm install hokaccha/eslint-configみたいにして使う たぶん1が一番メジャー
はじめに アプリによってビジネスモデルは異なりますが、大多数のアプリがゴール(KGI)にしているのは売上増かと思います。 では、あなたは売上増に向けた指標の把握と整理ができているでしょうか? この記事ではKPIツリーを使ってアプリの売上に貢献する指標を洗い出し、各指標について説明したいと思います。 1.KPIツリーの重要性 ◆そもそもKPIツリーとは? KPIツリーとは、例えばアプリのKGIを売上とした場合、売上を構成する要素を分解して施策が実行可能になるレベルまで落とし込まれた指標(KPI)の一覧です。 ◆KPIツリーを作らない場合の問題点 ①ボトルネックとなっている問題がわからない 売上を構成する要素を洗い出さないと、売上増の妨げになっている問題に気づかないことがあります。 ②具体的な施策を考えるのが難しい 売上やアクティブユーザー数など上位の指標を分解しないままでは、「じゃあその指標
2015年はCSSが普及した以来となる10年に1度のフロントエンド大変革期で、それまでのツケが一気に回ってきたと個人的に感じていました。目まぐるしく状況が変化していきましたが、2016年になり、個人的にだいぶ落ち着いてきたと感じているので、ここらへんでまとめておきたい思います。 最初に結論を書いておくと、 『React + Redux + react-router + material-ui + axios + ES2015 + Babel + webpack + ESLint + Airbnb JavaScript Style Guide』 という組み合わせが、いま僕の採用しているJavaScriptの環境です。 主要ライブラリは React A JavaScript library for building user interfaces | React 去年、一気に普及したReact
Elixir にあって Ruby や JavaScript のような言語にない特徴といえば 軽量プロセス (+ OTP周り) パターンマッチ の2点が大きく、その他の部分というのはだいたい「あの言語のこれだな」という風に対応させて理解できる(パターンマッチを実装した他の関数型言語になれてる人にとっては別かもしれないが)。 特に後者のパターンマッチの方は Elixir の文法の多くの部分の基礎になっている。従って、主観的にはパターンマッチさえ理解できれば Elixir の半分以上は理解できたと思っていいんじゃないかと思っていたりする。 というわけでカッとなってパターンマッチについて書いてみる。 パターンマッチとは パターンマッチの例で、いきなり {x, y} = {1, 5} とかいう例を見せられても「変数扱うのに便利な記法か何かですかね? (ES6 の Destructuring assi
あの Dave Thomas が書いた『Programming Elixir』を買ったのでぼちぼち読んでいる。 Chapter 1. に Elixir の特徴を巧みに表現した文章があってカッとなったので、引用しておきたい。 Object orientation is not the only way to design code Functional Programming need not be complex or mathematical. The foundations of programming are not assignments, if statements, and loops. Concurrency does not need locks,semaphores, monitors, and the like. Processes are not necessaril
なぜDMMがweb3に参入したのか。Seamoon Protocolが目指す新たなエンタメ体験の未来とは
[翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて
Linus Torvalds created the original core of the Linux operating system in 1991 as a computer science student at the University of Helsinki in Finland. Linux rapidly grew into a full-featured operating system that can now be found running smartphones, servers, and all kinds of gadgets. In this e-mail interview, Torvalds reflects on the last quarter century and what the next 25 years might bring. St
このエントリでは、Yegor Bugayenkoによる記事、ORM Is an Offensive Anti-Patternを紹介する。 (Yegorから和訳と転載の許可は得た。) 以下はその全文の和訳だが、意訳超訳が混じっているので、もとのニュアンスを知りたければ元記事を読んでもいいし、読まなくてもいい。 結論から言えば、ORMはオブジェクト指向プログラミングの原則の全てに違反するひどいアンチパターンだ。オブジェクトをバラバラに引き裂き、もの言わぬ受身なデータ入れに変えてしまう。 小さいWebアプリケーションから、数千のテーブルをCRUD操作するエンタープライズシステムまで、どんなアプリケーションにもORMが存在することはゆるせない。 代わりになるものは? SQLを話すオブジェクトだ。 ORMの仕組み オブジェクト関係マッピング (Object-relatinal mapping、ORM
こんにちは。開発企画部の佐島です。 はじめに 3月24日(木)、グリー主催の技術勉強会 GREE Tech Talk が開催されました。 10回目となる今回のテーマは「データ可視化」。 さまざまな可視化をちょっとづつたくさんみてみようということで発表時間を短く、その分発表者を多く、という形で構成しました。 全ての登壇者の方にスライドと動画の公開についてご快諾いただけましたので詳細はそちらをご覧ください。 セッション概要 上述した通り内容は全て動画でご確認頂けますので、簡単な紹介のみとさせていただきます。 『昨今のデータの可視化のニーズと取り組みについて』 森藤 大地(ニフティ株式会社) 最初にご登壇頂いたのはニフティの森藤さん。所属されているIoTデザインセンタに寄せられる様々な要望を元に実際に可視化された事例をご紹介いただきました。 『ネットワークを可視化してみた』 上竹 嘉史(グリー株
こんにちは。技術部の国分 (@k0kubun) です。 3/28にクラウドワークスさんで行なわれたRails Upgrade Casual Talksで、Railsアップグレードの際にクックパッドが行なっている工夫について紹介しました。 影響範囲の予測が難しいRailsのアップグレードを安全に行なうための動作確認のやり方について参考になればということで、本記事でも改めて紹介いたします。 CookpadのRailsアップグレードの流れ Rails 4.1から4.2にアップグレードした際の例を紹介します。 CIにRails 4.2用ジョブを用意 まずはRails 4.2にアップグレードするためのrails42ブランチでテストを通します。リリースするまでこのブランチはmasterからrebaseし続けるので、リリースまでテストを通る状態を保つため、CIにrails42ブランチ用のジョブを用意しま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く