Você deve aprender ferrugem agora? Minha contribuição para a comunidade de ferrugem – padrão de estado em ferrugem …

As principais razões pelas quais agora é o momento certo para aprender a ferrugem: crescente popularidade e adoção do setor, de acordo com a pesquisa de desenvolvedores de transbordamento de pilhas 2024, a Rust é a linguagem de programação mais admirada, com 83% dos desenvolvedores dizendo que desejam usá -lo novamente. Este é o oitavo ano consecutivo em que Rust superou este gráfico. As principais empresas usam Rust: grandes empresas de tecnologia como Microsoft, Amazon, Google, Facebook, Dropbox e Mozilla usam Rust nos sistemas de produção. Aprender a ferrugem pode abrir portas para oportunidades de carreira em empresas que adotaram o idioma. A segurança da memória sem a coleta de lixo Rust O Verificador de Empréstimos garante que você gerencia a memória com segurança sem confiar em um coletor de lixo. Isso faz do Rust um idioma ideal para programação de sistemas, sistemas incorporados e aplicações críticas de desempenho. Se você deseja trabalhar em programação de baixo nível sem armadilhas comuns, como falhas de segmentação ou corridas de dados, a ferrugem é uma excelente opção. A simultaneidade sem o modelo de propriedade de Rust permite que você escreva programas altamente simultâneos, garantindo a segurança dos threads em tempo de compilação. Este é um divisor de águas para desenvolvedores que trabalham em aplicativos com vários threads ou paralelos, e é um bom motivo para captar a ferrugem agora, à medida que o software mais moderno é construído com a concorrência em mente. O ecossistema crescente e as bibliotecas do ecossistema de Rust estão amadurecendo. O gerenciador de pacotes e a ferramenta de construção, Cargo, é amplamente elogiado por sua facilidade de uso. A comunidade e o apoio da comunidade de ferrugem são conhecidos por serem amigáveis, prestativos e inclusivos. O idioma também é suportado por um grupo de trabalho ativo e atualizações regulares, tornando -o um idioma que está em constante evolução, mas permanecendo estável. A ferrugem é a escolha certa para programadores de sistemas. É uma ótima alternativa para C/C ++ para escrever código no nível do sistema (sistemas operacionais, drivers de dispositivo, sistemas incorporados). Então, aqui vamos nós … minha contribuição para o padrão de design da comunidade dos desenvolvedores em Rust. O padrão de design do estado é um padrão de design comportamental que permite que um objeto altere seu comportamento quando seu estado interno mudar. Em outras palavras, o objeto se comporta de maneira diferente, dependendo de seu estado atual, e as transições do estado são tratadas internamente. Esse padrão ajuda a evitar declarações condicionais complexas (como if-else ou combinação de ferrugem) e organiza o código para torná-lo mais sustentável. Aqui está o código -fonte da implementação do padrão de estado em ferrugem. “ `use std :: thread; Use std :: time :: duração; struct mamma {state: option>,} estado de característica {fn wash (self: box) -> caixa; fn marinado (self: box) -> caixa; fn cozinheiro (self: box)-> caixa; fn servir (self: box) -> caixa; } implic mamma {fn new () -> mamma {let mamma = mamma {state: alguns (box :: new (estateiro imundo)),}; mamãe} fn startcooking (self) -> () {self.state.unwrap (). wash (). marinate (). cozinhe (). sirt (); }} struct imundo Estado; Struct CleanedState; STRUT MARININDSTATE; estrutura Cookstate; Estado implícito para o Estado impuro {fn wash (self: box) -> caixa {println! (“O frango está em estado impuro. Está sendo lavado …”); Thread :: Sleep (Duração :: From_Secs (5)); // Faça uma pausa para 2 segundos caixa :: new (limpeza estatal {})} fn marinate (self: box) -> caixa {self} fn Cook (self: box) -> caixa {self} fn serve (self: box) -> caixa {self}} estate para limpeza {fnin: fin: println! (“O frango está no estate de limpeza. Está sendo marinado …”); Thread :: Sleep (Duração :: From_Secs (5)); Caixa: MarinedState State. Thread :: Sleep (Duração :: From_Secs (5)); Box :: new (CookState {})} fn serve (self: box) -> caixa {self}} implic estado para cookstate {fn wash (self: box) -> caixa {self} fn marinate (self: caixa) -> caixa {self} fn cozinhe: caixa) -> caixa (} fn) -saines () -a caixa: a caixa: a caixa: a caixa: CookedState “); println! (“Este é o último estado. Tenho certeza de que os convidados vão gostar do frango …”); self}} fn main () {let mamma = mamma :: new (); mamma.startCooking (); } “ `Digite o modo de saída de tela cheia de tela cheia

Fonte

Você pode ter perdido