[ad_1]
Nosso post anterior forneceu uma visão geral dos arquivos críticos na pasta dev. Se você se aprofundou nos arquivos dev desde nossa última postagem, deve ter notado que o código pré-preenchido usa funções do {golem} e {conjunto} pacotes inúmeras vezes. As funções nesses pacotes ajudam a nos manter organizados.
Dos arquivos dev, 02_dev.R pode ser considerado o mais importante, pois iremos continuamente voltar a ele enquanto construímos o aplicativo. Por exemplo, com usethis :: use_package () dentro 02_dev.R, podemos inserir um nome de pacote e ele será documentado automaticamente em nosso arquivo de descrição. Esta é uma etapa vital porque o aplicativo Shiny não funcionará se isso não for feito para todos os pacotes usados no desenvolvimento. Golem também tem dependências de pacote recomendadas que podem ser adicionadas com golem :: use_recommended_deps () e está localizado no 01_start.R Arquivo.
Com golem :: add_module (name = “name_of_module1”), um script r é criado na pasta R que inclui um servidor e uma seção de interface do usuário. Os módulos são ótimos porque nos permitem separar um ui / servidor confuso e longo, resultando em um código limpo e distinto. Com base na postagem 2, criaremos um módulo para cada uma das guias em nosso aplicativo. Ao nomear módulos, bem como funções, é fundamental ter convenções de nomenclatura concisas e consistentes. Por exemplo, iniciaremos as páginas de visão geral de vendas e visão geral de classificações com:
golem::add_module( name = "sales_overview" ) golem::add_module( name = "ratings_overview" )
Essas convenções de nomenclatura tornam nossos arquivos facilmente distinguíveis e organizados. Além disso, este método se propagará para funções, auxiliares, utilitários e muito mais. Por exemplo, se quisermos criar funções de plotagem que dizem respeito apenas a vendas, podemos iniciar esse arquivo com:
golem::add_fct( "sales_plots" )
Os módulos que acabamos de criar contêm um servidor e uma seção de IU. Mais importante ainda, há um código gerado na parte inferior que deve ser inserido em nosso servidor principal e interface do usuário, app_server.R e app_ui.R . Por exemplo, podemos ver isso na parte inferior de nosso mod sales_overview:
## To be copied in the UI # mod_sales_overview_ui("sales_overview_ui_1") ## To be copied in the server # callModule(mod_sales_overview_server, "sales_overview_ui_1")
Com base em nosso design de aplicativo preliminar, podemos começar a construir nossa IU e simplesmente colocar as instruções callModule em app_server.R . Estaremos usando o {quadro brilhante} pacote para configurar nossas guias na IU. Vamos adicionar esse pacote com:
usethis::use_package( "shinydashboard" )
Confira a parte inferior desta postagem para todos os app_ui.R código. Nota: esta etapa pode ser entediante, mas só precisa ser executada uma vez!
Assim que esta etapa for concluída, podemos executar todas as linhas no run_dev.R arquivo e somos recebidos com a nova estrutura do nosso aplicativo!
Não se esqueça de colocar cada módulo de chamada no app_server.R . Se algum estiver faltando, a página / guia correspondente ficará em branco. Isso seria um problema quando realmente temos código nos mods, mas é mais fácil simplesmente tirá-lo do caminho agora.
Os pontos-chave a tirar desta postagem são:
Documente cada pacote utilizado com: usethis :: use_package ()
Módulos organizam nosso código
As convenções de nomenclatura tornam os arquivos (e códigos) facilmente identificáveis
Por último, adicione cada mod a app_server.R com callModule
As dicas e truques discutidos neste post definem imediatamente nosso projeto para o sucesso. Fique ligado em nosso próximo post, onde projetamos mais da interface do usuário e começamos a procurar métodos para testes. Se ainda não o fez, corra golem :: use_recommended_tests (), que está incluído no 01_start.R Arquivo. Isso criará uma pasta onde podemos criar e executar testes em nosso aplicativo. Vejo você na próxima vez!
“Se eu não tiver um pouco de bolo logo, posso morrer.”
Link do GitHub: https://github.com/Stoltzman-Consulting/theoffice/tree/post_3
# Creating modules in 02_dev.R: golem::add_module( name = "sales_overview" ) golem::add_module( name = "sales_seasons" ) golem::add_module( name = "ratings_overview" ) golem::add_module( name = "ratings_seasons" ) golem::add_module( name = "ratings_episodes" ) golem::add_module( name = "ratings_characters" ) golem::add_module( name = "ratings_writers" ) golem::add_module( name = "ratings_directors" ) golem::add_module( name = "script_analysis" ) # Integrating modules in app_ui.R: app_ui
Related
[ad_2]