As a noun, well is a hole in the ground or a ship’s compartment. Well is also an adverb used to modify a verb or an adjective. Finally, well is also an adjective meaning "not sick."
Good is an adjective used to modify a noun.
Sportscasters (and many others) confuse the two and use good when they mean “well.” Thus, you might hear a description of a golfer:
He’s not putting too good today.
Of course, he should have said:
He’s not putting too well today.
The sportscaster is trying to modify the verb putting and should use the adverb well.
When someone asks, "How are you?" how should you answer? I'm good, or I'm well?
If you want to say you're not sick, then use I'm well. But if you want to say "things are fine with me," then use I'm good. The adjective good joins the verb to be to form a predicate adjective, so I'm good has solid grammatical grounding.
When you combine well with a verb’s past participle to form a compound adjective, you should hyphenate the expression when it comes before the noun but omit the hyphen when it comes after the noun. Thus:
Example: He developed a good golf swing, usually played well every weekend, and enjoyed watching his well-hit shots, which became well known at his golf club. And when he came home from the doctor, he said, "I'm well."