One Article Review

Accueil - L'article:
Source GoogleSec.webp GoogleSec
Identifiant 8386349
Date de publication 2023-09-21 12:00:57 (vue: 2023-09-21 17:06:21)
Titre Échec de l'adoption de la rouille grâce à la formation
Scaling Rust Adoption Through Training
Texte Posted by Martin Geisler, Android team Android 14 is the third major Android release with Rust support. We are already seeing a number of benefits: Productivity: Developers quickly feel productive writing Rust. They report important indicators of development velocity, such as confidence in the code quality and ease of code review. Security: There has been a reduction in memory safety vulnerabilities as we shift more development to memory safe languages. These positive early results provided an enticing motivation to increase the speed and scope of Rust adoption. We hoped to accomplish this by investing heavily in training to expand from the early adopters. Scaling up from Early Adopters Early adopters are often willing to accept more risk to try out a new technology. They know there will be some inconveniences and a steep learning curve but are willing to learn, often on their own time. Scaling up Rust adoption required moving beyond early adopters. For that we need to ensure a baseline level of comfort and productivity within a set period of time. An important part of our strategy for accomplishing this was training. Unfortunately, the type of training we wanted to provide simply didn\'t exist. We made the decision to write and implement our own Rust training. Training Engineers Our goals for the training were to: Quickly ramp up engineers: It is hard to take people away from their regular work for a long period of time, so we aimed to provide a solid foundation for using Rust in days, not weeks. We could not make anybody a Rust expert in so little time, but we could give people the tools and foundation needed to be productive while they continued to grow. The goal is to enable people to use Rust to be productive members of their teams. The time constraints meant we couldn\'t teach people programming from scratch; we also decided not to teach macros or unsafe Rust in detail. Make it engaging (and fun!): We wanted people to see a lot of Rust while also getting hands-on experience. Given the scope and time constraints mentioned above, the training was necessarily information-dense. This called for an interactive setting where people could quickly ask questions to the instructor. Research shows that retention improves when people can quickly verify assumptions and practice new concepts. Make it relevant for Android: The Android-specific tooling for Rust was already documented, but we wanted to show engineers how to use it via worked examples. We also wanted to document emerging standards, such as using thiserror and anyhow crates for error handling. Finally, because Rust is a new language in the Android Platform (AOSP), we needed to show how to interoperate with existing languages such as Java and C++. With those three goals as a starting point, we looked at the existing material and available tools. Existing Material Documentation is a key value of the Rust community and there are many great resources available for learning Rust. First, there is the freely available Rust Book, which covers almost all of the language. Second, the standard library is extensively documented. Because we knew our target audience, we could make stronger assumptions than most material found online. We created the course for engineers with at least 2–3 years of coding experience in either C, C++, or Java. This allowed us to move
Envoyé Oui
Condensat 000 190+ 2–3 2015 2022 2023 50+ 500 ability able above accept accomplish accomplishing achieves adapt addition adopted adopters adoption agreed aimed alexandre all allowed almost already also always amounts andrew android android: any anybody anyhow aosp are around art ascii ask asked assumptions async/await attention audience available away backgrounds bare baseline because become been behjati being benefits: bergstrom better beyond blocking book bootloader both brazilian bug but c++ called can chinese choose clarifying class classes code coding comfort community compiles components comprehensive concepts concurrency confidence confirmed consistently constraints continued contributors control cooperative could couldn countless countries course cover covered covers crates created critical curve day days deal decided decision dedicated deep delivery demands dense designed detail developed developers development devices diagrams didn directly discovered dives dives: dmytro document documentation documented down due dustin each early ease easy edited either embed emerging enable encompass engagement engaging engineers engineers: ensure ensuring enticing error establishes every everybody evolve example examples executable executed executes exercises exist existing exited expand experience expert explaining extend extended extensibility: extensively facto familiar feature features features: feedback feel finally firmware first fit five fixes flow followed following form format forward found foundation foundational free freely from full fun fundamentals futures gave geisler generics get getting github give given glad globe goal goals google googlers grateful great grow half handling hands hard has have heap” heavily help helped helpers high highlighting hired hope hoped hours house how hrybenko https://google i18n immediately immunant implement important importantly improve: improved improves includes inconveniences increase indicators information instructor instructors interactive interesting interoperability interoperate investing io/comprehensive issues ivan java jeffrey jobs journey key knew know korean language languages large larger lars late later learn learning least level library like limited little live long looked looking lot loved lozano macros made maintainability: maintainable maintaining major majority make making many martin matched material matthew maurer mdbook meant members memory mentioned metal mitchell months more most motivation move moving much multilingual multitasking multithreading must mutexes nailed nature necessarily need needed needs new not noted notes now number oem offers official often once online ordering other out outline output over owe own page part participants particularly partners people period platform plugin plugins point portuguese positive positive: post posted practice presentations primitives produce productive productivity productivity: programming projector projects provide provided providing pull quality quality: questions quickly ramp razieh realized reception reduction reference regular release relevant relied report reports requests required research resource resources rest results retention review risk roughly run rust rust/ rust: safe safety scalability scaling scope scratch; second secure security: see seeing semantics senges set setting several shape shift ship show showed shows significant simplified simply since size slides: small snippet snippets solid some soon speaker special specific speed spending standard standards started starting steep stoep strategy stronger struggled style such support supporting survey synchronization syntax system take taken target taught teach teaching team teams technology test than thanks then these things third thiserror those three thrilled through thus time to: told tool tooling tools topic traditional training traits translate translations translators trust try type undivided unfortunately unsafe use used useful using valid value vander velocity vendor verify vertical very volunteer vulnerabilities walbran want wanted ways w
Tags Tool
Stories
Notes ★★
Move


L'article ne semble pas avoir été repris aprés sa publication.


L'article ne semble pas avoir été repris sur un précédent.
My email: