ブックマーク / tech.route06.co.jp (13)

  • チュートリアル: Yjs, valtio, React で実現する共同編集アプリケーション - ROUTE06 Tech Blog

    Yjsは、リアルタイム共同編集を実現するためのアルゴリズムとデータ構造を提供するフレームワークです。NotionFigma のように、1 つのコンテンツを複数人で同時に更新する体験を提供することができます。 Y.Map, Y.Array, Y.Text といった共有データ型を提供し、それらは JavaScriptMap や Array のように利用できます。さらにそのデータに対する変更は他のクライアントに自動的に配布・同期されます。 Yjs は Conflict-free Replicated Data Types (CRDT) と呼ばれるアルゴリズムの実装であり、複数人が同時にデータを操作してもコンフリクトが発生せず、最終的に全てのクライアントが同じ状態に到達するように設計されています。 クイックスタート Y.Map がクライアント間で自動的に同期されるコード例を見てみましょ

    チュートリアル: Yjs, valtio, React で実現する共同編集アプリケーション - ROUTE06 Tech Blog
    toshikish
    toshikish 2024/07/03
  • モノレポでマージキューと必須ステータスチェックを運用するためのTips - ROUTE06 Tech Blog

    ROUTE06 でソフトウェアエンジニアをしている @MH4GF です。 GitHub のマージキュー(Merge Queue)を私のチームでの開発フローに取り入れてから数ヶ月経ちました。マージキューは非常に便利ですが、挙動の理解やセットアップに難しさがあると感じています。いくつかの課題の対処ができ安定した運用ができてきたので、この記事ではセットアップでつまづきがちな点を紹介します。 マージキューとは マージキューは 2023 年 7 月に一般公開された比較的新しい機能で、簡単に説明すると「プルリクエストのマージ前にマージ先ブランチを取り込んだ上で CI を実行し、通ることを確認してからマージする」機能です。 複数人で GitHub を利用した開発をしていると、main ブランチの取り込み漏れにより「プルリクエストでの CI は通るものの、マージ後の main ブランチの CI は失敗する

    モノレポでマージキューと必須ステータスチェックを運用するためのTips - ROUTE06 Tech Blog
    toshikish
    toshikish 2024/06/12
  • プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `rubocop-grep` の活用 - ROUTE06 Tech Blog

    はじめに: 弊社のとあるEDI(電子商取引)関連のプロダクトでは、Ruby on Railsを利用してGraphQL APIを提供しています。 その開発活動の中で最近、コードの品質と整合性を維持するためのツールとして rubocop-grep を利用し始めました。 この記事ではその具体的な活用事例についてお話しします。 目次 rubocop-grepとは 最初のユースケースと、基的な使い方の説明 複数のルールをディレクトリごとに設定するための工夫 ほかにどのようなユースケースがありそうか まとめ rubocop-grepとは rubocop-grep は、rubocop の拡張ツールです。 プロジェクト独自のコーディングルールを、正規表現を用いて簡単に定義することができます。 この手の問題は、今までもカスタムCopを書くことで解決することはできましたが、カスタムCopはASTの知識やRu

    プロジェクト独自のコーディングルールを簡単に正規表現で定義できる `rubocop-grep` の活用 - ROUTE06 Tech Blog
    toshikish
    toshikish 2024/03/27
  • Reactを使ってプロダクト開発している開発者だけでなく、マネージャにも読んでほしい「Fluent React」 - ROUTE06 Tech Blog

    チームでReactを使って開発していると、コードレビューをする際に、「この書き方はしない方がいいが、それを説明するには800文字くらい必要。図も描きたい。でもそれらを準備する時間はない。」ということが度々ありました。 また、フレームワークやライブラリの技術選定をする際、マネージャに「どうして技術選定が必要なのか」を説明する必要がありました。ROUTE06のマネージャはエンジニアリングへの造詣が深い方が多いので、対立構造になることはありませんが、説明するためには1000文字くらい必要で、やはり図も描きたい。時間はない。と同じ気持ちになることがありました。 参考情報として紹介できる情報がないか探してみると、「とりあえずこうすればOK」というベストプラクティスについては検索エンジンやSNSですぐに見つかります。ただ、どうしてその方法がベストプラクティスなのか、仕組みや原理を説明している情報は少な

    Reactを使ってプロダクト開発している開発者だけでなく、マネージャにも読んでほしい「Fluent React」 - ROUTE06 Tech Blog
    toshikish
    toshikish 2024/03/25
  • ROUTE06エンジニア対談 - 目の前のすべてが成長の機会だと捉える、エンジニア青木の学ぶ姿勢 - ROUTE06 Tech Blog

    こんにちは。ROUTE06 Tech Blogの編集チームです。ROUTE06のエンジニア対談を連載でお届けします。 第6回は、CTOの重岡 正さんと青木 治人さんです。 2022年6月に、開発未経験からROUTE06に入社した青木さん。 独学でプログラミングを学んできたという主体性と、目の前のことすべてが成長の機会と捉える学びへの貪欲な姿勢が強みです。 現在は、新卒で入社したメンバーのピアメンター*1として、ともに成長していくチーム作りにも励んでいます。 青木さんに、エンジニアを目指したきっかけやプログラミングの勉強方法、ROUTE06で経験を積んでいく楽しさについて聞きました。 プロフィール 青木 治人 AOKI Haruhito 1992年生まれ。兵庫県在住。 大学では生物学を専攻し、新卒で大手ファーストフード会社へ入社。大阪・兵庫で複数店舗を管理するエリアマネージャーとして、店舗経

    ROUTE06エンジニア対談 - 目の前のすべてが成長の機会だと捉える、エンジニア青木の学ぶ姿勢 - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/12/28
  • 入社から 3 ヶ月経ったエンジニアから見た、ここが変だよ ROUTE06 - ROUTE06 Tech Blog

    こんにちは。ROUTE06 データエンジニアの id:masutaka26 です。8/16 に入社したので、入社から 3 ヶ月経ち、会社にも慣れてきました。 初投稿である今回の記事では、ROUTE06 に入社して素直に変だと思った、会社の取り組みや習慣をまだフレッシュな気持ちが残っているうちに紹介します。 1. 入社 1on1 マラソン 早速出て参りました。全く聞き慣れないであろう「入社 1on1 マラソン」です。(*^^*) ROUTE06 に入社したら、全ての正社員と 1on1 する必要があります。私は入社前に聞き流してしまったようで、入社後聞いた時は「これから 50 人と 1on1 するなんて正気ですか?」と思いました。 私は 1 回 30 分を毎日 2~3 セッティングして、8/21 ~ 9/25 で完走しました。期間は自由で、数ヶ月かける人もいるそうです。 初見の方と話すのは苦手

    入社から 3 ヶ月経ったエンジニアから見た、ここが変だよ ROUTE06 - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/12/13
  • Plainのフロントエンドにおける技術選定(2023年8月版) - ROUTE06 Tech Blog

    ROUTE06 でソフトウェアエンジニアをしている @MH4GF です。 ROUTE06 ではエンタープライズ向けビジネスプラットフォーム「Plain」を開発しています。この記事では 2023 年 8 月に Plain クラウド EDI の Web フロントエンドで採用している技術について、その選定理由をまとめました。 現代の Web フロントエンド技術は領域ごとに選択肢が多く、プロダクトに最適な技術選定をする上で検討事項が多いと感じます。この記事がフロントエンド技術選定において参考になれば幸いです。 前提 プロダクトの特徴 技術選定に影響するプロダクトの特徴を箇条書きでまとめます。 エンタープライズ向け SaaS 現在開発中のプロダクトは商取引におけるクラウド EDI のドメインにフォーカス Plain が解決する課題は、元々フルスクラッチで開発すると 1 年かかるプロダクトの開発期間を

    Plainのフロントエンドにおける技術選定(2023年8月版) - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/08/08
  • Amplify Hostingのプレビュー環境をGitHub Actionsでデプロイする - ROUTE06 Tech Blog

    こんにちは、ROUTE06でソフトウェアエンジニアをしている @MH4GF です。 Amplify Hosting を利用してホスティングしている Web アプリケーションで、プレビュー環境を GitHub Actions でデプロイする方法を紹介します。 背景 Amplify Hosting では、実はプルリクエストベースのプレビューを機能として提供しています。 docs.aws.amazon.com プルリクエストの作成と同時に環境にアクセスする URL が払い出され、Gitのコミットのプッシュと同時に再ビルドし、プルリクエストのマージと共に環境を削除します。 ビルドの進捗状況もプルリクエストの Checks として確認できるため、概ね期待する機能は揃っています。 ただ、運用する上でどうしても気になる点がありました。 モノレポで構築されているリポジトリで、ビルドの発火するディレクトリパ

    Amplify Hostingのプレビュー環境をGitHub Actionsでデプロイする - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/06/30
  • GitHub Actions から AWS へのアクセスに利用している OpenID Connect ID Provider の thumbprint について調査した - ROUTE06 Tech Blog

    ROUTE06 でエンジニアリングマネージャ兼ソフトウェアエンジニアとして働いております海老沢 (@satococoa) と申します。 先日発生した GitHub Actions と AWS の OpenID Connect 連携におけるトラブルに関して調査を行い、対応方針を策定した件を共有したいと思います。 [2023/07/10 追記] Thumbprint を明示的にユーザ側で設定しなくて良いように、AWS 側で対応されたそうです。 github.com 当面 Terraform のモジュール的には必須入力のままですが、任意の文字列で良いそうです。 (いずれ入力も不要になるのかと思います。) https://github.com/aws-actions/configure-aws-credentials/issues/357#issuecomment-1626357333 The A

    GitHub Actions から AWS へのアクセスに利用している OpenID Connect ID Provider の thumbprint について調査した - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/06/29
  • チーム開発における技術選定の進め方 - ROUTE06 Tech Blog

    プロダクト開発に利用する技術の選択は、不確実性を伴う決断であることが多いです。 私はROUTE06で働く前は個人事業主でした。仕事の多くは、新規プロダクトのプロトタイプや初期バージョンの作成でした。デザインを含めてプロダクト開発をするのは私一人だったので、おおよその要件とスケジュール、予算が合意できたら、作り方は任せてもらっていました。 当時、私が技術を選択する方法は「開発速度や品質に非線形の変化を与える可能性があると感じたらまずは使ってみる」でした。アルファ版*1でもとりあえず使ってみて、上手くいったらそのまま番稼働させているプロダクトもあります。 足りてない機能や不具合に直面することもありますが、パッチを書いたり開発元にプルリクエストを送りながらプロダクトの開発も進めていました。この進め方は、開発者が一人であれば成果を出せますが、チームで大きな成果を出すのは難しいでしょう。 現在、私

    チーム開発における技術選定の進め方 - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/06/07
  • ROUTE06エンジニア対談 - Ruby on Railsエンジニア星野は「naming」にこだわる - ROUTE06 Tech Blog

    こんにちは。ROUTE06 Tech Blogの編集チームです。 ROUTE06のエンジニアによる対談を、連載でお届けします。 第2回は、CTOの重岡 正さんと星野 剛志(ほしの つよし)さんです。 現在、Ruby on Railsエンジニアとしてエンタープライズ向けAPIプラットフォーム「Plain」のAPI開発に関わる星野さん。実は、Rubyに出会ったことをきっかけに、営業職からエンジニアへ転向するというキャリアを歩んできました。 星野さんに、Rubyの好きなところや日々の開発で大切にしているコミュニケーション、そして「naming」へのこだわりについて聞きました。 プロフィール 星野 剛志 HOSHINO Tsuyoshi 1982年生まれ。東京都出身。 営業企画職として働きながら、独学でRubyを学び、2014年にエンジニアとして株式会社フィードフォースへ入社。その後、株式会社スマ

    ROUTE06エンジニア対談 - Ruby on Railsエンジニア星野は「naming」にこだわる - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/05/01
  • ROUTE06 CTOが考えていること(2023年4月) - ROUTE06 Tech Blog

    おはようございますこんにちはこんばんは。ROUTE06 取締役 CTO の重岡です。 創業 4 年目に突入した今年の 1 月に Tech blog を開設し、四半期を経て、私もようやく記事を執筆することができました。記事のネタを社内のエンジニア相談したところ、 Q) 私も Tech blog 記事を書こうと思ってるので、どんな内容がよさそうか相談させてください 💭 A) ”マネーフォワード CTO が考えていること”を社外向けに公開しているのは良さそうだなーと思ってました 👀 という有益なアドバイスを頂きまして、真似して実践してみることにしました。 昨年 2022 年 11 月、CTO 就任時に考えていたことは ROUTE06 の取締役 CTO に就任しました の記事にてご紹介させていただきました。 記事では CTO 就任後、5 ヶ月を経ての振り返りと、今考えてることについてご紹介

    ROUTE06 CTOが考えていること(2023年4月) - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/04/21
  • GitHub Projects勉強会を開催しました - ROUTE06 Tech Blog

    こんにちは!ROUTE06 Software Engineerの@yoshida-m-3です。 GitHub Projectsがアップデートを続けていることは知っていましたが、実際のプロジェクトで使用できるかは確証がありませんでした。そこでチーム内でGitHub Projectsの勉強会を開催し、実際に検証することにしました。 見るべき人に見るべき情報を確実に届けたい プロジェクト情報の管理において、「各関係者に適切な粒度で情報を確実に届けること」が重要だと考えています。 情報の可視化にはカンバンを使うことが多いですが、情報が多いと重要な情報が隠れてしまう可能性があります。 情報の粒度は見るべき人の立場によって異なります。エンジニアはIssue単位の情報が必要ですが、プロダクトオーナー・マネージャーはEpic単位の情報が必要であり、時系列の進捗情報も必要な場合があります。 GitHub P

    GitHub Projects勉強会を開催しました - ROUTE06 Tech Blog
    toshikish
    toshikish 2023/03/07
  • 1