Skip to content

Commit 9439585

Browse files
authored
Merge pull request #167 from jun216tee/patch-2
Update README.md
2 parents f3c50f2 + 38dd32f commit 9439585

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

11-Upgrading-Legacy-Projects/README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
<a href="#learning-objectives">Learning Objectives</a>
88
</p>
99

10-
- **Who is this for**: Any tecnologist that is looking to apply AI pair-programming techniques with GitHub Copilot to perform challenging upgrade scenarios for legacy code.
10+
- **Who is this for**: Any technologist that is looking to apply AI pair-programming techniques with GitHub Copilot to perform challenging upgrade scenarios for legacy code.
1111
- **What you'll learn**: You'll use advanced GitHub Copilot techniques that are specifically useful when upgrading projects. These techniques and patterns can be applied to upgrading and revamping projects as well as developing from scratch.
12-
- **What you'll build**: A full revamped Python project that used Python 2.5 using legacy and deprecated constructs into the latest version of Python 3 available.
12+
- **What you'll build**: A fully revamped Python project that used Python 2.5 using legacy and deprecated constructs into the latest version of Python 3 available.
1313

1414
## Requirements
1515

@@ -25,7 +25,7 @@ In this workshop, you will:
2525

2626
- Use advanced GitHub Copilot interaction techniques to deal with a legacy project
2727
- Iterate, validate, and refine answers to upgrade the legacy project and validate its correctness
28-
- Apply generic concpets that can improve suggestions and select from different strategies that can yield better results.
28+
- Apply generic concepts that can improve suggestions and select from different strategies that can yield better results.
2929
- Build a thorough testing strategy to help you identify potential issues and
3030
validate the project in its final state after upgrading.
3131

@@ -50,7 +50,7 @@ Identify limitations or exclusions. For example, large language models (LLMs) ca
5050
5151
### 2. Break Down the Problem into Components
5252

53-
Decompose the problem into smaller, manageable pieces. For exampple, start with the core application components and then test a single API endpoint or library function. This makes it easier to understand and solve the problem step-by-step:
53+
Decompose the problem into smaller, manageable pieces. For example, start with the core application components and then test a single API endpoint or library function. This makes it easier to understand and solve the problem step-by-step:
5454

5555
- Single Public, exposed functions, or API endpoints
5656
- Tests, test setup and validation scripts
@@ -87,15 +87,15 @@ For instance, with legacy code, you could explain what the inputs and expected o
8787
### 6. Identify Patterns and Reuse Solutions
8888
Recognize common patterns in your problem and reuse solutions where applicable. An obvious example of this in legacy Python projects is the use of exception handling in Python 2.5 would create a `SyntaxError` in Python 3+.
8989

90-
Sometimes in legacy projects it is common to create functions that handle either case, or even modules that can do imports depending on the Python version. This is a common pattern in legacy projects that can be reused in other projects.
90+
Sometimes in legacy projects it is common to create functions that handle either case or even modules that can do imports depending on the Python version. This is a common pattern in legacy projects that can be reused in other projects.
9191

9292
> [!TIP]
9393
> Recognizing patterns is a hallmark of experience. As you encounter similar problems repeatedly, you'll start to see similarities that can speed up your process.
9494
9595
### 7. Use Constraints and Edge Cases for Robustness
9696
Think about edge cases and exceptions. Complex problems often involve handling not just the "ideal" data, but also the "edge" or "outlier" cases that might break a naive solution. Ensure that your prompt or solution accounts for these edge cases.
9797

98-
In legacy code, this might mean considering how the code behaves with unexpected inputs which would guide you to write new tests or modify existing ones.
98+
In legacy code, this might mean considering how the code behaves with unexpected inputs, which would guide you to write new tests or modify existing ones.
9999

100100
> [!TIP]
101101
> Thinking through edge cases helps you build more resilient, generalized solutions. Always put an added emphasis in testing and creating a robust test suite to validate your changes.
@@ -125,7 +125,7 @@ For AI model prompts: When asking for something complex (like generating code, t
125125
For design or content generation: Define the purpose, break down design elements, and provide examples or inspiration, then refine based on feedback.
126126

127127
Final Thoughts:
128-
Complex generation problems often involve a balance of clarity, decomposition, iteration, and validation. Whether it's a SQL query or any other task, keeping these concepts in mind will allow you to generate more accurate, efficient, and reliable results.
128+
Complex generation problems often involve a balance of clarity, decomposition, iteration, and validation. Whether it's an SQL query or any other task, keeping these concepts in mind will allow you to generate more accurate, efficient, and reliable results.
129129

130130

131131

@@ -156,4 +156,4 @@ This project may contain trademarks or logos for projects, products, or services
156156
trademarks or logos is subject to and must follow
157157
[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
158158
Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
159-
Any use of third-party trademarks or logos are subject to those third-party's policies.
159+
The use of third-party trademarks or logos is subject to their respective policies.

0 commit comments

Comments
 (0)