一、定义
代码重构是对已完成基本功能的代码进行改进,使之更清晰,易于理解、易于扩展。
前提是代码已完成基本功能。
二、方式
我理解的代码重构即是,分两步走。
1、先将完成功能的代码划分为单一功能函数,如仅是获得数值,获取输入,判断是否正确的函数等等;
2、基于各个函数的功能,组织并实现高层逻辑。高层逻辑一般不涉及具体代码的底层架构。
三、方法
可以先完成基本功能,然后根据代码提出需求,然后再画草图,画流程图,形成基本架构,再组织代码。
四、示例
(一)原始代码
import json filename = './test/username.json' try: with open(filename) as f_obj: usernames = f_obj.readlines() except FileNotFoundError: username = input("What is your name? ") with open(filename,'w') as f_obj: json.dump(username,f_obj) print("We'll rember you when you come back, " + username + "!") else: print(usernames) print("") for username in usernames: user = json.loads(username) print("Hello, Welcome back, " + user + "!")
(二)重构后代码
import json import os def is_exits(filename): """Judge a file if exist,and return 'True' or 'False'""" if os.path.exists(filename): return True else: return False def get_text(file): """Get text of the file""" with open(file) as f_obj: usernames = f_obj.readlines() for username in usernames: user = json.loads(username) print("Hello, Welcome back, " + user + "!") def creat_new_file(filename): """Creat the new json files.""" username = input("What is your name? ") with open(filename,'w') as f_obj: json.dump(username,f_obj) def main(filename): """Main""" if is_exits(filename): get_text(filename) else: creat_new_file(filename)