タグ

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

  • Ruby: CSVでヘッダとボディを同時に定義するやり方|TechRacho by BPS株式会社

    ※「販売数」と「価格」を取り違えた例。データ次第では気が付かない コードを改善しよう ヘッダと、ヘッダに対応する各値の実装が分離しているから取り違えてしまいます。 ならば同時に書ければ取り違えは起こりません。 こんなコードにしてみました。 def self.dump_csv rule = { '年度' => lambda(&:year), '号数' => lambda(&:no), 'タイトル' => lambda(&:title), '価格' => lambda(&:price), } CSV.generate do |csv| csv << rule.keys all.each do |article| csv << rule.values.map { |predicate| predicate.call(article) } end end end なにしてるんだろう? まずはヘッダ

    Ruby: CSVでヘッダとボディを同時に定義するやり方|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2019/08/07
    わかりみ
  • Ruby: '&:メソッド名'はブロック変数渡しより若干高速|TechRacho by BPS株式会社

    &:メソッド名はブロック変数渡しより若干高速 Use fast ruby idioms by oniofchaos · Pull Request #32337 · rails/railsのしょっぱなに、ブロック変数を用いるブロック渡しより、&:メソッド名渡しの方が高速だと説明されています。 引用元: fast-ruby/block-vs-to_proc.rb at master · JuanitoFatas/fast-ruby require 'benchmark/ips' RANGE = (1..100) def slow RANGE.map { |i| i.to_s } end def fast RANGE.map(&:to_s) end Benchmark.ips do |x| x.report('Block') { slow } x.report('Symbol#to_proc')

    Ruby: '&:メソッド名'はブロック変数渡しより若干高速|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2019/07/13
    へー
  • Railsアプリで実際にあった5つのセキュリティ問題と修正方法(翻訳)|TechRacho by BPS株式会社

    私は長年に渡って、Ruby on Railsアプリでさまざまなセキュリティ問題を発見・修正する機会が何度もありました。この経験を元に、皆さんのRailsアプリをさらにセキュアにする方法をご紹介いたします。ここでご紹介するセキュリティ問題が皆さまのアプリで発生していなければ幸いです。 🔗 1. 「セッションに期限を設定していない」問題 🔗 セキュリティ問題の解説 「Railsセキュリティガイド」には以下のように記載されています。 セッションを無期限にすると、攻撃される機会を増やしてしまいます (クロスサイトリクエストフォージェリ (CSRF)、セッションハイジャック、セッション固定など)。 ユーザーエクスペリエンスを考慮すれば(ユーザーはずっとサインインしたままになるので、アプリを開くたびにサインインしなくても済む)、無期限セッションの方が正しいアプローチと思われそうですが、無期限セッシ

    Railsアプリで実際にあった5つのセキュリティ問題と修正方法(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/10/23
    これは言語に限らず気にしておかないと
  • 週刊Railsウォッチ(20181015)Rails初心者と一発でバレる書き方、次のVue.js構想、RubyのOpenStruct、Twilioほか

    2018.10.15 週刊Railsウォッチ(20181015)Rails初心者と一発でバレる書き方、次のVue.js構想、RubyのOpenStruct、Twilioほか こんにちは、hachi8833です。Pixel 3がちょい気になっています。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを社内有志でつっついたときの会話です👄 つっつきボイス:「お、Pixel 3か、値段の割にストレージが少ないんですよね📱: 今の自分のiPhoneも、いつか見るつもりのNetFlix動画やら音楽やらであっというまにストレージ埋まっちゃうし」「私はWikipedia(日と英)がまるっと入ればいいかな...」「Pixelを見てると、ちゃんとしたスマホを作れば結局このぐらいの値段になるよなって思いますね

    週刊Railsウォッチ(20181015)Rails初心者と一発でバレる書き方、次のVue.js構想、RubyのOpenStruct、Twilioほか
    ryuzee
    ryuzee 2018/10/16
    毎回濃いなー
  • VimではじめるTerminalモード|TechRacho by BPS株式会社

    terminalモードとは? :terminal で始まる新しいモード 世の中の多くのエディタがモードはインサートモード一つで十分と証明しつつあるなか追加された2つのモード vim8.1 から搭載されたエディタとコマンドの夢の懸け橋 注: vim8だとバグるそうです 何ができるの? 1. コマンドの出力結果をコピーできる! terminalウィンドウで Ctrl-w N でterminalの内容をテキストとして扱える(編集不可) このモードを 端末ノーマルモード と呼ぶ! 端末ノーマルモードでは普段と同じ操作でterminalウインドウの内容をコピーできる!便利! 2. 端末ノーマルモードからの脱出 端末ノーマルモードを終了するには i a などインサートモードに入るコマンドを打つだけ このモードを 端末ジョブモード と呼ぶ! 3. エディタで加工した内容をterminalにペーストできる

    VimではじめるTerminalモード|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/09/16
    知らなかった。 :term して ctrl+w shift + n で幸せだった。
  • Railsは2018年も現役か?: 中編(翻訳)

    前記事: Railsは2018年も現役か?: 前編(翻訳) 次記事: Railsは2018年も現役か?: 後編(翻訳) 言語 それでは、初めに述べた言語たちを分析することにしましょう。 Rubyはオブジェクト指向プログラミング言語として優れています。(私見では)Rubyは優れたOOPエクスペリエンスと開発者の幸せを主要な目標に置いています。しかしコードの実行速度は主要な目標ではありません。 訳注: ご存知のとおり、現在のRubyは「Ruby 3x3」の旗のもとでコードの実行速度改善の優先順位を以前よりも上げています。 Ruby on Railsは、Ruby言語上で構築されたWebフレームワークであり、生産性と開発者の幸せを主要な目標に置いています。コードの実行速度や、癒着のないOOPエクスペリエンスはRailsの主要な目標ではありません。ソケット接続はまあまあですが、優秀というほどでもあり

    Railsは2018年も現役か?: 中編(翻訳)
    ryuzee
    ryuzee 2018/09/16
    「そういうわけで、たとえば「開発速度と開発の容易さ」が主要な懸案事項だとすると、私ならSPA抜きのRailsを採用するでしょう」
  • Rails: Rack::Attackで対PHPボットを防ぐ(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Ignore PHP bots with Rack::Attack - Andy Croll 原文公開日: 2018/06/24 著者: Andy Croll 長く運営しているサイトや人気の出始めたサイトで、大量の404エラーがログ出力されることがあります。 そうしたページエラーが/wp_login.phpなどのPHPファイルから発生していることがあります。この種のエラーが出力されていたら、自動化ボットがWordPressベースのサイトのセキュリティ脆弱性がないかインターネットをスキャンしているかもしれません。 こうしたボットは標的を無差別に探しているので、RailsアプリにPHPファイルがあるかどうかまで探そうとします。 次の事態を避けること ログが引っ掻き回され、自動化ボットによってアプリの速度が潜在的に落ちる。 次のようにす

    Rails: Rack::Attackで対PHPボットを防ぐ(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/07/15
    なるほど、確かにwordpress狙っていろいろしてくるね
  • Rails: モデルの外では名前付きスコープだけを使おう(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Only use named scopes outside models - Andy Croll 原文公開日: 2018/03/04 著者: Andy Croll 前回の記事では#whereメソッドで「hashスタイル」を使おうというお話をいたしましたが、あまり自分が現実に使うことのなさそうなコード例でした💦。 次のようには書かないこと コントローラやビューで#whereスコープを使う。 class PostsController < ApplicationController def index @posts = Post.where(status: 'published') end end 次のように書くこと 名前付きスコープはモデルでのみ定義する。 class Post < ApplicationRecord scope

    Rails: モデルの外では名前付きスコープだけを使おう(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/06/14
    コントローラーに生のwhere出てきたら泣けるしね
  • Rails: ビューには可能な限りロジックを書かないこと(翻訳)|TechRacho by BPS株式会社

    概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: I'm not testing those stupid views! 原文公開日: 2016/10/25 著者: Jeroen Weeink サイト: Crafting Ruby語タイトルは内容に即したものにしました。 2018/05/07: 初版公開 2023/03/10: 更新 Railsプロジェクトに長年携わっているうちに、最初は単純そのものだったビューが、いつしかネストだらけの複雑怪奇なRubyコードと入り組んだHTMLを煮込んだようなものに変わり果ててしまいます。こうなってしまうと、理解するのも改修するのも大変です。 ビューのほんの小さな部分を修正するだけでも、エンドツーエンドテストを辛抱強く書いてはバグがつぶされたかどうかを確認することになります。しかもこの種のテストはテストスイートの総実行時間に激しく影響す

    Rails: ビューには可能な限りロジックを書かないこと(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/05/08
  • Railsアンチパターン: Decoratorの肥大化(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rails Anti-Pattern: Fat Decorator 原文公開日: 2015/12/19 著者: Jeroen Weeink サイト: Crafting Ruby パターン名は英語表記としています。 2018/03/06: 初版公開 2023/05/25: 更新 RailsでDecoratorを用いるとさまざまなメリットが得られます。モデルはスリムになり、ビューもすっきりし、手続き臭い従来のビューヘルパーが過去のものになります。 RailsプロジェクトにDecoratorパターンを適用するとき、ともするとモデルとDecoratorを1対1で対応させたい誘惑にかられます。たとえばArticleのプレゼンテーションロジックはすべてArticleDecoratorに置く、という具合です。これはDecoratorが小さいうち

    Railsアンチパターン: Decoratorの肥大化(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/03/09
  • Rails: テスティングアンチパターン --後編(翻訳)|TechRacho by BPS株式会社

    前記事: Rails: テスティングアンチパターン –前編(翻訳) 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: RubyOnRails testing antipatterns — part 2/2 – selleo – Medium 原文公開日: 2018/01/03 著者: Błażej Kosmowski part 1では、スタブ化に関連するアンチパターンや、テストしやすくするためだけに度を越して複雑になってしまった実装の詳細の問題について扱いました。後半は、テストそのものについてもう少し詳しく扱うことにします。 アンチパターン07: フレームワークやライブラリのメソッドを使いすぎる フレームワークやライブラリのメソッドをふんだんに使ってspecを書くと、ライブラリメソッドをスタブ化してしまったときと似たような問題を引き起こします。レコードを1件検索するときにORM

    Rails: テスティングアンチパターン --後編(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/02/27
  • Rails: テスティングアンチパターン --前編(翻訳)|TechRacho by BPS株式会社

    次記事: Rails: テスティングアンチパターン --後編(翻訳) 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: RubyOnRails testing antipatterns — part 1/2 原文公開日: 2018/01/03 著者: Błażej Kosmowski 訳文見出しには番号とアンカーを追加しました。 テストスイートを準備していると、つい誘惑に負けて近道を選んでしまい、テストの可読性や理解しやすさはもちろん、実装を先に進めるための柔軟性までがっくり下がってしまうことがあったりします。記事では、よくある手法の中から、テストスイートを健全に保つうえで避けるべきものをリストアップしてみたいと思います。文中の例の多くは、問題に焦点を当てるためにかなり簡素化してありますのでご了承ください。 アンチパターン01: privateメソッドをテストする priva

    Rails: テスティングアンチパターン --前編(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/02/27
  • 「巨大プルリク1件vs細かいプルリク100件」問題を考える(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 100 Duck-Sized Pull Requests 原文公開日: 2017/12 著者: Kurtis Funai語タイトルは内容に即したものにしました。 2018/02/07: 初版公開 2022/02/24: 更新 Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License. 記事では、昔ながらの問題である「巨大なプルリク1件と超細かいプルリク100件、どっちなら戦う気になれる?」に対する回答を示したいと思います。チームの一員としてよりよいコードを書くためのガイドラインについてもある程度解説します。今回の記事は、すべて以下のツイートから触発されました。 10 lines of code

    「巨大プルリク1件vs細かいプルリク100件」問題を考える(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/02/18
    コードレビューについてのTIPS => 早期かつ頻繁に/粒度を小さくする/作業のスコープを絞る/機能が未完成でもリリースする(ただし内緒で)/事前の計画/ついでのリファクタリングをしない
  • YAGNIを実践する(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Practicing YAGNI 原文公開日: 2018/01/17 著者: Jason McCreary 画像は英語記事からの引用です。 しばらく前に私はLaraconでYAGNIの実践についてスピーチしました。このような大きなカンファレンスで大勢の観衆を前にプレゼンしたのは名誉なことでした。以来、私のスピーチに多くの反応や関心が寄せられています。 私のスライドを共有したいという申し出を多くの方からいただきましたが、ほとんどの議論がスライドに対して行われたので、ブログ記事にまとめる方がよいと思えました。スライドをご覧になりたい方は、StreamAConで私のスピーチを視聴できます。 私は自分自身を「探求者」だと思っています。プログラミングの秘訣における聖杯、それさえ手に入れれば即座にスキルアップできるたったひとつの聖杯の探求です

    YAGNIを実践する(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/02/18
  • 開発チームを苦しめるマイクロサービス(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Microservices Will Mess Your Team Up 原文公開日: 2018/01/10 著者: James Thompson 「なぜAmazonはマイクロサービスに舵を切ったのか?」も参考にどうぞ。企業のトップが経営判断としてマイクロサービスを強力に推進したことが重要であると思えます。 マイクロサービスは多くのチームで人気を博しています。しかし、ソフトウェア開発のパターンは、このアーキテクチャパターンの周辺で今も流動を繰り返しています。このギャップはここ数年で相当埋められてきましたが、それでも質の低い実装を生産するチームがあまりにも多すぎます。 マイクロサービスは、しばしばモノリシック(一枚板)アプリの対極に位置づけられます。この対比は有用な反面、素朴に過ぎるとも言えます。マイクロサービスというソフトウェア設

    開発チームを苦しめるマイクロサービス(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2018/02/02
    “マイクロサービスは出発点としてふさわしくありません。独立したデプロイをチームが本当に必要とし、かつサービスの明確な境界を見定めて維持するスキルがチームに蓄積されるまではモノリスを選ぶのがベストです”
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
    ryuzee
    ryuzee 2018/01/03
  • 3年以上かけて培ったRails開発のコツ集大成(翻訳)|TechRacho by BPS株式会社

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Things I learned developing Ruby and Rails apps over the past 3+ years | by Filippos Vasilakis | Kollegorna 原文公開日: 2017/01/30 著者: Filippos Vasilakis 2017/11/20: 初版公開 2023/06/08: 訳文を更新 順序は特に決まっていません。 🔗 1. トップレベルにrescue_fromを書く ルートコントローラにrescue_fromを書くと、その下で発生したすべての例外をキャッチできるので非常に便利です。Webアプリにこれを追加すると、リクエスト/レスポンスのサイクルで実行されるほとんどのコードがさらに便利になります。 シンプルなAPIを例に考えます。rescue_fro

    3年以上かけて培ったRails開発のコツ集大成(翻訳)|TechRacho by BPS株式会社
    ryuzee
    ryuzee 2017/11/21
    2,10,20以外はまぁそうかなぁという気がする。11は激しく同意
  • Railsコードを改善する7つの素敵なGem(翻訳)

    概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 7 Gems Which Will Make Your Rails Code Look Awesome 公開日: 2017/10/14 著者: Val Zavadskiy サイト: https://blog.rubyroidlabs.com/ Rubyroid Labsの別記事「Ruby on Railsで使ってうれしい19のgem(翻訳)」も合わせてどうぞ。 私たちRubyroid Labはアプリのアーキテクチャに多くの情熱を注ぎ込んでいます。手がけているプロジェクトの多くが長期にわたっているので、設計のどこかで少し油断すると、機能を1つ追加するのにプロジェクトをスクラッチからやり直す方が早い、といった事態になりかねません。こんな目には遭いたくないものです。 新しく参加したメンバーがロジック把握のためにソースコードを読みとおすだ

    Railsコードを改善する7つの素敵なGem(翻訳)
    ryuzee
    ryuzee 2017/10/30
  • Ruby on Railsで使ってうれしい19のgem(翻訳)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。今回の翻訳記事ではRailsで役に立つ19のgemを紹介しています。以下の関連記事もどうぞ。 [Rails 5] rails newで常に使いたい厳選・定番gemリスト(2017年版) [Rails 5]実は不要なgem・使われなくなりつつあるgem(2017年版) 概要 原著者より許諾をいただいて翻訳・公開します。 元記事: 19 Ruby on Rails Gems which Can Amaze(2017/04/12公開、2017/06/06更新) 著者: Rubyroid Labsチーム サイト: RubyroidLabs.com Ruby on Railsの素晴らしさはgemのおかげでもあります。私たちが使ってみてよいと思った19のgemの情報をここに公開いたします。 1. Ransack リポジトリ: activerecord-hackery

    Ruby on Railsで使ってうれしい19のgem(翻訳)|TechRacho by BPS株式会社
  • [Rails 5]実は不要なgem・使われなくなりつつあるgem(2017年版)|TechRacho by BPS株式会社

    こんにちは、hachi8833です。今回はRails 5を対象に、実はなくてもよいgemや使われなくなりつつあるgemをリストアップします。ネット上の情報が古いことに気づかずにこうしたgemを導入してしまうと後々変更が面倒になりますね。 記事は今後も継続して更新いたします。 記事と逆の、Rails 5向け厳選・定番gemリストについては以下をご覧ください。 [Rails 5] rails newで使いたい厳選・定番gemリスト(2017年版) 【募集】不要なgem・使われなくなりつつあるgem情報 こうしたgemが他にもありましたら、記事末尾のフォームまたは@techrachoまでお知らせください。確認の後、記事に追記いたします。 quiet_assets リポジトリ: evrone/quiet_assets ログチェック時に邪魔になりがちなアセット(静的ファイル)へのアクセスログを

    [Rails 5]実は不要なgem・使われなくなりつつあるgem(2017年版)|TechRacho by BPS株式会社