狠狠撸shows by User: nainostrebor
/
http://www.slideshare.net/images/logo.gif狠狠撸shows by User: nainostrebor
/
Fri, 19 May 2023 15:24:14 GMT狠狠撸Share feed for 狠狠撸shows by User: nainostreborKotlinForJavaDevelopers-UJUG.pptx
/slideshow/kotlinforjavadevelopersujugpptx/257920536
kotlinforjavadevelopers-ujug-230519152414-36d36a48 Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax.
This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.]]>
Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax.
This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.]]>
Fri, 19 May 2023 15:24:14 GMT/slideshow/kotlinforjavadevelopersujugpptx/257920536nainostrebor@slideshare.net(nainostrebor)KotlinForJavaDevelopers-UJUG.pptxnainostreborKotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax.
This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/kotlinforjavadevelopers-ujug-230519152414-36d36a48-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Kotlin provides a modern, statically-typed, and expressive alternative to Java, offering null safety, coroutines for asynchronous programming, and a succinct, intuitive syntax.
This presentation will give an introduction to Kotlin, looking at various language features, how those features are utilized by the Kotlin Standard Library, and how they are implemented in performance-conscious ways.
]]>
250https://cdn.slidesharecdn.com/ss_thumbnails/kotlinforjavadevelopers-ujug-230519152414-36d36a48-thumbnail.jpg?width=120&height=120&fit=boundspresentationWhitehttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted0Lambda Chops - Recipes for Simpler, More Expressive Code
/slideshow/lambda-chops-recipes-for-simpler-more-expressive-code/80471470
lambdachops-171004204510 While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.]]>
While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.]]>
Wed, 04 Oct 2017 20:45:10 GMT/slideshow/lambda-chops-recipes-for-simpler-more-expressive-code/80471470nainostrebor@slideshare.net(nainostrebor)Lambda Chops - Recipes for Simpler, More Expressive CodenainostreborWhile the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/lambdachops-171004204510-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> While the new Streams API has been a great showcase for lambda methods, there are many other ways this new language feature can be used to make friendlier APIs and more expressive code. Lambdas can be used for a number of tasks which historically required significant boilerplate, type-unsafe constructs, or both. From new ways to express metedata, to emulating Groovy's null-safe navigation operator, we'll take a look at a myriad of ways, big and small, that you can use lambdas to improve APIs and streamline your code. We'll also look at some of the limitations of lambdas, and some techniques for overcoming them.
]]>
6104https://cdn.slidesharecdn.com/ss_thumbnails/lambdachops-171004204510-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted0Science andartofbackwardscompatability
/slideshow/science-andartofbackwardscompatability/66232978
scienceandartofbackwardscompatability-160920213434 One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break 鈥渨ire compatibility鈥� for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.]]>
One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break 鈥渨ire compatibility鈥� for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.]]>
Tue, 20 Sep 2016 21:34:34 GMT/slideshow/science-andartofbackwardscompatability/66232978nainostrebor@slideshare.net(nainostrebor)Science andartofbackwardscompatabilitynainostreborOne of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break 鈥渨ire compatibility鈥� for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/scienceandartofbackwardscompatability-160920213434-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> One of the most common pitfalls developers face on larger projects is backward compatibility. This session shows how to ensure that new versions of a library do not break either source backward compatibility, binary backward compatibility, or behavioral backward compatibility. After reviewing what each type of compatibility means and why it is important, the presentation covers requirements for each type, along with ways to meet these requirements. The main areas of interest are API evolution and evolving classes in a way that does not break 鈥渨ire compatibility鈥� for Java Serialization. The session also presents techniques for verifying backward compatibility through regression tests.
]]>
1423https://cdn.slidesharecdn.com/ss_thumbnails/scienceandartofbackwardscompatability-160920213434-thumbnail.jpg?width=120&height=120&fit=boundspresentationBlackhttp://activitystrea.ms/schema/1.0/posthttp://activitystrea.ms/schema/1.0/posted0Supercharging reflective libraries with InvokeDynamic
/nainostrebor/supercharging-reflective-libraries-with-invokedynamic
invokedynamic-141001111816-phpapp02 Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.]]>
Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.]]>
Wed, 01 Oct 2014 11:18:16 GMT/nainostrebor/supercharging-reflective-libraries-with-invokedynamicnainostrebor@slideshare.net(nainostrebor)Supercharging reflective libraries with InvokeDynamicnainostreborReflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.<img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/invokedynamic-141001111816-phpapp02-thumbnail.jpg?width=120&height=120&fit=bounds" /><br> Reflection is a powerful tool but has traditionally carried with it a performance penalty. This session shows how a combination of InvokeDynamic and bytecode generation can be used to transform a traditional reflection-based library into one in which there is almost no performance penalty. To do so, the presentation starts with a brief need-to-know overview of JVM bytecode and the InvokeDynamic protocol. It then walks through creating a simple JSON marshaling library by using ASM bytecode generation and InvokeDynamic and shows how hand-rolled marshaling code can be rivaled in performance. Techniques for testing this code, including security policies, are also covered.