本文是《FDE工程师-从AI技术实现到业务落地》系列文章第5篇
如果说FDE的技术能力是一把瑞士军刀,那”胶水工程”就是最常用的那个刀片。
# 使用工厂模式 + 策略模式 + 依赖注入
class DataProcessorFactory:
def create_processor(self, data_type):
processors = {
'csv': CSVProcessor(),
'json': JSONProcessor(),
'xml': XMLProcessor()
}
return processors.get(data_type)
class CSVProcessor(DataProcessor):
def process(self, data):
return pd.read_csv(data)
import pandas as pd
def process_data(data, data_type):
# 客户的数据格式是CSV,但字段名是中文
# 而且有些字段名后面有空格,有些没有
if data_type == 'csv':
df = pd.read_csv(data, encoding='gbk')
df.columns = df.columns.str.strip()
# 客户要求保留原始数据,所以不能清洗
# 但是后续模型需要数字类型,所以这里做类型转换
for col in ['金额', '数量']:
df[col] = pd.to_numeric(df[col], errors='coerce')
return df
代码A更”漂亮”,但代码B更”有用”。
因为代码B里,有对真实世界的理解:
代码A是写给技术人看的,代码B是写给客户用的。
这就是”胶水工程”的精髓。