<% @feed.sort_by{|t| - t.created_at.to_i}.first(10).each do |feed| %>
Тем не менее, вероятно, лучше опустить это в модель, подобную этой
<% @feed.recent(10).each do |feed| %>
И, на самом деле, если @feed
выйдет из базы данных, я бы опустил ее вниз. еще дальше: нет смысла загружать тонну несортированных записей фидов из БД, затем сортировать их и затем выбрасывать большинство из них. Лучше пусть БД сделает сортировку и фильтрацию.
См. Ответ @Peer Allan о том, как это сделать, в ActiveRecord
. В ARel
(IOW: Rails 3), вероятно, было бы еще проще, что-то вроде
Feed.all.order('created_at DESC').take(10)
Я обнаружил, что следующее может быть полезным:
Раньше я работал с огромной установкой Spring с сотнями ( тысячи?) фасоли. Разделение конфигураций на части сделало жизнь намного более управляемой и упростило тестирование / создание автономных процессов и т. Д. Но я думаю, что интеграция Intellij Spring, которая шла с Intellij, имела наибольшее значение. Наличие интегрированной среды разработки с поддержкой Spring позволяет значительно сэкономить время.
или никогда не требовал этой инъекции (для тестирования, реализации в качестве стратегий и т. д.)Раньше я работал с огромной установкой Spring с сотнями (тысячами?) bean-компонентов. Разделение конфигураций на части сделало жизнь намного более управляемой и упростило тестирование / создание автономных процессов и т. Д. Но я думаю, что интеграция Intellij Spring, которая шла с Intellij, имела наибольшее значение. Наличие интегрированной среды разработки с поддержкой Spring позволяет значительно сэкономить время.
или никогда не требовал этой инъекции (для тестирования, реализации в качестве стратегий и т. д.)Раньше я работал с огромной установкой Spring с сотнями (тысячами?) bean-компонентов. Разделение конфигураций на части сделало жизнь намного более управляемой и упростило тестирование / создание автономных процессов и т. Д. Но я думаю, что интеграция Intellij Spring, которая шла с Intellij, имела наибольшее значение. Наличие интегрированной среды разработки с поддержкой Spring позволяет значительно сэкономить время.
Вы можете использовать функции сканирования компонентов и автоматического подключения , чтобы значительно уменьшить объем конфигурации Spring XML.
Пример:
<beans>
<!-- Scans service package looking for @Service annotated beans -->
<context:component-scan base-package="my.root.package.service"/>
</beans>
Ваши классы обслуживания должны быть аннотированы по порядку для автоматического сканирования:
package my.root.package.service;
@Service("fooService")
public class FooServiceImpl implements FooService{
}
Вы также можете использовать аннотацию @Autowired, чтобы сообщить Spring, как внедрять зависимости bean-компонентов:
package my.root.package.service;
@Service("barService")
public class BarServiceImpl implements BarService{
//Foo service injected by Spring
@Autowired
private FooService fooService;
//...
}
Как говорит @Wilson Freitas, используйте автоматическое подключение. Я ежедневно работаю с системой, в которой есть несколько тысяч Spring управляемых bean-компонентов, использующих в основном autowired. Но я думаю, что понятие «сохранение общей картины» немного неуместно. По мере роста системы вы не можете ожидать, что будете делать это так же, как и в меньшей системе. Использование @Autowiring вынуждает вас использовать более строгую типизацию, чем Spring, основанный на xml, что снова означает, что вы можете использовать функции отслеживания зависимостей вашей IDE для навигации по зависимостям.
Я действительно считаю неоптимальным думать, что вам нужно , чтобы понять "полную" картину, когда дело доходит до конфигурации пружины. Вы должны сосредоточиться на своем коде и его зависимостях. Управляемость и ремонтопригодность достигаются за счет хорошей организации этого кода, правильно называть вещи и управлять своей связью; все, что применимо, даже если вы не используете Spring. Spring не должен сильно меняться, и с одобрения JSR-330 может даже показаться, что внедрение зависимостей будет продвигаться дальше «под капот» среды выполнения.
Наша стратегия: