ブックマーク / techracho.bpsinc.jp (5)

  • Railsで重要なパターンpart 1: Service Object(翻訳)

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Essential RubyOnRails patterns — part 1: Service Objects 公開日: 2017/06/13 著者: Błażej Kosmowski サイト: selleo.com パターンの種別は原則として英語表記にしました。 2017/10/16: 初版公開 2022/03/17: 更新 Service Object(単にServiceと呼ばれることもあります)は、肥大化したActiveRecordモデルを分割し↓、コントローラをスリムかつ読みやすくするうえで非常に有用な、Ruby on Rails開発における一種の聖杯とも呼ぶべきパターンです。 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) どんなときにService Objectを使うか このパターン

    Railsで重要なパターンpart 1: Service Object(翻訳)
    shiopon01
    shiopon01 2019/07/02
  • Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社

    こんにちは、hachi8833です。社内Slackで見かけたmorimorihogeさんの以下の書き込みで目から鱗が落ちました。 ~/.bashrcで何かを出力してしまうと、rsyncなどのsshパイプで問題が生じることがあるそうです。 参考: 知らないとrsyncでもハマるシェル初期化 - Qiita これをきっかけに、できるかぎり一次情報を元になるべく一般的になるようにまとめてみました。 シェルスクリプト(.bashrcや.bash_profileなども含む)はあまりに自由に書けてしまい、LinuxディストリビューションやmacOSによって作法がまちまちだったりするので、外してはいけないポイントがどこかを知りたかったのでした。 対象はbashとsh(Bourne Shell)に限定します。また、デスクトップGUIの設定ファイルについては最小限にとどめます。 bashのmanページ 元記

    Bash: .bashrcと.bash_profileの違いを今度こそ理解する|TechRacho by BPS株式会社
    shiopon01
    shiopon01 2019/06/07
  • Rails tips: Null Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Refactor your Ruby on Rails app with null object pattern 原文公開日: 2018/01/22 著者: Paweł Dąbrowsk Null Objectパターンによるリファクタリングは、指定されたオブジェクトが存在するかどうかをチェックして、存在しなかった場合に指定の属性やメソッドのデフォルト値を返す操作に適用できます。このような操作ではif条件が必要になることが多く、そのままではコードが少々読みづらいうえにテストも少しばかりやりにくくなります。Null Objectパターンを使うことでコードが非常にシンプルになり、テストも簡単になります。 Null Objectパターンを使うメリットをわかりやすく示すため、次のような事例を考えてみましょう。UserとPostという2つのク

    Rails tips: Null Objectパターンでリファクタリング(翻訳)|TechRacho by BPS株式会社
    shiopon01
    shiopon01 2018/10/17
  • Stripe決済を自社サービスに導入してわかった5つの利点と2つの惜しい点|TechRacho by BPS株式会社

    弊社で提供している塾シリーズ(入退室管理システム『入退くん』、コマ組み管理システム『コマグミくん』)がクレジットカード支払いに対応しました。決済代行会社としてStripeを利用したので、実際に使ってみて気づいた点を書いてみます。 https://stripe.com/about/resourcesより バックグラウンド 私がこれまで実際に使ったことがある決済システムは、GMOペイメントゲートウェイ、ソフトバンクペイメント、GMOイプシロン、エフレジなどです。いわゆるAPI型サービスはサンプルやドキュメントを眺める程度で、実際に使うのは初めてでした。 SPIKE, Pay.jp, omiseなども比較検討しましたが、決済においては規模や実績が大事だと判断し、Stripeを採用しました。 Stripeの良かった点 1. 導入までが早い API型全般にいえると思いますが、圧倒的な短期間で使い始め

    Stripe決済を自社サービスに導入してわかった5つの利点と2つの惜しい点|TechRacho by BPS株式会社
    shiopon01
    shiopon01 2018/10/17
  • Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho by BPS株式会社

    要約 メモリ断片化は測定や診断が困難ですが、驚くほど簡単に修正できることもあります。マルチスレッドのCRubyプログラム(mallocのスレッド単位メモリアリーナ)におけるメモリ断片化の原因を追ってみましょう。記事のボリュームは3343語、20分程度です。 単純な設定変更だけで問題を完全に解決できることはめったにありません。 私の顧客のSidekiqプロセスが大量のメモリを消費していたことがありました(1プロセスあたり1 GB程度)。開始当初の各プロセスは300MB程度でしたが、時間の経過とともにじわじわと肥大化してほぼギガバイトレベルにまで達したところで落ち着き始めました。 私は顧客にMALLOC_ARENA_MAXというたった1つの環境変数の変更を依頼しました。「2に設定してください」と。 プロセス再起動後、「じわじわ肥大化」現象はピタリと止みました。プロセスのメモリ使用量は以前の半

    Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho by BPS株式会社
    shiopon01
    shiopon01 2018/01/23
  • 1