если не нравятся if err != nil, а вместо этого хочется исключения (или что-то похожее на исключения), то код бизнес-логики можно преобразовать в continuation-passing style
Для Java есть библиотека мутационного тестирования http://pitest.org/
Суть в том что с помощью инструментирования байткода по определенным правилам (например инвертирование условия в операторе if, замена тела метода на return null и т.д.) изменяется тестируемая система и если при этом не падает ни один тест, то их явно недостаточно. После прогона тесткейса на всех мутациях будет собран настоящий честный code coverage
Для 99.99% ситуаций модель распараллеливания стримов с разворачиванием fork-join пула — явный overkill.
Новый ForkJoinPool теперь использует work-stealing планировщик и рандомизованные очереди, что по некоторым замерам увеличило производительность более чем в 10 раз.
Квацитирование — преобразование выражения в ExpressionTree. Попробуйте без этой плюшки сгенерировать, например, SQL-запрос из from p in persons where p.Name == "John" select p;
Как минимум замыкания и цитирование. Допустим, первое как-то поддержено в Java, но второго даже нет в планах.
Еще можно посчитать доработку парсера под linq-запросы.
Это далеко не LINQ — ничего не было интегрировано в язык, т.е. это чисто библиотечная функциональность.
Суть стримов раскрывается в цитате из javadoc:
A sequence of elements supporting sequential and parallel bulk operations. Streams support lazy transformative operations (transforming a stream to another stream) such as filter and map, and consuming operations, such as forEach, findFirst, and iterator. Once an operation has been performed on a stream, it is considered consumed and no longer usable for other operations.
For sequential stream pipelines, all operations are performed respecting in the encounter order of the source, if the source has a defined encounter order. For parallel stream pipelines, unless otherwise specified, intermediate stream operations preserve the encounter order of the source, and terminal operations respect the encounter order of the source, if the source has an encounter order.
если не нравятся if err != nil, а вместо этого хочется исключения (или что-то похожее на исключения), то код бизнес-логики можно преобразовать в continuation-passing style
Hidden text
Почему-то вспомнился пост: Если бы плотников нанимали так же, как программистов
Суть в том что с помощью инструментирования байткода по определенным правилам (например инвертирование условия в операторе if, замена тела метода на return null и т.д.) изменяется тестируемая система и если при этом не падает ни один тест, то их явно недостаточно. После прогона тесткейса на всех мутациях будет собран настоящий честный code coverage
Новый ForkJoinPool теперь использует work-stealing планировщик и рандомизованные очереди, что по некоторым замерам увеличило производительность более чем в 10 раз.
from p in persons where p.Name == "John" select p;
Еще можно посчитать доработку парсера под linq-запросы.
Суть стримов раскрывается в цитате из javadoc:
Смысл статьи — всего лишь дать пару советов Java-newbie.
Не только new, young, old. Еще eden, tenured, perm gen, survivor spaces.
Насчет навигации — не понятно между какими именно компонентами?
Но ведь олимпийские боги — третье поколение.