タグ

ohbaryeのブックマーク (3,522)

  • Effects of Pitchfork reforking on Shopify’s Monolith

    Over the last year, I’ve been working on a new Ruby application server called Pitchfork. In most regards it’s extremely similar to the venerable Unicorn, from which it originates, but with one major extra feature: Reforking, which reduce memory usage of Ruby applications. For most of last year, we couldn’t enable reforking on our application because of an incompatibility with one of our dependenci

    Effects of Pitchfork reforking on Shopify’s Monolith
    ohbarye
    ohbarye 2023/11/05
    コストの高いcopy-on-writeの頻度を増やすreforkはメモリ使用量とレイテンシのトレードオフになるはずだが、reforkされたworkerは多くのJITコードを含むしインラインキャッシュヒットも改善するので両方とも改善した事例
  • A student asked how I keep us innovative. I don't. | nicole@web

    Last week, I did a Q&A session for a friend's security class. One of the students asked a question that I loved. They asked something like, "As a principal engineer, how do you make sure your company stays at the forefront of innovation?" There are two reasons I love this question. The first is that it's a good and natural one, which I had early on too. The second is that it's unintentionally lead

    ohbarye
    ohbarye 2023/11/04
    "As a principal engineer, I view it as my role to keep us off the bleeding edge as much as possible. That way, when we really do need to innovate, we have the capacity to do so. And when we don't need to, we can go really freaking fast."
  • 「FintechプロダクトのRails開発事情とアーキテクチャ解説」というタイトルで Kaigi on Rails 2023でLTしました。 - inSmartBank

    こんにちはスマートバンクでCTOをしております@yutadayoです。先日行われたKaigi on Rails 2023のスポンサーをさせていただき、LT枠にて「FintechプロダクトのRails開発事情とアーキテクチャ解説」というタイトルで発表をしてきました。 今回はその内容に触れつつ、発表しきれなかった箇所の補足も加えてブログで紹介していきたいと思います。 speakerdeck.com B/43 の rails stats B/43 は2021/4/26にローンチされ、リリースしてから約2.5年経つサービスです。リリース当初からメイン機能のほとんどの機能がRailsで開発され今日に至ります。発表直前のメインで開発しているrepositoryのrails statsを取得してみた結果が下記になります。ちなみにこのRailsAPIモードで開発されております。 rails stats

    「FintechプロダクトのRails開発事情とアーキテクチャ解説」というタイトルで Kaigi on Rails 2023でLTしました。 - inSmartBank
    ohbarye
    ohbarye 2023/11/02
    B/43のアーキテクチャ、使用技術、GoとRailsの併用理由、開発の難しいポイント、インフラ構成などがコンパクトにまとまっている
  • 管理機能アーキテクチャパターンの考察と実践 / Learn Architecture through Admin

    Kaigi on Rails 2023 "管理機能アーキテクチャパターンの考察と実践" https://kaigionrails.org/2023/talks/ohbarye/ 管理機能という身近な題材で
