並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 109件

新着順 人気順

monorepoの検索結果1 - 40 件 / 109件

  • 今あらためてコンテナ界隈を俯瞰する「Docker/Kubernetes コンテナ開発入門」 | DevelopersIO

    単著ならではの一貫性と、筆者のノウハウをありったけ突っ込んでやろう!というあっつい想いを感じる素晴らしい書籍です。 「2018年から2024年、コンテナ界隈もいろいろ変わったもんだなぁ…(しみじみ)」 献本いただいた「Docker/Kubernetes 実践コンテナ開発入門 改訂新版」を眺めながら、ハマコーはそんな感慨にふけっておりました。 5年前、Docker始める人はまずこれ!書評「Docker/Kubernetes 実践コンテナ開発入門」で旧版の書評を書いたご縁で、著者の山田さんより改訂新版の献本をいただき、今この場にその本があるというわけです。 改めて中身読んでいたのですが、単著でこれはマジでやばいです。今コンテナを使った開発を進めようとしたときにでてくるであろう、開発〜運用面でのトピックが幅広く凝縮されている本で、「これ一冊読んどけば、マジはずれないよ」というぐらいの力が入った書

      今あらためてコンテナ界隈を俯瞰する「Docker/Kubernetes コンテナ開発入門」 | DevelopersIO
    • You Don't Need AWS ~お前にAWSは必要ない~

      はじめに タイトルはこちらから拝借しました。この記事は他のパブリッククラウド(Azure, GCP)を薦める記事でもなければ、プライベートクラウドを薦める記事でもありません。また私自身、エンジニアキャリアの中でAWSはたくさん使ってきましたし、今でもソフトウェア開発のわがままに答えてくれる素晴らしいサービスだと思っているので、AWSを貶めるような記事でもありません。むしろ以下に紹介するサービスはAWS上に構築されていることが多く、間接的にもますます世界中の基盤として発展していくはずです。 PaaSアーキテクチャ 前提条件 前提として、現在でも主流なSPAを中心としたフロントエンド、バックエンド、データベースサービスからなるアプリケーションを想定します。 この場合、 フロントエンド → CDN + Static Hosting バックエンド → Container Deploy(Auto S

        You Don't Need AWS ~お前にAWSは必要ない~
      • TypeScriptのモノレポ構成を考える

        はじめにlink あまりモノレポの構成について語られている記事が多くないなと感じたので、現時点で自分が考えている設計をまとめてみる。 以前にTwitterでディレクトリ構成と内容については言及したが、実際に利用する技術についてはあまり触れなかったので改めて検証してみた。 https://twitter.com/koh110/status/1617510034266808322 クライアントサイドとサーバーサイドのコード共有については下記の記事がよくまとまっていた。 https://capelski.medium.com/effective-code-sharing-in-typescript-monorepos-475f9600f6b4 上記の記事の構成も参考にしつつ、自分の考えも加えて検証していく。 相対パスを利用する方法 npmのローカルパス指定(file:xx)を利用する方法 シンボ

          TypeScriptのモノレポ構成を考える
        • Secrets from the Algorithm: Google Search’s Internal Engineering Documentation Has Leaked

          Google, if you’re reading this, it’s too late. Ok. Cracks knuckles. Let’s get right to it. Internal documentation for Google Search’s Content Warehouse API has leaked. Google’s internal microservices appear to mirror what Google Cloud Platform offers and the internal version of documentation for the deprecated Document AI Warehouse was accidentally published publicly to a code repository for the c

            Secrets from the Algorithm: Google Search’s Internal Engineering Documentation Has Leaked
          • pull_request_target で GitHub Actions の改竄を防ぐ

            本記事では GitHub Actions で pull_request event の代わりに pull_request_target を用い、 workflow の改竄を防いでより安全に CI を実行する方法について紹介します。 まずは前置きとして背景や解決したいセキュリティ的な課題について説明した後、 pull_request_target を用いた安全な CI の実行について紹介します。 本記事では OSS 開発とは違い業務で private repository を用いて複数人で開発を行うことを前提にします。 長いので要約 GitHub Actions で Workflow の改竄を防ぎたい GitHub の branch protection rule や codeowner, OIDC だけでは不十分なケースもある pull_request event の代わりに pull_r

              pull_request_target で GitHub Actions の改竄を防ぐ
            • Aurora MySQL におけるロック競合(ブロッキング)の原因を事後調査できる仕組みを作った話

              こんにちは。 DBRE チーム所属の @p2sk です。 DBRE(Database Reliability Engineering)チームでは、横断組織としてデータベースに関する課題解決や、組織のアジリティとガバナンスのバランスを取るためのプラットフォーム開発などを行なっております。DBRE は比較的新しい概念で、DBRE という組織がある会社も少なく、あったとしても取り組んでいる内容や考え方が異なるような、発展途上の非常に面白い領域です。 弊社における DBRE チーム発足の背景やチームの役割については「KTC における DBRE の必要性」というテックブログをご覧ください。 本記事では、Aurora MySQL でロック競合(ブロッキング)起因のタイムアウトエラーが発生した際に根本原因を特定することができなかったので、原因を後追いするために必要な情報を定期的に収集する仕組みを構築した

              • GitHub Actions と Release Please を使ったアプリケーションのリリース自動化 - Classi開発者ブログ

                GitHub Actions と Release Please を使ったアプリケーションのリリース自動化 こんにちは @lacolaco です。最近は、先日プレスリリースが出された「学習トレーニング」機能を裏で支えているコンテンツ管理システム(以下内部CMS)の開発に携わっています。 corp.classi.jp この記事では、内部CMSのフロントエンド(Angular アプリケーション)のリリースフローを自動化している仕組みを紹介します。現在のリリースフローの全体像は次の図のようになっています。この中にある Release Please というのが、今回特に紹介したいツールです。いくつか日本語でのブログ記事などもあるので特にマイナーというわけではないと思いますが、多くの場合はライブラリのリリースに使われています。一方、アプリケーションのリリースで使っているケースはあまり発信されてないよう

                  GitHub Actions と Release Please を使ったアプリケーションのリリース自動化 - Classi開発者ブログ
                • CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか

                  Secretlint v7でCommonJS からES Modulesへの移行を行いました。 Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し この記事では、CommonJS(CJS)からES Modules(ESM)への移行を行った経緯と、移行する方法について紹介します。 CJSからESMへの移行は、率直に言えば単調な作業で、メリットが見えにくい作業です。 しかし、将来的にCJSよりもESMが主流になることは間違いないので、移行することは必要です。 移行の作業は、移行方法が決まれば大部分は機械的な書き換えが可能です。 では、実際にどうやって移行したのかを紹介します。 ESMへの移行の影響は依存元へと連鎖する Secretlintのリポジトリはmonorepoになっていて、だいたい40コぐらいのパッケージが含まれています。 そしてパッケージ間で依存関係があ

                    CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか
                  • Express と handlebars で動き続ける日経 — HACK The Nikkei

                    Nikkei Advent Calendar 2023の 14 日目は IDE がやっていきます。いま Web チーム内の基盤改善を専門とするチームで活動しています。自分が入社するより前に作られてメンテナンスがあまりされていなかったシステムを、現代でも戦えるようにするお仕事をしています。メンテナンスを放置することはセキュリティ的によくないので、メンテナンスを専業で行っています。最近の自分の仕事は、今日紹介する rnikkei と呼ばれるマイクロサービス群の Node.js バージョンを、v12 から v18(一部は v20) まで引き上げることです。この rnikkei は当初「爆速の日経」と呼ばれていた頃に設計・実装されたサービスです。今日はそのような過去に作られたサービスにもう一度スポットライトを当ててみようと思います。 see: https://marketing.itmedia.c

                      Express と handlebars で動き続ける日経 — HACK The Nikkei
                    • 技術戦略策定のための Fact 収集術 - スタディサプリ Product Team Blog

                      こんにちは。@chaspy です。プロダクト開発部の技術戦略グループのマネージャをしています。 技術戦略グループでは、日頃開発する上での課題の投げ込みや議論、解決するための計画をボトムアップで行っています。技術戦略グループの活動については過去のアウトプットもご覧ください。 blog.studysapuri.jp また、本稿のテーマである、組織やシステムの状況を把握するための Fact 収集については技術戦略 DevOps WG が担当しています。以前発表した資料もご覧ください。 このように、技術戦略グループではエンジニア1人1人が課題だと思うことを表明、宣言し、その課題をトリアージすること、および課題を評価するための Fact の発見・提供を行う仕組みが組織としてボトムアップで行える状態になっています。一方、開発部長として、事業戦略と結びつける形で技術戦略を策定する際には、現場のエンジニア

                        技術戦略策定のための Fact 収集術 - スタディサプリ Product Team Blog
                      • RPC対応によりCloudflare Workers間の連携がすごいことになった

                        日本時間の2024/04/05にCloudflareからRPCを使用したCloudflare Workers間の通信が発表されました。 これによりいくつかの課題が解決されると同時にCloudflare上にアプリケーションを構築する利便性が1段階どころか2段階以上上がったといっても過言ではないと思っています。 このRPCの対応によりService Bindingsが更に使い勝手がよくなったのでそれの紹介です。 出来上がりのコードはここにありますので、時間の無い方はこちらを参照ください。 前提条件 以前RemixとPrismaでD1に接続する記事を書きました。 その中で容量制限の問題があると書きましたが、それを解消する話をベースに今回のRPC対応の内容を書きます。ですので記事を読んでない方はCloudflare Workersの無料版はビルドファイルが1MBまでの制限があるということを念頭にお

                          RPC対応によりCloudflare Workers間の連携がすごいことになった
                        • Renovateを使ってフロントエンドのバージョンアップを改善した話 | PR TIMES 開発者ブログ

                          こんにちは、フロントエンドエンジニアの小張です。Renovateを使ってフロントエンドのパッケージやライブラリのバージョンアップを改善したことについて紹介します。 PR TIMESではReactに関するコードを、monorepoとしてprtimes-frontendという1つのリポジトリで管理しています。 このリポジトリは作成されてから2年ほどしか経っておらず、使っているライブラリも比較的新しいため、今までバージョンアップの仕組みを特に整備していませんでした。 ただフロントエンドのライブラリはバージョンアップの頻度が多く、異なるライブラリ間でバージョンの依存関係があることもあり、将来のことを考えればライブラリのバージョンを更新する仕組みを作ることはほぼ必須でした。 また、monorepoであるためライブラリのバージョンを大きくあげようとした際の対応コストも大きく、最新との差が小さいうちに細

                          • メルカリ ハロの技術スタックとその選定理由 | メルカリエンジニアリング

                            こんにちは。メルカリ ハロのSoftware Engineer (Engineering Head)の@napoliです。連載:Mercari Hallo, world! -メルカリ ハロ 開発の裏側-の2回目を担当させていただきます。 2024年3月上旬にメルカリ ハロという新しいサービスが公開されました。メルカリ ハロは好きな時間に最短1時間から働ける「空き時間おしごとアプリ」です。 この記事ではメルカリ ハロを作るにあたり、どういった技術スタックやアーキテクチャを選定したのか、さらにその背景と意思決定をご紹介したいと思います。 この記事で得られること メルカリ ハロで採用されている技術スタックやアーキテクチャの全体像 その意思決定の理由とプロセス これから新規サービスを立ち上げるうえでのヒント 主な技術スタック メルカリ ハロで利用されている主な技術スタックは以下のとおりです。 バッ

                              メルカリ ハロの技術スタックとその選定理由 | メルカリエンジニアリング
                            • フロントエンドのGitHub Actions実行時間を削減するために取り組んだこと | PR TIMES 開発者ブログ

                              こんにちは、フロントエンドエンジニアの小張です。GitHub Actionsの実行時間を削減するために取り組んだことについて紹介します。 経緯 PR TIMESではReactに関するコードを、monorepoとしてprtimes-frontendという1つのリポジトリで管理しています。 GitHub Enterprise Cloudプランでは月50,000分のGitHub Actionsを無料で実行することができますが、prtimes-frontendだけで7割近い時間を消費してしまっていました。またCIに時間がかかることで、Pull Requestを作成した後、10分近く待たないとコードレビューに回すことができず、開発効率が落ちてしまっていました。 そこで現状の使い方を見直して、billable timeの削減に取り組むことになりました。 billable time削減の改善点を探す b

                              • TerraformとGitHub Actionsで複数のCloud RunをまとめてDevOpsした結果, 開発者体験がいい感じになった話. - Lean Baseball

                                ざっくり言うと「TerraformとGitHub ActionsでGoogle Cloudなマイクロサービスを丸っとDeployする」という話です. Infrastructure as Code(IaC)は個人開発(趣味開発)でもやっておけ 開発〜テスト〜デプロイまで一貫性を持たせるCI/CDを設計しよう 個人開発(もしくは小規模システム)でどこまでIaCとCI/CDを作り込むかはあなた次第 なお, それなりに長いブログです&専門用語やクラウドサービスの解説は必要最小限なのでそこはご了承ください. あらすじ 突然ですが, 皆さんはどのリポジトリパターンが好きですか? 「ポリレポ(Polyrepo)」パターン - マイクロサービスを構成するアプリケーションやインフラ資材を意味がある単位*1で分割してリポジトリ化する. 「モノレポ(Monorepo)」パターン - アプリケーションもインフラも

                                  TerraformとGitHub Actionsで複数のCloud RunをまとめてDevOpsした結果, 開発者体験がいい感じになった話. - Lean Baseball
                                • GitHub Dependabot Alertを愚直に潰し込んだ話 - 10X Product Blog

                                  こんにちは、セキュリティチームでソフトウェアエンジニアをしてる@sota1235です。 明けましておめでとうございます!本年も10X Product Blogを何卒よろしくお願いします。 さて、今回はセキュリティチームで今年の6月ごろから取り組んできたGitHub Dependabot Alertの削減についてお話しします。 サマリーとしては以下です。 今年の6月頃から取り組みを開始 初期はセキュリティチームで毎日トリアージ、泥臭くAlertの対応を行う 主要なRepositoryのAlertは一通り解消、一部は担当チームへの移譲等を行い継続的に維持できる状態へ 結果として半年間で500件弱のAlertをcloseし、残ってるAlertも対応方針が全て確定した状態になりました。 この数が多いか少ないかはソースコードの規模感にも依存するので言及しませんが、この記事では小さいリソースで取り組み

                                    GitHub Dependabot Alertを愚直に潰し込んだ話 - 10X Product Blog
                                  • 【2024初頭】新規開発で使ってみたいモダンフロントエンド最前線

                                    TL;DR 弊社で実験的に導入を始めている、2024初頭時点で今後に期待が高まる最新のweb技術についてまとめています。 新規プロダクトの技術選定に迷っている方などにおすすめです。 Turborepo - Monorepo管理 モノレポ構成における懸念点の一つとして、プロダクトが大きくなるにつれてビルド時間が膨大になって来る点です。 TurborepoはRust製、並列化、差分ビルド、Remote Cashingなど、肥大化しがちなmonorepoのビルド時間を短縮するメソッドがたくさん詰まっています。 Bun - Package manager (runtime, test tool) 正確にはBunはランタイムですが、Nextなど厳密にはNode.jsで動かす必要があるため、弊社では(ほぼ)パッケージマネジャーとして活用しています。 pnpmやyarnと比較してnpm installな

                                      【2024初頭】新規開発で使ってみたいモダンフロントエンド最前線
                                    • Live types in a TypeScript monorepo

                                      EDIT: A previous version of this post recommended publishConfig, operating under the mistaken belief that it could be used to override "exports" during npm publish. As it turns out, npm only uses "publishConfig" to override certain .npmrc fields like registry and tag, whereas pnpm has expanded its use to override package metadata like "main", "types", and "exports". There are a number of reasons y

                                        Live types in a TypeScript monorepo
                                      • 2ヶ月半で Nuxt サービスを 3.5 個つくった話 - メドピア開発者ブログ

                                        フロントエンドエンジニアの小林和弘です。 去年の 4 月に「Web アプリを 3 つ使ったサービスを 3 ヶ月でつくりたい」という話が降ってきて、無茶を現実にした話をします。 新規サービス「やくばと」で Workspaces のモノレポを使って、医療機関画面、薬局画面、患者画面の 3 つの Nuxt を構築しました。 やくばととは 医療機関、薬局、患者さまの間でやり取りされる医療機関起点の薬局向け処方せん画像事前送信サービスです。処方せんに関する業務負荷を軽減すると共に、患者さまの大きな負担である医療機関、薬局での待ち時間を軽減するということを主な目的としたサービスです。 医療機関、薬局の DX を進め、患者さまの負荷軽減に貢献できる素晴らしいサービスになっています。 開発チームでは医療機関、薬局、患者さまに提供している Web 画面をそれぞれ医療機関システム、薬局システム、患者システムと

                                          2ヶ月半で Nuxt サービスを 3.5 個つくった話 - メドピア開発者ブログ
                                        • Git 2.44のハイライト

                                          Author Taylor Blau オープンソースのGitプロジェクトは、新しく加わった34人を含む総勢85人以上のコントリビューターによる新機能の追加とバグ修正が行われたGit 2.44をリリースしました。前回 Git の最新情報をお伝えしたのは、2.43 がリリースされた時でした。 今回の最新リリースを記念して、前回から導入された最も興味深い機能や変更点を GitHub がいくつか紹介します。 マルチパックの再利用によるパック生成の高速化 GitHub との間でリポジトリをプッシュしたりプルしたりする時に Git の出力を詳しく見たことがある人1なら、出力の最後にpack-reused という数字が表示されていることに気づいたかもしれません: $ git clone git@github.com:git/git.git Cloning into 'git'... remote: En

                                            Git 2.44のハイライト
                                          • Docker Compose Modularity with `include` | Docker

                                            This blog post discusses a feature available now in Compose v2.20.0 and in our Docker Desktop 4.22 release. The docker command line supports many flags to fine-tune your container, and it’s difficult to remember them all when replicating an environment. Doing so is even harder when your application is not a single container but a combination of many containers with various dependency relationships

                                              Docker Compose Modularity with `include` | Docker
                                            • バクラクの爆速開発を支えるDevOpsチームの「のびしろ」! #のびしろウィーク - LayerX エンジニアブログ

                                              こんにちは!バクラク事業部DevOpsチームです。 この記事は LayerXテックアドカレ2023 の37日目の記事です、前回はid:kikuchyさんが『歳末!バクラク申請・経費精算モバイルアプリ のびしろ大放出祭 』という記事を書いてくれました。また、38日目はid:suguruが『バクラク Enabling Team の課題とのびしろ #のびしろウィーク』を書いてくださいました! 今回はのびしろウィークということで、バクラクのDevOpsチームの伸びしろをお伝えできればと思います! のびしろウィークとは のびしろウィークとは、LayerXの各チームメンバーが自分たちのチームの「のびしろ」について対外的に発信する期間です! 過去の対外的な発信では社内でうまく行った事例などについては各種発信していましたが、どういう課題があってどういった方の協力を求めているかについての発信はあまり行なって

                                                バクラクの爆速開発を支えるDevOpsチームの「のびしろ」! #のびしろウィーク - LayerX エンジニアブログ
                                              • フロントエンドのディレクトリ構成を変えた 2023 - kobayang

                                                背景 Atomic Design ベースのディレクトリ構成になっていたが、 molecules と ogranisms のルールが定まっておらず、コンポーネントがどっちに入るのかが個々人の感覚になっていた 一部の機能は機能ごとにディレクトリを切っていてルールが曖昧になっていた テストと実装が別ディレクトリにあって、集約性の観点で見通しが悪かった 一行まとめ Atomic Design ベースから features (機能ごと)に分ける方向にディレクトリ構成を変更した。 方針 (フィロソフィー) 関心が近いものは近い場所になるべく集約させる ガチガチに縛るよりはある程度レールを引くのに止める 特に features の中のルールは固められないと判断して決定を遅らせる ルール化できそうなものをLintエラーで管理する 実はまだやってない。インポートの制約に関するルールを追加する予定 採用したル

                                                • スタディサプリ小中高の技術戦略について - スタディサプリ Product Team Blog

                                                  この記事は Enginnering Manager Advent Calendar その2の1日目の記事です。(大遅刻しました) こんにちは。@chaspy です。10月からスタディサプリ小中高*1プロダクト開発部の部長をしています。 本記事では、我々の組織で取り組んでいる技術戦略の現状と今後についてお伝えします。 技術戦略とは何か スタディサプリ小中高の技術戦略 開発比率適正化 課題発見と改善サイクルの確立 直近の取り組み ガイドラインの策定 マイクロサービスの命名 今後追加が予定されているもの monolith の方針検討 共有データベースに対する Model 層の管理方針 api endpoint ごとのオーナーシップ策定 技術戦略グループとして実現したいこと おわりに 技術戦略とは何か ざっくりいうと、事業計画に対して、技術投資をどこにするのか、しないか、です。"技術"投資と言って

                                                    スタディサプリ小中高の技術戦略について - スタディサプリ Product Team Blog
                                                  • 専任スクラムマスターを置くまでの思考過程と置いてどうなったか?

                                                    はじめに 本記事ではログラスにおけるスクラムマスターの考え方、そして専任化についての取り組みの現在地点をお伝えできればと思います。 なぜこのテーマを選んだか?というと、この1年を振り返る過程において、スクラムマスターという役割が改めて重要な役割を果たすのではないか?と考え、直近で専任スクラムマスターを置く取り組みを実施しておりました。 こちらの取り組みから、どんな仮説を立てたか?現在どんな状況か?などをまとめることで、同じくスクラムマスターの位置付けについて悩んでいる企業があれば参考にしていただけるのではないかと考えたためです。 この記事では私がエンジニアリングマネージャー(以下EM)として、スクラムマスターとEMの責務の切り分けをどうすればお互いがパフォームできる状況を作れるのか?という視点から話を進めていきます。 ログラスのスクラムについて ログラスでは創業時の1チームのスクラムチーム

                                                      専任スクラムマスターを置くまでの思考過程と置いてどうなったか?
                                                    • モノレポの手癖を deno で CLI ツールを作って楽にしたい

                                                      deno で CLI ツールを作っていたら楽しくなって色々作っていた。 課題: モノレポの諸々の操作がだるい npm/pnpm/yarn の workspace を使っていると、次のようなディレクトリ移動が段々面倒になってくる。 foo を build して bar を build してルートから bar のテストを流す、みたいなことをするとこういう感じになる。 $ cd packages/foo $ pnpm build $ cd ../bar $ pnpm build $ cd ../.. ## コマンドの中身を確認 $ cat package.json | jq ".scripts" { "test": "pnpm test:foo && pnpm test:bar", "test:foo": "cd packages/foo && pnpm test", "test:bar": "

                                                        モノレポの手癖を deno で CLI ツールを作って楽にしたい
                                                      • monorepo開発を快適にするツール選定

                                                        先日、location-stateというパッケージについての記事を公開しました。 履歴に基づいて状態を復元できるReact系ライブラリで、現在はNext.jsを重点的にサポートしています。このライブラリの構成はcoreとなる部分とNext.js依存な部分を切り離しscoped packageとし、内部構成もこれに合わせていわゆるmonorepo構成で開発を行なっています。 @location-state/core: coreとなる部分 @location-state/next: Next.js依存な部分 この記事では、monorepoのパッケージ開発を快適にするために実際に採用したツールを紹介していきます。本稿で紹介するツールは以下になります。 pnpm turborepo tsup changesets Renovate pnpm まずパッケージマネージャーですが、個人的に最近はpnpm

                                                          monorepo開発を快適にするツール選定
                                                        • Zenn をやめることになったので、やったことを振り返ってみる

                                                          この記事について 私はこれまで Zenn のフロントエンドエンジニアとして働いてきましたが、2023/09 いっぱいで Zenn もといクラスメソッドをやめることになりましたので、この機会に Zenn でやってきたことを振り返ってみようかなと思います。 コードブロックのコピペ Zenn に入ってまず初めにやったことといえば、コードブロックのコピペがありました。 Zenn の公式ツイートより引用 ごくありふれた機能ではありますが、私が初めて実装した機能なのでよく覚えています。 実装方法は描画された DOM に対して無理やりコピーボタンを挿入するという力業だったので PR が通るか心配でしたが、無事に通ってリリースできたのでとても嬉しいかったです。また、チームメンバーが Twitter で告知してくれて、ユーザーからの反応が結構よかったのも良い思い出でした。 GitHub の埋め込み機能 次に

                                                            Zenn をやめることになったので、やったことを振り返ってみる
                                                          • connect-go による複数サービスの開発とユニバーサルバイナリによる改善 - LayerX エンジニアブログ

                                                            こんにちは、LayerX の id:snamura です。7月はLayerXエンジニアブログを活発にしよう月間 ということなので、本日は複数サービスに分割されていく中で、開発環境を改善した話を書きます。 LayerX が提供するバクラクでは、 Decoupling a service from monolith with Protocol buffers and connect-go で紹介した通り、 buf.build の提供する connect を使ったサービス化が進められています。 connect の活用によって、既存のHTTPサーバーをサービスとしてインターフェイスを再定義したり、モノリスを無理に分割することなく、ドメインごとにインターフェイスを定義し、サービスの分割が可能になりました。 connectはgRPCのサービス定義を起点に動作するため、シンプルなインターフェイスと、 h

                                                              connect-go による複数サービスの開発とユニバーサルバイナリによる改善 - LayerX エンジニアブログ
                                                            • Build and Publish 2023

                                                              Previous slideNext slideToggle fullscreenOpen presenter view Build and Publish 2023 @mizchi | Plaid, Inc. jsconf.jp 2023 今日もツールチェインに消耗してますか? https://2022.stateofjs.com/en-US/libraries 今日のテーマ 今日話すこと 現代のビルドツールチェインの進化と目的 エコシステムに振り回されないようになろう! 今日話さないこと 個別のツール/ライブラリの使い方 フロントエンドの話? NO. 最近のサーバーサイドJSとバンドラは一体化している サイズ制限のある CDN Edge Worker も最適化が必要 About Me JSのビルドとは何か Transpile AltJS(TS,JSX)や CSS Modules の変換

                                                              • monorepo で開発時にパッケージの変更を build なしで他のパッケージに反映する方法

                                                                { "name": "lib-a", "version": "0.0.0", "type": "module", "main": "dist/index.js", "scripts": { "build": "rm -rf dist && tsc" } } この場合、lib-a の src/index.ts を変更だけしても lib-b には反映されません。なぜなら lib-b は lib-a の dist/index.js を参照しているため、build を実行して dist ディレクトリの中を更新する必要があるからです。 またこのときに tsserver の機能を使って lib-b から lib-a の参照にジャンプしても src/index.ts に飛ばないという問題点もあります。 解決策 問題の原因は依存元の lib-a の main に build によって生成されるファイルへの

                                                                  monorepo で開発時にパッケージの変更を build なしで他のパッケージに反映する方法
                                                                • Architecture of an early stage SAAS | Feelback Blog

                                                                  IntroductionIn this article I describe a simple architecture for an early stage SAAS. As a solo founder, I report some choices made to launch Feelback, a small-scale SAAS for collecting users signals about any content. This article will cover the technical side of designing and running a simple SAAS. It will also include some details about coding and evolving the initial feature set ready at launc

                                                                    Architecture of an early stage SAAS | Feelback Blog
                                                                  • feature flag管理にAWS AppConfigを導入した - Cluster Tech Blog

                                                                    昔のflag管理 AWS AppConfigの導入 feature flagの管理 feature flagの利用 まとめ ソフトウェアエンジニアの浦川です。 clusterではサービス開発にfeature flagが活用されており、常時10+個程度のflagが並行して使われています。 これまでflagはgoのコードとしてハードコードされていたのですが、AWS AppConfigを利用してコードを修正することなく動的に変更できるようにしました。 昔のflag管理 ハードコードされたflagは1つのstructにまとめて定義されていて // feature flagを集めたもの type FeatureFlag struct { IsAvatarXxx bool // アバターを良い感じにする IsEventXxx bool // イベントを良い感じにする // (大量のフラグ) } app

                                                                      feature flag管理にAWS AppConfigを導入した - Cluster Tech Blog
                                                                    • メルカリ ハロ立ち上げ時のSRE | メルカリエンジニアリング

                                                                      はじめに こんにちは。メルカリ ハロでSRE TLをしている@nakaです。連載:Mercari Hallo, world! -メルカリ ハロ 開発の裏側- の3回目を担当させていただきます。 この記事では、メルカリの新規事業立ち上げにおけるSREの働きや役割に関して、紹介します。 メルカリでは、Platform Engineeringが提供するツールや仕組みを活用して、サービスを立ち上げていきます。新規事業立ち上げのチームだけで、完結するわけではありません。今回は、Platform Engineering時代の新規サービス立ち上げにおけるSREの役割と具体的な動きを、メルカリ ハロを例に取り上げて紹介します。SREが、Platform Engineeringとプロダクト開発チームと一丸となって「All For One」に動いてきた取り組みが少しでも臨場感を持って伝えられればと思います。

                                                                        メルカリ ハロ立ち上げ時のSRE | メルカリエンジニアリング
                                                                      • AIによるコードレビュー "PR-Agent" を導入した効果と課題について

                                                                        モノレポ環境にPR-Agentを導入した効果と課題について書いています。 導入結果としては、AIによるコードレビューが効果がある一方で、現時点では全てのレビューがAIに置き換えることはないことが分かりました。 この記事では、PR-Agentの具体的な効果、実際に感じた課題、課題に対する横断チームの対応策などを掘り下げています。

                                                                          AIによるコードレビュー "PR-Agent" を導入した効果と課題について
                                                                        • 駅メモ!開発チームにおける Vue.js のマイグレーションプロセス - Mobile Factory Tech Blog

                                                                          こんにちは、駅メモ!でフロントエンドを良い感じにしたかったチームの id:yunagi_n です。 今回は、駅メモ!にて使用している Vue.js を 2 系から 3 系へあげて行くに当たって、採用した手法とマイグレーションプロセスについて紹介します。 今回、マイグレーションするに当たって、以下の要件がありました: 機能開発を止めてはいけない 駅メモ!では 6 月と 10 月に周年リリースがあり、それの開発を止めるわけにはいきませんでした もちろん、その間にあったイベントなどについても、開発は継続し続けています 多くのメンバーは割けない 基本はわたしが中心に、追加で 1 人〜2 人に手伝ってもらうことはありました また、参考のため、駅メモ!のフロントエンドの規模感を紹介しておくと: Vue コンポーネント数は 1500 コンポーネント fd --type file --extension

                                                                            駅メモ!開発チームにおける Vue.js のマイグレーションプロセス - Mobile Factory Tech Blog
                                                                          • Using Zig in our incremental Turborepo migration from Go to Rust – Vercel

                                                                            Using Zig in our incremental Turborepo migration from Go to RustLearn how we're cross-compiling a Rust-Go-Rust sandwich to six platforms. We’ve been porting Turborepo, the high-performance build system for JavaScript and TypeScript, from Go to Rust. We talked about how we started the porting process, so now let’s talk about how we began porting our two main commands: run and prune. Since last time

                                                                              Using Zig in our incremental Turborepo migration from Go to Rust – Vercel
                                                                            • Highlights from Git 2.44

                                                                              Open SourceHighlights from Git 2.44The first Git release of 2024 is here! Take a look at some of our highlights on what's new in Git 2.44. The open source Git project just released Git 2.44 with features and bug fixes from over 85 contributors, 34 of them new. We last caught up with you on the latest in Git back when 2.43 was released. To celebrate this most recent release, here is GitHub’s look a

                                                                                Highlights from Git 2.44
                                                                              • 時期を決めて定期的に更新するnpmパッケージをChangesetsで管理する

                                                                                毎月や半年に一回といったように、リリースする時期(間隔)を決めて更新するタイプのパッケージがあります。 具体的には、次のtextlintのプリセットルールは1月と7月という形で半年に一回リリースしています。 textlint-ja/textlint-rule-preset-japanese: textlint rule preset for Japanese. textlint-ja/textlint-rule-preset-ja-technical-writing: 技術文書向けのtextlintルールプリセット なぜ、このようにリリースする時期を決めているかというと、これらのパッケージは他のパッケージに依存していて、他のパッケージの更新がそのままメジャーアップデートになりやすい性質があるためです。 そのため、依存を更新してリリースすると、頻繁にメジャーアップデートしないといけなくなりま

                                                                                  時期を決めて定期的に更新するnpmパッケージをChangesetsで管理する
                                                                                • GitHub - facebook/react-strict-dom: React Strict DOM (RSD) is a subset of React DOM, imperative DOM, and CSS that supports web and native targets

                                                                                  Development monorepo for "React Strict DOM". React Strict DOM (RSD) is an experimental integration of React DOM and StyleX that aims to improve and standardize the development of styled React components for web and native. The goal of RSD is to improve the speed and efficiency of React development without compromising on performance, reliability, or quality. Building with RSD is helping teams at M

                                                                                    GitHub - facebook/react-strict-dom: React Strict DOM (RSD) is a subset of React DOM, imperative DOM, and CSS that supports web and native targets