Hacobell Developers Blogのフィード

https://zenn.dev/p/hacobell_dev

「物流の次を発明する」をミッションに物流のシェアリングプラットフォームを運営する、ハコベル株式会社 開発チームのテックブログです! 【エンジニア積極採用中】https://t.hacobell.com/blog/career

フィード

記事のアイキャッチ画像
E2Eテストの実装における落とし穴:シナリオベースから機能ベースへの移行で得た教訓
Hacobell Developers Blogのフィード
はじめにソフトウェア開発の現場において、エンドツーエンド(E2E)テストは、ユーザーが実際に体験するであろう一連の操作を通じて、システム全体の品質を保証するために欠かせないプロセスです。開発スピードの向上と品質維持を両立させるため、多くのチームがE2Eテストの自動化に取り組んでいます。しかし、単に手動で行っていたテストシナリオをそのまま自動化しようとすると、予期せぬ問題に直面することがあります。本記事では、E2Eテスト自動化における「シナリオベーステスト」の課題と、その解決策としての「機能ベーステスト」への移行について解説します。※ この記事は【めぐろLT #25 「私、これ自...
1ヶ月前
記事のアイキャッチ画像
BDDの考え方を取り入れ、複雑な要件の開発に立ち向かおう
Hacobell Developers Blogのフィード
こんにちは、ハコベル開発チームの坂東です。プロダクト開発に携わっていると、エンジニアごとに実装イメージが異なるコードレビューの段階で要件についての議論が発生するQA 終盤で実装漏れに気づき、慌てて修正するスプリントレビューで仕様の取り違いを指摘されるなどの問題に直面することはありませんか?こうした問題は、複雑な要件の開発が多いチームほど深刻になりがちです。そこで私たちのチームでは、「実装前にシステムの振る舞いを洗い出し、チーム全員で合意形成を行う」ことを重視しています。今回は、その具体的なアプローチと合わせて、取り組む際のポイントや注意点についてもご紹介します。以下...
2ヶ月前
記事のアイキャッチ画像
新卒エンジニアがスクラムマスターとして取り組んだ開発プロセスの改善
Hacobell Developers Blogのフィード
始めまして。ハコベルで、テックリードを務めている横山怜です。本記事は先日のハコベル初のMeetupイベントにて行ったLT「スクラムマスターとして取り組んだ開発プロセスの改善」を、より詳しくテックブログの記事として再構成したものです。プロジェクトの現場で実際にどのような課題と向き合い、どのように改善を実施してきたのか、その軌跡を紹介します。https://hacobell.connpass.com/event/342174/ 記事の内容新卒で入社した自分が当時の開発チームのスクラム体制に疑問を持ち、スクラムマスターになってから開発プロセスを改善するまでの流れを、具体的なエピソード...
3ヶ月前
記事のアイキャッチ画像
【VSCode】試行錯誤の末たどりついた設定管理術
Hacobell Developers Blogのフィード
みなさんは VSCode の設定をどのように管理していますか?この記事では、プロファイル機能を使って VSCode の設定をきれいに保つ方法を紹介します。!※ この記事はシンプルな説明のために、 VSCode の Remote Development や DevContainer を使わないローカル開発を前提としています。 結論私は VSCode の設定を以下の3つに分類して管理しています。① どのワークスペースでも有効化したい設定→ 既定(Default)のプロファイルで管理する② 特定のワークスペースにおいて、チームで合意した設定→ 各ワークスペースの.vsco...
3ヶ月前
記事のアイキャッチ画像
【TypeScript×関数型】まとめてエラーを捕まえる!neverthrowで実現するスマートなCSV検証
Hacobell Developers Blogのフィード
はじめにCSVデータの検証においては、数多くのエラーが同時発生する可能性があります。たとえば「ある行のIDが数値ではない」「日付が無効」「必須項目が空欄」など、複数セルで同時に問題が起こりえるのがCSVの難しいところです。JavaScriptの例外処理では、標準的な例外処理手法であるtry-catchをネストしてエラーを拾う方法がよく使われてきましたが、このアプローチには多くの問題が潜んでいます。そこで、今回は TypeScript の関数型スタイルでのエラーハンドリングを可能にするライブラリ neverthrow を活用し、複数のバリデーション結果をまとめて扱う方法を紹介しま...
4ヶ月前
記事のアイキャッチ画像
「ねこGIF事件」年内しくじり供養
Hacobell Developers Blogのフィード
「めぐろLT Advent Calendar 2024」ー 20日目の記事です。今回は、私が入社直後にやらかしてしまったしくじりと、そこから学んだ改善策についてお話させてください。 要件定義が進まず、本番環境のデータを確認し始める入社直後、私は要件定義がなかなかスムーズに進まず、苦戦していました。原因を振り返ると、QA環境のデータだけでは実際のユーザーの行動の解像度が低いままで、実際にどう業務で使われているかをイメージするのが難しい状況でした。そこで、解決策として本番環境のデータを確認するという選択を取りました。本番環境には、実際に業務で使用されている生データが存在します。そ...
5ヶ月前
記事のアイキャッチ画像
Rails で既存テーブルに STI を適用する時に気をつけること
Hacobell Developers Blogのフィード
Rails の STI (Single Table Inheritance) は、1つのテーブルで複数のモデルを管理できる便利な機能です。しかし、既存のテーブルを STI に移行する際には注意が必要です。今回は、実際に遭遇した問題とその解決策について共有します。 問題が発生した状況既存のテーブルに STI を導入するため、以下の変更を1回のリリースで行おうとしました。type カラムの追加サブクラスの追加デプロイの流れは以下のようになっていましたデータベースのマイグレーション実行(db:migrate)Rails アプリケーションの再起動この時、マイグレーション...
5ヶ月前
記事のアイキャッチ画像
【VSCode】 マルチカーソル、使ってますか?
Hacobell Developers Blogのフィード
この記事は「めぐろLT Advent Calendar 2024」ー 16日目の記事です。マルチカーソル機能は、複数のカーソルを使って同時に編集を行うことができる機能です。VSCodeには、このマルチカーソル機能が標準で搭載されており、効率的なコーディングをサポートしてくれます。マルチカーソルを使用している様子本記事では、マルチカーソル機能の使い方と、筆者が実際にどのような場面で使用しているかを紹介します。 マルチカーソル機能の使い方VSCodeでは以下の方法でマルチカーソルを作成することができます。マルチカーソルの作成方法Mac版のショートカットWindow...
5ヶ月前
記事のアイキャッチ画像
GitHubでファイル差分が表示されない!?レビューを快適にするための差分の非表示ロジックを解説
Hacobell Developers Blogのフィード
はじめにある日、プロジェクトのschema.resolver.goファイルが突如としてGitHub上でgenerated fileと判定され、プルリクエストの差分に表示されなくなる問題に直面しました。「Some generated files are not rendered by default」となり差分が表示されない様子schema.resolver.goファイルは、GraphQLサーバーの実装ファイルでgqlgenによってメソッドのシグネチャのみが自動生成されますが、その実装部分は我々が記述しなければなりません。そのため、コードレビューは不可欠ですが、GitHubで差...
6ヶ月前
記事のアイキャッチ画像
【技術選定】 0→1 の SaaS に採用して感じた GraphQL への向き合い方
Hacobell Developers Blogのフィード
この記事では、ハコベル配車計画の0→1フェーズのSaaSプロダクトにおいてGraphQLを採用した経験から感じたGraphQLへの向き合い方について紹介します。スライドでも公開していますのでぜひご覧ください。また、この内容についての発表は下記で配信されていますので、こちらもぜひご覧ください。https://findy.connpass.com/event/328076/ プロダクトの背景2022年に、物流DXを実現する新たなSaaSを作るプロジェクトが始まりました。今まで経験と勘を頼りに行われていて属人化していた配車計画業務にフォーカスしています。この業務を仕組み化し、A...
7ヶ月前
記事のアイキャッチ画像
新卒だけどいきなりRailsを6系から7系にメジャーバージョンアップしてみた話
Hacobell Developers Blogのフィード
はじめまして!24卒でハコベル株式会社のサーバーサイドエンジニアをしている磯貝です!ハコベルでは、『ハコベル配車管理』というサービスでRuby on Railsが使われています。この記事は内定者インターン〜入社後数ヶ月の僕がビビりながらもRuby on Railsのバージョンを6系から7系にアップデートした記録です。Railsのアップデートに関心がある方や、同じような課題に直面している方の参考になれば幸いです。 大まかな流れ今回は以下のような流れで行いました。Railsのパッチバージョンを最新に更新Railsのload_defaultsを6.1までアップデートRail...
7ヶ月前
記事のアイキャッチ画像
本当にあった怖い話: Dockerイメージにはバージョンタグをつけろ!
Hacobell Developers Blogのフィード
こんにちは、ハコベル開発チームの坂東です。今日は、実際に私たちのチームで起きたちょっとした“怖い話”を共有しようと思います。 開発は順調に進んでいたはずだった…私たちのチームでは、これまでプロダクトをローカル環境で動かす際、ファイルアップロード系の処理では開発用のAWS環境に直接アップロードするようにしていました。しかし、複数のAWS環境を跨ぐような開発をする時にやりづらいので、効率化のためにローカル環境でAWSをエミュレートできるLocalStackを導入することにしました。LocalStackは、他のチームでも導入実績があったので、安心して導入に踏み切りました。一人のメンバ...
8ヶ月前
記事のアイキャッチ画像
クイズで学ぶGoの並行処理:channelとgoroutineの陥りやすいミスとその対策
Hacobell Developers Blogのフィード
!本記事は、社内のGo初学者向けに作成したドキュメントの焼き直し記事になります。同じような課題を抱える多くの初学者の方々に少しでもお役に立てればと思い、公開することにしました。 はじめにGo言語を使う際に避けて通れない並行処理について、特に初学者がつまずきやすいchannelとgoroutine、およびsync.WaitGroupの基本的な使い方をクイズ形式で解説します。Goの並行処理は非常に強力ですが、正しい理解と使い方をマスターするためには、いくつかの落とし穴に注意する必要があります。この記事では、それらのポイントを具体的なコード例を通じて学んでいきます。 基本的な...
8ヶ月前
記事のアイキャッチ画像
[Go] 構造体フィールドの初期化漏れをCIで防ぐ!~exhaustruct~
Hacobell Developers Blogのフィード
はじめにGo言語では、構造体を使ってデータを定義することがよくあります。しかし、構造体フィールドの初期化漏れは、意図しないバグを引き起こすことがあります。本記事では、構造体フィールドの初期化漏れを防ぐツール「exhaustruct」を紹介し、その使い方を解説します。 構造体フィールドの初期化漏れの問題Go言語で構造体を使用する際、全てのフィールドを適切に初期化しないと、予期しない動作を引き起こす可能性があります。例えば、以下のような構造体があるとします。type Item struct {itemType intname string}この構造体を初期化す...
10ヶ月前
記事のアイキャッチ画像
RSpecで空配列が欲しいのに空文字が混入する
Hacobell Developers Blogのフィード
ハコベル開発チームの坂東です。チームでモブプロをしながらRSpecを書いている最中に遭遇した挙動に困惑したので、備忘録も兼ねて記します。 環境Rails: 7.0.8RSpec: 6.1.2 RSpecで空配列が欲しいのに空文字が混入するRSpecでリクエストスペックを書く際、空の配列をPOSTリクエストのパラメータとして送信すると、Railsがこれを空文字として解釈するケースがあります。通らないテスト例# spec/requests/posts_spec.rbrequire 'rails_helper'RSpec.describe "Posts", type...
10ヶ月前
記事のアイキャッチ画像
[gomock] 新しく追加されていたCondが便利だった件
Hacobell Developers Blogのフィード
gomockとは?gomockは、Go言語用のモッキング・フレームワークです。元々はGoogleのgolang/mockとして開発されていましたが、2023年の6月頃にプロジェクトがアーカイブされ、現在はUber社がフォークして保守しています。基本的な使い方はこちらの記事をご参照ください。https://zenn.dev/sanpo_shiho/articles/01da627ead98f5本記事ではUber社によってフォークされたのちに追加された便利Matcherのうち、特に活用頻度が高いCondMatcherについて紹介していきます。Cond以外のMatcherについ...
1年前
記事のアイキャッチ画像
コピーライティング思考のススメ
Hacobell Developers Blogのフィード
ハコベルでプロダクト開発部長をしている宮武です。私が新卒入社した企業では広告業界にいましたが、現在は物流業界DXプロダクトの責任者という畑違いの仕事をしています。そんな中、広告業界で学んだコピーライティングのスキルが生きる場面がたくさんあることに気が付きました。ここでは、コピーライティング思考のメリットをいくつか共有します。 コピーライティングが活躍するシーンコピーライティングは、以下のような多様なシーンで活用できます。会社のMVV(ミッション、ビジョン、バリュー)を策定する新サービスの名称を決めるLPページにおける広告文を考える営業資料の訴求ポイントを明確にするプロ...
1年前
記事のアイキャッチ画像
ソフトウェアの品質とは何か?組織的に品質を担保できる体制作りについて
Hacobell Developers Blogのフィード
ハコベルで品質保証のマネージャーをしている小林です。今回は元々の自分の専門領域であるソフトウェアの品質について記載しようと思います。 対象読者ソフトウェアの品質に関心を持つ開発者やテスターの方ソフトウェアの品質に関する基礎知識や規格を学びたい方ハコベルのサービスや開発体制に興味のある方 そもそもソフトウェアってなに?ソフトウェアでググると、以下のように定義されているようです。コンピュータを動作させる命令の集まりであるコンピュータプログラムを組み合わせ、何らかの機能や目的を果たすようまとめたもの。(ソフトウェアとは - IT用語辞典 e-Words)この文章...
1年前
記事のアイキャッチ画像
数値で見る技術ブログ: データドリブンで考える記事制作支援アクション
Hacobell Developers Blogのフィード
ハコベルでシニアアーキテクトをやっている中村です。皆さん技術ブログを運営していく中で悩みはありますか?様々あると思いますが、ブログの記事をどう増やしていくかは中でも重要なテーマなのではないでしょうか。ハコベル技術ブログは先月で開設1周年を迎えましたが、メンバーのおかげで定期的に記事を公開することができました。今回は記事公開までの状態遷移を見ていくことで、定期的に記事を公開できた去年1年間の軌跡を理解すること、今後も継続的にブログを運営していくための施策を考えるための材料を探す、という目的で分析をしました。元々は運営チームの振り返りで出たトピックで、内部向けに振り返るためにデータをを集...
1年前
記事のアイキャッチ画像
Hacobell Developers Blog 立ち上げから1年間の振り返り
Hacobell Developers Blogのフィード
ブログを始めた理由ハコベルでシニアアーキテクトをやっている 中村 です。ブログの立ち上げを主導したので1年経ったのを期に振り返りとして、企画をした背景を書いていこうと思います。 会社の体制的な話ハコベルは2022年8月に独立した会社となりました。ラクスル株式会社の事業部として運営してきましたが、事業フェーズにあった体制、フットワークを軽くする、運送業界のビッグプレイヤーとのコラボレーションを加速させる、などを目的としていました。会社全体としてはポジティブな話ですが、プロダクトチームとしてはプレゼンス・採用力は懸念でした。それまでラクスルの知名度、ブランド力を武器にできていま...
1年前