アーキテクチャについて考えてみよう、というテーマの資料です。B/43というプロダクトで実際に行った選択と運用の工夫も含みます。

    管理機能アーキテクチャパターンの考察と実践 / Learn Architecture through Admin
    ohbarye
    ohbarye 2023/10/29
    スライド途中の余談「"管理画面"と呼ぶのをやめたほうがいいかも(責務がはっきりした別の名前を与えるべき)」という話にかなり共感を得られて面白かった
  • Engineering Managerという役割がなぜわかりづらいのか - KAKEHASHI Tech Blog

    カケハシでVP of Engineeringをやっています、ゆのん(id:yunon_phys)です。僕はEngineering Manager(EM)とは何かについて、かれこれ5年ぐらいEM.FMというPodcastや、ブログを通じていろんな発信をしてきました。そうすると色んな質問を各所から受けるわけなんですが、一番聞かれる質問第一位は、「結局EMって何する人なんですか?」 です。一口にEMって言っても、なんか人によって得意な領域が違っていたり、大事だと思うポイントがバラバラなので、この疑問を持つのはそりゃそうだよなあ、とは思います。というわけで、このエントリーではEMは何する人なのかを明らかに・・・と思ったのですが、一言で語るのはやっぱり難しいなと思っています。なので、なぜ僕がEMという役割を説明するのが難しいと思っているのか、を書いていきます。 マネージャーの質はチームの足りてない

    Engineering Managerという役割がなぜわかりづらいのか - KAKEHASHI Tech Blog
    ohbarye
    ohbarye 2023/10/21
    "是非EMにフィードバックして、本当に解決すべき課題がこれではないかと提示してみてください。EMも意外とフィードバックをもらう機会が少なくて、EMから喜ばれるかと思います"
  • GitHub - fatkodima/columns_trace: Detect unnecessary selected database columns

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - fatkodima/columns_trace: Detect unnecessary selected database columns
    ohbarye
    ohbarye 2023/10/07
    SQLでSELECTされたけどアプリケーションからアクセスされなかったcolumnsを発見するgem 。ActiveRecordのafter_findでrecordインスタンスを記憶しておいて、action_controllerやactive_jobのafter_(action|perform)でログに出す仕組み
  • 入門 B-link tree

    概要 DBMS で広く利用されている B+ tree には様々な variant が存在するが、B-link tree もその1つ。 シンプルなラッチプロトコルで並行アクセスをさばけるよう、リーフノード以外のノードにも右の隣接ノードへのポインタを持たせた構造となっており、PostgreSQL で使われていることでも有名。 この記事では主にこの B-link tree に焦点を当てる。 B+ tree 全般やその他インデックス技術自体に興味がある場合は「最強DB講義 #10 いまどきのデータベース索引技術(石川佳治 教授)」の講義資料を読むのがおすすめ。 B-link tree 理解する上で必須な知識「ラッチ」 「ラッチ」というのはいわゆるロックのことだが、DB においては「ロック」というとトランザクション分離のための高価な(数千CPUサイクルを要する)処理を指すことが多く、「ラッチ」という

    入門 B-link tree
    ohbarye
    ohbarye 2023/10/01
    おもしろい
  • (翻訳) ストーリーポイント再考 - forest book

    稿は Ron Jeffries 氏によって書かれた次の記事の日語翻訳です。著者に翻訳の許可を得て公開しています。 ronjeffries.com また稿は DeepL Pro を使って下訳したものに手を加えています。日語翻訳の不具合または誤訳については Ron Jeffries 氏ではなく、稿のコメント欄にお願いします。 ここから文です。 ストーリーポイント再考 私はストーリーポイントを発明したかもしれない。もしそうだったとしたら、いまは申し訳なかったと言いたい。ストーリーポイントに関する私の現在の考えを探ってみよう。少なくとも何人かは私の考えに興味をもっているでしょう。 もちろん、ストーリーは XP のアイディアであり、スクラムのアイディアではありません。どういうわけか、スクラムの実践者はこのアイディアを採用しています。公式のスクラムガイドではバックログアイテムに言及している

    (翻訳) ストーリーポイント再考 - forest book
    ohbarye
    ohbarye 2023/09/18
    見積もりなしとスライスの話は、RSGT2019でHunter IndustriesのChris Lucian氏によるno estimateを思い出した
  • 「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog

    YAMLは「便利なJSON」として使われることが多い一方、その複雑性から落とし穴も多く、しばしば批判の対象になります。 なぜYAMLはそこまで複雑なのでしょうか? その背景のひとつは、来のYAMLがJSONとは大きく異なる目的意識で作られているからです。 稿ではYAML specに従う形でYAMLのコンセプトを解説することを目指します。残念ながら、ここに書かれているYAMLの思想は実際には実用されているとは言い難いですし、これらの背景を理解しても「YAMLは複雑だ」という事実がひっくり返ることはないでしょう。それでも、YAMLの複雑さの源泉を体系的に理解し、YAMLとほどほどの距離感で付き合う助けにはなるのではないかと思います。 この記事ではこういう話をしますYAMLはJSONとは独立に、異なる目的で生まれた野心的な仕様であるアンカーやタグなどの強力な構文は、これらの目的を満たすために

    「YAMLの本来の使い方」を仕様から読み取ってみる | Wantedly Engineer Blog
    ohbarye
    ohbarye 2023/09/17
    面白い。marshallingとserializationは別物だし、それぞれがYAMLとJSONの主目的と考えるとわかりやすい。前者はオブジェクト構造を正確に再現する必要がある、と。
  • サブスクリプション課金システム開発ケーススタディ - inSmartBank

    世はまさに大サブスクリプション時代。この潮流の中で弊社スマートバンクもまた、去る2023年7月12日にB/43プラスというサブスクリプションサービスをリリースしました。 サブスクリプションといえばユーザーに提供されるコンテンツや機能といった直接的な価値に焦点が当たりがちですが、その土台にはサブスクリプションビジネスを成立させるための課金システムがあります。記事では筆者が行った課金関連の開発を振り返ってみて重要だったポイントや工夫点を伝えてみたいと思います。 すでに世に多くのサブスクリプションサービスがある中で、課金システムの実装はコモディティ化した単純な作業に思えるかもしれません。しかしながら自社サービスにてゼロから実現するとなると、想像よりも多くの思考と意思決定が必要とされる、エンジニアリング観点ではとても奥深い題材といえます。いち開発プロジェクトのケーススタディ、あるいはいちプログラ

    サブスクリプション課金システム開発ケーススタディ - inSmartBank
    ohbarye
    ohbarye 2023/09/15
    書きました。表のテーマはプロジェクトを通じての工夫ポイント紹介で、裏のテーマは最近はこんなこと考えながら仕事していますという近況報告。プログラマの思考過程を見るのが好きな方もどうぞ
  • ActiveRecordでCTI実装を実現するDelegatedType入門 - inSmartBank

    はじめまして!スマートバンクでサーバーサイドエンジニアをしているhiroteaです。 今回はRails ActiveRecordでCTIをサポートする、DelegatedTypeについてのご紹介です! 代表的なクラス継承パターンとして、STI、CCI、CTIなどがあげられます。Railsは標準で単一テーブル継承 (Single Table Inheritance: STI)実装をサポートしていますが、クラステーブル継承(Class Table Inheritance: CTI)の実装は困難でした。DelegatedTypeは、このCTI実装を容易にする機能であり、Rails 6.1から利用可能です。 大変魅力的な機能にも関わらずドキュメントが少なく実装にも苦労した箇所も多かったため、実装方法などを丁寧に解説しました。これから導入を考えていらっしゃる方のサポートになれば幸いです。 deleg

    ActiveRecordでCTI実装を実現するDelegatedType入門 - inSmartBank
    ohbarye
    ohbarye 2023/09/07
    DHHが37 Signalsで最も重要なアーキテクチャパターンの1つと言っているDelegatedTypeについて。合わせて読みたい https://www.railschangelog.com/12/transcript
  • Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ

    技術部の笹田です。今日で退職するので、バタバタと返却などの準備をしています。 記事では、Rubyの並行並列処理の改善についての私の取り組みについて、おもに RubyKaigi 20222023 で発表した内容をもとにご紹介します。 並行と並列はよく似た言葉ですが、記事では次のような意味で使います。 並行処理(concurrent processing)は、「複数の独立した実行単位が、待っていればいつか終わる(もしくは、処理が進む)」という論理的な概念で、古典的にはタイムシェアリングシステムなどが挙げられます。 並列処理(parallel processing)は、「複数の独立した実行単位のうちのいくつかが、あるタイミングで同時に動いている」という物理的な概念で、古典的には複数のCPU上で同時に実行させる、というものです。最近では、1つのCPU上で複数コアが同時に動いている、という

    Rubyの並列並行処理のこれまでとこれから - クックパッド開発者ブログ
  • How to Communicate When Trust Is Low (Without Digging Yourself Into A Deeper Hole)

    ohbarye
    ohbarye 2023/09/03
    信頼関係が構築されていない状況では中立的な発言でさえ威嚇的で無愛想で非難しているように聞こえるため婉曲表現や修辞が必要となる。過剰で手間に思えるが、失敗してあとでデバグ〜修復するよりは低コストで済む
  • Transparent collaboration is the andon of your knowledge production system

    ohbarye
    ohbarye 2023/09/02
    andon principleはトヨタ生産方式の"行灯"のこと。生産ラインを誰でも止められるという考え方をアジャイルソフトウェア開発に適用する例: 重大な問題への即時対応、開発プロセス全体で常にフィードバックを募る方法など
  • Faster Pull Request Reviews 〜ハイパフォーマンスチームへの道〜 / Faster Pull Request Reviews

    『ベストプラクティスから学ぶ!Four Keys向上へのトライ~夏の開発生産性LT Week~』の登壇資料です。 - イベントURL: https://findy.connpass.com/event/292030/

    Faster Pull Request Reviews 〜ハイパフォーマンスチームへの道〜 / Faster Pull Request Reviews
    ohbarye
    ohbarye 2023/08/25
    めっちゃ良い
  • Broken Ownership

    Have you been in any of these situations? Managers make decisions that’s out of their leagues and everyone else in the team ends up paying for it. Knowledgeable people passively observe without bothering to contribute. Sometimes they are denied access to the room. Developers act like code monkeys, throwing the code over a metaphorical wall for the QA to test and “DevOps” to run. In “you build it,

    Broken Ownership
  • エンジニアリングマネージャーになって1年がたった

    私は,あるスタートアップ企業でエンジニアリングマネージャー(の,1人)をしている。toB向けSaaSを提供している数百名規模の会社で,社名が少しずつ世の中に知られるようになってきたくらいのフェーズ。会社からはDirectorという肩書をもらっていて,トラディショナルな日企業だといわゆる部門長の層にあたる。中間管理職の中では上のほうで,執行役員の下あたり,というと伝わりやすいだろうか。 様々な事情(会社が大きくなった,比較的社歴が長い,そこそこの業界経験値がある,自分の専門領域(*1)に社内のフォーカスがあたるようになり,チームをスケールする必要が出てきた,etc.)から,半ば必要にかられて,重い腰を上げてエンジニアリングマネージャーとして活動を始めたのがちょうど1年ほど前。 決してマネージャーとして早咲きのほうではなく,IT業界でのキャリアは15年くらいで,これまではずっとプレイヤー,ま

  • Web API設計時に使われ方の想定を添えると良い。けどより良いやり方を知りたい - valid,invalid

    先日登壇したイベントにて、仕事で協業したモバイルエンジニアから「Web APIのドキュメントに使われ方の想定が添えられていてありがたかった」とフィードバックをもらった。 具体的にはX post (以下、tweet) に添付した画像のような感じで、Web API (以下、API) が呼び出される画面・タイミングの想定、レスポンスの使われ方の想定などをUIのスクショとともに記述する、というもの。 API設計時にこういう使われ方の想定を添えると認識揃えやすくてありがたい、とモバイルエンジニアに喜ばれました#B43_techtalk pic.twitter.com/XLB3g6fCLZ— ohbarye (@ohbarye) 2023年8月3日 他にもこんなのとか。 APIレスポンスの使われ方の想定を書いているようす このことについて思ったよりもイベント内外で反響があったので書く。 ドキュメントの

    Web API設計時に使われ方の想定を添えると良い。けどより良いやり方を知りたい - valid,invalid
    ohbarye
    ohbarye 2023/08/06
    より良いやり方を知りたいです。切に〜
  • サブスクリプション機能制御の設計における勘所 - inSmartBank

    こんにちは、スマートバンクでアプリエンジニアをしている ロクネム です。 弊社では B/43という家計簿プリカアプリ を提供しており、つい先日サブスクリプションサービス「B/43プラス」をリリースしました。 このようなサブスクリプションを提供するサービスにおいては、そのサブスクリプションを利用しているユーザーのみが特定の “機能” を使用できるように “制御” する必要があるかと思います。 このサブスクリプションの機能制御を実装するにあたって、「サブスクリプションが有効ではない場合は機能を制限する」という設計では実は不十分で、その他にもさまざまな要件を考慮した上でより柔軟な設計を行う必要があります。 記事では、このようなサブスクリプション機能制御の設計における勘所について、B/43プラスを例にご紹介します。 ※ 記事は B/43 Tech Talk 〜 Fintech×サブスクリプショ

    サブスクリプション機能制御の設計における勘所 - inSmartBank
  • サブスクリプションサービスをつくる時にエンジニアが考えること / Behind the Scenes: Engineering a Subscription Service

    「B/43 Tech Talk 〜 Fintech×サブスクリプションサービス立ち上げの裏側〜」にて @ohbarye が"サブスクリプションサービスをつくる時にエンジニアが考えること"と題して発表した資料です。 イベントURL: https://smartbank.connpass.com/…

    サブスクリプションサービスをつくる時にエンジニアが考えること / Behind the Scenes: Engineering a Subscription Service
    ohbarye
    ohbarye 2023/08/03
    月額課金の開発話を中心に発表しました。決済GW etc.を使うにしても仕様決めたり自社内にデータを持つ必要はあるので要求・要件定義やモデリングの重要性は普遍。複数の外部と繋ぐなら抽象度高いモデリングも必要に。