官术网_书友最值得收藏!

Background

The following timeline shows a brief history of Extreme Programming (XP):

The 1990s was the beginning of another paradigm shift for the software industry as Object-Oriented Programming began to replace Structured Programming. As a way to explore how they would use this new approach, the Chrysler motor company decided to build their payroll system in Smalltalk, an OO programming language.

Initially invited to performance-tune the system because of his knowledge of Smalltalk, Kent Beck was asked to lead their software team in 1996. In Kent's potted history of XP, he says that, before joining Chrysler, he had asked teams to do things he thought were important, such as testing and reviews. This time, at Chrysler, he felt there was a lot more at stake, so Kent asked the team to turn all the dials up to 10 on the things he thought were essential and not to bother with the ones he thought weren't.

For instance, peer review is considered so important; when dialed up to 10 we do peer review all of the time. If all code is written while working with another programmer, we are code reviewing continuously. So XP makes the rule that all software that is destined for a production environment must be Pair Programmed. 

He applied the same thinking to unit testing. XP deems unit testing so valuable it makes it a rule to write the unit test first before any code is written. 

Writing tests first, also known as  Test-Driven Development  ( TDD ), is a practice that supports the creation of simpler code designs because just enough code is written to fulfill the test specifications. The resulting automated test suite also inspires the confidence to make subsequent changes to the specification tests and code, in the knowledge that if the tests still pass, other parts of the system are unaffected by the change. 

So this is how XP got its name. It prescribes core programming practices and turns the volume on each up to maximum, taking them to the extreme.

主站蜘蛛池模板: 虎林市| 山阳县| 泉州市| 萝北县| 明星| 盖州市| 和硕县| 青田县| 台东县| 莱州市| 和田县| 临泉县| 南华县| 滨海县| 瑞丽市| 雅安市| 肇庆市| 溆浦县| 资溪县| 叶城县| 泽库县| 砚山县| 瑞丽市| 英山县| 鞍山市| 桑日县| 杨浦区| 庄河市| 大英县| 桐乡市| 徐闻县| 晋州市| 郧西县| 容城县| 漾濞| 清丰县| 溧水县| 祁阳县| 锡林浩特市| 民勤县| 滁州市|