サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
diggle.engineer
あるキーに対して値(バリュー)を持つ、いわゆるキーバリューのようなデータ構造はプログラミングでよく使います。Rubyでそれを扱うには複数の選択肢(Hash、Struct、OpenStruct、Data、Class)があり、Ruby on Railsを使う場合さらにActiveModel、ActiveRecordもあります。この記事では私の知っている特徴と、使いわけを紹介します。 こちらはRuby Advent Calendar 2024の12/6日分の記事です。 Rubyアドベントカレンダー6日目に書けたわけではありませんが、Rubyに関係ある記事をタイミングよく公開することになったのと、せっかくなら自分が好きな言語のカレンダーを埋めたい気持になったので参加しました! 私はこう判断してます RDBの読み書きに使いたい? 同じ値を保持しているなら同じ物と考えたい? Hashの柔軟さを制限した
この記事は Rust Advent Calendar 2023 25日目の記事です。 お久しぶりです。DIGGLEのhirataです。 今回はDIGGLEとは関係ないですが、個人的にRustの利用を促進すべくRustでのWebアプリケーションの開発経験について書きたいと思います。 所感としては一人で開発するならRustを使うべし、と思える経験でした。やはりあちこちで言われている事ではありますが、静的型とライフタイムチェックによりコンパイルを通ってしまえばほぼバグが無く動くという安心感がとても心地よいものでした。コンパイラが代わりにテストをしてくれているような心持ちです。 また、Rustで作成したサーバはとてもメモリ消費量が小さく、Railsアプリであれば下手をすると1GB程まで行ってしまいますが、数十MBで十分動くというのも個人にとってありがたいものでした。 ちなみにとても安定して動作して
この記事ははじめてのアドベントカレンダー Advent Calendar 2023 21日目の記事です。 初めまして。 2023年10月にDIGGLEにエンジニアとして入社したaki0344です。 DIGGLEではバックエンドにRuby on Railsを利用しています。 そこで今回は、小学生の娘に『ルビィのぼうけん』を買ったぐらいしかRubyとの関わりのなかった私が、Ruby on Rails(以下Rails)を学習する過程で感じた内容について書いてみたいと思います。 また、それだけだとただの感想文になってしまうので、Rails初心者をチームに受け入れるためにこんな用意をしておくとキャッチアップが早まるかもしれませんというポイントも書きたいと思います。 前提 Railsの便利な点 MVCモデル ディレクトリ構成に強力な制限がある 書くコード量が少ない Ruby/Railsの戸惑いポイント
2023 年 10 月 30 日に『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』(以下 実践プロパティベーステスト本)という本が出版されました。 プロパティベーステストというのは、テストの一手法なのですが、これまでとは違う範囲をカバーするテストです。 今回はそれを Ruby に適用するとどうなるか検証、また似ている既知との概念と対比して理解を深めました。 これは Ruby Advent Calendar 2023 15 日目の記事です。 プロパティベーステストとはどのような形式か 既知の概念との対比 普段書いているテストと、プロパティベーステスト データ(テーブル)駆動テストと、プロパティベーステスト ファジングと、プロパティベーステスト 型と、プロパティベーステスト まとめ 実践プロパティベーステスト本は 2023 年 12 月現在、テストの一手
前置き プロダクト開発は人の手によって行われるものですから、開発サイクルの中で不要なコードを削除し忘れる人的なミスはどうしても発生します。 後から不要なコードに気づき削除する際には、慎重にチェックして本当にコードが使用されていないことを確認する必要があります。ただし、削除に自信が持てない場合、本番稼働中の Rails アプリに障害が発生する可能性も考慮しなければならず、何も影響しない場合はそのままにしておくことも多く、削除が難しい状況も少なくないと思います。 上記状況を打破するために DIGGLE では本番稼働中の Rails アプリのコードの使用状況を収集して不要なコードを発見するための仕組みを導入したので共有したいと思います。 前置き 不要なコードをどのように発見するか Ruby で コードカバレッジを計測する 仕組み導入にあたって悩んだポイント YJIT を有効化した状態で動作するの
私たちは Ruby on Rails の主要なマルチテナントライブラリ apartment を使ってサービスを提供しています。 Ruby のバージョンを 3.1 系から 3.2 系に上げたときに CSV ファイルを処理する部分でこのテナントの切り替えが意図通りに動作しませんでした。 この事象が興味深かったので共有します。 現在はこの事象に対応済で、私たちの環境は Ruby3.2 系で動作しています。 apartment ではマルチテナント対応部分をほとんど吸収してくれるので、アプリケーションのコードのほうにはあまりマルチテナント特有の処理が出てこず、個別処理のコードに集中できるメリットがあります。 事象が発生したコードは以下のような形式でした。 CSV.parse(filename, headers: true, header_converters: ->(header) { curren
こんにちは。にくといいます。github だと niku です。2022 年 12 月に DIGGLE に入社しました。 さて Ruby 3.2 からは Data というクラスが使えるようになりました。 Ruby の日本語リファレンスるりま*1(以下「るりま」)にも class Data (Ruby 3.2 リファレンスマニュアル) というページができていますね。すごい! 「るりま」は GitHub の Pull Request を用いてメンテナンスされています。今回 Data のリファレンスも github.com で作られた PR が元になっています。 この PR のレビュアーとして私も参加したので、その時の様子も交えて「るりま」のドキュメントのメンテナンスの雰囲気をお伝えしたいと思います。 Data クラス この記事を楽しむために、まずは Data クラスというのがどういうものなのか
このページを最初にブックマークしてみませんか?
『diggle.engineer』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く