<-- mermaid -->

開発

Smalltalkで『オブジェクト指向設計実践ガイド』の「第2章 単一責任のクラスを設計する」をハンズオンしたら快適で楽しかった

今日は。 SPEEDA を開発している濱口です。 前回はテスト駆動開発(TDD)を習得するためのハンズオンを行いましたが、今回はオブジェクト指向設計(OOD)です。 SPEEDA は複雑なビジネスロジックから成っており、開発では複雑で多くのコミュニケーションが発…

Smalltalkで『テスト駆動開発』の「第I部 多国通貨」をハンズオンしたら快適で楽しかった

今日は。 SPEEDAの開発をやっている濱口です。 SPEEDA開発チームではテスト駆動開発(TDD)、ペアプログラミングを徹底しています。 だからなのか、『テスト駆動開発』はすごく楽しく読めました。 今回ハンズオンを行った「第I部 多国通貨」でも、ペアプロをし…

Go言語でオブジェクト指向プログラミングの基本(型編)

こんにちは、SPEEDA開発チームの @tkitsunai です。 最近リリースされたプロダクションコードにようやくGo言語が採用されました。嬉しい。 今回はGo言語でオブジェクト指向プログラミングで型表現についてのテクニックや考え方の基礎を紹介します。もっとGop…

Gaugeのsetupとteardownステップを用いて効率的に読みやすいテストを書く

こんにちは!SPEEDA開発チームの工藤です。 大分時間が開いてしまいましたが、Gaugeシリーズの第四回目です。 今回はe2eテスト書く際には必須であろうSet Up/Tear Down Stepsを、Gaugeではどのように実現できるのかをSPEEDA開発チームでの実例も交えてお伝え…

KotlinのCoroutineを用いた,外部API呼び出しの並列数を指定できるライブラリを作成した話

KotlinのCoroutineを用いた,外部API呼び出しの並列数を指定できるライブラリを作成した話 背景 本記事の内容 Coroutine Coroutineの作成方法 中断が可能な計算インスタンス [1] 特定のスレッドに束縛されない Channelとは ParallelExecutorについて まとめ …

ReactとReactHooksを使って、Flux的なアーキテクチャを実現する

こんにちは。SPEEDA開発チームの冨田です。 昨今のフロントエンドでは、Fluxというアーキテクチャが利用されることが多くなってきています。SPEEDAでもVueを使っている画面がありますが、そこではVuexというVue向けのFluxライブラリで状態管理をしています。…

Ringアプリケーションで例外をいい感じにハンドリングする方法(Ductでの解説も含む)

こんにちは!こんにちは!SPEEDA開発チームのあやぴーです。 社内のClojureを使ったAPIにおいて、「例外をうまくハンドリングしたいんだけど…」という話が出てきたので、今回はRingアプリケーションにおける例外のハンドリング方法について解説します。また…

【kubernetes / Helm】大量のCronJobに悩む貴方に送るプラクティス

はじめに こんにちは! UZABASE SPEEDA SRE teamの生賀です。 最近あった嬉しかったことは、自分が翻訳した日本語がkubernetesのCronJob - Kubernetesページに反映されていたことです。 閑話休題、弊社SPEEDAサービスでは大量のバッチジョブがHinemosを起点…

Rustで非同期リクエストでハマったこと

こんにちは!SPEEDAプロダクト開発チームの成です。 去年の秋ごろからRustを触り始め、徐々にRustの魅力に惚れられました。 最初は日々コンパイラーにボコボコにされていましたが、 The Book *1 を読みながら、Rustを少しずつ理解していくと、段々コンパイラ…

appiumを使ってモバイルアプリのテストを自動化する

こんにちは!SPEEDA プロダクト開発チームの板倉です。 前回は、テスト環境(appium + gauge + kotlin)のセットアップについて書きました。 appiumを使ってモバイルアプリのテストを自動化する ~環境構築まで~ - Uzabase for Engineers 今回は、実際にアプリ…

appiumを使ってモバイルアプリのテストを自動化する ~環境構築まで~

こんにちは!SPEEDA プロダクト開発チームの板倉です。 前回書いた時はNewsPicksの開発をしていましたが、今はSPEEDAの開発をしてます。 SPEEDAのプロダクトチームでは、以下の記事のようにE2EをGaugeとKotlinを使って書くことが多いです。 Gauge Test Autom…

Istioでマイクロサービスのテスタビリティを向上させる

