TECH PLAY

株式会社ユーザベース

株式会社ユーザベース の技術ブログ

482

こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 今回は前回記載した以下のうち、5の「仕様や要件が複雑な様々なモジュール」について具体例をもとに紹介します。 不定期におきるリニューアル 動画配信システムとの連携 課金周り 多種多様なログ要件 仕様や要件が複雑な様々なモジュール 高度なデザイン要件 概要 どのへんが難しかったか まとめ おわりに 概要 ■ベース要件 RecyclerView内の1アイテム(スライドアイテムと定義します)として表示可能なこと 画像(スライドコンテンツと定義します)をN枚(3枚以上10数枚程度以下)カルーセルとして表示すること…
こんにちは、プロダクトチームのソーントンです。 社内の「1人プロジェクト」という取り組みで1ヶ月で社内ツールを作る機会があったので、初めての言語Elixirに初挑戦してみました。 その中でMoxを使ったTDDが楽しかったので、ご紹介します。 Elixirの単体テストの基礎 実際のプロジェクトでは? ビヘイビアとコールバック ビヘイビア x 単体テスト Mox登場! テストの落ち方 まとめ おわりに Elixirの単体テストの基礎 Elixirでは単体テストにExUnitを使います。 defmodule GreetingTest do use ExUnit.Case test "いつでも成功" …
はじめに NewsPicksの法人向けサービス開発チームの前表です。今回は、プログラミング未経験者だった私が、NewsPicksにエンジニアとして入社して半年間でやったことやキャッチアップするために工夫したことを振り返りつつ、未経験者ならではの視点からNewsPicks / Uzabaseの開発組織の魅力について紹介してみようと思います。 未経験からエンジニアを目指そうとしている方にも、現役エンジニアの方にも是非読んでいってもらえたらと思います。 それではどうぞ! はじめに キャリアチェンジのきっかけは、「仕事に夢中になりたい」 未経験でも出せる価値はたくさんあった キャッチアップの秘訣は、「…
こんにちは。NewsPicks Androidアプリエンジニアの sefwgweo です。 突然ですが、皆様はニュースアプリにおけるアプリ開発ってどんなイメージをお持ちでしょうか。なぜこんな問いかけをするかというと、カジュアル面談や採用面談をしていると、わりとそこそこの割合で「ニュースアプリで何をそんなに沢山開発することがあるんですか?」という質問をいただくためです。 しかも、ニュースアプリやそれに近しいアプリ開発に関わった経験がある方から質問されることが多かったのも印象的でした。 そんな時は、だいたい以下のいくつかについてお話をすると納得していただくことが多かったです。 不定期におきるリニュ…
こんにちは。NewsPicksエンジニアの西山です。 9月22日に開催された「Server-Side Kotlin Study #2」に登壇させていただいたので、今回はこちらの内容に関して紹介させていただければと思います。発表資料はこちらです。 speakerdeck.com Server-Side Kotlin Studyとは? 発表内容 背景 BDDとは? Cucumberについて まとめ おわりに Server-Side Kotlin Studyとは? Server-Side Kotlinで開発を進める中で得られた知見や落とし穴などを共有し、さらにServer-Side Kotlinを盛…
自己紹介 一人目なんです NewsPicksのリスクって? 何が必要なのだろう? UzabaseグループのQAとの違い これから何を目指していくか おわりに 自己紹介 6月からNewsPicksのQAエンジニアとして入社した西薗(にしぞの)です。SIerでアプリケーション寄りのエンジニアを6年ほど経験した後、ベトナムのテストベンダーで2年弱、QAエンジニアをやっていました。得意、というか好きな領域はソフトウェアテストです。 多くのITエンジニアにとって、「やりたいこと」は設計や実装であり、ソフトウェアテストというのは「やらなくてはいけないこと」だと思います。一方で私はというと、設計書を読んでロ…
NewsPicksエンジニアの北内です。今回は、先日公開した協調フィルタリングのための行列分解ライブラリについて紹介します。 ニュースの推薦アルゴリズム 行列分解による協調フィルタリング 行列分解アルゴリズムeALSの実装 ニュースの推薦アルゴリズム 私が所属するアルゴリズムチームでは、アルゴリズムの力でNewsPicksのプロダクトやサービス全体を改善するための取り組みを行っています。その一つとして、NewsPicksアプリのフィード(ニュース一覧画面)をパーソナライズするための推薦アルゴリズムを開発しています。 https://note.uzabase.com/n/nf0e2cb58e32…
NewsPicksでCTOをしている高山です。 NewsPicksではサーバーサイドの主要な開発言語としてJavaを利用してきましたが、今後Kotlinをメインにしていくことを目指して取り組みを始めました。 今回はその背景や取り組み内容を紹介します。 NewsPicksとKotlin NewsPicks Academia 検索基盤 JobPicks 課金基盤 フィード(レコメンド) 直近の取り組み Kotlin知見共有会 会のルール Server-Side Kotlin Study #2 今後の展望 NewsPicksとKotlin 2013年から開発されているNewsPicksではJava+…
NewsPicks のプロダクト開発組織のビジョンをつくったら、すごいパワーが生まれた話です。なぜチームビジョンを作ったのか・どう作ったのか・どんな効果があったのかを解説します。
AlphaDrive、NewsPicks兼務でエンジニアしているスギウラ (saba-can00)です。 今回、Github Actionsを利用してコードをpush すると動作確認ができるコンテナが自動で立ち上がるように環境整備したので、その内容をまとめます。 背景 Webのリアーキテクチャプロジェクトにおいてlocalで実装した画面をmainブランチにマージする前にBFFやバックエンドと連携した状態で確認したいというニーズがありました。 さらにGithubにプッシュすると環境がさくっと立ち上がるとDX的にすごく嬉しいということでGithub Actionsをトリガーとした環境の自動構築をチ…
こんにちは。NewsPicksエンジニアの takaaki.saito です。 所属しているGrowthチームでは、サービスのGrowth施策を技術面から支えるお仕事をしています。 今回はiOSアプリにオファーコード機能を実装したときのことを振り返り、実装を進める上で工夫したことやハマりどころ等をご紹介します。 実装した当時は、公式ドキュメント以外の情報が少なく、本筋とは別のところでつまづくことがあり苦労しました。本実装を通じて得た知見が、少しでもお役に立てば幸いです! そもそもオファーコード機能とは オファーコードを使用した購読処理の全体フロー アプリ内引換えパターン アプリ非経由パターン …
こんにちは。ユーザベース Product Team の old_horizon です。 早速ですが明日 8/5 (木) 19:30 から、Qiita さんと合同で Qiita x Uzabase Tech Meetup #3 を開催します!ぜひ皆様ご参加ください。 今回は登壇するチームメンバーと日々取り組んでいる E2E テストにおける改善についてご紹介します。 開発チームにおける E2E のこれまで ファイルダウンロードを行う E2E テストの課題 Selenium Grid でファイルダウンロードを行う E2E を実行する Selenium Grid の拡張方法 実装方針 エンドポイントの…
AlphaDrive、NewsPicks兼務でエンジニアしている大場です。 フロントをメインで開発していますが、AWS CDKやServerless Frameworkを使って環境、リソース、CI/CD構築もしています。 また、最近ではGraphQLの導入のためAppSyncの検証と導入の推進もしています。 今回は、5月19日に行われた Qiita×Uzabase Tech Meetup #2 で話してきたことを紹介させていただこうと思います。 このMeetupでは、「デザイナー×フロントエンジニアで追求する最高の開発者体験」 というタイトルで話をしてきました。 なぜこの話をしたのか デザイン…
こんにちは、NewsPicksエンジニアの美濃部です。 この記事ではAWSのPrivateLinkについての概要について説明していきます。PrivateLinkの知識が全くない方が理解をして頂く為の最初の入り口としてお役に立てればと思います。 PrivateLinkとは VPCエンドポイントサービスについて VPCエンドポイントについて PrivateLinkのまとめ VPC内のサービスをPrivateLinkでプライベート接続する手順 VPCピアリングとの比較 最後に PrivateLinkとは 公式ドキュメントによるとPrivateLinkとは「VPCとサービスの間にプライベート接続を提供…
こんにちは、JobPicks チームにてフロントエンドを担当しております、イイダです。 今回の記事では、Web Client の開発をしていく中で、私達が日頃どういった視点で "HTML" と向き合っているかという話をさせていただきます。 私達は、「表示データをできるだけ正しく HTML の element tag で表現する」ため、日々模索しています。 「表現方法」なので「これが絶対に正しい」なんて言えない部分もありますが、「みんなとHTML talk したい!」と思い、筆を執りました。 温かい目で読んでいただけるとありがたいです。 この記事を読む前に HTML と向き合うってどういうこと?…
NewsPicksでCTOをしている高山です。最近の仕事のうちの大きな部分は、レコメンドエンジンを開発するチームのプロダクトマネージャー的な役割です。 今回はレコメンドエンジニアに興味のあるエンジニア向けにNewsPicksにおけるレコメンドエンジニアのお仕事を紹介してみます。 NewsPicksにおけるレコメンドのこれまで 2019年以前 2020年以降 NewsPicksのレコメンドエンジニアのお仕事 最近の改善例 オフライン評価 オンライン評価 レコメンドエンジニアリングの楽しさ これからの展望 NewsPicksにおけるレコメンドのこれまで 2019年以前 Google Chrome拡…
こんにちは、NewsPicksエンジニアの大森です。 今回はNewsPicksの姉妹メディア『JobPicks』を昨年立ち上げた際の裏側をエンジニア視点で振り返りたいと思います。NewsPicksのプロダクト開発の雰囲気や新規サービスでやって良かったことや次回への反省点などを共有したいと思います。 サービスについて チーム構成 プロダクト設計フェーズ 実装フェーズ やってよかった点 デプロイやリリースの自動化 Contentfulによる運用コストの低減 TypeScriptの型定義ファイルを自動生成 リリース後 Webメディアはエンジニアと非エンジニアの協力体制が特に大事 協力体制をどのように…
NewsPicks iOSアプリエンジニアの金子です。 NewsPicksアプリはニュース記事やコメントの投稿・閲覧といった基本的な機能に加えて、動画コンテンツや広告の表示、有料会員機能、法人向け機能など、様々な機能を持った規模の大きなアプリです。 このため社内から上がってくる機能開発要求の数も非常に多く、ほぼ毎週、多いときは週に2、3回アップデートをリリースすることもあります。 NewsPicksではデータドリブンで機能開発・改善を行っており、これのベースとなるのがアプリから送信されるログです。信頼できるログがあって初めて、データドリブンな開発が成立します。 また、NewsPicksでは広告…
Uzabase Saas Product Divisionフェローの矢野です。 この記事は、Rich Hickey(プログラミング言語Clojure作者)のプレゼンテーションSimple Made Easyへと繋がっていく、Ben MoseleyとPeter Marksによる「Out of the tar pit」というシステム設計について論じた論文の内容について説明したもので、ユーザベースのSaas Productでのテック発表の一つとしてプレゼンしたものを、ブログとして再度まとめたものです。プレゼン自体は25分くらいでしたので、おそらくこの記事の方がプレゼンよりも詳しいと思います。 ソフト…
こんにちは。 SaaS Product チームの板倉です。 SaaS Productチームでは開発運用しているサービスのマイクロサービス/マイクロフロントエンド化を進めています。 マイクロフロントエンドを実現する技術として採用しているフレームワークはAngular(TS, Dart)、Vue.js、Reactとなっています。 どれも素晴らしいフレームワークだと思いますが、私たちが進めているマイクロフロントエンドのやり方だと他にも良いフレームワークがあるんじゃないかと感じることがありました。 以前から気になっていたSvelteをブログにまとめながら自分でもキャッチアップしてみようと思ったのが今回…