tanan55のブックマーク (110)

  • Selenideのドキュメントを読んでみて - 初手ぱるぷんて

    状態を確認する 要素の状態を確認するメソッド。要素がその状態になってくれるまで待ってくれる(デフォルト4秒)ので、非同期で変化する要素も良い感じに確認できる。 `$`("target").should(exist) `$`("target").shouldNot(exist) `$`("target").shouldBe(visible) `$`("target").shouldNotBe(visible) `$`("target").shouldHave(text("text")) `$`("target").shouldNotHave(text("text")) 上記のメソッドは振る舞いとしては同じであり、Selenideの公式サイトでは以下のように説明されており、英語の文章として好ましいものを選択すると良さげ。 We recommend to choose the convenien

    Selenideのドキュメントを読んでみて - 初手ぱるぷんて
    tanan55
    tanan55 2021/02/15
  • NewsPicksにCTOとして入社して1年でDX Criteriaを大幅改善した話 - Uzabase for Engineers

    こんにちは。このブログでは初めまして。2020年の2月にNewsPicksに入社した高山です。 今回は僕がNewsPicksのCTOになってからの1年でやったお仕事について書いていきます。 CTO最初のミッション DX Criteriaについて 「デプロイ回数」を定点観測 やってきたチャレンジ 1年経ってみて CTO最初のミッション NewsPicksは2013年に誕生し、5年ほどの壮大な創業期の間にたくさんの新しい領域に挑戦しており、僕が入社したときには既に事業面でもシステム面でも「それなりの複雑さ」という感じでした。 前任CTOの杉浦さん(今はグループ内でアメリカでの新規サービスの立ち上げをしています)からバトンを受け取って最初のミッションが「DX Criteriaを上げること」だと聞いたときにそのあたりの事情を全て察しました。😅 結論から先に書くと、1年で大幅改善を達成することがで

    NewsPicksにCTOとして入社して1年でDX Criteriaを大幅改善した話 - Uzabase for Engineers
    tanan55
    tanan55 2021/01/29
  • Spring Data R2DBCでリアクティブにDBアクセスを行なう - Uzabase for Engineers

    はじめに こんにちは、SaaS Product Teamのヒロオカです。 SPEEDAではSpring Webfluxの採用が行われおり、一部リアクティブなシステムが動いています。 今回は、R2DBCという、リアクティブな非同期でRDBにするための仕様とSpring(Reactor Project) による実装およびサポートを利用して、APIの実装を試してみたいと思います。 はじめに R2DBとは リアクティブシステムにおけるJDBCの問題点 実際に使っていく 環境 事前準備 プロジェクトの作成 DBの起動 APIを実装していく 空ハンドラーの実装とルーティングの設定 リポジトリの実装 DBの諸々の設定 BDの初期化処理の記述 エンティティの作成 ReactiveCrudRepositoryを継承したリポジトリインターフェースを作成 ハンドラーの修正 終わりに 参考資料 R2DBとは 前述

    Spring Data R2DBCでリアクティブにDBアクセスを行なう - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • 開発チームに来て感じたこと - Uzabase for Engineers

    こんにちは。7月からSaaS Product Teamに参加している横山です。 Uzabaseにきて大体半年が経ちました。 SaaS Product Teamに来るまでは、比較的ウォーターフォールがメインの現場にいたのですが、 ここにきて驚いたことのうち3つを書いていきたいと思います。 SaaS Product Teamってどんな開発をしているのだろうというのが少しでも伝わればと思います。 仕様書のドキュメントがない 常にペアプロを行っている 触れる技術の幅が非常に広い 仕様書のドキュメントがない SaaS Product Teamでは、ドキュメントがほどんどありません。 アーキテクチャ図や、手順書のようなものはありますが、それもドキュメントの形式で残っているものではないです。 理由としては、ドキュメントを残さない理由として属人化を防ぐというのが挙げられます。 野口さんも以前書いてくださっ

    開発チームに来て感じたこと - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • Smalltalk かつ TDD で『オブジェクト指向設計実践ガイド』の「第5章 ダックタイピングでコストを削減する」をハンズオンしたら 9章も確認せざる得なかった - Uzabase for Engineers

    今日は。 SPEEDA を開発している濱口です。 前回の続きです。 以下の通り、今回も設計の段階的な進化に沿った忠実な写経ができたと思います。 ダックを見逃す 問題を悪化させる ダックを見つける 概要としては、依存関係でがんじがらめになった設計を、ダックタイプを使って柔軟性のあるものに変える、というものです。 ハイライトだけ抜粋します。 ↓これが、 "依存しまくりの恐ろしい分岐" Trip >> prepare: preparers [ preparers do: [ :preparer | preparer class == Mechanic ifTrue: [ preparer prepareBicycles: bicycles ]. preparer class == TripCoordinator ifTrue: [ preparer buyFood: customers ]. p

    Smalltalk かつ TDD で『オブジェクト指向設計実践ガイド』の「第5章 ダックタイピングでコストを削減する」をハンズオンしたら 9章も確認せざる得なかった - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • Rustでモックオブジェクトを自作してみる - Uzabase for Engineers

    こんにちは、SaaS Product Team の Ryo33 です。 この記事では Rust でモックオブジェクトを作ることを通してRefCellやMutex、Rc、Arcの使い方やSendやSyncについて学びます。 この記事を読むことで Rust でモックオブジェクトを自作できるようになります。 サンプルプログラム テストを書いてみる モックオブジェクトをつくる RefCell 非同期 複数の所有権 最後に 参考文献 サンプルプログラム まず書いていきたいコードとして以下のようなcreate_user_with_nameというユースケースを考えます。 もし、名前が空文字でなければUserPort.storeを呼ぶというコードです。 #[derive(PartialEq, Eq, Debug, Clone)] pub struct Name(pub String); impl Name

    Rustでモックオブジェクトを自作してみる - Uzabase for Engineers
    tanan55
    tanan55 2021/01/15
  • ペアプログラミングはXPの5つの価値をエクストリームにする - Uzabase for Engineers

    SaaS Product Team の野口です。 以前にもいくつかの記事で触れたように、SaaS Product Team では XP(エクストリーム・プログラミング)をベースとしたチーム開発に取り組んでおり、ほぼ全ての作業をペアで行っています。*1 かく言う私もこのチームに入ってから 1 年以上の間 *2、日々ペアプログラミングに取り組む中でわかってきたことがあるので、この記事で共有したいと思います。 XP はうまくいくことを極限(エクストリーム)まで推し進めることから生まれた ペアプログラミングは XP の 5 つの価値を極限まで推し進める 注記 コミュニケーション シンプリシティ フィードバック 勇気 リスペクト 旅は続く 一緒にペアプログラミングと XP を探求しませんか? XP はうまくいくことを極限(エクストリーム)まで推し進めることから生まれた Kent Beck の『エクス

    ペアプログラミングはXPの5つの価値をエクストリームにする - Uzabase for Engineers
    tanan55
    tanan55 2020/12/14
  • Vue/Nuxt開発効率を3倍にするVSCode拡張機能セット - Qiita

    この記事を読むと VSCode拡張機能を入れて、下記のようなことが実現します ・VSCodeとは別にterminal(Command Line)の画面を開かなくても、VSCode内から直接terminal操作ができる(例えばnpm run devも) ・全てのカッコ()[]{}が種類別に色分けされる ・インデントが一眼で分かる ・htmlタグの開始タグと終了タグを同時に修正できる ・Vue.jsやNuxt.jsの構造やファイル操作が楽になる etc... なぜこの記事を書いたのか VSCodeは素晴らしいテキストエディタです。 特に、Vue.jsやNuxt.jsを用いて開発している方にとっては最も有力な選択肢でしょう(そして、その選択は間違いではないと保証できます)。 さて、VSCodeはそのままでも素晴らしいエディタですが、使用するフレームワークや用途に応じて拡張機能を入れるとさらに、そ

    Vue/Nuxt開発効率を3倍にするVSCode拡張機能セット - Qiita
    tanan55
    tanan55 2019/12/29
  • CDKでEC2のBlue/Greenデプロイをするパイプラインを作る - mano’s diary

    こんばんは@manoです。もう今年も12月ですね。 12月ということで、今年もNewsPicksではアドベントカレンダーをやります!(って、僕は初参加なんだけども。) 実はここで話すのは初めてですが、僕は(株)NewsPicksの社員で、この記事はNewsPicks Advent Calendar 2019の1日目の記事ということになります。 最近CDKばっかり触っているということもあり、当ブログとしてはここまで2記事連続でCDK関連の話をしてきましたが、今日もCDK関連の話をします。 NewsPicksでは現在、デプロイフローの見直しを進めています。 現状はAWSで、auto scaling groupで管理されたEC2インスタンスに、NewsPicksのアプリケーションはJAVAがメインであるため.warファイルを配置し、Nginx & Tomcatといったwebサーバー構成でアプリケ

    CDKでEC2のBlue/Greenデプロイをするパイプラインを作る - mano’s diary
    tanan55
    tanan55 2019/12/03
    新機能とか出た時にCDKにも反映されるのはどの程度タイムラグあるのかな。
  • 【kubernetes / Helm】大量のCronJobに悩む貴方に送るプラクティス - Uzabase for Engineers

    はじめに こんにちは! UZABASE SPEEDA SRE teamの生賀です。 最近あった嬉しかったことは、自分が翻訳した日語がkubernetesCronJob - Kubernetesページに反映されていたことです。 閑話休題、弊社SPEEDAサービスでは大量のバッチジョブがHinemosを起点としてVM上で動作しています。 SREチームではこのようなジョブ群を徐々にサーバから切り離して、コンテナライズを進めています。 そんな大量にあるジョブですが、環境変数だけが異なっているものも多数あり、実行環境 x 環境変数と環境が異なると掛け算式に増えていきます。 これをkubernetesCronJobでyamlハードコーディングすると容易に1000行を超えてしまい、管理上のコストも含め現実的ではありません。1 そこで、kubernetesパッケージマネージャーを使用することにしまし

    【kubernetes / Helm】大量のCronJobに悩む貴方に送るプラクティス - Uzabase for Engineers
    tanan55
    tanan55 2019/10/17
  • 「ここではすべてが流れている!」SPEEDA の開発チームに入って驚いた 3 つのこと - Uzabase for Engineers

    7 月から SPEEDA 開発チームに参加しました、野口です! SPEEDA 開発チームでは、XP のプラクティスを大きく取り入れて日々の開発を進めています。 私は入社前から XP やスクラムのようなアジャイル開発手法とその考え方には慣れ親しんでいたのですが、SPEEDA 開発チームに参加してみて、ユニークだなと感じたことがいくつもありました。 この記事では、SPEEDA 開発チームで私が特にユニークだと感じた 3 つのことについて紹介します。 おことわり その 1: チームのメンバーを「安定させない」 その 2: 属人化を防ぐためにドキュメントを「残さない」 その 3: 担当者を「明確にしない」 そうやってどこへ行きたいのか、そしてこれから おことわり この記事の目的は、SPEEDA 開発チームのユニークな文化を紹介することです。 これらの取り組みには、SPEEDA 開発チームの現在のフ

    「ここではすべてが流れている!」SPEEDA の開発チームに入って驚いた 3 つのこと - Uzabase for Engineers
    tanan55
    tanan55 2019/08/19
  • 一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x

    2019.6.22 DevLOVE Xで登壇したときの資料です。

    一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x
    tanan55
    tanan55 2019/06/22
  • Visual Studio Codeのうれしい機能を使いこなして、初心者を最速で脱出する!《VSCode実践入門》 - エンジニアHub|Webエンジニアのキャリアを考える!

    エンジニアHub > 記事一覧 > Visual Studio Codeのうれしい機能を使いこなして、初心者を最速で脱出する!《VSCode実践入門》 Visual Studio Codeのうれしい機能を使いこなして、初心者を最速で脱出する!《VSCode実践入門》 VSCodeは初版が2015年リリースの新しいエディタですが、インテリセンス、ユーザースニペット、Emmet、マルチカーソル、拡張機能というコーディングにうれしい機能が充実しています。VSCodeを検討中あるいは使いはじめたばかりの若手エンジニアが、いち早く初心者を脱出するための使いこなし方を解説します。 はじめまして、KC(けーしぃ、@kcpoipoi)と申します。技術書典6にサークル参加してたら「キミ、Web執筆に興味ない??」とお声がけいただきました。Web執筆は初めてなので至らない点があるかもしれませんが、何卒よろしく

    Visual Studio Codeのうれしい機能を使いこなして、初心者を最速で脱出する!《VSCode実践入門》 - エンジニアHub|Webエンジニアのキャリアを考える!
    tanan55
    tanan55 2019/06/22
  • ラムダ式とStream APIで学ぶモダンJava ― 関数型を取り入れて変化するJava言語の現在 - エンジニアHub|Webエンジニアのキャリアを考える!

    ラムダ式とStream APIで学ぶモダンJava ― 関数型を取り入れて変化するJava言語の現在 20年以上の歴史を持つJava言語ですが、近年は関数型を取り入れるなど大きく変化し、リリースサイクルも格段に短くなってますます進化しています。モダンなJavaプログラミングで必要となるラムダ式とStream APIについて、谷心(cero_t)さんによる詳細な解説です。 1996年にJava 1.0が登場して、もう20年以上がたちました。この間、Javaにはさまざまな言語機能やAPIが追加され、変化し続けています。 これだけ長い歴史を持つプログラミング言語ですから、利用者が多かったり、フレームワークやライブラリが充実していたりする一方で、書籍やWebに掲載されている情報が少し古かったり、研修で学ぶJavaが最新の動向を踏まえていなかったりするなど、長い歴史を持つが故の問題もあります。 特

    ラムダ式とStream APIで学ぶモダンJava ― 関数型を取り入れて変化するJava言語の現在 - エンジニアHub|Webエンジニアのキャリアを考える!
    tanan55
    tanan55 2019/06/10
  • Istio導入のメリットとハマりどころを、実例に学ぶ~マイクロサービス化の先にある課題を解決する|ハイクラス転職・求人情報サイト AMBI(アンビ)

    Istio導入のメリットとハマりどころを、実例に学ぶ~マイクロサービス化の先にある課題を解決する マイクロサービス化にともなサービス間の接続の複雑化、という課題への対処としてサービスメッシュとこれをもたらす「Istio」が注目されています。Istioをいち早く導入したユーザベースの阿南さんが、導入メリットと、使って分かった「ハマりどころ」を解説してくれました。 マイクロサービスを増やしていくならサービスメッシュ化を検討すべき KubernetesIstioは今までの技術の集大成 運用したからこそわかるIstioのハマりポイント ハマりどころ1:設定の反映が遅延する ハマりどころ2:エンドポイント登録がnamespase単位で分かれていない ハマりどころ3:istio-proxyの制限にひっかかる 使っている人に聞いてみた「Istio-proxyを経由すると10ms遅くなる?」 Istio

    Istio導入のメリットとハマりどころを、実例に学ぶ~マイクロサービス化の先にある課題を解決する|ハイクラス転職・求人情報サイト AMBI(アンビ)
    tanan55
    tanan55 2019/06/01
  • Tutorial: Blue/Green Deployments with Kubernetes and Istio

    Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.

    Tutorial: Blue/Green Deployments with Kubernetes and Istio
    tanan55
    tanan55 2018/11/27
  • Kubernetes + Istioでblue-green deploymentを実現する - UZABASE Tech Blog

    こんにちは、SPEEDAのSREチームの阿南です。最近Kubernetes界隈が盛り上がっていますね。ここ一年で、各企業での利用事例やKubernetesを解説している書籍等もかなり増え、活用の仕方も徐々に確立されて来ているのではないでしょうか。一方Istioについては、色々できそうということはわかったんだけど、利用事例も少ないためどう使えばいいかわからない、番運用しているという企業もまだあまり聞かないし導入に踏み切れない、という方も多いかと思います。弊社ではまだ2つのnamespaceのみですが、Istioで運用を開始しております。今回は、Istioで実現できることはなんとなく知っているが、具体的な設定方法がよくわからない方向けにblue-green deployの設定を参考に説明してみたいと思います。 Istioの通信について知りたい方はこちら 環境 IstioのRouting Ru

    Kubernetes + Istioでblue-green deploymentを実現する - UZABASE Tech Blog
    tanan55
    tanan55 2018/11/27
  • Istioを使いこなすために知っておくこと - Uzabase for Engineers

    こんにちは、SPEEDAのSREチームの阿南です。最近Kubernetes界隈が盛り上がっていますね。ここ一年で、各企業での利用事例やKubernetesを解説している書籍等もかなり増え、活用の仕方も徐々に確立されて来ているのではないでしょうか。一方Istioについては、色々できそうということはわかったんだけど、利用事例も少ないためどう使えばいいかわからない、番運用しているという企業もまだあまり聞かないし導入に踏み切れない、という方も多いかと思います。弊社ではまだ2つのnamespaceのみですが、Istioで運用を開始しております。今回は、Istioで実現できることはなんとなく知っているが、内部の通信の仕組みやどのようなコンポーネントがあるのかを追っていきたいと思います。その上でBlue-Green Deploymentを実現するための設定方法についても次回記事で触れていきます。 この

    Istioを使いこなすために知っておくこと - Uzabase for Engineers
    tanan55
    tanan55 2018/11/27
  • コンピュータサイエンス探偵の事件簿

    警察署で発生した書類盗難事件の解明を依頼された私立探偵フランク・ランタイム。さまざまなデータ構造と探索アルゴリズムを駆使して、事件の謎に迫る。事件を追ううちに、その背後にある国家転覆を謀る魔術師たちの存在に気づくフランク。彼は魔術師たちの陰謀を阻止し国の平和を守ることができるのか――。 探偵もののストーリーにのせて、コンピュータサイエンスの基、「探索アルゴリズムとデータ構造」を紹介。取り上げる探索アルゴリズムは、線形探索、二分探索、幅優先探索、深さ優先探索、並列探索、反復深化、最良優先探索、そしてデータ構造は、配列、スタック、キュー、二分探索木など。推理小説を楽しみながらコンピュータサイエンスの基を身に付けることができます。 1 探索問題 2 情報提供者の徹底的な洗い出し 3 無法者たちの牧場にある配列とインデックス 4 文字と隠されたメッセージ 5 密輸業者の船を二分探索で探し出す

    コンピュータサイエンス探偵の事件簿
  • Gunosy広告技術部を支えるKPI用語集 - Gunosy Tech Blog

    はじめに こんにちは、広告技術部アルバイトの徐( @joha__rb )です。普段の業務では、広告配信の管理画面システムの開発をしております。 さて、皆さん普段お仕事をされる上で「KPI」という単語を使われたことはありますか? KPIとはKey Performance Indicatorの略語であり、日語訳すると重要業績評価指標。一般的に、企業や組織での目標の達成度を評価するための指標を意味します。達成度が一目でわかるようにKPIは数値で設定され、組織の誰でもその数値をみれば自分達の進捗がわかるようになっています。 Gunosyでは「数値は神より正しい」をモットーに、日々KPIの数値を追っています。今回は中でも、Gunosy広告技術部でのKPIの利用方法をご紹介しよう思います。 はじめに Gunosy広告技術部のKPI 広告技術部とは 広告技術部のKPI 広告の入札形式ごとにSalesを

    Gunosy広告技術部を支えるKPI用語集 - Gunosy Tech Blog
    tanan55
    tanan55 2018/05/30