SPEEDAの開発チームの石橋です。 最近ではマイクロサービスでプロダクトを開発することが多くなってきていると思います。 そういった状況の中でマイクロサービスのテスト、特に異常系のテストをするコストがやや高いという話を何度か耳にしました。 本記事で…

Kubernetes + Istioでblue-green deploymentを実現する

こんにちは、SPEEDAのSREチームの阿南です。最近Kubernetes界隈が盛り上がっていますね。ここ一年で、各企業での利用事例やKubernetesを解説している書籍等もかなり増え、活用の仕方も徐々に確立されて来ているのではないでしょうか。一方Istioについては、…

Istioを使いこなすために知っておくこと

こんにちは、SPEEDAのSREチームの阿南です。最近Kubernetes界隈が盛り上がっていますね。ここ一年で、各企業での利用事例やKubernetesを解説している書籍等もかなり増え、活用の仕方も徐々に確立されて来ているのではないでしょうか。一方Istioについては、…

Vue.jsとFirebaseとGASとiPadで会議室表示板を作った

こんにちは、コーポレートエンジニアリングチームという新チーム所属のたけうち(@chimerast)です。ユーザベース社内ではレアポケモンと呼ばれています。 数ヶ月前、メンバーも数百人を超え、アメリカのQuartz社がユーザベースグループに加わったりして、業務…

GaugeのParameterを使いこなす

こんにちは! SPEEDA日本事業部でテストエンジニアをやっている工藤です。 Gaugeシリーズの第三回目です 第二回目の記事はこちらから 今回はGaugeの「Parameter」について書きます。 ParameterはGaugeでテストを書くにあたり、基礎的かつ重要な機能です。 Pa…

GaugeのConceptを用いてテストシナリオをより仕様書のように記述する

こんにちは! SPEEDA日本事業部でテストエンジニアをやっている工藤です。 前回の記事から、大分時間が経ってしまいましたがGaugeシリーズの第二回目です。 第一回目の記事はこちらから 今回はGaugeの「Concept」について書きます。 Conceptsを利用すること…

モンスト、スマニュー、Wi2の運用秘話多数! 「SRE Lounge #3」レポート

2018年5月17日、「SRE Lounge #3」という勉強会を開催しました。発表企業4社のみ参加の非公開な会でしたが、ここでしか聞けないようなディープな話題が満載でした。 参加企業:ユーザベース、ワイヤ・アンド・ワイヤレス様、スマートニュース様、ミクシィ様…

はじめてのDuct

SPEEDA開発の中村です。今回の内容は,弊社主催のclj-ebisu #2で発表した「実践Duct(仮)」です。 ClojureのサーバサイドフレームワークDuctを業務で使って学んだことを紹介します。 connpass.com 勉強会で発表した資料はこちらです。 はじめに,Ductのコア…

hbstudy#82 の「SRE大全:ユーザベース編」で話をしてきました。

こんにちは。ユーザベースのSPEEDAで、SREチーム内のソフトウェアエンジニアをしている @tkitsunai です。 3月15日(木)に、株式会社ハートビーツ様が主催している「hbstudy#82」で、「SRE大全:ユーザベース編」というお題目の下に、弊社のSREチームの4人で…

Chatwork、CrowdWorks、スタディスト、ユーザベースでSRE Lounge #2 を開催しました

こんにちは、ユーザベース SREチームでインターンをしております杉田です。 1/17(水)に始動したSRE Loungeの第二弾として、3/13(火)にSRE Lounge #2を開催しましたので、 今日はその模様を投稿します。 そもそも「SREとは?」といったことや、SRE Lounge開催…

【k8s合宿】 Kubernetesのメトリクスを取得する 〜PrometheusにGrafanaを添えて〜

こんにちは、SPEEDAのSREチームの阿南です。前回から少し時間が経ってしまいましたが、今回はKubernetesのメトリクス取得についてです。本番環境でkubernetesを運用する際、ポッドがどの程度リソースを消費しているのか、クラスター自体のリソースは大丈夫か…

【k8s合宿】 Kubernetesのログ分析環境を作る

こんにちは、SPEEDAのSREチームでエンジニアをしている阿南です。SPEEDAのSREチームでは、昨年末kubernetesについて理解を深めるために合宿を行いました。やり方はA〜Cの3チームに分けて、それぞれのチームでkubernetesに関することを調査、構築するという…

クローズドな勉強会 SRE Lounge始動!

はじめまして、SPEEDA SREチームの久保です。 今回当社のSREチームとハートビーツ社が共同で、1/17(水)に他社を巻き込んで、SRE LoungeというクローズドなSRE勉強会を開催したので、シェアしたいと思います。 SREとは? SRE Loungeの開催背景・趣旨 SRE Loun…

