AaltoRSE / julia-introduction

Two-day introduction course to Julia programming language
MIT License
9 stars 7 forks source link

Rethink development practices lesson #8

Open lucaferranti opened 3 years ago

lucaferranti commented 3 years ago

I propose to rethink the "development practices" leeson. A few possibly interesting topics for the lesson (not necessarily in a good order):

  1. Contributing to existing packages
  2. Dissection of Julia package structure
  3. using Revise.jl to test and develop packages
  4. creating new packages using PkgTemplates.jl
  5. tips and tricks: startup.jl, @edit macro and similar

Moreover, I think that a jupyter notebook cannot capture the essence of these topics, hence this lesson might be more a "live coding" using VScode and julia REPL. If some supporting written material is needed, there could be just a html page explaining the previous steps with REPL snippets etc.

A good inspiration resource might be this video, although that's maybe a little outdated since it uses atom.

FabsOliveira commented 3 years ago

I would add to 4. the idea of working on personal projects as packages, which intersects with #2 too. Knowing how to handle environments, what they actually mean ("a folder with a project.toml" and a "manifest.toml"), handling dependencies, using commands such as dev and activate, and the difference to a global environment are topics that come to my mind.

rantahar commented 3 years ago

Thanks for the ideas. I reworked the section to include creating packages and the some discussion of the standard structure, but decided there is not time to go into details.

Still, it's worth a discussion. I wonder if there is anything that could be dropped in favor of this? We could also write an extended section for interested students and 2-day courses.

lucaferranti commented 3 years ago

I guess for this time, you could just point interested students to the seminar series event "package development in Julia" which is taking place the week after. On the long run, we could integrate that as an advanced lesson here