|
|
|
|
|
by gonesurfing
2954 days ago
|
|
In the spirit of leveraging the type system, you could try doing some type-first development. If possible, carve a logical module or sub-system out of your existing code base and then attempt to represent the data and functions for that module in F# types. Don't implement any of the functions, just see if you can describe the data and operations using the type system. Tomas Petricek describes this approach really nicely in his post "Why type first development matters". This has a the following benefits: - It helps you review and clarify what the existing code does.
- It will force you to name the data and operations explicitly.
- You won't be distracted by actually implementing the operations.
- You have a succinct description of the module that you can discuss with other developers.
- It divides the migration into manageable chunks.
You could challenge yourself to educate team members, through the type system.You may also find some of the techniques from the book "Working Effectively with Legacy Code" useful. Updated: Removed links as comment was not posting. |
|