SREチームの2018年度を占う

初めまして、株式会社ユーザベースのSPEEDA Japan Company、Site Reliability Engineering (SRE) Teamでエンジニアをしています、川口・阿南です。 SREチームについて SRE合宿 チームテーマ議論 プロジェクト選別 オペレーションタスクの自動化・システム…

Chrome hackingと称しブラウザのレイアウトバグをみんなで調べてみました

はじめまして。プロダクト開発チームの小野寺 (ryoqun)です。 Google Chrome (以下、Chrome)にて、HTMLのレンダリングの回帰バグが紛れ込み、その影響でSPEEDAの一部分のレイアウトが崩れてしまう問題が発生しました。そこで、「Chrome hacking」と称し、数…

Gauge Test Automation Toolとアジャイル開発

こんにちはSPEEDAのQAチームの工藤です。 最近ではテスト自動化周りのツールが数多く存在していますが、英語でのみ提供されていて日本で多くの人に知られていないサービスも多いと思います。 そんな中、Gaugeという自動化のツールがイケてるという情報を発見…

TCP Fast Open

はじめまして。プロダクト開発チームの小野寺 (ryoqun)です。 今回は最近少しずつ浸透し始めてきた「TCP Fast Open(以下、Fast Open)」という最新技術についてTCP/IPのおさらいを踏まえながら紹介したいと思います。ちなみに、この技術はTCPを高速化するもの…

マルチホストでのDocker Container間通信 第3回: Kubernetesのネットワーク(CNI, kube-proxy, kube-dns)

こんにちは。SPEEDA開発チームの鈴木です。 これまでマルチホストでのContainer間通信について、 Dockerのネットワークの基礎(前々回) マルチホストでのContainer間通信を実現する手段の一つとしてのOverlayNetwork(前回) といった話をしてきましたが、3回目…

マルチホストでのDocker Container間通信 第2回 Port Forwarding と Overlay Network

こんにちは。SPEEDA開発チームの鈴木です。 前回はマルチホストでのDocker Container間通信の説明の前段として、Dockerのネットワークが次のようになっているという話をしました。 今回はいよいよ、マルチホストでどうやってDocker Container同士の通信を実…

マルチホストでのDocker Container間通信 第1回: Dockerネットワークの基礎

こんにちは。SPEEDA開発チームの鈴木です。 調べてみるとなかなか興味深い技術であるマルチホストでのDocker Conainer間通信。 これをどのように実現しているのか説明したいと思います。 が、その前に今回の投稿では、まず基礎知識的な話としてDockerのネッ…

Hinemos5.0.1移行記(その2:保守サービスとエンタープライズオプションを契約)

ユーザベース インフラチームの小林です。 だいぶ時間が空いてしまいましたが、「[Hinemos5.0.1移行記(その1:理想と現実の葛藤)の記事から引き続き、Hinemos5.0.1への移行のお話です。

NewsPicks:記事をオススメするLINE BOTをつくってみた

はじめまして。NewsPicks技術チームの井原です。 チャットボット(Bot)という言葉を聞いたことがあるでしょうか。スマホやWebのメッセンジャー上で動く自動会話ロボットで、4/7にLINEが[BOT API Trial]を公開したことでエンジニア界隈で一躍ホットなトピッ…

Hinemos5.0.1移行記(その1:理想と現実の葛藤)

ユーザベース インフラチームの小林です。 前回の記事から引き続き、今回からHinemos5.0.1への移行のお話です。

RxJava + Vert.x + jOOλ で Microservice 的な何かを作ってみた

技術チームの竹内(@chimerast)です。 先日、Rx Ja Night 2016 #1という勉強会で、「RxJava + Vert.x + jOOλ で Microservice 的な何かを作ってみた」という題でLTしてきたので内容を少し書いてみようと思います。

「日本の夏は高温化しているか?」について可視化して確かめてみた。

技術チーム竹内([twitter:@chimerast])です。 最近暑いですね。東京では猛暑日の連続が新記録だそうです。 http://www.tenki.jp/forecaster/diary/deskpart/2015/08/05/29061-summary.htmlwww.tenki.jp Twitter上でも最近暑くなったことについて、データを見…

Preserving Code Quality and Save Everyone’s Time with SonarQube

Hello. I'm Jason from SPEEDA's development team A developer's work (and even life) revolves around writing and testing codes. As a developer, I, like many others, take pride in my codes which are clean, elegant, and bug-free. And so we do …

NewsPicks を支えるインフラのこれから― Autoscaling を導入してみよう―

NewsPicksインフラ・運用を担当しているカツです。 NewsPicksのインフラについて、今まで他の人も紹介していましたが(『AWS CloudWatch Logs を NewsPicks で試してみた話』)、 今回は、現在のNewsPicksのインフラを紹介するのではなく、今後、NewsPicksのイ…

AWS Cloudwatch LogsをNewsPicksで試してみた話

こんにちは、NewsPicks開発・運用を担当している木下です。 今回はAWS CloudWatch Logsを利用した運用周りの改善について社内LTした内容をベースにブログにまとめました! NewsPicksはインフラを完全にAWS上で運用しています。 AWS 導入事例: 株式会社ユーザ…

Apache Wicketのイベントシステム徹底活用(実用サンプルもあるよ)

SPEEDAの開発してます矢野です。社外から参画してます。SPEEDAを書いてないときは、最近はClojureを書いています。 SPEEDAではApache Wicketを使っています。バージョンも順調に挙げられているので、Wicket 5から導入されたイベントシステムも、最近はかなり…

Dockerコンテナを管理するならKubernetes

SPEEDA開発チームの山岸です。 最近注目を集めているDockerですが、ユーザベースでも一部のチームで開発に役立てています。そのDockerのコンテナを管理するための「Kubernetes」というオープンソースのフレームワークがあります。 今回は社内のLTの内容を基…

Quick prototyping data visualization in SPEEDA

Nice to meet you, my name is Jorge Granado from SPEEDA Tech Team. At UZABASE we are always trying to find new ways of surprising our clients, and provide them with new analysis tools as well as better data. Since early 2013 we have been us…

NewsPicks クラッシュしないアプリ制作の鉄則

NewsPicksサービスの開発を行っている大川です。 本日はNewsPicksのスマホアプリがどんな設計になっているかを紹介します。社内LTネタを元にしています。 階段の部分はどうやってるの?(『NewsPicksのUIデザイン』) 文字が読みやすいように工夫しているの…

簡単シンプルなSQLライブラリ『JDBI』

技術チームインターンの前田です。 アプリケーションを開発していると、データベースと連携する必要が出てくる場合が多いかと思います。 この記事では、JavaプログラムからRDBMSを利用する際に便利なライブラリを紹介します。 このライブラリは、私が取り組…

Cool Hinemos! Hinemos5.0にとっても期待している運用エンジニア

初めまして、UZABASEインフラチームの小林です。 弊社インフラチームは5名(1名海外留学中)で構成されていて、ざっくり言うと、先進技術検証・導入を主担当とするメンバーと、新規リリース対応・運用改善を主担当にするメンバーの2チームに分かれています。…

はじめてのビジュアライゼーション ~Tableau, Highchart.js触ってみた~

ユーザベースでSPEEDAの開発を担当しています。 外間です。 ビジュアライゼーションのニーズが高まり続ける中、 先日僕もビジュアライゼーションで有名な、あのTableauのセミナーに参加してきました。 Tableau Highchart.js Tableau Tableauとは簡単に言えば…

SPEEDAに導入して分かった、CDNの劇的な効果

インフラチームの金屋です。ユーザベースのインフラを担当しています。今回は身近に利用しているけど、使っていることに気付かないインターネットの影の立役者であるCDNについて書きます。 CDNとは? CDNは何のためにあるのか? なんで遠隔地だと遅くなる…

NewsPicks(iOS)の設計思想

NewsPicksチームインターン生の保田です。 主にiOSアプリ開発のお手伝いをしております。 iOSアプリを作っていて悩ましいな、と思うのが、同じ機能を持つがiPadとiPhoneで見た目が違うページをどう設計していくか、ということです。 ちょうど僕が関わった、N…

俺の Docker イメージ

SPEEDA 開発チームの緒方です。 最近話題に上ることも多い Docker ですが、UZABASE でもチームによっては積極的に使っています。 (現在は主に開発用途。) 他のコンテナ型仮想化技術と比較した場合の Docker の良さとして、 ・Docker Hub など、レジストリに…

PhantomJSを使ってみる

Techチームの遠藤です。 コンテンツのグローバル展開に向けて、いくつかの地点での画面表示の速度測定のためにphantomjsを使用し計測しました。 全部ではないですが初めの部分だけ記述します。 PhantomJSはまぁ仮想ブラウザを立ち上げてHPを操作していくもの…

Page top