??Ч??? C++ ???????
??????????? ???????[ 2016/9/26 10:52:28 ] ????????.NET C++
????????
????Martin Fowler??????????????д????????????2003??????????????????????????????????????????????仯???????????????????????????????????????????????????????????????????????????????????????????????????е???????????????????????κ????????????У???????????????????????????????????????????????????????“????????е???????”???????????????????????????????????????á????????????????????????????????????????????????????????????????????????????????ζ?????????????????????????????????????в????e????С????????????????????????????????Σ?????????????????????????????????????????????????????????????????????????????ζ??????????????ζ????
?????????????????????????????????????????????????????????????????????????????к????????????????????????????????????????????裬?????????????????о??????????????????У??????????????????????????????????????????????? ???????????????????????????C/C++??????????????????????Java???????????????????????????????????????????IDE????????????????????????????????????????????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????и?Ч??C/C++???????顢?????????
????????????
????????????
????Martin Fowler??????????????д????????????и??????????????????.
??????????????????:
????Refactoring: ???????????????????????????????????????????????£????????????????????????.
?????????????????:
????Refactor: ?????????????????????????????????????£????????.
????????????
????????????????? ???????????????????????taste????????taste?????????????????ζ???????????ζ??!
????Matin Fowler???????????????壬?????????????:
????· ???????????????
????· ?????????????
????· ????????????
??????????????????????????????????????????????и?????????. ????Kent Beck???????????:
????· Pass All Test: ??????????;
????· No Duplication: ??????(DRY)
????· Reveals Intent: ??????????????????
????· Has no superfluous parts: ???????????YAGNI???
???????????????????????ν???.
?????????????????????????”????????????”??????!
????????????????????????????????????????в????????????????й???????.???????????л???????”????????????????”??????:
????1) ??????????????????????в???!
????Matin???????????????????????????????????2???3??:
????2) ?????????????: ????????????;
????3) ???????ó????????????: ?????????????;
??????????????????????????????????????:
????4) ??????????????:??????????????????.
????????????????????????????????????????????????????????ü?????????????????.
????????????
????????????????????o??????????:???????????????? ???????????????
???????????????????????????????????????????????????????κ?Υ?????????????????????????????????.????1)????????????bug?????2??????! ???? 2)??????????????ò??????! ???? 3)????д??????????????! ???? 4)???????????????????????????!
????????п??????????????????????????????????????????????????????????????м????????????????????. ?????????????????????????ν??????????????????ж????????????????????????????????????????????????????????????????????????????ν???! ??????????????????????????????????????????????????????????????????????????????????????????????????????????.
?????????????????Martin????????????ν??????????????磬?????????22????ζ??. ???????????????????????ζ???????????????????????????????ζ?????????????????????????.
?????????????????????Matin????:
????· ??????????????????? (???η???)
????· ????1???????
????· ???Bug?????
????· Code Review?????
??????????????????????У??????????????е?. ??????????????????????????????????????????????????????????????????????????????????.
????????????
??????????????????????????????????????????????! ???????????????????????????????????.
???????????????????????????????????????????????????????????.?????????????????????????????????????????·???????????????????????????????????????????????????????????????????????????????????????????????????! ???????????????????????????????????????????????????????С???????Ч????????????????????????????????.
?????????????????????????
????Martin?????????????????????????е???????????????????е??????????и???.
??????William Opdyke??????????”Refactoring Objected-Oriented Frameworks”?????????????????????:
?????????????????Behavior Preservation???????????????任.
?????????????潫????????????Щ??????????????任?????????Щ???????????????(Behavior Preservation)?????. ????????????????????????:
????Behavior Preservation ?? For the same set of input values??the resulting set of output values should be the same before and after the refactoring.
???????????????д???任????????????Щ???????????????????????£????????????????仯. ?????????????????????????????????任????. ??William Opdyke???????????C++?????26????ε??????任????(????: ???????????????????????????????????????????????…). ?????????????????????????ε??????任???????????????????????????????????????????????????????.
?????????????任?????. ?????????????е??????任.??????????1???仯:
??????????????????ζ???????任?????????????????????л?????α任???????????????.
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11