Уменьшают ли итерационные методы, такие как обычно встречающиеся в современных языках, таких как C #, JavaScript и (надеюсь) в Java 8, влияние цикломатической сложности на понятность и поддерживаемость кода?
Например, в C # у нас может быть следующий код:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
Это имеет простую цикломатическую сложность 2.
Мы могли бы легко переписать это как:
List<String> filteredList = originalList.where(s => matches(s));
Который имеет простую цикломатическую сложность 0.
На самом ли деле это приводит к более поддерживаемому коду? Есть ли какие-либо реальные исследования по этой теме?