Release Notes
2018/10/24
说明
本次改动较大,难免会有所遗漏与不足。大家遇到问题请及时反馈,我将尽快完善并更新,谢谢~
命名空间
DFC_BIM
原命名空间 DFC_BIM,现修改为 DFC,同时保持长久兼容。(因为影响太大)
DFC_BIM::SYSTEM
原命名空间 DFC_BIM::SYSTEM,现已废弃,会保持一定时间的兼容。
DFC_BIM::DFC_Floor
原命名空间 DFC_BIM::DFC_Floor,现修改为 DFC::FloorInfo,同时保持长久兼容。(因为影响太大)
DFC::Common::CurrentFloor::SetCurrentLocation
原命名空间 DFC::Common::CurrentFloor::SetCurrentLocation移除
相关方法移动到 DFC::Common::CurrentFloor,同时保持长久兼容。(因为影响太大)
DFC::Common::Lib_M::DFC_Lib
原命名空间 DFC::Common::Lib_M::DFC_Lib移除
相关方法移动到 DFC::Common::Lib,未做兼容。(因为影响太大)
去除常量 MAT_LIB、PRODUCT_LIB
DFC::Common::Material::SU_MaterialManage
原命名空间 DFC::Common::Material::SU_MaterialManage移除
相关方法移动到 DFC::Common::Material,同时保持长久兼容。(因为影响太大)
失效接口
原抽象类 DFC_BIM::ModuleInterface 接口已废弃,利用 ruby 鸭子类型解决。
原 DFC_BIM.module_interface 接口已废弃,现为 DFC::ModuleInterface

需全局修改的代码
defined? 的问题
曾经为了防止文件重载时常量被重写,而引入了 defined?。
但后来已被证实会带来难以排查的 bug,所以请大家移除。
还有,PathHelper 已经修改为 PathHandler,请查看文档。
如实在需要防常量重载,请使用 const_defined?

命名风格
类、模块
帕斯卡(Pascal)命名法(大驼峰命名法)
方法
下划线命名法
常量
大写字母用下划线分割
总结
修改内容
-
尽量把
DFC_BIM修改为DFC(保持长期兼容,所以不着急) -
DFC_UI修改为DFCUI(短期兼容,暂时是 1 个月) -
DFC_BIM::SYSTEM这个命名空间已废弃,所有命令的更换详看开发文档(短期兼容,暂时是 1 个月) -
DFC_BIM::PATH修改为DFC::Path -
DFC_BIM::SYSTEM::DFC_PathHelper修改为DFC::PathHandler(因为移动了 PathHelper 的位置,导致如果不改名会造成大面积冲突) -
移除
if not defined?(PathHelper) -
抽象类
DFC_BIM::ModuleInterface已废弃,采用 ruby 鸭子类型处理 -
DFC_BIM.module_interface接口已废弃,现为DFC::ModuleInterface -
DFC::Path及DFC::PathHandler的getUserDataPath修改为get_user_data_path,getPath修改为get_path -
DFC::SYSTEM::DFC_Observer::DFC_Observable修改为DFC::Observable -
楼层设置观察员添加方法由
LB_InitiFile::InitiFileDlg.add_observer修改为DFC::FloorParams.add_observer -
楼层设置观察员抽象类由
DFC::SYSTEM::DFC_Observer::DFC_FloorInitializeObserver修改为DFC::FloorParamsObserver -
当前位置观察员添加方法由
CurrentFloor::SetCurrentLocation.add_observer修改为DFC::CurrentPosition.add_observer -
当前位置观察员抽象类由
DFC::SYSTEM::DFC_Observer::DFC_CurrentAreaObserver修改为DFC::CurrentPositionObserver
一点小建议
-
基本上所有的方法都保持兼容旧方法,如果启动 DFC 的时候没有报错,那么基本没问题,可以慢慢改过来。
-
善用佳软,可以通过文件内容寻找,批量文件替换等工具快速处理,比如:RubyMine、FileLocator 等