タグ

関連タグで絞り込む (438)

タグの絞り込みを解除

rubyに関するseiunskyのブックマーク (960)

  • マルチプロダクト間データ連携への技術的挑戦 - SmartHR Tech Blog

    マルチプロダクト戦略の実現を目標として掲げ、急速にプロダクトを増やしているSmartHR。 そのような中、これまでプロダクトごとに分断されていたデータを相互に利用できるようにすることで、価値を高める試みが始まっています。この活動の中心となっているプロダクト連携ユニットに、現状と今後の展開を聞いてみました。 インタビューの様子。左:プロダクト連携ユニット 右:インタビュアー f440: それでは、プロダクト連携ユニットのインタビューを始めたいと思います。よろしくお願いいたします。 一同: よろしくお願いします。 f440: お時間を取っていただきありがとうございます。突然呼ばれてびっくりしていると思うんですけれども、個人的に一番興味あったのがプロダクト連携ユニットだったので、この度はインタビューしたいと思いまして。 最初に自己紹介から始めさせてください。まずは私から。現在プロダクト基盤開発部

    マルチプロダクト間データ連携への技術的挑戦 - SmartHR Tech Blog
    seiunsky
    seiunsky 2024/07/09
    めっちゃカッコいい
  • 0063 号 巻頭言

    DDD を理解したいあなたのための DDD 入門以前 Rubyist Magazine 63 号をお届けする。 突然のお知らせで恐縮だが、日 Ruby の会の主たる事務所が東京から北海道に移転した。それもあってあまりまとまった時間がとれず、11 月のうちに書くはずだったのが気がつくと 12 月も半ばを過ぎていたので、今回は以前書きかけていた文章を発掘してお茶を濁したい。 Ruby とは直接関係がなくて恐縮だが、Ruby に限らずソフトウェア開発では現在でもちょくちょく話題になることがある、DDD についての話である。 ドメイン駆動設計こと DDD は 2020 年代のソフトウェア開発でもよく話題にされるが、率直に言うとストレートにポジティブな評価が行われているとは言い難い。 どちらかというと、ある種マニアックで、対象分野が制限されており、また初心者にはとっつきにくいところがある手法と思わ

  • rbs collectionの基本と構成要素 - Money Forward Developers Blog

    こんにちは。 id:Pocke です。マネーフォワードでは、クラウド会計Plus の開発と、今回お話する RBS のメンテナンスを行っています。 最近、福井県は若狭にある年縞博物館に行って楽しんできました。1 さてこの記事では rbs collection の基と構成要素を解説します。 この記事を読むことで rbs collection がどのようなもので何をしているのかが理解できるようになるでしょう。 この記事では記事執筆時点での最新の、rbs v3.2.1 を対象としています。 rbs collection の基的な使い方 rbs collection の基的な使い方は簡単です。 設定ファイルの生成 まず、rbs collection initコマンドで設定ファイルを生成します。この生成は rbs collection を使い始める初回にのみ行います。 $ rbs collect

    rbs collectionの基本と構成要素 - Money Forward Developers Blog
  • 8年の歴史を持つRailsアプリのRuby 3.1への道 〜そしてOSSコントリビュートへ〜 - SmartHR Tech Blog

    こんにちは。プロダクトエンジニアのkitazawaとqwyngです。 先日SmartHR機能のRubyバージョンを3.0から3.1にアップデートしました! SmartHR機能では開発をLeSSで行っていますが、Rubyのアップデートは開発チーム内の有志のメンバーで実施しています。 その際にいくつかあった問題とその解決方法について紹介しようと思います。 Ruby 3.1へのアップデートを開始 まずはじめにRuby 3.1でCIを実行してみました。キーワード引数の対応などが大変だった3.0のアップデートに比べると失敗しているテストは少なく、修正の時間はあまりかかりませんでした。 そのため、すべてのテストが成功するようになるまでは苦労することなくすんなりと進めることが出来ました。 最初の問題 CIは通るようになったので動作確認をするため、staging環境にデプロイしようとしました。が、

    8年の歴史を持つRailsアプリのRuby 3.1への道 〜そしてOSSコントリビュートへ〜 - SmartHR Tech Blog
    seiunsky
    seiunsky 2023/07/13
    めちゃ良い〜〜〜
  • Railsのモデル名をすべて変更した話 - SmartHR Tech Blog

    SmartHRでは開発にRuby on Railsを広く採用しています。 今日は負債解消のために、開発しているサービスでRailsのモデル名をすべて変更した話を紹介します。 既存のモデル構造のつらみ 私達が開発しているサービスでは、モデルの親子構造が分かりやすいということで、モデルをネストした構造にしていました。 例えば、 User に紐づくプロフィール画像 User::ProfileImage は、 app/models/user/profile_image.rb に配置する具合です。 パッと見の構造が分かりやすいのですが、時が経つにつれて次のようなつらさが顕在化してきました。 Railsの規約(推奨ルールのようなもの)に則っていないので、関連定義が冗長になる テーブル名が長くなる。 外部キーや関連名が長くなる。 関連名と外部キー名が一致せず、カラムを呼び出したいときにDB定義を見ないと

    Railsのモデル名をすべて変更した話 - SmartHR Tech Blog
    seiunsky
    seiunsky 2023/06/30
    めちゃ良すぎる……!!
  • Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ

    こんにちは、フルタイムRubyコミッタとして働いてる遠藤(@mametter)です。 Ruby 3 は「静的型解析」を備えることが目標の 1 つになっています。遠藤が開発してる TypeProf は Ruby 3 の静的型解析エコシステムの中の 1 ツールです。しかし Ruby 3 の静的解析というと、RBS、TypeProf、Steep、Sorbet などいろいろなツール名が出てきてよくわからない、という声を何回か聞いたので、かんたんにまとめておきます。 3 行まとめ RBS:Ruby の型情報を扱う言語。Ruby 3 にバンドルされる。 TypeProf:型注釈のない Ruby コードを型解析するツール。Ruby 3 にバンドルされる。 Steep/Sorbet:Ruby で静的型付けのプログラミングができるツール。 詳しくはそれぞれ以下で解説します。 RBS とは RBS は、Rub

    Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ
  • Rubyのメタプログラミング問題集をブラッシュアップした話 - SmartHR Tech Blog

    こんにちは。SmartHRRails顧問業をしているwillnet です。以前、SmartHRでのメタプログラミングRuby読書会と、その成果物というエントリを(kinoppydさんが)書いていました。今回のエントリはその続きの話です。 実際に手を動かすと身につく 上記エントリでは メタプログラミングRuby 第2版の読書会を、単にを読むだけでなく、毎週新しい問題を作り参加者に解いてもらう、という流れで開催したことを紹介しました。 Rubyによるメタプログラミングは、普段の仕事ではなかなか使う機会がないテクニックも多く*1、一回を通読しただけですべてを覚えるのは難しいと感じています。しかし、その読書会では実際に手を動かして解く問題を用意したため、通常の読書会よりも内容が身につく度合いが大きかったのではないか、と感じました。 いい問題があるのでもっと活用したいぞ せっかく作った問題を活

    Rubyのメタプログラミング問題集をブラッシュアップした話 - SmartHR Tech Blog
  • Rubyとnamespaceと拡張ライブラリについて - なるせにっき

    2020年代はモノリスの時代 ここ10年ほど流行っていたマイクロサービスについての理解が深まり、その限界が広く知られるようになってきた。ShopifyのModular Monolithについての記事などは代表例だろう。並行して必要性が叫ばれるようになってきたのがnamespaceだ。RubyKaigi 2023ではshioyamaさんがMultiverse Rubyと題して発表をしていたし、その後tagomorisさんも記事を書いている Rubyでは以前からnamespaceへの議論が行われてはいたのだが、Ruby 2.0の頃の議論では主にMonkey Patchingによる副作用を局所化するためのものだった。当時の議論とはライブラリ読み込みの局所化という課題が挙がっている点が異なっており、それに伴い技術的な困難も異なる。上述の記事でもそれらの多くは整理されているのだが、この記事ではまだ議

    Rubyとnamespaceと拡張ライブラリについて - なるせにっき
  • RJIT: RubyでRubyのJITコンパイラを書いた - k0kubun's blog

    僕はRustRubyのJITを書く仕事をしているのだが、去年の12月くらいから、趣味ではRubyRubyのJITを書いている。 それまではC言語でコード生成を行なうMJITを5年くらいメンテしていたのだが、先月、Rubyで機械語を直接アセンブルするRJITに差し替えた。 github.com なので、今Rubyのmasterブランチには、会社で業務として開発しているRust製のYJITと、僕が趣味で開発しているRuby製のRJITの2つのJITコンパイラが存在している。余談だが、JITの開発をしすぎてRubyの作者であるまつもとさんのコミット数を最近抜いた。 なぜMJITをやめたのか MJITも結構がんばっていて、去年開発していたRuby 3.2ではMJITのコンパイラの実装をCからRubyにフルスクラッチした上、バックグラウンド処理をpthreadからfork + SIGCHLDで行

    RJIT: RubyでRubyのJITコンパイラを書いた - k0kubun's blog
    seiunsky
    seiunsky 2023/04/07
    sugoi
  • Rubyコミッター笹田さんと学ぶRubyのウラガワ|グロービス・デジタル・プラットフォーム

    こんにちは、グロービスの法人開発チームでエンジニアをしている森谷です。 新卒でSIerに入りサプライチェーン管理の開発を5年弱した後、縁あってグロービスに入社し4年目となりますが、毎日楽しく開発に従事しています。 グロービスでは勉強会が多く開催されており、興味のある勉強会に自由に参加することができます。私自身もデータベース設計、ソフトウェア設計、テスト技法、スクラムなど様々な勉強会に参加してきました。 今回、Rubyコミッターの笹田さん(@koichisasada)が雑誌「WEB+DB PRESS」に連載されていた記事「Rubyのウラガワ」の勉強会を完走しましたのでご紹介します。 笹田さんに勉強会に参加していただき質疑応答する機会が得られるなど、大変貴重な経験もできましたので是非ご一読いただければ幸いです。 リモートで笹田さんにも参加頂きました!勉強会について技術顧問として参画して頂いてい

    Rubyコミッター笹田さんと学ぶRubyのウラガワ|グロービス・デジタル・プラットフォーム
  • vscode-rdbg(debug.gem)でのRubyデバッグが便利すぎる - $shibayu36->blog;

    最近Rubyを学び直したり、アルゴリズムの基礎練をしたりしているのだが、debug.gemおよびvscode-rdbgが便利すぎるので紹介。 debug.gemvscode-rdbgとは debug.gem( https://github.com/ruby/debug )とは最近のRubyのモダンなdebugger。これまでlib/debug.rbやbyebug、debaseなどがあったが、それらのいくつかの課題を解決したdebuggerとなっている。Ruby 3.1 の debug.gem を自慢したい - クックパッド開発者ブログ に背景や基的な使い方が詳しく載っている。 またRubyKaigi 2022ruby/debug - The best investment for your productivity - RubyKaigi 2022でも紹介された。Scriptable

    vscode-rdbg(debug.gem)でのRubyデバッグが便利すぎる - $shibayu36->blog;
    seiunsky
    seiunsky 2023/02/13
    良い……
  • 今日からneovimでRubyの型(RBS)を書き始める方法 + 実際に書いてみた感想 - joker1007’s diary

    しばらくRubyをあんま触ってない日々が続いてたんですが、オフラインでRubyKaigiに参加したKaigiEffectということでやる気が甦ってきたので、型を真面目に書くための準備を整えようと色々とやってました。 RubyKaigiでモダンなRubyの開発体験のデモをいくつか見たんですが、大体VSCodeだったのが生粋のVimmerである自分としては残念だったので、neovimでも色々やれるぞという環境を整えておきたかったのも一つです。 という訳で色々環境が整ったのでまとめていきます。 ちなみに、今回の題材はrbsとSteepによる型検査です。sorbetとかもありますが、自分としてはrbsの書式の方が圧倒的に好きなのでこちらでやっていきたいと思います。 (sorbetはRubyコードに直接書けるという大きなメリットはあるんだけど……) Steepを動かす まず対象のプロジェクトにSte

    今日からneovimでRubyの型(RBS)を書き始める方法 + 実際に書いてみた感想 - joker1007’s diary
  • Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ - すぎゃーんメモ

    自分の手元の環境でこんなことが起きた。 $ ruby -v ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin21] $ irb irb(main):001:0> "\x01\x80\x00\x00".index("\x01") => 0 irb(main):002:0> "\x01\x80\x00\x00".rindex("\x01") => 1 \x01 は 0 番目にしかないのだから、 .index でも .rindex でも 0 が返ってくるはずではないの?? 先に結論 きっかけ String#rindex の謎挙動 もう少し深く追う Encodingと実行環境 つまり再現条件は Rooの問題 Rubyのバグではないの? 3.2 先に結論 バイナリデータを扱うときには必ずEncodingを ASCII-8BIT

    Rubyでバイナリデータに対するrindex検索の挙動でハマったので調べたことメモ - すぎゃーんメモ
  • コードベースがでかい・テーブルの規模がでかい・エンジニア人数がでかい SmartHRにおける“でかい三銃士”解決のための取り組み

    SmartHR、LayerX のアーキテクチャをそれぞれ話す「マイクロサービス?モノリス?2 社のアーキテクチャから見るPros/Cons」。ここで株式会社SmartHRのすがわら氏が登壇。「SmartHR」における3つの「大きくてつらい」問題と、その解決に向けた社内の取り組みを紹介します。 自己紹介 すがわらまさのり氏:日はSaaSのアーキテクチャについて、私の所属企業であるSmartHRの事例を紹介していければと思います。「SmartHR」は人事労務に関する処理をペーパーレス化できたり、人事データの一括・一元管理を行えるサービスを提供するSaaSです。 はじめに、簡単な自己紹介をさせてください。私はすがわらと言います。SmartHRに2年くらい在籍しています。職種はプロダクトエンジニアで、いわゆる開発をするエンジニアです。2021年の7月からチーフという役割をもらっていて、チームのマ

    コードベースがでかい・テーブルの規模がでかい・エンジニア人数がでかい SmartHRにおける“でかい三銃士”解決のための取り組み
  • 転職した - tmtms のメモ

    これは「Rubyist近況[1] Advent Calendar 2021」の6日目の記事です。 adventar.org 自称 Rubyist なので近況を書きます。 2021年10月末で30年ほど勤めた富士通グループを退職しました。 11月からは SmartHR という会社で働いてます。 3年ほど Ruby仕事ではあんまり使ってなかったのですが、また Ruby仕事で使うようになりました。 会社から配布された PC は Core i7 メモリ32GB の MacBook Pro なんでかなり人権がある感じなんですが、人生Mac で1ヶ月位経ってもまだ慣れなくて、VM で Ubuntu Desktop 入れようか迷ってます。 近況は以上です。以下は富士通グループの入社〜退職までのメモ。長いので読まなくていいです。 1991〜 設立7年目の今はなき「富士通長野システムエンジニア

    転職した - tmtms のメモ
    seiunsky
    seiunsky 2021/12/06
    当時、cgi.rbをゴリゴリやるパッケージ製品のカスタマイズを請け負う側だったのですが、10数年を経て同僚になる日が来るとは……!
  • binding.pryキホンのキ - SmartHR Tech Blog

    こんにちは。プロダクトエンジニアの @sugamasao です。 SmartHRのプロダクトエンジニアは中途採用で経験者を採用していますが、必ずしもRuby/Rails経験者ばかりではありません。 今回はそういった方向けに binding.pry でデバッグする際の使い方をお伝えできればなあと筆を取っております。(昨今ではdebug.gemやbinding.irbでも代用できる気配を感じていますが、それはそれということで何卒) また、以下のコードはRuby 3.0.2とPry 0.14.1で動作確認をおこなっています。 binding.pryってなに ソースコード上に binding.pry と記載してからプログラムを実行すると、該当行で処理を中断し、ターミナルから直接プロセス内の状態をpryで参照、変更することができます。 binding.pryで止まると、こんな感じの内容がターミナルに

    binding.pryキホンのキ - SmartHR Tech Blog
    seiunsky
    seiunsky 2021/11/08
    書きました
  • Pryはもう古い、時代はIRB - k0kubun's blog

    僕はRubyで開発をする時は毎回Pryを使うくらいの熱狂的Pryユーザーだったのだが、PryはGemfileに書いてないと binding.pry できなくて不便。任意のgemをdefault gem化するgem default コマンドも作ったのだが、これをやるのすら面倒だと思っていた。 ある日、nobuさんがRubyに binding.irb という機能をいれた。Pryがdefault gemになるのを待つよりPryで僕が使う機能をIRBに全部移植してしまった方が早いのではないかと思い、4年前からPryの機能の移植活動を始め、今日僕がよく使う機能を全て移植し終えた。 その記念に、この記事ではIRBのPry互換の機能を紹介する。昔 今更聞けないpryの使い方と便利プラグイン集 という記事を書いたんだけど、この中で僕が毎日のように使うコマンドは全てIRBに移植したので、それを紹介する稿を

    Pryはもう古い、時代はIRB - k0kubun's blog
    seiunsky
    seiunsky 2021/04/02
    時代はirb
  • PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記

    PHPPythonRubyの連想配列のデータ構造がそれぞれ4〜5年ほど前に見直され、ベンチマークテストによっては倍以上速くなったということがありました。具体的には以下のバージョンで実装の大変更がありました。 PHP 7.0.0 HashTable高速化 (2015/11) Python 3.6.0 dictobject高速化 (2016/12) Ruby 2.4.0 st_table高速化 (2016/12) これらのデータ構造はユーザーの利用する連想配列だけでなく言語のコアでも利用されているので、言語全体の性能改善に貢献しています1。 スクリプト言語3つが同時期に同じデータ構造の改善に取り組んだだけでも面白い現象ですが、さらに面白いことに各実装の方針は非常に似ています。独立に改善に取り組んだのに同じ結論に至ったとすれば興味深い偶然と言えるでしょう2。 稿では3言語の連想配列の従来実

    PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
  • Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ

    Ruby の開発をしている技術部の笹田です。娘が自転車に乗り始め、まだ不安なためずっとついていなければならず、少し追っかけまわしただけで息切れがヤバい感じになっています。運動しないと。 ここ数年、Ruby で並列処理を気軽に書くための仕組みである Ractor を Ruby 3.0 で導入するという仕事を、クックパッドでの主務として行ってきました(クックパッドから、これ、と言われていたわけではなく、Ruby を前進させるというミッションの上で行ってきました)。 Ractor は、もともと Guild という名前で開発をはじめ、2020年の春頃、Ractor という名前に変更することにしました。いくつかの機会で発表しています。下記は、RubyKaigi での発表の記録です。 A proposal of new concurrency model for Ruby 3 - RubyKaigi

    Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
  • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

    技術部の笹田(ko1)と遠藤(mame)です。クックパッドRuby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

    プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
    seiunsky
    seiunsky 2020/12/25
    “kamipoさんというすごい人”