Coder Social home page Coder Social logo

thinkr-open / engineering-shiny-book Goto Github PK

View Code? Open in Web Editor NEW
230.0 14.0 112.0 256.04 MB

Engineering Production-Grade Shiny Apps — Published in the R Series

Home Page: https://engineering-shiny.org/

License: Other

TeX 54.57% CSS 2.24% R 32.34% Shell 0.47% HTML 1.28% Dockerfile 7.91% Makefile 1.21%

engineering-shiny-book's Introduction

R build status

A book about "Engineering Production-Grade Shiny Apps".

To be published in the R Series in 2020.

https://engineering-shiny.org/

Want to help?

Any feedback on the book is very welcome.
Please be sure that you comment on the WIP version of the book, which is at the wip branch.

Feel free to open an issue, or to make a PR if you spot a typo (We're not native English speakers, so there might be some issues waiting to be found ;) ).

engineering-shiny-book's People

Contributors

11rchitwood avatar aronolof avatar ashbaldry avatar benjaminlouis avatar colinfay avatar eroten avatar etiennebacher avatar frankschmitt avatar friesewoudloper avatar ggpinto avatar gwd999 avatar jcrodriguez1989 avatar jonmcalder avatar josepliego avatar jpmarindiaz avatar julianstanley avatar kevcaz avatar maelle avatar mtkerber avatar naomistrandberg avatar nxlr avatar psychometrician avatar r-kowalczyk avatar ricardoba13 avatar rosenkrands avatar sowla avatar statnmap avatar trekonom avatar vincentguyader avatar xvrdm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

engineering-shiny-book's Issues

Contextualise the "Why"

We need to have a part in the book where we talk about why it's important to have stable foundation.

This part should explain that without solid foundations, the app is likely to fail when you need to ugrade / implement new things, because of a lack of control over what Shiny internally does, because reactivity is not handled well, because the business logic is not understood, and because we are trying to implement things that has not been imagined from the beginning of the project and/or which are not typical Shiny use cases so Shiny might not be natively made for what we do.

Add content about how to determine when we should optimize

The current chapter assumes one would need to optimize but there is nothing about determining if/where one need to optimize.

We should add a chapter about : don't optimize too quickly (#53) / detect bottleneck (profiling app from the server code base, and maybe set up tools to detect UI bottlenecks)

"Big"

Change the term "big" to sthg else like "production" / "successful", etc...

Project management

There should be some content about:

  • time management
  • project management
  • testing the app, report bugs
  • interaction with the client

The KISS principle, but applied to the code

Currently I've planned on covering the kiss principle in the UI/UX, but it seems important to add that it also applies to the code & package itself.

I'd say as a subpart of 2.

Probably as a way to make the app maintainable on the long run.

Add content about logging things

One important thing about successful Shiny apps is being able to log what happens in the app, while developing and while in production.

I think we should have a chapter about:

  • Setting conventions for logging
  • Tooling

Tools:

Change in Chapter 3

I think chapter 3 should be changed to:

  • 3.1. app logic vs business logic #50
  • 3.2. app as a package (current 3.1)
  • 3.3. using modules #15

typo

Spotted a typo in Chapter 10 Using Golem while trying to install {golem}

remotes::install_github("Thinkr-open/golemn") --> remotes::install_github("Thinkr-open/golem")

Change title

Some other ideas:

  • "Engineering Big Shiny Apps"
  • "Engineering Successful Shiny Apps"
  • "Building Shiny Apps - A Workflow for Building and Maintaining Large Shiny Applications."
  • " An Integrated Workflow for Successfully Building, Testing, Deploying, Maintaining, Upgrading and Optimizing Big Shiny Apps"

Separation of business logic / app logic

We need to stress somewhere how important (and why) it's important to split business and app logic, notably in time.

When implementing new things, it's hard to debug the app behaviour and the business logic at the same time.

If we have a client, they are the one to know what the business logic is, and it's easier to agree on business logic behaviour if the separation is clear.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.