はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena
  • Hatena

    はてなブックマーク

    トップへ戻る

    • 総合
      • 人気
      • 新着
      • IT
      • 最新ガジェット
      • 自然科学
      • 経済・金融
      • おもしろ
      • マンガ
      • ゲーム
      • はてなブログ(総合)
    • 一般
      • 人気
      • 新着
      • 社会ニュース
      • 地域
      • 国際
      • 天気
      • グルメ
      • 映画・音楽
      • スポーツ
      • はてな匿名ダイアリー
      • はてなブログ(一般)
    • 世の中
      • 人気
      • 新着
      • 新型コロナウイルス
      • 働き方
      • 生き方
      • 地域
      • 医療・ヘルス
      • 教育
      • はてな匿名ダイアリー
      • はてなブログ(世の中)
    • 政治と経済
      • 人気
      • 新着
      • 政治
      • 経済・金融
      • 企業
      • 仕事・就職
      • マーケット
      • 国際
      • はてなブログ(政治と経済)
    • 暮らし
      • 人気
      • 新着
      • カルチャー・ライフスタイル
      • ファッション
      • 運動・エクササイズ
      • 結婚・子育て
      • 住まい
      • グルメ
      • 相続
      • はてなブログ(暮らし)
      • 掃除・整理整頓
      • 雑貨
      • 買ってよかったもの
      • 旅行
      • アウトドア
      • 趣味
    • 学び
      • 人気
      • 新着
      • 人文科学
      • 社会科学
      • 自然科学
      • 語学
      • ビジネス・経営学
      • デザイン
      • 法律
      • 本・書評
      • 将棋・囲碁
      • はてなブログ(学び)
    • テクノロジー
      • 人気
      • 新着
      • IT
      • セキュリティ技術
      • はてなブログ(テクノロジー)
      • AI・機械学習
      • プログラミング
      • エンジニア
    • おもしろ
      • 人気
      • 新着
      • まとめ
      • ネタ
      • おもしろ
      • これはすごい
      • かわいい
      • 雑学
      • 癒やし
      • はてなブログ(おもしろ)
    • エンタメ
      • 人気
      • 新着
      • スポーツ
      • 映画
      • 音楽
      • アイドル
      • 芸能
      • お笑い
      • サッカー
      • 話題の動画
      • はてなブログ(エンタメ)
    • アニメとゲーム
      • 人気
      • 新着
      • マンガ
      • Webマンガ
      • ゲーム
      • 任天堂
      • PlayStation
      • アニメ
      • バーチャルYouTuber
      • オタクカルチャー
      • はてなブログ(アニメとゲーム)
      • はてなブログ(ゲーム)
    • おすすめ

      ブラックフライデー

    『newmo技術ブログ』

    • 人気
    • 新着
    • すべて
    • ergo - Goのエラーライブラリを自作して1年間利用してみた振り返り - newmo 技術ブログ

      65 users

      tech.newmo.me

      はじめに Goのエラー処理 Goのエラー処理に何かライブラリを利用していますか? この質問はGo 1.0のリリースから10年以上経つ今でも、日本のGoコミュニティでよくされる質問です。筆者(tenntenn)もよく他社の方からされます。 pkg/errorsやgolang.org/x/xerrorsがデファクトスタンダードだった頃と比べ、近年(2025年)はあまりデファクトスタンダードと呼べるライブラリが無いのが現状です。 また、言語仕様やerrorsパッケージについても徐々にアップデートされてきました。Go 1.13でエラーのラップやerrors.Is、errors.Asがリリースされ、pkg/errorsが作ったエラーをラップする文化が標準にも導入されました。同様にGo 1.20でerrors.Joinが入り、hashicorp/go-multierror や go.uber.org/

      • テクノロジー
      • 2025/12/07 10:16
      • golang
      • go
      • あとで読む
      • Design Tokenが変化することを前提にした型安全なCSS — newmoでPanda CSSを採用した理由 - newmo 技術ブログ

        14 users

        tech.newmo.me

        © 2023-Present Segun Adebayo newmoでは、1行目のCSSを書く前に1つ目のDesign Tokenを定義しました。Design Tokenを起点にした開発を実現するため、CSSスタイリングフレームワークにはPanda CSSを採用しています。 しかし、創業期のスタートアップでは、デザインシステムは完成品ではなく日々変化していくものです。Design Tokenの命名が変わる、階層構造が見直される、色の値が調整される——こうした変更が頻繁に発生します。数百箇所に散らばったtokenを手動で置換すると、必ず修正漏れが発生します。そもそもDesign Tokenの使用を強制できなければ、変更に追従する以前の問題です。 newmoでは、TypeScriptの型システムを活用して、Design Tokenの変更を安全に行える仕組みを構築しました。この記事では、なぜPa

        • テクノロジー
        • 2025/12/05 12:40
        • css
        • article
        • あとで読む
        • newmoでのAlloyDBの最適化の日々 - newmo 技術ブログ

          3 users

          tech.newmo.me

          1. はじめに newmoではメインのデータベースとしてGoogle CloudのAlloyDBを利用しています。サービスの成長に伴い、GraphQLやgRPCを通じたリクエストが増加し、最近、本番環境のデプロイ時にCPU負荷が90%を超えるという問題に直面しました。 本番環境へのデプロイ時のアラート この記事では、AlloyDBのパフォーマンス最適化に取り組んだ記録をまとめています。「発見 → 改善 → 計測」のサイクルを繰り返しながら、Slow Queryの改善、N+1問題の解消、そしてRead Pool Instanceの導入まで、段階的に行った改善とその効果について詳しく解説します。 かなり詳細な内容になっていますが、同様の問題に悩んでいる方の参考になれば幸いです。 2. システム構成と発生した問題 システム構成 newmoのバックエンドは、Goで実装されたModular Mono

          • テクノロジー
          • 2025/12/02 11:03
          • GitHub ActionsでESLintのShardingを実装して、CIの実行時間を51%削減しました - newmo 技術ブログ

            4 users

            tech.newmo.me

            newmoでは、pnpm workspaceで管理している複数のアプリケーションやライブラリに対してESLintを実行しています。 プロジェクトの成長とともにLint対象のファイル数が増加し、CI実行時間とメモリ使用量が増加していました。GitHub Actionsのmatrixオプションを使用した動的なShardingを実装し、これらの問題に対応しました。 newmoフロントエンドの開発原則 newmoのフロントエンド開発では、次の原則を重視しています。 1つ目は、「同じ目的を達成するための手段を統一する」という原則です。同じ目的に対する複数の手段が混在するよりも、統一した手段を使うことで学習コストや保守コストを削減できます。例えば、npmパッケージのバージョン管理では、One Version Ruleに基づき、同じ目的を持つライブラリは1つに絞っています。これは「同じコードを書かない」

            • テクノロジー
            • 2025/11/08 14:31
            • ESLint
            • Github
            • performance
            • article
            • あとで読む
            • renovatebotとpnpm catalogで実現する依存関係の自動アップデートとハンドブックによる安全な更新 - newmo 技術ブログ

              26 users

              tech.newmo.me

              はじめに モノレポ環境での依存関係管理は、プロジェクトの規模が大きくなるほど複雑になります。 newmoでpnpm catalogを導入してOne Version Ruleを実装し、パッケージのバージョンを一元管理する仕組みを構築しました。詳細はmonorepo内でのパッケージのバージョンを1つだけに統一するOne Version Ruleをpnpm catalogで実装する - newmo 技術ブログを参照してください。 しかし、一元管理の実現だけでは依存関係の更新作業そのものは依然として手動であり、セキュリティアップデートの適用遅延やレビュー負荷の増大という課題が残っていました。 本記事では、renovatebotとpnpm catalogを組み合わせた依存関係の自動更新システムについて、実装の詳細から運用方法まで解説します。 特にAuto Merge機能において、パッケージの自動更新

              • テクノロジー
              • 2025/10/28 18:10
              • pnpm
              • あとで読む
              • article
              • feature flag 入門と newmo の feature flag 基盤について - newmo 技術ブログ

                50 users

                tech.newmo.me

                こんにちは。Platform Team の tobi (@iam__tobi) です。 本記事では feature flag の基礎的事項の説明と、Platform Team で開発してきた newmo 独自の feature flag 基盤の設計思想と全貌について二段構成でご紹介します。 これから feature flag を導入しようと考えている方にとって参考になれば幸いです。 背景・概要 feature flag 入門 feature flag の概要 feature flag の構成要素 Toggle Point Toggle Router Toggle Context Toggle Configuration feature flag の種類 Release Toggles Experiment Toggles Ops Toggles Permission Toggles Ope

                • テクノロジー
                • 2025/07/31 16:35
                • development
                • 開発
                • あとで読む
                • *Webサービス
                • 技術
                • ブログ
                • Cloud Service Mesh for Cloud Run で実現する PR 環境 - newmo 技術ブログ

                  28 users

                  tech.newmo.me

                  この記事では、Cloud Service Mesh for Cloud Run を利用して PR 環境を構築する方法について紹介します。 背景・概要 newmo ではトランクベース開発を行なっているため、開発環境での動作確認は main branch (trunk) に merge されていることが前提になっています。 そのため現状では、手軽に開発環境で API の動作確認ができなかったり、動作検証が十分でないコードが main branch に merge されてしまう課題があります。CI での test 実行などにより一定品質は担保していますが 、PR 環境 (GitHub の Pull Request ごとに用意される一時的な環境) で QA ができれば問題発見のタイミングを前にずらすことができます。 PR 環境の要件は以下の通りです。 機能追加を行なった PR が実際に Cloud

                  • テクノロジー
                  • 2025/04/11 16:55
                  • cloud
                  • あとで読む
                  • クラウド
                  • エンジニア
                  • techfeed
                  • サービス
                  • 開発
                  • Devinが作るPull Requestのセルフマージを禁止する - newmo 技術ブログ

                    47 users

                    tech.newmo.me

                    AI開発ツールDevinが作成したPull Requestに対して、セキュリティと品質を確保するために2人の承認を必要とする実装方法について解説します。 2025/05/21 追記 レビューコメントが30件以上あったときに正しく動かない問題を修正しました 開発者が書いたPull RequestをDevinにApproveしてもらってマージするパターンも防ぎたい場合は、ifの条件を少し変える必要があります。 背景 newmoでも少し前からDevinを利用して開発を行っています。 Devinを利用するフローは、以下のような感じになります。 エンジニアがSlackやDevinのWeb UIからタスクを依頼 DevinがGitHubにPull Requestを作成 エンジニアは必要に応じてSlackやPull Request上でコメント Devinがコードを修正 問題なければ承認してマージ dev

                    • テクノロジー
                    • 2025/04/07 15:15
                    • github
                    • Devin
                    • AI
                    • あとで読む
                    • 人工知能
                    • review
                    • ブラウザで動作する地理空間データ処理ライブラリとして DuckDB-wasm を使い、 SQL を TypeScript で管理する仕組みを作る - newmo 技術ブログ

                      152 users

                      tech.newmo.me

                      newmo では、地図データや地理情報を扱う場面が多くあります。 たとえば、タクシーやライドシェアでは、営業区域のような営業していいエリアといった地理的な定義があります。 また、乗り入れ禁止区域のようなタクシーが乗り入れてはいけないエリアといった定義も必要になります。 これらの地理に関する定義は GeoJSON のような地理情報を扱うデータ形式で管理されることが多いです。 しかし、GeoJSONなどの定義をテキストとして手書きするのは困難です。 そのため、地図上に区域を作図するエディタやその定義した区域が正しいかをチェックするような管理ツールが必要です。 管理ツールは、ウェブアプリケーションとして作った方が利用できる環境が広がります。 このような地理情報は一度に扱うデータが多かったり、空間的な計算処理が必要になるため、専用の仕組みを使うことが多いです。 このような技術を、地理情報システム(

                      • テクノロジー
                      • 2024/11/15 23:05
                      • DuckDB
                      • TypeScript
                      • あとで読む
                      • gis
                      • WebAssembly
                      • SQL
                      • wasm
                      • データ
                      • 地図
                      • MonorepoでのTerraform運用を楽にする!tfactionを使ったGitHub Actions Workflowの構築 - newmo 技術ブログ

                        3 users

                        tech.newmo.me

                        はじめに newmoではGoogle Cloud等のリソース管理にTerraformを使っています。また、newmoではMonorepoを使って開発しています。 Monorepoについてここでは詳しく説明しませんが、バックエンドのGoのコードもフロントエンドのTypeScriptのコードもTerraformのコードもすべて同じGitHubのレポジトリで管理し開発を行っています。 TerraformのコードをMonorepoで管理することで、以下の要素を統一的に制御できるようになりました CICDパイプライン TerraformとProviderのバージョン セキュリティポリシー Lintルール クラウドリソースの構成 パフォーマンスとコストの最適化 リソースをTerraformのコードで管理する場合に用意するGitHubでのWorkflowは一般的には以下のようなものになると思います。 T

                        • テクノロジー
                        • 2024/11/09 13:36
                        • まずはイテレータ(range over func)の仕様を学ぼう - Goのイテレータ深堀りNight - newmo 技術ブログ

                          27 users

                          tech.newmo.me

                          はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 本稿では、2024年9月24日(火)にファインディ株式会社主催の「Goのイテレータ深堀りNight」というイベントで登壇してきましたので、その報告と内容について紹介します。 findy.connpass.com 「Goのイテレータ深堀りNight」は、2024年8月にリリースされたGo1.23の機能の1であるrange over func(通称イテレータ)について、6人の登壇者がさまざまな角度で10分のライトニングトーク(LT)を行うイベントです。筆者は、トップバッターということで「まずはイテレータ(range over func)の仕様を学ぼう 」という発表を行いました。 登壇に用いた資料は次のリンクから閲覧ができます。 docs.google.com イテレータの導入経緯 イテレータの導入経緯

                          • テクノロジー
                          • 2024/09/30 12:13
                          • golang
                          • あとで読む
                          • プログラミング
                          • programming
                          • design
                          • *あとで読む
                          • go testの時だけ時刻を固定する - newmo 技術ブログ

                            50 users

                            tech.newmo.me

                            はじめに こんにちは。newmoでソフトウェアエンジニアをやっている@tenntennです。 newmoには2024年8月に入社しました。この記事を書いているのは2024年9月なので、入社してだいたい1ヶ月ちょっとが経過したところです。 なお、筆者が入社した経緯などは次の記事を読んでください。 note.com 入社した当初、newmoのバックエンドコードのコードを眺めていると、次のように宣言された関数を見つけました。 func Now(_ context.Context) time.Time { return time.Now().In(time.UTC) } 単にtime.Now関数を呼び出して、LocationをUTCに設定しているだけです。 しかも、引数はブランク識別子になっているので使用していません。 しかし、筆者はこれを見て、これは後々のことを考えているなと感心しました。 ちな

                            • テクノロジー
                            • 2024/09/20 16:22
                            • golang
                            • go
                            • あとで読む
                            • テスト
                            • test
                            • *あとで読む
                            • GitHub ActionsのJobが落ちたときに何をするべきかを記述するPlaybookの仕組みを作って運用している話 - newmo 技術ブログ

                              119 users

                              tech.newmo.me

                              newmoではGitHub Actionsを自動テスト、Lint、デプロイなどに利用しています。 また、newmoではmonorepoで開発しているため、1つのリポジトリに複数のチーム/複数のアプリケーションが存在しています。 GitHub Actionsではpathsを使うことで、特定のファイルが変更された場合のみ特定のWorkflowが実行できます。 newmoのmonorepoのworkflowでは基本的にpathsが指定されていますが、それでも普段は触らないファイルを変更して意図せずにCIが落ちることがあります。 GitHub ActionsのCIが落ちたときに、そのCIの仕組みを作った人やチーム以外だと何をすべきかわからないことがあります。 この問題の解決するを手助けするシンプルな仕組みとして、GitHub ActionsにCIが落ちたときに何をするべきかを表示するPlayboo

                              • テクノロジー
                              • 2024/09/04 14:27
                              • github
                              • ci
                              • あとで読む
                              • GitHub Actions
                              • 運用
                              • dev
                              • 技術
                              • tips
                              • monorepo内でのパッケージのバージョンを1つだけに統一するOne Version Ruleをpnpm catalogで実装する - newmo 技術ブログ

                                14 users

                                tech.newmo.me

                                newmoでは、フロントエンド、バックエンド、iOSやAndroidなどのモバイルアプリをすべて同じリポジトリで管理するmonorepoを採用しています。 monorepoを採用することで、アプリケーション間で共通のコードを共有することができたり、CIの管理が楽になったり、他のチームのコードを見るのにわざわざリポジトリをcloneする必要がなくなります。 また、monorepoを採用することで、アプリケーションが利用しているパッケージ(ライブラリやツール)のバージョンを1つだけにするOne Version Ruleが実装できます。 One Version Rule One Version Ruleは、monorepo内のパッケージのパッケージのバージョンを1つだけにするルールです。 The One Version Rule  |  Google Open Source One Versio

                                • テクノロジー
                                • 2024/08/31 15:02
                                • pnpm
                                • monorepo
                                • JavaScript
                                • article
                                • あとで読む
                                • Go + GraphQL による Modular Monolith なシステム設計について発表しました - newmo 技術ブログ

                                  4 users

                                  tech.newmo.me

                                  こんにちは、newmo 株式会社に所属しているアーキテクトの伊藤です。 5/22 に【Go】カンファレンススポンサーブースの集い 2024 〜カウシェ × newmo × メルカリ〜というイベントを開催しました。 このイベントで、筆者からは GraphQL Federation や Go のための GraphQL のコード生成、Modular Monolith によるシステム設計について話しました。 スライドや動画のアーカイブは、次の場所で公開されているので、ぜひご覧ください! スライド: Go + GraphQL @ newmo - Speaker Deck 動画: 【Go】カンファレンススポンサーブースの集い 2024 〜カウシェ × newmo × メルカリ〜 - YouTube 筆者が発表した内容を簡単にまとめると、次の3つのポイントが挙げられます。 GraphQL Federat

                                  • テクノロジー
                                  • 2024/05/31 02:30
                                  • 🚗 newmo の技術ブログをはじめます 🚕 - newmo 技術ブログ

                                    14 users

                                    tech.newmo.me

                                    newmoのCTOのsowawaです。はじめまして〜🚕 🚗 まず、最初にnewmoについて話したいと思います。 newmoはタクシーとライドシェアの会社として2024年に設立されました。 「newmo」は新しいモビリティの会社という意味で、new mobilityからnewmoと名づけました。 newmoでは、移動の問題を解決してみんなが自由に移動できる社会を作りたいと思っています。特に地域社会は移動に課題を抱えるところも多くなってきていて、好きなときに好きなところに行くことが難しいということも少なくありません。newmoではそういった課題を解決して、できるだけ多くの人が好きなときに好きなところに行けるようにできるといいなと思っています。同時に、地域で暮らす人たちが地域の交通の担い手として地域社会に貢献できるようにしたいと思っています。 そんな想いを込めてnewmoのミッションは 「移

                                    • テクノロジー
                                    • 2024/05/01 22:41
                                    • あとで読む

                                    このページはまだ
                                    ブックマークされていません

                                    このページを最初にブックマークしてみませんか?

                                    『newmo技術ブログ』の新着エントリーを見る

                                    キーボードショートカット一覧

                                    j次のブックマーク

                                    k前のブックマーク

                                    lあとで読む

                                    eコメント一覧を開く

                                    oページを開く

                                    はてなブックマーク

                                    • 総合
                                    • 一般
                                    • 世の中
                                    • 政治と経済
                                    • 暮らし
                                    • 学び
                                    • テクノロジー
                                    • エンタメ
                                    • アニメとゲーム
                                    • おもしろ
                                    • アプリ・拡張機能
                                    • 開発ブログ
                                    • ヘルプ
                                    • お問い合わせ
                                    • ガイドライン
                                    • 利用規約
                                    • プライバシーポリシー
                                    • 利用者情報の外部送信について
                                    • ガイドライン
                                    • 利用規約
                                    • プライバシーポリシー
                                    • 利用者情報の外部送信について

                                    公式Twitter

                                    • 公式アカウント
                                    • ホットエントリー

                                    はてなのサービス

                                    • はてなブログ
                                    • はてなブログPro
                                    • 人力検索はてな
                                    • はてなブログ タグ
                                    • はてなニュース
                                    • ソレドコ
                                    • App Storeからダウンロード
                                    • Google Playで手に入れよう
                                    Copyright © 2005-2025 Hatena. All Rights Reserved.
                                    設定を変更しましたx