サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
techblog.raksul.com
こんにちは。ラクスルのプロダクト基盤部のEM兼PdMを担当している安尾(@yusuke_yasuo)です。 2023年8月にラクスルに入社して以来、ラクスルにおける決済基盤の構築を担当しています。 引用:2024年7月期第2四半期 決算説明会資料 EM候補として入社して10月に正式にEMとなり今月で半年になるため、一度振り返りをしてみようと思います。 目指すEM像 振り返る前に私が目指すEM像について簡単に紹介したいと思います。 一言で言うと、こちらの記事で書かれているような「強めのEM」が私が目指すEM像です。 引用:エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド 会社によってはピープルマネージメントやテクノロジーマネージメントを行うのがEMというところもあるかもしれませんが、経験上チームとしての成果を最大化するためにはプロダクトマネージメントやプロジェクト
こんにちは。ノバセルのデータプロダクトチームにて開発エンジニアをやっている山中(yamnaku_)です。 現在は、ノバセルの各種分析システムのバックエンド開発を行なっています。 特に、データウェアハウス製品Snowflakeを利用したデータ基盤の開発・運用に取り組んでいます。 私の所属するチームでは、意思決定を記録するドキュメントとして、Architectural Decision Record(ADR)の運用を始めて3ヶ月ほどが経ちました。 今回は、感じることが出来た効果についてご紹介したいと思います。 背景と課題 採用したフォーマット ドキュメントオーナーと変更履歴 ドキュメントの目的 背景 概要 詳細 3ヶ月の運用の結果 呼び方の問題 より良い目的設定や、多くの選択肢が出てくるようになった 意思決定に関する自信の醸成と型化 ビジュアルの活用 まとめ 背景と課題 ひとつ目のプロダクトで
こんにちは!ラクスルのCorporate Application Developmentに所属している高橋です。 普段の業務としては社内システムの機能開発・改善に取り組んでいます。 ラクスルでは上司への承認依頼などのワークフローを管理するシステムを自社開発しています。 最近ではワークフローをSlack上で完結させる機能開発を行いました。 この取り組みにより、申請してからワークフローの全ての承認が完了するまでに要していた時間が平均6時間20分から2時間54分に短縮されて承認時間が約半分になりました。 目次 目次 なぜワークフロー管理を自社開発しているの? 導入に至った背景 どのように実現したか システム構成図 Slack Appsの設定 Node.jsの実装例 つまずいたSlackの3秒ルール まとめ なぜワークフロー管理を自社開発しているの? 本題へ入る前に、我々が所属しているCorpor
こんにちは。ラクスルのCorporate Application Developmentに所属している堂野です。 今回はWi-Fiの接続ログから通勤手当を自動申請する方法をご紹介するのですが、その前に、コーポレートエンジニアについて軽くお話しさせてください。 コーポレートエンジニアって何してるの? 「全社のコーポレート業務生産性を向上させる」ことを目指し、日々改善に取り組んでいます。 コーポレート業務とは、経理・会計、人事、総務、法務など、会社や企業の日々の運営や管理に関わる様々な業務活動を指します。これらの業務を効率化し、リソースを最大限に活用するため、様々なプロジェクトに取り組んでいます。 どんなプロダクトをつくっているか・・・ 私が所属しているCorporate Application Developmentでは、「CORP DIR」というプロダクトを開発してます。これは、企業ディレ
はじめに 1.サンプリングをしデータの行数を減らす ファイルレベルでサンプリングする ファイルのチャンクごとでサンプリングをする 2.サブセットを抽出しデータの列数を減らす ファイル読み込み時にサブセット抽出をする データフレーム読み込み後にサブセット抽出をする 3.データを分割して読み込む 4.扱うデータタイプを変える Numericな値の変換: データ範囲の縮小化 文字列の変換: Categorical型の利用 データの多くが欠損値や0である列の変換: Sparse 型の利用 5.Parquet形式で保存をする まとめ はじめに ノバセル新卒2年目の田村(tamtam)です。 今回はPyconAPAC 2023でJoeun Park氏が話されていた「How much data can we cram into 16GB RAM with less budget?」を参考に、Pandas
こんにちは、ラクスルの宮崎(@miyahkun)です。現在はラクスル株式会社の「ダンボールワン」という、ダンボールや梱包資材を扱うサービスの運用・開発を行っています。我々のチームではNext.jsを用いたサービス開発をしています。今回はその中で採用したvanilla-extractというツールについて紹介します。 背景と課題 技術選定の要件 vanilla-extractとは 満足している点 補完による実装スピードの向上 参照の追跡により安全にCSSを削除できる 活用方法やTipsなど 最小限の機能のみ利用 サイト全体で利用するカスタムプロパティの定義 固定文字を含んだセレクターが欲しいとき 導入してから気づいた点 親コンポーネントから子コンポーネントのスタイルを上書きできないときがある プロパティの記述順序をソートできない 採用しなかった技術 CSS Modules + typed-cs
こんにちは!ラクスルの灰原です! 軽量かつ高速なWebフレームワークであるHonoと、新進気鋭のJSランタイムであるDenoを使って、社内ツールを作ってみましたので紹介します。 作ったツール 技術スタック index.tsx の内容 Tips HonoでTwindを使う HonoのJSXでAlpine.jsを使う Hono+Denoでesbuildを使う おわりに 作ったツール テックブログ向けのアイキャッチ画像ジェネレータを作りました。 タイトルを入力して、 背景画像と文字色を選んで、 文字の位置と大きさを調整して、 後は「Download」ボタンを押せば画像が手に入ります。 これは以前、弊社デザイン組織で作られた「Zoom背景ジェネレータ」に多分に影響されています。 こちらのデザイナーブログも是非ご覧ください! note.com 技術スタック このツールは利用頻度がそこまで多くないと思
こんにちは。ラクスルで24新卒として内定者インターンをしている新開です。 早速ですがみなさんは競技プログラミングやハッカソンなどのプログラミングコンテストに参加した経験はありますか? 今回はプログラミングコンテストの1種であるコードゴルフという、アルゴリズムをどれだけ短いソースコードで記述できたかを競う競技に取り組みましたので、自分なりに考えたことをお話ししたいと思います。 コードゴルフをするまでの経緯 ラクスルの24新卒エンジニアのメンバー全員が初めてオフィスで顔合わせする懇親会が開催され、 当日は自己紹介や他メンバーとの共通点を探すゲームなどを通して同期の親睦を深める良い機会になりました。 懇親会のプログラムのひとつにコードゴルフがあり、同期を4つのチームに分けて1時間程度かけてコードを短くすることに取り組みました。 コードゴルフの様子 どんな問題? 問題は非常にシンプルで以下の文字列
こんにちは。ラクスルグループのノバセル株式会社にてデータエンジニアをやっている、@yamnakuです。 今回は、6月末にラスベガスにて開催された Snowflake Summit 2023 に参加してきたので、その参加報告をしたいと思います。 Snowflake については、以下の記事にて紹介しています。 参加に至るまでの経緯 弊社では、ビジョンである「マーケティングの民主化」を実現するため、お客様のマーケティング施策の定量評価を通じ、より効果的なマーケティング活動の実現を支援しています。 その中で、定量評価に用いるさまざまなデータの集計や分析を行うにあたり、"データクラウド"である Snowflake を中心としたシステムの構築を行なっています。 私自身も、データエンジニアとして2年ほど Snowflake を利用したデータパイプラインの構築や運用を行なってきました。 また、日本において
はじめに 対象読者 あまり説明しないこと 前提とするバージョン 参考となるレポジトリ 3. アーキテキチャ及びディレクトリ構造 オニオンアーキテクチャを採用 オニオンアーキテクチャとは 誕生の背景 依存関係逆転の原則の活用 採用理由 参考になった記事 ディレクトリ構造 全体の構成 api schema apiとusecaseの間のデータ構造を提供する役割 schemaはパスオペレーション関数のリクエストとレスポンスの構造を提供する役割 usecase domain infrastructure core container_config exception 参考にしたもの まとめ はじめに ラクスルグループのノバセルで新卒2年目のエンジニアをしています田村(tamtam)です。 第1回では、AWS Lambda x FastAPIによるPythonモダンAPI開発を実現する上で役立つであろ
はじめに この記事を読んで得られること 対象読者 あまり説明しないこと 前提とするバージョン 参考となるレポジトリ 1. 開発環境の構築で使用したツール AWS Lambdaのコンテナサポートを採用 Poetry利用時に開発と本番環境の適切な管理でLambdaデプロイ問題を解決 Poetry利用時に起きた問題 Dockerfileを分けてデプロイできない問題を回避 Mutagen Composeを採用 Dockerの同期遅い問題 Mutagen Composeを利用 2. 開発で活用したPythonライブラリ パッケージ管理 Poetry Ryeも検討したものの採用せず ベースのライブラリ FastAPI Mangum Powertools for AWS Lambda リンター・フォーマッター Ruff Mypy 型アノテーション自動生成ツールの活用 Black テスト Pytest p
ラクスル事業本部のサーバーサイドエンジニア兼エンジニアリングマネージャーの荒井です。 ラクスルに入社して4年半になりますが、チームのリードエンジニアを経て、今はエンジニアリングマネージャーを兼務しています。普段は開発とマネジメントが半々くらいで、具体の実装は他のエンジニアにお願いし、自分は設計やレビューにかける時間が多いです。 今回は、そんな私の視点から、普段どういった観点でレビューをしているかについてご紹介します。 まず前提条件を確認する どれくらいレビューを急ぐか どれくらい丁寧に見るか 何を目的にレビューをするか 品質保証 知識の継承 品質のために何をレビューするか 機能要件 非機能要件 円滑なレビューのために おわりに まず前提条件を確認する レビューはトレードオフです、時間をかけすぎずにいかに効率的に行うかが重要です。我々のリソースは有限で、レビューを素早く返すことによってエンジ
ラクスル事業本部のサーバーサイドエンジニアの杉山です。2023年4月に新卒で入社しました。現在は、ラクスルで取り扱う商品を追加するための開発や、運用・保守を行っています。 今回の記事ではラクスルでの CircleCI の運用改善について紹介します。 ラクスルのサービス事情 ラクスルのサービス( raksul.com )は Ruby on Rails と PHP で構築されています。この Rails と PHP のアプリケーションは別々のリポジトリで管理されています。データベースのマイグレーションは Rails アプリケーション側で管理しています。また、フロントエンドの開発には Node.js を使用しています。 このような構成のため、 PHP のアプリケーションでのデータベースが関わるテストのために CI では Rails アプリケーションでマイグレーションを実行する必要があります。 これ
ラクスル事業部エンタープライズ開発グループの宮田です。 印刷のラクスルの大企業向け EC プラットフォームである「ラクスルエンタープライズ」でサーバーサイド開発を担当しています。 今回の記事では、フロントエンドプロジェクトのモノレポ構成への移行についてご紹介したいと思います。 我々のチームのモノレポ移行の特徴は、今まさに Rails のフロントエンドとして提供されているプロジェクトにモノレポを取り込んだ点にあると考えています。今後、フロントエンドのモノレポ移行を検討される方へ参考にしていただければと思います。 モノレポを選んだ理由 モノレポとは一言で言うと複数のプロジェクトに分かれたサービスを単一のリポジトリで管理するアーキテクチャです。リポジトリが一つになることでデプロイの高速化や、プロジェクト内でのコードの再利用を促進できるといったメリットがあります。 弊社の印刷事業部では複数の印刷
こんにちは、ラクスル広報の和田です。 みなさんは、「心に残るスペシャルな一冊」そんな本に出会った経験はありますか? 今回は、ラクスルグループ各CTOとエンジニアに「仕事のみならず、人生観やキャリアの参考に新卒エンジニアへおすすめできる本」というテーマでスペシャルな一冊を伺いました。 ラクスル取締役CTO 泉のスペシャルな一冊 『Clean Code』・『Clean Architecture』 この本との出会い こんな方、こんな時におすすめ! この本の内容 この本がスペシャルな理由 ラクスル事業本部CTO 二串のスペシャルな一冊 『プログラマが知るべき97のこと』 この本との出会い こんな方、こんな時におすすめ! この本の内容 この本がスペシャルな理由 ノバセルCTO 戸辺、 同新卒エンジニア 田村のスペシャルな一冊 『達人プログラマー ―熟達に向けたあなたの旅― 第2版』 この本との出会い
はじめに ラクスルグループジョーシス株式会社のデータ分析チームの「麦茶22」です。 ジョーシスは2021年9月にプロダクトをローンチし、2022年2月に Data Analytics Team が発足し、自分は2022年4月にチームに入りました。 チームに参加して初めてのタスクは、データウェアハウスを Single Source of Truth とする分析基盤をつくることでした。背景として、これまではアプリケーションの分析用 DB を Redash に接続して分析していましたが、データソースが増えたことや、クエリ・レポートの数が増えて管理しづらなくなったことがあり、チームの発足と合わせて分析基盤も整えることになりました。 本記事では、このタスクの一貫として行った、 RDS <-> BigQuery 間の連携をどのように構築したかをご紹介します。 前提 ジョーシスのアプリケーションは AW
こんにちは、22新卒でラクスル事業本部の灰原です。この度、ラクスル株式会社*1の公式テックブログをリニューアルし、こちらのはてなブログを開設しました! この記事ではテックブログをリニューアルした背景に加えて、GitHub上ではてなブログの記事を管理・レビューする手法について紹介します。 リニューアルの背景 ラクスルではこれまでもテックブログ を運営してきました。 また昨年からはアドベントカレンダー企画も行っています。 qiita.com しかしながら、当時利用していたブログシステムでは社内のユースケースに合わない部分がありました。 レビューのフローが煩雑 これまでの運用では、レビューのフローが煩雑でした。例えばNotionに原稿を書いて、それを上司に渡してコメントをもらい、修正が終わったらまた上司に連絡して、というように、レビューイ・レビュアーともに負担が大きいものでした。 同時編集が難し
こんにちは、ラクスル事業本部 SCM(Supply Chain Management)開発チームの藤川です。 RAKSUL Advent Calendar 2021 2日目は私からお届けします! 今日はチームで取り組んだモブプログラミングについてのお話をします。 私事ですが、テックブログ初デビューです。緊張…! 2021年7月入社とチームの中では最も社歴が浅いのですが、チームを代表しての発信の機会をいただきました! 背景 SCM開発チームでは「ラクスルの事業成長を支える発注基盤システムの構築」をミッションとしています。 お客様に高品質・低価格な印刷物をお届けするために複数の印刷委託先と連携してサービス運営をしていく中で、安定稼動を実現しつつも最適な発注によってお客様のより良い購入体験を実現するための仕組みづくりを日々続けています。 さて、そんなSCM開発チームですが現在いくつかの課題を抱え
はじめに こんにちは。Raksul でサーバーサイドエンジニアを担当している山本といいます。 2020 年度の新卒として入社し、現在はDTPスクラムに所属しています。 DTPスクラムでは、主に、ラクスルで入稿された印刷データのチェックに関する機能を提供するサービス(データチェック基盤)の開発を行っています。 本ブログでは、データチェック基盤における Web API 開発の一部で利用している Protocol Buffers に焦点を当て、その概要と基本的な使い方を hands-on 形式で紹介いたします。 データチェック基盤の誕生 過去の記事でも取り上げたように、現在、ラクスルではRaksul Platform Project(以下 RPP)を推進しています。 RPP とは簡単に言うと、モノリシックなアプリケーションであった Raksul(EC) からコアとなる機能を切り出してマイクロサー
こんにちは。ハコベルカーゴのサーバサイドの開発を担当している貞元です。 ハコベルカーゴの運用のためのWebアプリケーションが、サービス本体とは別に存在します。 こちらは改善や変更の必要なく、長期間コミットがない状況となっていました。 ただ、時間が経つことにより、完全に理解できている人は減っている事態となっていました。 久々に手を入れる必要ができたので、まずは開発環境を構築して対応していこうということになりました。 そのため、まずはローカルの開発環境の構築を簡単にするため、Docker, Docker Composeで構築した内容を紹介します。 なお、ハコベルカーゴとは荷物を送りたい荷主と、空いた時間に仕事を受注したい運送事業者を直接つなぐマッチングサービスです。 詳しくはこちらを見てみてくださいね。 ローカル開発環境 Docker for Mac direnv Docker関連ファイル 一
こんにちは。 物流サービスのハコベルで一般貨物 (普通トラックを使用して荷主の荷物を運送する業界)向けのサービス「ハコベルコネクト」のフロントエンドを担当している丸山です。 サービスの開発・運用している中で、フロントエンドのコードが古いまま使用してしまっているユーザーがいて、APIの変更と食い違い困ったことなどないでしょうか。今回は我々がその問題に直面して考えた、強制アップデートする方法をご紹介します。 背景 ハコベルのフロントエンドでは Vue.js を使用して、遷移やリロードを行うことなくタブの移動や絞り込み、案件の受注などの操作をできるようにしています。便利さの一方で、長時間にわたって一覧ページをリロードしないでも使い続けることができるため、JavaScriptのコードが古いまま使っているケースがあります。 また、サーバーサイドの変更のため、エンドポイントやレスポンスの形式を変える必
こんにちは。印刷のラクスルでフロントエンドを担当している菅野です。 2週連続の投稿となります。(前回の記事: Jestを実行した時に、同時にESlintを走らせてみる) 現在、印刷サービスのフロントエンドエンジニアとデザイナーでデザインシステムの構築・整備を行っています。 その一環として、運用中のCSSスタイルガイドをStorybookに移行しました。 今回は、移行を決めた動機や導入時に得られた知見、今後の運用についてご紹介したいと思います。 [caption id="attachment_4313" align="alignnone" width="1024"] 運用中のStorybookの画面[/caption] これまでのスタイルガイドにおける課題感 該当プロジェクト(印刷のラクスル)ではPostCSSを使用しており、社内でデザインのコンポーネント一覧を共有するために、postcss
こんにちは。ハコベルの吉岡です。 ハコベルでは2019年2月に ハコベルコネクト をリリースしました。ハコベルコネクトは一般貨物 (大型トラックでの輸送をする業界) 向けのサービスで、運送業界をデジタル化していくためのプラットフォームとして、どんどん機能を追加していってる最中です。 提供する機能の一つにトラックの運転手の方に使ってもらうドライバーアプリがあります。今回はこのアプリについて紹介していこうと思います!ストアに公開しているので興味があれば是非覗いてみてください。 (運送業界の方しかアカウント開設できませんが。。) App Store Google Play 背景 ドライバーアプリを使う最大のメリットは配車マンとドライバー間のコミュニケーションコストを削減できる点です。通常ドライバーは配車マンから運送案件の「指示書」を紙で受け取り、指示書の内容に沿って配送を行います。荷主からの指示
システムエンジニアの泉田史杏です。 ラクスルは7/20にベトナムホーチミンにて第一回Rails Girls Saigonのスポンサーとして参加しました。 またコンテンツの企画と当日のコーチも務めてきたので、今回はその様子をお伝えします。 ホーチミン初のRails Girls Rails Girlsは日本含めて世界各国で行われている、女性がプログラミングに親しみ、アイデアを形にするための手助けを目的とするイベントです。ベトナムでは過去にハノイやダナンで行われていますが、ホーチミンでは初の開催となりました。 ラクスルはホーチミンにも開発チームがあるため、今回参加を決めました。 会場はメインオーガナイザーであり、ホーチミンのど真ん中、眺めも非常に素晴らしいTINYpulseさんのオフィス!このブログの写真も提供いただいています、ありがとうございます。 40人弱の参加者に対しコーチは19人。 ベト
こんにちは。 印刷のラクスルでフロントエンドを担当している菅野です。 現在、稼動中のとあるプロダクトへのTypeScript導入を進めています。今回は、既存プロダクトへの影響を最小限に留めつつTypeScriptを導入する手順をご紹介します。 TypeScriptとは TypeScript - JavaScript that scales. TypeScriptは、Microsoftが開発したオープンソースのプログラミング言語です。 詳細な説明は省きますが、以下のような特徴があります。 JavaScriptの厳密なスーパーセット(≒上位互換) 省略可能な型システム クラスベースのオブジェクト指向 TypeScript導入にあたって 今回TypeScriptを導入することで、以下のようなメリットがあります。 型システムの恩恵が得られる エディタの入力補完を受けられる コード=ドキュメントとい
ラクスルの@nnm_techです。 ラクスルの印刷サービスではこれまでにもE2Eテストがありましたが、この度より良いシステムを目指し再構築することになりました。 本記事ではTestCafeとAWS CodeBuildを用いたE2Eテスト刷新について紹介したいと思います。 ラクスルで運用している印刷サービスは裏側で複数のサービスが協調動作しています。 入稿サービス、発注サービス、決済サービス…外部サービスとの連携も含めるとかなりの数があります。 このような中、弊社では各サービスの変更時におけるユースケースの動作担保・リグレッション検知を目的にE2Eテストを実施しています。 目次 E2Eテストを構築するにあたってのポイント ポイント1: テストの書きやすさ ポイント2: 実行環境の問題 ポイント3: 実行タイミング これまで どうしたか テストの書きやすさ: TestCafeの導入 実行環境:
こんにちは。サーバーサイドエンジニアの荒井です。 ラクスルでデータ入稿〜印刷用データ作成に関わる開発チームに所属しています。 以前、GoのおすすめDIツールについての話がありましたが、今回は、Goを使ってラクスルのオペレーターチェック入稿システムを刷新した話について書きたいと思います。 オペレーターチェック入稿とは ラクスルは、印刷物を扱うECサイトです。したがって、お客様に印刷用のデータを入稿していただく必要があります。 ラクスルでは現在、2つのデータ入稿方法をご提供しています。 1つは、システムが全自動で印刷用データを作成するスピードチェック入稿です。 (過去にスピードチェック入稿リリース秘話やそうだ スピードチェック入稿のテストを自動化しよう でも紹介しています) もう1つは、DTPオペレーターがデータを1つ1つチェックして印刷用データを作成するオペレーターチェック入稿です。本来はす
こんにちは。サーバサイドエンジニアの三瓶です。印刷ECサイトの ラクスル の開発保守を担当するチームに所属しています。 ラクスルでは Raksul Platform Project (RPP) と称して技術負債の返済活動を継続的に行っているのですが、その流れの一環として印刷ECチームでは巨大化したアプリケーションから商品仕様に関わる部分を別サービスとして切り出す、という作業を最近行いました。 この切り出したサービスでは通信方式として gRPC を、言語としてはRubyを採用しています。 実際に導入してみて、gRPCはまだドキュメントも多くはないと感じたので、本記事ではgRPCが備える機能の1つである Interceptor についてチュートリアル形式でご紹介したいと思います。言語はもちろんRubyを使います。 ※ gRPC導入に至った背景や経緯について興味のある方は弊社エンジニアの二串のス
先日、社内のSlackでpixivさんのブログ記事 今日から簡単!Webpacker 完全脱出ガイド がシェアされてて、『あっ、これは...弊社でもやったやつではないか。』とおもいました。Webpackerは便利なんですけどね。 本記事はこのpixivさんのポストを受けて WebpackManifest というgemを紹介します。 ラクスルでのWebpackerを辞めた経緯 もともとWebpackerを使った管理画面プロジェクトがあった そこにECサイトも乗せるようなった package.jsonは管理画面、ECサイトで分けて管理したかった Webpackerは1個のpackage.json、1個のwebpackコマンド、1個のmanifest.json前提の作りなので、package.json分けて複数のwebpackビルド処理系を作りたいラクスルの用途に合わなかった => 脱Webpa
次のページ
このページを最初にブックマークしてみませんか?
『RAKSUL TechBlog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く