タグ

ブックマーク / inside.pixiv.blog (22)

  • ページ遷移時にReactコンポーネントの状態を維持する - pixiv inside

    こんにちは、VRoid部所属のエンジニアのyueです。 VRoid Hubでページ遷移時にcanvasの状態を維持する改善をリリースしました。記事ではこの取り込みについて解説していきます。 前提 VRoid Hubではモデル詳細画面と投稿者のみに表示するモデル編集画面が存在しています。この二つのページは別々のレイアウトを使っていたため、モデル表示用のcanvasを操作するインスタンスがお互い共通せず、ページ遷移するたびにモデルを再度読み込むことが必要でした。 今回はDOM APIを利用してコード変更を最小限に押えつつ、再度読みを無くすような改善を行いました。 問題の再現 通常Reactの再レンダリングを防ぐには様々な手段があります。例えば React.memo 、React コンポーネントの key 、classコンポーネントのshouldComponentUpdate などが存在します

    ページ遷移時にReactコンポーネントの状態を維持する - pixiv inside
    odan3240
    odan3240 2023/09/23
  • アプリエンジニア育成プロジェクト - pixiv inside

    アプリエンジニア育成に取り組んでいます こんにちは、ピクシブで新規事業部に所属しています、ああうえ(@_kwzr_)と申します。普段のプロダクト開発に加えて、全社的なモバイルアプリ領域の開発体験の向上に取り組んでいます。 最近モバイルアプリの世界ではネイティブなフレームワーク以外の開発手段を採用するものが増えてきましたね。 また、ネイティブアプリ開発の進化によって、iOSではUIKitからSwiftUIAndroidではAndroid ViewからJetpack Composeが採用されることが増えてきました。 モバイルアプリ領域の中で採用できる技術が増えてきたことで、最近は採用したいエンジニアと、世の中にいるエンジニア技術的なミスマッチが起こりやすくなってきたと感じます。 ピクシブのアプリでは、ビューアーなどの閲覧体験が重要になってくるものが多かったり、ライブ配信・視聴機能や、ドロー

    アプリエンジニア育成プロジェクト - pixiv inside
    odan3240
    odan3240 2023/01/20
  • pixivのブックマークに関する負荷対策をしました - pixiv inside

    10/22(金) 追記 この記事で解説している内容について解説する勉強会を開催することとなりました。以下のconnpassよりお申し込みください。 pixiv.connpass.com 10/22(金) 追記 pixivのブックマークについて ブックマークDBの問題について 具体的な対策内容 論理削除廃止・index追加・ブックマークタグのテーブル分割 適応ハッシュインデックスの無効化 アプリケーションコードのリファクタリング・全発行クエリの列挙と見直し 大きな更新処理の非同期化 結果 あわせてよみたい pixivではサービスの成長に伴い、気に入った作品に対して付けることができるブックマークの総数が急速に増加しており、ユーザーの皆様に滞りなくサービスを提供し続けるためブックマークに関するデータベース(以後DB)の負荷対策が必要になりました。 2021年2月より対策を行うプロジェクトを発足し

    pixivのブックマークに関する負荷対策をしました - pixiv inside
    odan3240
    odan3240 2021/10/22
  • スマホアプリエンジニアを支える福利厚生 - pixiv inside

    みなさんこんにちは。スマホアプリ分野テックリードをしている@FromAtomです。 この記事では、ピクシブのスマホアプリエンジニアを支える福利厚生を紹介したいと思います。今回はスマホアプリエンジニアが便利になる福利厚生に焦点を合わせますが、ピクシブ株式会社にはスマホアプリエンジニアエンジニアに限定せず、様々な便利福利厚生が存在しています。詳しくは下記のページをご覧ください。 環境を知る|ピクシブ株式会社 ピクシブ社員がいきいきと働ける「仕組み」とは? 制度・福利厚生をご紹介!- pixiv inside ※上記記事で紹介されている福利厚生の一部は、現在の社会情勢を鑑みて中止になっているものもございます。 PC購入制度 社員が使用したいPC / Macを会社が全額負担で支給してくれる制度です。自分が一番使いやすいPCで業務が出来るので、快適に業務を遂行することができます。また、支給されたP

    スマホアプリエンジニアを支える福利厚生 - pixiv inside
    odan3240
    odan3240 2021/09/15
  • PIXIV Design System 2021 の発表をしました(前編) #pixivdevmeetup - pixiv inside

    2021/10/25追記 おまたせしました。この記事の後編も公開しておりますので、合わせてお読みください。 inside.pixiv.blog こんにちは。プロダクトデザイナーの yksk とフロントエンドエンジニアの f_subal です。 ピクシブにはデザインシステムを開発するチームがあります。ピクシブが運営する数多くのプロダクトが共通のガイドライン、コードを使ってUIを設計できる体制への移行を目的としており、そのための仕組みづくりに取り組んでいます。 今回は、先日行われた pixiv DEV MEETUP 2021 のセッション「PIXIV Design System 2021」で発表した、技術的な取り組みについて前後編に分けて発表します。 前編にあたるこの記事では f_subal パートの内容をおさらいをしていきます。 PIXIV Design System 2021 昨年のpix

    PIXIV Design System 2021 の発表をしました(前編) #pixivdevmeetup - pixiv inside
    odan3240
    odan3240 2021/07/01
  • Herokuから ECSに 移行した - pixiv inside

    こんにちは、インフラ部の id:sue445 です。私事ですが先日GCPの Professional Cloud Architect を取得しました。 そういうわけで今日はGCPではなくAWSの話をします。 tl;dr; 劇的ビフォーアフター 構成 移行のモチベーション パフォーマンス向上 コスト圧縮 アーキテクチャの採択理由 やったこと 1. DB作成 2. MySQL 5.7 -> 8.0 MySQL 8.0でハマったこと MySQL 8.0からデフォルトの認証がcaching_sha2_passwordになった RDSのMySQL 8.0からMariaDB 監査プラグインがなくなった 3. 番用のDockerイメージを作成 困ったこと:CodeIgniterがログの標準出力に対応していなかった 4. ECS + Fargate + CodePipeline構築 5. CDN作成 6

    Herokuから ECSに 移行した - pixiv inside
    odan3240
    odan3240 2021/03/17
  • pixivのUIを迅速にアップデートする UIUXチームのフロントエンドモダン化の歴史 - pixiv inside

    こんにちは。pixiv事業部のUIUXチームでプロダクトマネージャーを担当しているdo7beです。ピクシブにエンジニアとして入社して5年弱ほどで、1年前からプロダクトマネージャーとして活動しています。 今回は僕が所属しているUIUXチームの歴史フロントエンド技術のモダン化についてご紹介していきたいと思います。 UIUXチームとは UIUXチームとは、その名の通りUIに関する問題解決・改修・新機能開発を行うチームです。その他にも海外ユーザーに向けたSEO・ローカライズやフロントエンドエンジニア教育を行っています。 UIUXチームでは意図・目的に合ったUIを目指すためデザイナーとエンジニアが密にやりとりしています。これは学生アルバイトエンジニアも同様で、新規機能をリリースするなどの大きな成果を挙げています。 イラストを魅力的に紹介! pixivでAMP Storiesを実装しました @s

    pixivのUIを迅速にアップデートする UIUXチームのフロントエンドモダン化の歴史 - pixiv inside
    odan3240
    odan3240 2020/11/04
    o.padding(16) とかで書けるの良さそう
  • ピクシブのこれからについて、COOとCTOから皆さまへお伝えします(前編) - pixiv inside

    ピクシブでは企業として掲げているミッション・ビジョン・バリュー達成のため、毎年7月は全社員が一堂に会し、取締役以下全マネージャーより全体方針を踏まえた事業部単位の目標を共有する時間を設けています。 日はそこからピクシブのテックビジョンにスポットライトを当てつつ、取締役COO清水(以下ushioと表記)とCTO道井(以下harukasanと表記)の対談形式で会社の未来について前編・後編に分けてお話させていただきます。 ushio : 今までピクシブが「どのような姿を目指して」「どのように舵を切って成長していくのか」外部に向けて詳細に語る機会はそう多くありませんでした。ですので日は、CTOとの対談形式で事業目標とそれに伴う技術・開発方針について話していきたいと思います。harukasan、よろしくお願いします。 harukasan : よろしくお願いします。 ushio : まず簡単に自己

    ピクシブのこれからについて、COOとCTOから皆さまへお伝えします(前編) - pixiv inside
    odan3240
    odan3240 2020/10/26
  • Terraform運用事例書きました - pixiv inside

    こんにちは、インフラ部の id:sue445 です。 Terraformなにもわからないけどディレクトリ構成の実例を晒して人類に貢献したい - エムスリーテックブログ や Terraformのディレクトリ構成の模索 - Adwaysエンジニアブログ を読んで影響されたのでピクシブのTerraform運用事例を紹介しようと思います。 Terraformの採用理由 GitLabでのリポジトリ構成 Terraformのファイル構成 moduleがうまく使えたと思っている事例 GitLab CIでTerraformをいい感じにCIする テンプレートの使い方 ピクシブで実際に使っているテンプレートファイル このテンプレートでできること masterブランチ以外 masterブランチ このテンプレートファイルのポイント 最後に Terraformの採用理由 Terraformと同じようなプロビジョニン

    Terraform運用事例書きました - pixiv inside
    odan3240
    odan3240 2020/07/31
  • 赤いラクダは3倍早い!ピーク時毎分1400件を捌くための決済処理のチューニング紹介 - pixiv inside

    こんにちは、4月からBOOTH部になったorekyuuです。 この記事では、転属後の一番大きな成果である、BOOTHで発生する大量の注文(ピーク毎分約1400件)を整合性を取りつつ高速にさばく改善について解説します。 BOOTHが抱えていた課題 まずはBOOTHが抱えていた課題について説明します。 BOOTHでは販売開始時刻が事前に予告されていた場合などの理由で瞬間的に決済が集中し、サーバーが大量の注文に耐えきれないケースが度々ありました。 その原因は在庫の処理にありました。擬似コードですが、注文の処理は以下のようになっていました。 def checkout! ActiveRecord::Base.transaction do 商品の悲観的ロック # 在庫数を同時に編集しないようにロックを取る 商品の在庫の減算処理 注文を確定済みにする 決済の請求APIを叩く end end 上記のコード

    赤いラクダは3倍早い!ピーク時毎分1400件を捌くための決済処理のチューニング紹介 - pixiv inside
    odan3240
    odan3240 2020/07/06
  • RendertronをGKEとCloud Runで構築しました - pixiv inside

    こんにちは、インフラ部の id:sue445 です。 今回はRendertronをGKEとCloud Runの両方で構築した話をしたいと思います。 tl;dr; 前置き 今までのRendertronの問題点 GKE版Rendertronについて GKEの採用理由について GKE版Rendertronの構成 全体 GKE内部 pod内部 Kubernetesの設定と解説 rendertron-deployment.yaml rendertron-hpa.yaml rendertron-ingress.yaml rendertron-service.yaml Tips nodeのストレージサイズをケチり過ぎたらpodが起動できなくなった N1マシンタイプのnodeとN2マシンタイプのnodeを比較した結果、N2マシンタイプが安くなった Cloud Run版Rendertronについて Clou

    RendertronをGKEとCloud Runで構築しました - pixiv inside
    odan3240
    odan3240 2020/06/12
  • ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside

    この記事では2020年5月時点でピクシブの社員全員が使っている主なSaaSを紹介します。 ピクシブとSaaS ピクシブはpixiv、BOOTHなどクリエイターを支援する様々なサービスを提供していますが、これらは基的に内製しています。 業務を支えるシステムは最近ではもっぱらSaaSを選ぶことで、社内の開発・運用力をユーザ向けにフォーカスするようにしています。 そんなピクシブでは、かつてはチームごとにバラバラにSaaSを選んで使うことを基にしてきました。 現在はチームが違えどピクシブのプロダクト全体を皆で支えているという意識が高まり、チーム間での共通言語化をすること、利用ノウハウを高めることの重要さが上がってきました。 そういう変化を背景として、徐々に使うSaaSを全員で同じものを使うようになってきています。 なお今でも新しいサービスの利用が必要になったら、どの社員でも申請することができま

    ピクシブの全員が共通で使ってるSaaSの紹介 - pixiv inside
    odan3240
    odan3240 2020/05/21
  • pixivで検索エンジン向けにDynamic Renderingを実装した話 - pixiv inside

    English version: Implementing Dynamic Rendering for Search Engines on pixiv.net - pixiv inside pixivでプロダクトマネージャーをしているmu-koです。 大規模サービスのpixivで検索エンジン向けにDynamic Rendering(ダイナミックレンダリング)を2019年から実装し始めました。Dynamic Rendering実装の経緯や検証方法、注意点などをご紹介します。 pixivとは pixivはクリエイターがイラスト・マンガ・小説を投稿し、声援をもらうことができるサービスです。 2019年9月時点で登録ユーザーは4,000万ユーザー超、投稿作品数は8,500万作品あります。また、日からのアクセスは約60%で日以外の国からのアクセスが約40%です。 日国外のユーザーが作品を簡単に

    pixivで検索エンジン向けにDynamic Renderingを実装した話 - pixiv inside
    odan3240
    odan3240 2020/02/17
  • pixivに脆弱なパスワードで登録できないようにしました - pixiv inside

    図1: 脆弱なパスワードを入力した場合のエラー画面 こんにちは、pixiv開発支援チームのmipsparcです。 パスワード、もしかして使いまわしていますか? 複数のサービスで同じパスワードを利用していると、「パスワードリスト型攻撃」によって不正アクセスの被害を受けてしまうかもしれません。 パスワードリスト型攻撃の被害にあわないためには、ブラウザやパスワード管理ツールで自動生成された安全なパスワードを利用するのが好ましいです。 しかし、実際には多くの人が「使いまわしたパスワード」や「簡単なパスワード」(以下、脆弱なパスワード)を利用していますし、啓蒙活動にも限界があります。 pixivではサイバー攻撃への対策を複数とっていますが、根的な対策のひとつとして、脆弱なパスワードを新しく設定できないようにしました。 脆弱なパスワードの判定方法 脆弱なパスワードの利用はどのように防ぐことができるで

    pixivに脆弱なパスワードで登録できないようにしました - pixiv inside
    odan3240
    odan3240 2020/01/23
  • PIXIV TECH FES.のLPを支えるCSSアニメーションテクニック - pixiv inside

    記事に出てくるアニメーションは全てCSSで作られています はじめまして、新卒エンジニアの yui540(@yui540)です。普段は、pixivFANBOXというサービスのCSSエンジニアをしています。 今回は、私がコーディング&ページ演出のアニメーションを担当させていただいたPIXIV TECH FES. の LP(第一弾)の CSSアニメーションの実装方法を一部解説します。 第一弾 conference.pixiv.co.jp 第二弾 conference.pixiv.co.jp とその前に、「PIXIV TECH FES.って何?」という方もいると思うので、簡単にご説明します。 PIXIV TECH FES. は、私たちピクシブのエンジニアが普段からお世話になっている方や、 お話ししてみたい方をお招きして、サービス開発で得た技術的知見とピクシブの未来についてお話しするテックカンフ

    PIXIV TECH FES.のLPを支えるCSSアニメーションテクニック - pixiv inside
    odan3240
    odan3240 2020/01/22
  • Rails + Contentful で LP のコーディングをゼロにする - pixiv inside

    こんにちは、@f_subal です。 pixivFACTORY というサービスで普段はフロントエンドをやっています。 今回は Rails のサービスに Headless CMS の Contentful を導入し、ワークフローを改善した話をします。 ランディングページ、あるいはマスターデータの詳細について pixivFACTORY はグッズおよび同人誌がブラウザ上で簡単に作れるサービスです。 取り扱っているグッズは 60 種類以上あり、各グッズごとに仕様が大きく異なります。 グッズにはそれぞれ、仕様や出来上がりの写真を載せたページ(以下、product 詳細とも呼びます)が存在します。 要するに、以下の状況を想定してください。 運営が管理する静的なドメインモデル(ここでいう「作れるグッズの仕様」)が存在する モデルの各内容について説明するページが存在する 各ページの内容は DB の内容から

    Rails + Contentful で LP のコーディングをゼロにする - pixiv inside
    odan3240
    odan3240 2020/01/15
  • ピクシブフロントエンド互助会の取り組み - pixiv inside

    どうもこんにちは @f_subal です。普段は pixivFACTORY のフロントエンドを見ています。 最近は ruby-sass の deprecation に悩みながら dart-sass を調べたりしています。 さてさて、みなさん日々の開発にあたってフロントエンドの悩みや知見、気になるニュースなどが溜まっているかと思います。あのライブラリを試したい、あれアップデートしたらハマったので誰かに相談したい…そんなときに社内に頼れる仲間がいると心強いですよね。 というわけで、日はピクシブエンジニア組織における「フロントエンド互助会」の取り組みについてご紹介します。 ピクシブにおけるエンジニア互助会 ピクシブでは2017年まで、システムを超えた共有事項や障害報告や最近の挑戦について話す「技術互助会」というミーティングがありました。初期は全社員の参加でしたが、その後エンジニア全員参加・発表

    ピクシブフロントエンド互助会の取り組み - pixiv inside
    odan3240
    odan3240 2018/12/11
  • 失われた2人日をiMac Proで取り戻し、開発体験を向上するまでの軌跡 - pixiv inside

    お初です。2017年10月入社の @kobaken です。iOSアプリ開発を生業にしております。 最近はすっかりスタァライトされてしまい、舞台創造科の一員になってしまいました。 普段は声優のことを考える傍ら、pixivpixiv SketchのiOSアプリの開発をしています。 ところで、iOSアプリ開発をされている皆さんの中に、このような現象に頭を悩まされている方はいるでしょうか? なかなか終わらないビルド……侵されるCPUリソース……固まるIDE…… わかります。自分も以前までは上記の症例に頭を悩まされ、【精神破壊(メンタルブレイク)】される寸前でした。 どうにかして作業効率を上げないと僕が病んじゃう!そうすると開発の手が止まって、新しい価値をユーザに届けられなくなっちゃう!私これからどうすればいいの〜〜〜!……そんなとき僕たちの目の前に現れたのが「iMac Pro」でした。 iMa

    失われた2人日をiMac Proで取り戻し、開発体験を向上するまでの軌跡 - pixiv inside
    odan3240
    odan3240 2018/09/11
  • BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? #booth_pm #booth - pixiv inside

    2020/12/25 編注:この記事は2018年当時のエピソードです。現在はこの方法では審査に通らなくなりました。 おばんです、給料日であることをいいことに、にじさんじくじに課金しまくったBOOTH iOSエンジニアの @danbo-tanaka です。 平素よりBOOTH iOSアプリをご贔屓いただき、ありがとうございます。 みなさんもうアプリをアップデートしていただけましたでしょうか? 8月16日(木)にリリースしたv2.12.0では、これまで要望の多かった有料ダウンロード商品の販売を実装しました!🎉 これまでiOSアプリにおいて、デジタルコンテンツの購入に対応したアプリは多くありませんでした。それはAppleが用意したアプリ内課金(通称Apple税。手数料として30%をAppleに支払う必要がある支払い方法)を通さなければ、基的にデジタルコンテンツの取り扱いが許されなかったという

    BOOTH iOSアプリはどうやって有料ダウンロード商品の販売を解禁したか? #booth_pm #booth - pixiv inside
    odan3240
    odan3240 2018/08/21
  • pixivのHTTP/2有効化の軌跡 - pixiv inside

    @catatsuyです。普段はpixiv技術的な改善や広告周りを見ています。今回はHTTP/2の話を紹介します。 HTTPS化とHTTP/2について 以前紹介したようにpixivは2017/4/18にHTTPS化を完了していました。 pixivを常時HTTPS化するまでの道のり(前編) - pixiv inside pixivを常時HTTPS化するまでの道のり(後編) - pixiv inside 昨今ブラウザで使える新しい技術はHTTPSが必須要件とされることが多くなりました。その中の代表格がHTTP/2です。HTTP/2自体はHTTPSを要求していませんが、実際にはHTTPSでなければブラウザ側で有効にならないため必須です。 HTTP/2に対応するメリットは他の詳しい記事を参照して欲しいですが、ざっくり以下のメリットがあります。 HPACKという仕様でハフマン符号を使ったHTTPヘッ

    pixivのHTTP/2有効化の軌跡 - pixiv inside
    odan3240
    odan3240 2018/05/11