Skip to content

Restructure software architecture section to demonstrate refactoring and paradaigms#234

Merged
anenadic merged 80 commits intocarpentries-incubator:rework-software-architecture-sectionfrom
thomaskileyukaea:rework-software-architecture-section
Dec 12, 2023
Merged

Restructure software architecture section to demonstrate refactoring and paradaigms#234
anenadic merged 80 commits intocarpentries-incubator:rework-software-architecture-sectionfrom
thomaskileyukaea:rework-software-architecture-section

Conversation

@thomaskileyukaea
Copy link
Copy Markdown
Contributor

@thomaskileyukaea thomaskileyukaea commented Aug 9, 2023

This is a re-write of section 3, to address the #227. The aim is to focus on refactoring existing code, and demonstrate the principles of OOP, functional etc through examples where they are useful, rather than explicitly teaching them as concepts. The hope is that the result will be quicker and easier to teach.

The changes rely on a new bit of code in the example project. This can be found here:

https://github.com/thomaskileyukaea/python-intermediate-inflammation/compare/thk/code-changes-for-architecture?expand=1

Still to do for structural draft

  • Add headers for the new pages
  • Add exercises
  • Review the removed questisons / objectives / keypoints to determine if they are still covered, or should be cut
  • Review the removed content to determine if the important stuff is still covered

Still to do for first draft

  • Initial draft of content
    • Software design
    • Refactoring functions
    • Refactoring architecture
    • Decoupling code
    • YAGNI
  • Update section 3 intro
  • Line by line read through
  • Solo run to iron out issues
  • Dummy run with another person to get a sense of timing and identify issues

Still to do for final draft

  • overlap between questions and objectives in 32 (general pass on Qs and objectives)
  • Discuss removing mention of imperative code or give an example of the two side by side
  • Starting point code merged into the inflammation repo (or else steps for checking out the branch)
  • Careful read through

Nice to have

  • Section on DRY and inheritance - separating out the glob into a DataSource
  • Different problem for the design - try the problem we have been doing
  • Introduce an exercise for looking at the patterns (if there is time)
  • Maybe don't require the imports to be inside the test functions as that is

The top sections are filled out to give an idea of content
@thomaskileyukaea thomaskileyukaea changed the title Remove old course content and add new pages Restructure software architecture section to demonstrate refactoring and paradaigms Aug 9, 2023
This section outlines the key ideas for the rest of the episode.
This relates more to the descriptions of good code, so we might as well
have this discussion before introducing new concepts
The section ends with revisiting this list, so explicitly request people
keep hold of it.

Add some glue text to make the list flow better
Is more common and essentially the same as MVVM.
Makes the callout formatting work better
Copy link
Copy Markdown
Collaborator

@bielsnohr bielsnohr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change episode titles to respect title case used for all other episodes in course

Comment thread _episodes/33-refactoring-functions.md Outdated
Comment thread _episodes/34-refactoring-decoupled-units.md Outdated
Comment thread _episodes/35-refactoring-architecture.md Outdated
thomaskileyukaea and others added 3 commits November 3, 2023 18:00
Co-authored-by: Matthew <matthew.bluteau@gmail.com>
Adding in the four lines for the "full data analysis" shifts these
errors down by four lines.
Copy link
Copy Markdown
Collaborator

@bielsnohr bielsnohr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the minor fixes. All good from my end. Passing on to other maintainers.

- How to improve existing code to be more readable, maintainable and testable.
- Consider different strategies for writing well designed code, including
using **pure functions**, **classes** and **abstractions**.
- How to create, asses and improve software design.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'assess' rather than 'asses'?

@anenadic anenadic changed the base branch from gh-pages to rework-software-architecture-section December 11, 2023 15:02
@anenadic anenadic deleted the branch carpentries-incubator:rework-software-architecture-section December 11, 2023 15:04
@anenadic anenadic closed this Dec 11, 2023
@anenadic anenadic reopened this Dec 11, 2023
@anenadic anenadic changed the base branch from rework-software-architecture-section to dev December 11, 2023 15:05
@anenadic anenadic changed the base branch from dev to rework-software-architecture-section December 11, 2023 15:05
@anenadic anenadic marked this pull request as ready for review December 11, 2023 15:06
@anenadic
Copy link
Copy Markdown
Collaborator

Merging to a local branch from Thomas's repo for easier review as Thomas's time on this project ended and then will reopen a new PR.

@anenadic anenadic merged commit 32ba1a1 into carpentries-incubator:rework-software-architecture-section Dec 12, 2023
@anenadic
Copy link
Copy Markdown
Collaborator

  • There is overlap between questions and objectives for lots of the episodes - would be good to understand the difference and refine this
    [snip]

The questions help learners understand what to expect from an episode/lesson as they might not yet understand the learning objectives.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants