私のアプリはパフォーマンスのために最適化を開始する必要があります。私は私の見解から改善できる気がするコードをいくつか掲載しました。Ruby 'First and Rest' Logic
私は、インデックスの最初のアイテムを特定の方法で、残りのアイテムを別の方法で扱っています。新しいアイテムが繰り返し処理されるたびに、(この項目は0のインデックスを持っています。.. Rubyは自分自身に尋ねる?)をチェックしている私が最初に処理することにより、その動作を停止することができるかどう
が、私はパフォーマンスのように改善することができると感じ項目index.first?
で特別な扱いをして、他の項目を別の方法で処理する(インデックスがゼロかどうかをチェックすることなく)どのようにこれを行うことができますか?
<% @links.each_with_index do |link, index| %>
<% if link.points == 0 then @points = "?" else @points = link.points %>
<% end %>
<% if index == 0 then %>
<h1> First Item </h1>
<% else %>
<h1> Everything else </h1>
<% end %>
<% end %>
<% end %>
最初のアイテムがレンダリングされた後、最初のアイテムを「ポップ」し、残りのインデックスを反復する戦略について考えていますか?誰かがこれを行うより効率的な方法を見ている? – Dru
それは私がそれをする方法です....しかし、私は真剣にそれが問題だと疑っています。それはかなりコードではないかもしれませんが、あなたのレンダリング時間に深刻な影響を与えている方法はありません。 –
実際のベンチマークを実行せずにコードのパフォーマンスを前提にして、実際には遅いことを示してください。 –