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

Foundations course: Improve clean code lesson #23870

Closed
2 of 7 tasks
robocopyZer0 opened this issue Mar 22, 2022 · 15 comments · Fixed by #25762
Closed
2 of 7 tasks

Foundations course: Improve clean code lesson #23870

robocopyZer0 opened this issue Mar 22, 2022 · 15 comments · Fixed by #25762
Assignees
Labels
Content: Foundations Involves the Foundations content

Comments

@robocopyZer0
Copy link
Contributor

Complete the following REQUIRED checkboxes:

  • I have thoroughly read and understand The Odin Project Contributing Guide
  • The title of this issue follows the location for request: brief description of request format, e.g. NodeJS course: Add lessons on XYZ

The following checkbox is OPTIONAL:

  • I would like to be assigned this issue to work on it

1. Description of the Feature Request:

Currently, the clean code lesson goes over some good principles, but it could go more in depth, covering more things, in bigger detail. We can utilize information from the first few chapters from the Clean Code book, by Robert Cecil Martin. There's also a javascript version of the book, available here which we can use as a reference.

2. Acceptance Criteria:

The lesson should cover the following, and every item should ideally have a code example with it:

  • Go more in depth into naming(Intention revealing names, names shouldn't be misleading)
  • Go more in depth into functions(Number of parameters, long function names vs short function names, functions should do one thing)
  • Comments(when to comment, also mention self explaining code)
  • Refactor a piece of code from etch a sketch as a code example

3. Additional Information:

@DaeguDude
Copy link
Contributor

I didn't actually read Clean Code by Robert Cecil Martin, however, if just referencing javascript version of the book that's in the above is fine, I could work on it.

@wise-king-sullyman
Copy link
Member

wise-king-sullyman commented May 19, 2022

@LeoKirasic do you think @DaeguDude would be good to take on this issue even if he hasn't read the book, or do you think the work would be greatly benefitted by having someone who has read it?

Also this seems like a great thing to do!

@robocopyZer0
Copy link
Contributor Author

robocopyZer0 commented May 24, 2022

@DaeguDude @wise-king-sullyman I think Daegu can work on it. I can help out with the writing and the outline of the lesson as well.

Additionally, I will reach out to Deagu via discord in the next couple of days so we can plan further.

@wise-king-sullyman
Copy link
Member

@DaeguDude are you still up for this? I know it's been a while since you last commented.

@github-actions
Copy link

This issue is stale because it has been open for 30 days with no activity.

@github-actions github-actions bot added the Status: Stale This issue/PR has been inactive for over 30 days and will be closed if inactivity continues label Jun 29, 2022
@KevinMulhern KevinMulhern added the Content: Foundations Involves the Foundations content label Mar 19, 2023
@github-actions github-actions bot removed the Status: Stale This issue/PR has been inactive for over 30 days and will be closed if inactivity continues label Mar 23, 2023
@github-actions
Copy link

This issue is stale because it has had no activity for the last 30 days.

@github-actions github-actions bot added the Status: Stale This issue/PR has been inactive for over 30 days and will be closed if inactivity continues label May 10, 2023
@impronen
Copy link
Contributor

I would be interested in working on this, as it seems to have been stale for some time. The topic is interesting and something I think I would also benefit from doing some more reading.

I haven't read the book either but if referencing the js articles is enough, I'm game.

@github-actions github-actions bot removed the Status: Stale This issue/PR has been inactive for over 30 days and will be closed if inactivity continues label May 28, 2023
@wise-king-sullyman
Copy link
Member

@impronen go for it!

@impronen
Copy link
Contributor

impronen commented Jun 6, 2023

I'm currently in middle of doing this rewrite but I'm hesitant on having code examples from an Etch-A-Sketch as an example. The lesson is placed right after the original RPS game and EaS is still many lessons ahead. Lot of the things I would probably use would be either little cheaty or not clear for the reader as DOM hasn't yet been discussed at all.

Currently I have either used some random examples or the ones in the lesson already. Would this be ok, or should I incorporate the mentioned EaS examples?

I'm not sure if it's appropriate to ping people in these so, if not... sorry @LeoKirasic
😬

@impronen
Copy link
Contributor

impronen commented Jun 6, 2023

this is what i currently have: https://github.com/impronen/odin-curriculum/blob/clean-code-rewrite/foundations/javascript_basics/clean_code.md

@robocopyZer0
Copy link
Contributor Author

@impronen You're right, we can avoid EaS examples. Additionally, I really like what you've done with the lesson. Once you're done, submit a PR and please mention this issue in the PR so we can get to formally reviewing the changes. Thank you for taking this on!

Additionally, you're free to ping us on GitHub.

@impronen
Copy link
Contributor

@LeoKirasic I'm bugging you again with this :D

I've been considering the more advanced concepts for functions and other things in the book. The issue I'm running with most things is the very early stage the learner will be at this point of the curriculum.

I was planning on writing about using 2 or less arguments but the solution to that is often destructuring, but objects haven't been covered yet. Same thing with even the lightest of mentions of Single Responsibility Principle - this would be good to illustrate with array methdos, loops etc but these are in the coming lessons.

Lot of the stuff covered would be very useful for someone past foundations, so what I'm kinda suggesting would be the following:

I'll finish this rewrite with basically the things in my earlier commit. And suggest an additional lessons, Clean Code part 2 or something to be added to somewhere in the JS path, where we can cover more in depth subjects. Do you think this sounds reasonable?

@impronen
Copy link
Contributor

impronen commented Jul 1, 2023

started a new discussion on the prospect of doing clean code part two, here

@CouchofTomato
Copy link
Member

@LeoKirasic

Can you take a look at the discussion linked above please.

@robocopyZer0
Copy link
Contributor Author

@impronen Great idea, let's do it!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Content: Foundations Involves the Foundations content
Projects
No open projects
Status: 👀 In progress / review
Development

Successfully merging a pull request may close this issue.

6 participants