Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ES6 Modules: Rewrite lesson (alongside separate PR for Webpack rewrite) #27953

Open
wants to merge 17 commits into
base: main
Choose a base branch
from

Conversation

MaoShizhong
Copy link
Contributor

@MaoShizhong MaoShizhong commented May 9, 2024

Because

The current Webpack lesson is a known pain point in the curriculum journey, primarily due to the sudden increase in complexity and steps of tooling, coupled with how much of the learning is left to external resources. These external resources limit the cohesiveness of teaching material, and can prove troublesome in the learning process when each resource includes a few unnecessary tidbits that can easily throw learners off (such as multiple entry points in the webpack official guides when learning about html-webpack-plugin). They also are frequently aimed at people who may know a little more about bundlers already, or are following a different course/tutorial. Thus, things often feel disjointed with the TOP curriculum.

While improving the Webpack lesson itself is the primary focus, it was also identified that the preceding ES6 modules lesson is fairly coupled with it, as Webpack and bundlers are introduced there instead of the Webpack lesson.

The order of the ES6 modules lesson was also identified as a little odd, and the order and flow could be improved by focusing on ES6 modules as a primary topic straight away, then introducing bundlers and Webpack in their own separate lesson.

General plan:

  • Rewrite ES6 modules lesson
  • Rewrite Webpack lesson
  • Write new "Webpack revisited" lesson to go immediately after "Project: Restaurant Page".
    • Move more advanced but "convenience" topics there, like webpack-merge
    • Extract template repos section from "Linting" and place it here instead
  • Tweak Project: Restaurant Page to reference any new material from preceding lesson changes if necessary

This PR

Issue

Closes #26976
Closes #26977

Additional Information

This will be something to merge alongside 3 other PRs:

  1. (Webpack: Rewrite lesson with in-house tutorial (alongside ES6 Modules rewrite) #27961)
  2. (Webpack: New second lesson after Project Restaurant Page #27962)
  3. (Feature: Add new "Revisiting Webpack" lesson to both pathways theodinproject#4522)

Pull Request Requirements

  • I have thoroughly read and understand The Odin Project curriculum contributing guide
  • The title of this PR follows the location of change: brief description of change format, e.g. Intro to HTML and CSS lesson: Fix link text
  • The Because section summarizes the reason for this PR
  • The This PR section has a bullet point list describing the changes in this PR
  • If this PR addresses an open issue, it is linked in the Issue section
  • If any lesson files are included in this PR, they have been previewed with the Markdown preview tool to ensure it is formatted correctly
  • If any lesson files are included in this PR, they follow the Layout Style Guide

@MaoShizhong MaoShizhong added Type: New Lesson Involves a new lesson or lessons Type: Existing Lesson Involves an existing lesson or lessons Content: JavaScript Involves the JavaScript course labels May 9, 2024
@MaoShizhong
Copy link
Contributor Author

MaoShizhong commented May 9, 2024

Since we're working together on this, I'm tagging you here @advait0603 because I can only select team members in the review request list.

For you and @wise-king-sullyman (since you were also part of the original discussion leading to this work), please do feel free to leave review comments here whenever you have any time to do so. This PR is set as a draft just as the whole work is of course still in process, but reviews are welcome as we go along.

MaoShizhong and others added 4 commits May 9, 2024 02:17
Co-authored-by: advait0603 <advaitlinux11@gmail.com>
Introducing named exports first allowed for a subjectively more natural
flow to introducing the concepts. Named exports felt easier to introduce
first, while default exports felt easier to introduce by comparing to
named exports.
@MaoShizhong MaoShizhong removed the Type: New Lesson Involves a new lesson or lessons label May 9, 2024
@MaoShizhong MaoShizhong changed the title ES6 Modules & Webpack: Rewrite lessons ES6 Modules: Rewrite lessons (WIP alongside multiple PRs) May 9, 2024
@MaoShizhong MaoShizhong changed the title ES6 Modules: Rewrite lessons (WIP alongside multiple PRs) ES6 Modules: Rewrite lesson (alongside separate PR for Webpack rewrite) May 11, 2024
@MaoShizhong MaoShizhong marked this pull request as ready for review May 11, 2024 03:19
@MaoShizhong
Copy link
Contributor Author

I've extended the dependency graph bit with some 3-file examples just because I felt having the lesson only deal with 2 files might still leave some questions about what imports where and what an entry point is in more complex projects that will definitely have more than 2 files.

If it's felt this is definitely too much and the 2-file example alone would be significantly better, please let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Content: JavaScript Involves the JavaScript course Type: Existing Lesson Involves an existing lesson or lessons
Projects
None yet
1 participant