DIGGLE開発者ブログ

https://diggle.engineer/

予実管理クラウドDIGGLEのプロダクトチームが、技術や製品開発について発信します

フィード

記事のアイキャッチ画像
新規事業開発奮闘記
DIGGLE開発者ブログ
新規事業開発奮闘記 DIGGLEエンジニアのreenjです。 2024年11月から新規事業開発に携わるようになりました。立ち上げから約4か月が経過しました。今回のブログではこの間の経験や学びを共有させていただこうかと思います。 新規事業の始まりから現在まで プロジェクトの始動 ローコード開発の限界 Railsによる開発への移行 顧客価値の創造に向けて 直面した課題 横断的なチームの難しさ 意思決定プロセスの難しさ 解決策 終わりに 新規事業の始まりから現在まで ※ Bubble®はBubble Group, Inc.の商標です。DIGGLEは独立した法人であり、Bubbleとは関係ありません。…
7日前
記事のアイキャッチ画像
RubyKaigi2025でスポンサーブースを出展します
DIGGLE開発者ブログ
DIGGLEはRubyKaigi2025にRubyスポンサーとして協賛、ブース出展を行います。ブースではRubyistのみなさんに楽しんでもらえるようにくじ引きを用意しています。 くじの内容は 1等 Anker製モバイルバッテリー PowerCore 10000 https://www.ankerjapan.com/products/a1263 2等 Anker製ワイヤレス充電器 PowerWave 10 Pad https://www.ankerjapan.com/products/a2503013 参加賞 ひんやりミニスポーツタオル 加えて、特別賞として HHKB Studio 英語配列/…
1ヶ月前
記事のアイキャッチ画像
DIGGLEにおけるBranded Typeを活用した型の強化
DIGGLE開発者ブログ
はじめに Branded Typeとは 型エイリアス Branded Type DIGGLEでのBranded Typeの活用方法 Canvasタグでの実際の活用方法 交差型の扱いについて まとめ 終わりに はじめに DIGGLEエンジニアのitoです。 最近は少しづつ暖かくなっているように感じていますが、時折寒い日が来るたびに三寒四温という言葉を思い返しています。 DIGGLEでは2023年1月からTypeScriptを導入してフロントエンドの開発をしています。 TypeScriptの型によって開発に多くの安心感をもたらしてくれますが、型を適用すれば終わりという話ではなく型の効果を高めるため…
2ヶ月前
記事のアイキャッチ画像
ウォーターフォールとスクラムでは設計の主眼とすべきものが違う
DIGGLE開発者ブログ
はじめに なぜ設計をするのか? 情報の共有 作業の分離 開発手法と設計の位置づけ ウォーターフォールの設計 設計書の構成 何を主眼とすべきか スクラムの設計 設計書の構成 何を主眼とすべきか まとめ 終わりに はじめに DIGGLEエンジニアのaki0344です。 去年から専任のスクラムマスターとして活動しています。 最近設計について思うところがあり、記録の意味も込めてブログにしてみました。 なぜ設計をするのか? みなさん設計していますか? 1つのプロダクトを2~3人程度で開発しているような環境では、明確に設計という工程を設けずにいきなり実装を行っているかもしれません。 あるいは、納期に対して…
3ヶ月前
記事のアイキャッチ画像
PapaParseで始めるストリーム処理
DIGGLE開発者ブログ
はじめに パフォーマンス上の悩み ストリーム処理について ストリーム処理を使用する目的 Node.js / PapaParseにおけるStream 実例 今回改善した処理 おまけ (PapaParseのStreamだからできたパフォーマンス改善) まとめ We’re hiring! はじめに CSVって便利ですよね ある程度の量のデータをユーザも扱いやすい形で一度に入出力しようとする場合、実質CSVが選択肢の筆頭になるかと思います。 一方で、データが巨大になりやすく、パフォーマンスの課題が出やすい箇所でもあります。 今回は、DIGGLEでCSVを扱っている処理で実際に起きているパフォーマンスの…
4ヶ月前
記事のアイキャッチ画像
バグの原因調査で意識したこと
DIGGLE開発者ブログ
DIGGLEエンジニアのkishikawaです。最近業務でバグの原因調査を行う機会が多くありました。調査タスクに実際に取り組んでいく中で、実装タスクとは違った考え方・心構えが必要だと感じましたのでブログ記事として書いてみようと思います。 調査タスクに苦手意識、ないですか? 時間を浪費している感覚に陥ってしまうこと あまり詳しくない技術スタックが絡むとよくわからないまま解決できないのではという不安 何を意識しているか 他の人の目に見える場所に、調査状況がわかるように簡単なメモ (確認したlogやソースコード、自分の考え)をアウトプットする どうしても分からなければ素直に聞く 私の場合の実例 調査…
5ヶ月前
記事のアイキャッチ画像
ふつうのコンパイラをつくろうを読んで
DIGGLE開発者ブログ
DIGGLEのchikugoです。今回はふつうのコンパイラをつくろうという書籍を読みましたので、そちらの内容の紹介をします。本稿では細かいところは書籍に譲り、コンパイラがどのように動いているのかのイメージ感をつかめるところを目標にしたいと思います。書籍ではJava向けのパーサジェネレータのJavaCC(Java Compiler Compiler)を使用しているので本稿でもそちらを利用して解説します。 コンパイルの順序 1. 字句解析(lexical analyze) 2. 構文解析と意味解析 3. 中間表現の生成 4. コード生成(code generation) サンプルコード JavaC…
5ヶ月前
記事のアイキャッチ画像
初めてRubyのコミュニティに参加して発表したときの話
DIGGLE開発者ブログ
はじめに Shibuya.rbとは なぜ発表しようと思ったか 発表準備 テーマ決め 発表内容あらすじ スライド作り GitHub に再現用レポジトリを作成 発表当日 会場へ 発表 発表後 振り返りと今後の展望 We're hiring! はじめに こんにちは、DIGGLEでWebエンジニアをしている fujita です。 気がつけば2024年も残すところあとわずかとなりました。私は2月にDIGGLEに入社し、非常に充実した、あっという間の1年を過ごしました。今年を振り返り、特に思い出に残っている8月のShibuya.rbで行ったLTの発表について記事にしたいと思います。「うまく発表を行うには」…
5ヶ月前
記事のアイキャッチ画像
日本に住む、海外国籍の人がDIGGLEで働いてみての感想
DIGGLE開発者ブログ
はじめに DIGGLEエンジニアのLiuです。昨今の日本では、DXのニーズが飛躍的に上がっています。そんな社会情勢の波で、IT人材不足とか、エンジニア関連業種は転職市場では売り手市場となっているなどのニュースがよく見られ、多くの会社はIT人材採用に苦戦する場面もあるでしょう。そこで、益々重視されてきている対策のひとつが、外国籍エンジニアの採用です。 ▼厚生労働省 - IT人材需給の推計 www.mhlw.go.jp ▼厚生労働省からも海外IT人材採用ハンドブックが出されるほど重視されています。 www.mhlw.go.jp この状況を知って日本で働いている外国籍エンジニアの方が数年前と比べてず…
5ヶ月前
記事のアイキャッチ画像
スタートアップに入社したSREとしてやったこと
DIGGLE開発者ブログ
はじめまして。9月にDIGGLEに入社したSREのTachibanaです。これまではインフラエンジニアやサポートエンジニアをやってきており、スタートアップのSREとして働くのはDIGGLEが初めてになります。入社してまだ3か月程度ですが、今年やってきたことを紹介したいと思います。スタートアップのSREって何をするんだという疑問に答える記事になっていれば幸いです。 システム構成図の整理 タスクの整理 セキュリティの強化 GitHub Actionsからのアクセスキーの排除 ECSのtask definitionのアクセスキーをRoleに置き換え Dockerfileからのアクセスキーの排除 Da…
5ヶ月前
記事のアイキャッチ画像
isolated-vmを使って安全なサンドボックスを実現しようとした思い出
DIGGLE開発者ブログ
お久しぶりです。DIGGLEのhirataです。 今回isolated-vmというものを使用する機会がありいろいろ学びがあったため、ニッチではありますがその内容を公開することで誰かのお役に立てたら嬉しいです。 isolated-vmとは何か? 何をしようとしたのか ざっくりとした使い方 さっそく序盤で苦労した話 使用例がほとんどない やることが本質的に難易度が高い デバッグが難しい 実装を進めていく上でわかったこととそれによる実装上の問題点 コピー無しにオブジェクトは渡せない(つまりオブジェクトの共有はできない) モジュールのロードは手間がかかる isolated-vmのcontextに直接渡…
5ヶ月前
記事のアイキャッチ画像
ReactでのCanvasの活用 - 巨大なテーブルの表示を高速化
DIGGLE開発者ブログ
はじめに Canvasとは DIGGLEで活用している部分 DIGGLEでCanvasを利用することにした経緯 初期のPLレポート つい最近のPLレポート CanvasによるPLレポート 実装上の工夫 避難ハッチを使う部分(useRef)を隔離 Canvasに関わるRefはカスタムHookなどに押し込み、基本的にはcanvasタグに渡すときのみ利用する スクロールイベントなどのユーザーの操作に伴って描画が変わるイベントハンドラー(イベントの管理)は一つのコンポーネントにまとめることで、どのコンポーネントでイベントハンドラーが発火された結果Canvasの描画が変化したのか分かりやすくする 複数キ…
5ヶ月前
記事のアイキャッチ画像
専任スクラムマスターになって分かった、タスク管理のアンチパターン
DIGGLE開発者ブログ
はじめに 結論 タスクはいつ生まれるのか? タスクは誰が作るのか? タスクは誰が整理するのか? タスクを作成したメンバーが決める DEVチームで合議のうえ決める 作成から一定期間経過したタスクを棚卸する 見えてきた課題 積みあがっていくタスクたち 何のためのタスクか覚えていない 何を優先すればいいか共有ができない 実施した対策と効果 ユーザーストーリーを作る 生まれた変化 やらなければいけないタスクを共有できるようになった チームで何からやるかを明確にできた やりたいユーザーストーリーを話し合う場が生まれた 今後の課題 おまけ ユーザーストーリーはそのままタスクとして消化していいの? 終わりに…
5ヶ月前
記事のアイキャッチ画像
RubyのHash、Struct、OpenStruct、Data、Class、ActiveModel、ActiveRecordどうやって使いわけてる?
DIGGLE開発者ブログ
あるキーに対して値(バリュー)を持つ、いわゆるキーバリューのようなデータ構造はプログラミングでよく使います。Rubyでそれを扱うには複数の選択肢(Hash、Struct、OpenStruct、Data、Class)があり、Ruby on Railsを使う場合さらにActiveModel、ActiveRecordもあります。この記事では私の知っている特徴と、使いわけを紹介します。 こちらはRuby Advent Calendar 2024の12/6日分の記事です。 Rubyアドベントカレンダー6日目に書けたわけではありませんが、Rubyに関係ある記事をタイミングよく公開することになったのと、せっ…
5ヶ月前
記事のアイキャッチ画像
TSKaigi Kansai 2024に参加して
DIGGLE開発者ブログ
はじめに DIGGLE エンジニアのitoです。 DIGGLEではたびたびメンバーがカンファレンスに参加することがあります。今回、私は同じ開発チームの同僚のliuさんとともにTSKaigi Kansai 2024に参加しました。 kansai.tskaigi.org 参加した際には感想の記事を作成・公開することが慣習になっているためliuさんとともに参加した感想を書いてみたいと思います。 過去のカンファレンス参加記事はこちらから diggle.engineer diggle.engineer TSKaigi Kansai 2024について TSKaigi Kansai 2024は「2024年5…
6ヶ月前
記事のアイキャッチ画像
リリースフローの改善 - 素早いProductリリースのために取り組んでいること
DIGGLE開発者ブログ
DIGGLEでは、Productの改善を素早く反映するために2種類のリリースフローを使い分けてリリースを行っています。 現在、より素早いリリース→改善のサイクルの実現のためにリリースフローの改善に取り組んでいるのでそのお話をします。 これまでのリリースフロー 週次リリースのフロー 週次リリースの課題 シンプルなフローの検討 段階的な実施 まとめ これまでのリリースフロー これまで、四半期ごとリリースと週次リリースの2種類のフローで開発を進めていました。リリース時にシステムを止める必要があったり、変更内容が大きいなどProduct利用者へ事前のアナウンスが必要な場合は四半期ごとリリースに含め、そ…
9ヶ月前
記事のアイキャッチ画像
pg_repack運用の勘所
DIGGLE開発者ブログ
はじめに 発生した問題点と解決策 【問題その1】毎回同じスキーマで失敗する 【解決策】pg_repackのデータベースを毎回作り直す 【問題その2】処理が終わらない 【解決策】同時実行処理数を増やした 【問題その3】まだ処理が終わらない 【解決策】開始時間の前倒し 【問題その4】不定期に失敗するようになった 【解決策】スキーマ削除はpg_repack開始前に終わらせる 【問題その5】リトライ時に最初からやり直しになる 【解決策】どこまで実施したか保持して、リトライ時は続きから実施する 今後の課題 はじめに DIGGLEエンジニアのaki0344です。 DIGGLEではPostgreSQLを利用…
9ヶ月前
記事のアイキャッチ画像
Rails7.1に上げようとしたらハマりまくった話
DIGGLE開発者ブログ
DIGGLEエンジニアのreenjです。 2024年4月下旬ごろにDIGGLEで使用しているRailsを7.0から7.1へアップデートする作業を行いました。 マイナーバージョンのアップデートであるため、当初それほど問題なくアップデートできるだろうと考えていました。 実際に、簡単にアップデートできたという記事を多く見かけます。 しかしDIGGLEでのアップデートの場合は、思いの外いろいろとハマってしまい苦戦しました。 対応内容と変更箇所、そしてハマってしまったことについてこちらの記事で紹介していきます。 対話形式によるファイル変更 ハマった点1 サードパーティのライブラリがRails7.1に対応…
10ヶ月前
記事のアイキャッチ画像
RubyKaigi2024 に参加しました
DIGGLE開発者ブログ
DIGGLEは、2023年に続いて2024年も継続してRubyKaigiスポンサーを努めました。5/15〜5/18に沖縄で開催されたRubyKaigi2024にnikuが参加したので、その際の感想を公開します。 RubyKaigiの発表は「Ruby自体をよくする、Rubyの適応領域を既存から押し広げてゆく」という観点で捉えると私にはすっきりとまとめられるものが多いように感じました。全部面白かったのでどの感想コメントにも「面白かったです」というのがついていると思ってください。 (参加していなかった時間帯もあります) 1日目(5/15) Writing Weird Code - RubyKaigi…
1年前
記事のアイキャッチ画像
DIGGLEは、RubyKaigi 2024にシルバースポンサーとして協賛します!
DIGGLE開発者ブログ
※ 上記画像中央のロゴはさわらつきさんの著作物です ※ Rubyのロゴはまつもとゆきひろ氏の著作物です DIGGLEのCTO水上です。 DIGGLE社は前年に引き続き、RubyKaigi 2024のシルバースポンサーとして協賛いたします。微力ながらRubyコミュニティに貢献ができればと思っております! rubykaigi.org DIGGLEとRuby 当社サービスは、2016年のローンチ以来、RubyとRuby on Railsをバックエンドの言語、Webフレームワークとして採用しております。私たちが事業として成長を続けられているのは、RubyとRubyコミュニティのおかげです。 特に、サー…
1年前
記事のアイキャッチ画像
DIGGLE React SPA開発におけるアーキテクチャの勘どころ
DIGGLE開発者ブログ
はじめに Reactを用いたSPAのアーキテクチャ SPAのアーキテクチャ React DIGGLEのフロントエンドアーキテクチャ Container/PresentationalパターンによるUIと状態・ロジックの分離 ViewModel Container Component Presentational Component メリット HOCパターンによる関心の異なるデータやロジックの分離 メリット 今後の展望 We're hiring! はじめに 初めまして。 2024年2月にDIGGLEにエンジニアとして入社したfujitaです。 私はこれまで、バックエンドの開発が中心で、フロントエン…
1年前
記事のアイキャッチ画像
YAPC::Hiroshima 2024に行ってきたよ
DIGGLE開発者ブログ
ご無沙汰しています。DIGGLEのhirataです。 今回初めてYAPCに行ってきたのでその時の事を書いてみようと思います。 YAPCとは「Yet Another Perl Conferenceの略で、Perlを軸としたITに関わる全ての人のためのカンファレンスです」(サイトからの引用)でPerlを軸にはしますが、Perlにとどまらず技術的な話題を取り扱うカンファレンスとのことです。 関係ないですがタイトル画像は広島のアーケード街にあったゲームセンターの入口です。手をパチパチ叩くロボットが面白かったので撮ってしまいました。 事の始まり YAPC::Hiroshimaが開催される数ヶ月前の事。い…
1年前
記事のアイキャッチ画像
パフォーマンス分析基盤の構築。S3やAthenaを活用して柔軟性の高いデータの取り扱いを実現した話
DIGGLE開発者ブログ
はじめに Datadog API Clientによるデータの取得 パフォーマンス分析の概要 対象データ 分析方法 パフォーマンス分析基盤の構成の検討 データ保存先 構成 対応内容 サーバーサイド インフラ フロントエンド 最後に We're hiring! はじめに DIGGLEではすでにDatadogを導入してパフォーマンス指標のトレースデータ*1は取れていますが、以下の課題がありました。 ユースケースを分けてパフォーマンス指標を取得したい DIGGLEがターゲットとしたい企業やペルソナユーザーのデータのみを取り出すのが面倒 開発時点でCIが動いた時に、分析結果をプルリクのコメントに出力した…
1年前
記事のアイキャッチ画像
なりすまし/迷惑メールと思われない為のDMARC導入手順
DIGGLE開発者ブログ
はじめに DMARC対応作業を始めるまで それは一通の問い合わせから始まった そもそもDMARCって何だ? 対応時の注意点 メール送信方法によって対応内容が異なる SPF、DMARCの対応は複数サービスで同じ場所に修正を加える必要がある SPF/DKIM未対応の状態でDMARCに対応してはいけない 定義を間違えると他のサービスにも影響を及ぼす危険性がある DMARC対応の流れ 自社で保有しているドメイン一覧を特定する メールアドレスに使用されているドメインを特定する ドメイン毎にDMARC対応が必要か判定する メール送信を行っているサービスを洗い出す 各サービスでSPF、DKIMの対応方法を確…
1年前
記事のアイキャッチ画像
Rustで型付Webアプリケーション開発
DIGGLE開発者ブログ
この記事は Rust Advent Calendar 2023 25日目の記事です。 お久しぶりです。DIGGLEのhirataです。 今回はDIGGLEとは関係ないですが、個人的にRustの利用を促進すべくRustでのWebアプリケーションの開発経験について書きたいと思います。 所感としては一人で開発するならRustを使うべし、と思える経験でした。やはりあちこちで言われている事ではありますが、静的型とライフタイムチェックによりコンパイルを通ってしまえばほぼバグが無く動くという安心感がとても心地よいものでした。コンパイラが代わりにテストをしてくれているような心持ちです。 また、Rustで作成し…
1年前
記事のアイキャッチ画像
OWASP Top Ten に見る Web セキュリティの20年
DIGGLE開発者ブログ
OWASP Top Ten の全バージョンを表にして、脆弱性の変遷を見てみます。
1年前
記事のアイキャッチ画像
複式簿記のアーキテクチャを理解する
DIGGLE開発者ブログ
この記事ははじめてのアドベントカレンダー Advent Calendar 2023 23日目の記事です。 こんにちは。DIGGLEのCTO水上です。アドカレのために何を書こうか悩んでいたら投稿前日になってしまいました。 悩んだ末、社内勉強会で一度話した内容を書くことにしました。(省力化・・) まえがき 定義と設計 お金を定義する 箱を定義する (お金の)移動を定義する 集計結果を定義する N個目の箱の増加分 の場合 N個目の箱の減少分 の場合 実装する 例①:3つの箱でP/L(損益計算書)を表現する 例②:5つの箱でB/S(貸借対照表)を表現する 複式簿記との関係性 まとめ さいごに まえがき…
1年前
記事のアイキャッチ画像
自前のReact UI コンポーネントライブラリを Tailwind CSS で再構築した話
DIGGLE開発者ブログ
"The logo for the React open source JavaScript library" © Facebook (Licensed under CC BY 1.0) "Tailwind CSS Logo" © Tailwind CSS (Licensed under CC BY 4.0) この記事はReact Advent Calendar 2023 23日目の記事です。 はじめに Semantic UI ReactベースのUIコンポーネントライブラリについて DIGGLEでの使い方にマッチするよう薄くラップ Dropdownのpropsのデフォルト値を調整 TextAr…
1年前
記事のアイキャッチ画像
Pythonエンジニアが感じたRailsの戸惑いポイント
DIGGLE開発者ブログ
この記事ははじめてのアドベントカレンダー Advent Calendar 2023 21日目の記事です。 初めまして。 2023年10月にDIGGLEにエンジニアとして入社したaki0344です。 DIGGLEではバックエンドにRuby on Railsを利用しています。 そこで今回は、小学生の娘に『ルビィのぼうけん』を買ったぐらいしかRubyとの関わりのなかった私が、Ruby on Rails(以下Rails)を学習する過程で感じた内容について書いてみたいと思います。 また、それだけだとただの感想文になってしまうので、Rails初心者をチームに受け入れるためにこんな用意をしておくとキャッチア…
1年前
記事のアイキャッチ画像
Rails7環境での最適なJavaScriptビルドツールの選択ガイド
DIGGLE開発者ブログ
この記事は Ruby on Rails Advent Calendar 2023 の20日目の記事です。 はじめに Rails7のJavaScriptビルドツールの比較 jsbundling-rails vs Shakapacker jsbundling-rails 長所 短所 Shakapacker 長所 短所 jsbundling-railsのバンドルの選択肢 Bun esbuild Rollup.js Webpack 比較 esbuild利用の補足 SprocketsとPropshaft まとめ We're hiring! はじめに Rails7は、JavaScriptのデフォルトツール…
1年前