タグ

ikosinのブックマーク (18,443)

  • 自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理

    切り替える理由 Go を採用したのは sqlc が使いたかったという理由 sqlc-gen-typescript が出てきたのでもう Go を使う理由がなくなった 自社サービスチーム全員が Go にまったく興味が無い sqlc 自体は便利 そもそも自社に Go への興味がある人がいない 自社サービスの規模ではボトルネックになるのはデータベースであって言語ではない もしアプリでスケールが必要なときは Rust や Erlang/OTP に切り替えれば良い どうせフロントエンドでは TypeScript を書く 自社では React 一択 Remix がよくできてる 当たり前だが VS Code の TypeScript サポートは素晴らしい ChatGPT や Copilot は TypeScript に詳しい すでに BFF を Cloudflare Workers + Remix で 2

    自社サービスのバックエンドを Go から TypeScript へ切り替えるための整理
  • プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake

    はじめにこんにちは、PIVOTでソフトウェアエンジニアをしている裾分です。PIVOTは2024年2月にアプリ・Webを格始動しました。私はPIVOTにジョインして以降、サブスクリプション機能の開発をしてきたので設計の概要と決済プラットフォームが係る実装の難しさについてまとめてみました。 題冒頭のリリースの通り、PIVOTはYouTubeからプロダクトに集中するにあたり、サブスクリプション機能をリリースしています。 サブスクリプションを実装するにあたり考慮すべき点として、以下の状態を考慮する必要があります。 自サービスで管理する状態 ユーザーのサブスクリプション ユーザーのプラン 他サービスで管理する状態 ユーザーへの課金を行うプラットフォームに登録されているサブスクリプションの状態 決済状態(成功 | 失敗 | …) PIVOTの場合では、決済プラットフォームとして App Store

    プレミアムプランの状態管理と決済ハンドリングの難しさ|tsusowake
  • 忍者式テストの秘密公開!驚きの20年の実績が明かされる! - CAT GETTING OUT OF A BAG

    2023年(仏暦2566年)は、わたしにしてはあり得ないほど活動的な年になった。特に忍者式テストに関する外部への露出が増えて「急にどうした?」と感じられた方もいるかもしれない。なぜこんなことになったのかを記録しておく。 なお、タイトルは「AIタイトルアシスト」(はてなブログの生成AIによる新機能)に作ってもらった。リンク先の論文やスライドを見てもらえれば忍者式テストの秘密がわかるし、驚きの20年の実績(テスト結果)も載ってるから嘘じゃない。自分では思いつかないよ。すごいねぇ。 忍者式テストについて書き物を残したい なぜこんなことになったのかのアンサーは「忍者式テストについて書き物を残したい」これに尽きる。忍者式テストは @m_seki が率いるチーム(咳チーム)が続けているXP(エクストリームな反復開発)に有効なプラクティスである。わたしは忍者式テストの実践者であり、素晴らしい取り組みだと

    忍者式テストの秘密公開!驚きの20年の実績が明かされる! - CAT GETTING OUT OF A BAG
  • Product Opsの力: プロダクトマネジメントを変革する新たなアプローチ - Techtouch Developers Blog

    こんにちは、PdM(プロダクトマネージャー)の shu です。 最近は暖かくなり、散歩が気持ちよくなってきた季節ですね🌸 自分のおすすめの散歩コースは、日比谷駅付近から丸の内方面へ歩いていくコースです。 b8ta Tokyoでおもしろい製品を見て・試してみたり、KITTE の屋上から普段とは違う角度で東京駅をみてみたり、皇居の近くで桜を見てみたりと、「都会と自然」両方を楽しめるコースになっているのでおすすめです。 さて今回は、プロダクトマネジメントチーム(以下PMチームと略します)が取り組んでいる「Product Ops」についてご紹介します。Product Ops は、PMチームが抱える組織課題に対する実践的なアプローチです。その目的は、PMチームの生産性と開発品質を確実に高めていくことにあります。 記事では、Product Ops の具体的なアプローチや進め方を、できる限り分かりや

    Product Opsの力: プロダクトマネジメントを変革する新たなアプローチ - Techtouch Developers Blog
  • JavaScript: 最初の 20 年 (翻訳) - inzkyk.xyz

    翻訳について これは Allen Wirfs-Brock, Brendan Eich 著 JavaScript: the first 20 years の翻訳です。英語版は CC BY 4.0 ライセンスで公開されています。 この翻訳は CC BY 4.0 ライセンスの許諾に基づいて公開されます。 PDF/EPUB 版について この翻訳の PDF/EPUB 版を BOOTH で販売しています。

    JavaScript: 最初の 20 年 (翻訳) - inzkyk.xyz
  • Corne V4 Chocolate

    Corne Chocolateとは 横6 x 縦3キーのcolumn staggered配列(列方向にずらした配列) + 親指3キーの左右分離型キーボードです。 キー数は左右合わせて42個のみで非常にコンパクトな設計となっています。40%分離型キーボードの代表格であるLet's Splitよりも小型であり、Irisから数字列を外したような配置になっています。 V4の特徴 はんだ付け不要 ファームウェア書き込み済み 専用ケースの付属 RemapによるWebブラウザからの簡単なキーマップのカスタム ホットスワップ可能 フルキーバックライト対応 はんだ付けが不要かつファームウェアも書き込み済みのため簡単に組み立てができ、すぐに使用できます。 さらに専用のケースが付属します。高級感のある見た目や打鍵音にもこだわったキットです。 V3からの変更点はこちらをご参照ください デフォルトキーマップは以下を

    Corne V4 Chocolate
  • 分割キーボードを机に固定

    左右分割型のキーボードを机に固定してみた。 今回使ったキーボードは、Corne V4 Chocolate。左右に分かれているタイプで、左右合わせて合計46個の背の低いキーが搭載されており、はんだ付け不要な簡単組み立てキットが販売されている、初心者にもおすすめのキーボード。 このキーボードのケース内底面に鉄板を貼り、机から生やしたアームに磁石型マウントで固定しよう、というのが今回の試みです。 このキーボードのケース内底面には格子状にでっぱりが付いているので、大きな鉄板一枚を貼るのは難しい。そこで、小さな鉄板を複数枚貼り合わせていく。世の中には両面テープ付きの小さな鉄板がまとめて売られているので、それを使います。今回はこの正方形のやつと円形のやつをそれぞれ10枚ずつ貼ってみたところ、十分な磁力を得られました。 Amazon | [エムティ]スチールプレート (マグネット吸着用) シルバー 小

    ikosin
    ikosin 2024/05/01
  • プロダクトマネージャーの役割は「プロダクトマネジメントをすること」だけではないかも - Qiita

    はじめに 今回プロダクトマネージャーの動きを行っていく中で、新しい気づきがあったので記事としてまとめました。 プロダクトマネジメントをプロダクトマネージャーだけで行わない プロダクトマネジメントとは、プロダクトを成功に導く考えであり、これはプロダクト作りに関わる人であれば必ず必要になってくるものです。 つまり、プロダクトマネジメントとは特定の誰かが行うアクションではなく、チームや組織全体で行っていくものだと考えています。 プロダクトマネージャーの役割 プロダクトマネージャーの主の役割とは、もちろんプロダクトマネジメントを行うことです。 しかし、プロダクトマネジメントが行えている状態を組織として目指すためには 「プロダクトマネジメントをすること」だけではなく「プロダクトマネジメントができる組織づくり」も行う必要があると考えています。 そのためには、プロダクトマネージャーとして、「プロダクトマ

    プロダクトマネージャーの役割は「プロダクトマネジメントをすること」だけではないかも - Qiita
  • MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭

    今回答えを出したい問いはこちら!! インデックスはどのような仕組みを以て、何を実現したいものなのか それを踏まえたとき、インデックスはどういう場合になぜ貼る方が良いのか。また、どういう場合になぜ貼らない方が良いのか 大体分かっているよって人はサヨナラって感じのおさらい記事だぜ!!!!それじゃいってみよー🎉 あと、おれは今回MySQLにしぼっていくぜ👶 ってわけでOracleとかに興味があるやつは引き返しな! indexの概要 公式の見解としては「where句を使ったselectクエリの実行速度を向上させるために実装されている、各行へのポインターのような振る舞いをする仕組み」って感じ👶 The best way to improve the performance of SELECT operations is to create indexes on one or more of t

    MySQLのインデックスの貼っていいとき悪いときを原理から理解したいよ😭
  • Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50

    Kyoto.go #50 LT https://kyotogo.connpass.com/event/313309/

    Go製Webアプリケーションのエラーとの向き合い方大全、あるいはやっぱりスタックトレース欲しいやん / Kyoto.go #50
    ikosin
    ikosin 2024/04/30
  • 元QAが開発チームにjoinして品質向上を試みたこと3選 - Qiita

    はじめに どうも、元QAのエンジニア @Syahu_Writer です。 今回は、元QAが開発チームにjoinしてから行った品質向上のための施策について紹介していきます。 大なり小なりいろいろとやってますが、代表して以下3つを話します。 ・開発プロセスの改善 ・シナリオテストケーステンプレートの改善 ・不具合の再発防止 開発プロセスの改善 以下は当初の開発フローを図に書き起こしたものです。 この図から読み取れる問題点はざっくりと、 ・すべて直列のフローだが、並列処理にしていいものも混じっている ・テスト完了レビューといった、不要で実際に行われていないものがある ・レビューのタイミングが悪く、大きく手戻りが発生する箇所がある という状態でした。 それを以下の通り修正しました。 ・並列にして問題ないものは並列にする ・不要なプロセスは削除する ・手戻りが最小限となるようにレビューを設置する ま

    元QAが開発チームにjoinして品質向上を試みたこと3選 - Qiita
    ikosin
    ikosin 2024/04/30
    “「今見えている地雷をまず撤去する」「マイナスを0にする」”
  • 請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog

    以前に アプリケーションを停止させずにRDBのスキーマ変更する話 を書きました。 developer.feedforce.jp 今日は、その実践編というか、実例として EC Booster というサービスで請求関連テーブルのスキーマを変更した話をしようと思います。 はじまりのテーブル 元々、 EC Booster の請求を管理するテーブルは、このような形でした。 create_table "monthly_charges", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "shop_id", null: false t.integer "year", null: false t.integer "month", null: false t.datetime "created_at"

    請求関連テーブルのスキーマ変更をした話 - Feedforce Developer Blog
  • カーソルページネーションを実装した話 | MoT Lab (GO Inc. Engineering Blog)

    バックオフィス基盤第2グループの名嘉眞です。私の担当しているプロダクトにカーソルページネーションを実装したので、その経緯と実装内容を記事にしたいと思います。これからカーソルページネーションを実装しようとしている方の参考になれば幸いです。 カーソルページネーションを実装したきっかけカーソルページネーションを実装したきっかけは、1ユースケースでデータ量が大きくなるAPIを追加する必要があったためです。 具体的にいうとある特定の種別の決済情報を蓄積しているマイクロサービスがあり、そのマイクロサービスを利用する管理画面のサービスが存在していて、管理画面でその特定の決済情報を表示したり、CSVダウンロードしたいという機能追加がありました。サービス間の通信はgRPCです。 この要件だけだとオフセットページネーションでも良さそうなのですが、以下のような課題がありました。 ※オフセットページネーションとは

    カーソルページネーションを実装した話 | MoT Lab (GO Inc. Engineering Blog)
  • AWS入門ブログリレー2024〜AWS IAM Access Analyzer編〜 | DevelopersIO

    コンバンハ、千葉(幸)です。 当エントリは弊社AWS事業部による『AWS 入門ブログリレー 2024』の33日目のエントリです。 このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。 AWS をこれから学ぼう!という方にとっては文字通りの入門記事として、またすでに AWS を活用されている方にとっても AWS サービスの再発見や 2024 年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合いいただければ幸いです。 では、さっそくいってみましょう。今回のテーマは『AWS Identity and Access Management (IAM) Access Analyze

    AWS入門ブログリレー2024〜AWS IAM Access Analyzer編〜 | DevelopersIO
    ikosin
    ikosin 2024/04/30
  • より良い Git コミットメッセージを書こう - Qiita

    より良いコミットメッセージを残すことは Git を使った開発をする上で重要なことです。優れたコミットメッセージは、それを読んだ人がコードを理解するのに大いに役立ちます。 では、どのようなメッセージが良いもので、どのようなメッセージが悪いものなのでしょうか? それについて掘り下げていきたいと思います。 基的な Git Commit Message の書き方 詳しいところは、以下の3サイトを参照してください。特に「How to Write a Git Commit Message」には基がすべて書かれています。 How to Write a Git Commit Message https://cbea.ms/git-commit/ Gitのコミットメッセージをうまく作成する7つのルール (「How to Write a Git Commit Message」の和訳記事) https://

    より良い Git コミットメッセージを書こう - Qiita
    ikosin
    ikosin 2024/04/30
  • 12.6. B-Trees — CS3 Data Structures & Algorithms

    12.6.1. B-Trees¶ This module presents the B-tree. B-trees are usually attributed to R. Bayer and E. McCreight who described the B-tree in a 1972 paper. By 1979, B-trees had replaced virtually all large-file access methods other than hashing. B-trees, or some variant of B-trees, are the standard file organization for applications requiring insertion, deletion, and key range searches. They are used

  • 若者の常識らしい「スマホの全身撮影方法」を試してみた

    若者の常識らしい「スマホの全身撮影方法」を試してみた
  • データマネジメント成熟度アセスメントを実施しました(2024年版) - 10X Product Blog

    データ基盤チームに所属しているデータエンジニアの吉田(id:syou6162)です。10X社内のデータマネジメントの仕事をしています。 10X社内では2022年10月にデータマネジメント成熟度アセスメントを実施していましたが、それから約一年半が経過し、データマネジメント上の課題が進捗 / 変化した箇所が出てきました。そこで、最近の成果を振り返りつつ今後のデータマネジメントの方針を改めて見直すため、データマネジメント成熟度アセスメントを再度行なうことにしました。エントリではその内容についてまとめます。 前回のデータマネジメント成熟度アセスメントへの取り組み 今回のデータマネジメント成熟度アセスメントのやり方 成熟度アセスメントの実際の結果 前回実施時との差分が大きかった項目 データセキュリティ データ品質 メタデータ 優先度が高かったにも関わらずあまり進まなかった項目 まとめ 前回のデータ

    データマネジメント成熟度アセスメントを実施しました(2024年版) - 10X Product Blog
  • 複数の企業でデータエンジニアとして求められたスキル - yasuhisa's blog

    最近「ああ、これ前職でも前々職でもやったことあるなぁ」という仕事があった。データエンジニア(やその関連職種)として働き始めて約5年、3社でフルタイムとして働いてきて「このスキルは業界や組織規模が変わってもデータエンジニアとしてスキルを求められることが多いな」と感じたものをまとめてみることにした。棚卸し的な意味はあるが、特に転職用などではないです。 前提 どこでも必要とされたスキル データマネジメントに関する概要レベルの知識と実行力 セキュリティや法令に関する知識 事業ドメインに関する興味関心 他職種とのコミュニケーション能力 コスト管理 / コスト削減のスキル ソフトウェアエンジニアとしてのスキル DataOpsやアラートのハンドリング能力 分析用のSQLを書く力 古いテーブルやデータパイプラインを置き換えていくスキルや胆力 あるとやりやすいスキル 関連部署の動きを何となく把握しておく力

    複数の企業でデータエンジニアとして求められたスキル - yasuhisa's blog
  • note の Aurora MySQL を v2 から v3 へアップグレードしました|tic40

    note ではメインデータベースとして Aurora MySQL を採用し、日々発生する膨大なトラフィックを処理しています。Aurora MySQL v2 (MySQL 5.7 互換) の標準サポートは2024/10/31 に終了するため、これを機に v3 (MySQL 8.0 互換) へのアップグレードを行いました。 アップグレードは無事に完了しましたが、いくつかの問題にも直面しました。これらを共有することで、これからアップグレードを検討している方へ参考になればと思います。 事前に検討した課題アップグレード後に致命的な問題が起きたらどうするかv3 へのアップグレード後に v2 へ切り戻すことは容易ではなく、スナップショットなどからの復元が必要になります。データをロールバックすることになるため、ユーザ影響が極めて大きく避けたい事態です。 そのため、基的に切り戻しはできないという前提でアッ

    note の Aurora MySQL を v2 から v3 へアップグレードしました|tic40
    ikosin
    ikosin 2024/04/30