fix:开发规范

master
handefeng 8 months ago
parent c711c2b6f7
commit a381b4da91
  1. 26
      Resource/Document/开发规范.md

@ -206,9 +206,8 @@ catch (Exception ex)
``` ```
此机制能捕获未在局部处理的异常,防止程序崩溃,提升稳定性与用户体验,同时利于通过日志排查问题根源。 此机制能捕获未在局部处理的异常,防止程序崩溃,提升稳定性与用户体验,同时利于通过日志排查问题根源。
### (三)国际化调用传参变量方案 ### (三)国际化调用传参变量方案
当前国际化借助 “MultilingualHelper.getKey” 方法实现文本资源获取,为增强灵活性,可扩展其传参机制。例如,对于动态文本元素(如依用户选择显示不同语言的提示信息), 在资源文件中,与键dynamicTextKey对应的文本模板可设计为占位符形式,如"{var1} 完成了 {var2} 操作"。MultilingualHelper.getString方法内部实现逻辑将解析键值对参数,替换文本模板中的占位符,从而精准生成符合当前语言环境及动态数据的国际化文本。
除现有键值参数外,新增参数用于传递动态数据占位符及对应替换值。像 “MultilingualHelper.getKey ("dynamicMessage", new {name = "John", action = "login"});”, 通过这种方式,无论在视图层绑定文本属性还是业务逻辑中生成提示信息等场景,只需传入相应键值对参数,即可轻松实现多语言文本动态化,提升国际化功能的适应性与易用性,确保不同语言用户获取准确、个性化信息,优化整体用户体验。
其中 “dynamicMessage” 为资源键,键对应文本含 “{name} 执行了 {action} 操作” 格式占位符,传入对象实现精准文本替换与国际化展示,提升多语言场景下文本呈现的精准度与动态适应性。
### (四)日志处理 ### (四)日志处理
在项目中统一日志处理方式,如参考 MainWindow 中的用法,创建日志记录工具类 “Logger”。在关键业务逻辑点(如数据读写、外部服务调用、重要操作执行前后)记录日志,依操作类型与重要性分级别(DEBUG、INFO、WARN、ERROR)。 在项目中统一日志处理方式,如参考 MainWindow 中的用法,创建日志记录工具类 “Logger”。在关键业务逻辑点(如数据读写、外部服务调用、重要操作执行前后)记录日志,依操作类型与重要性分级别(DEBUG、INFO、WARN、ERROR)。
例如: 例如:
@ -252,3 +251,24 @@ using (SQLiteConnection connection = new SQLiteConnection(connectionString))
为实现页面在不同设备与分辨率下的自适应,布局设计遵循响应式原则。在布局容器运用上,除前文提及的 “StackPanel” 与 “Grid”,对于 “Grid” 布局,除设置列宽为 “”(按比例分配空间)、“Auto”(自动适应内容)组合外,还可搭配 “MinWidth” 和 “MaxWidth” 属性,精准限定列宽范围,确保内容合理展示且布局稳定。如重要信息列可设 “MinWidth” 保障可读性,弹性列用 “” 分配剩余空间,防止极端尺寸下布局错乱。 为实现页面在不同设备与分辨率下的自适应,布局设计遵循响应式原则。在布局容器运用上,除前文提及的 “StackPanel” 与 “Grid”,对于 “Grid” 布局,除设置列宽为 “”(按比例分配空间)、“Auto”(自动适应内容)组合外,还可搭配 “MinWidth” 和 “MaxWidth” 属性,精准限定列宽范围,确保内容合理展示且布局稳定。如重要信息列可设 “MinWidth” 保障可读性,弹性列用 “” 分配剩余空间,防止极端尺寸下布局错乱。
针对文本类控件,“TextBlock” 的 “TextWrapping” 设为 “Wrap” 实现自动换行,“MaxWidth” 依父容器或屏幕宽度动态调整,确保长文本不溢出、排版美观。图像类控件 “Image” 的 “Stretch” 属性依场景设为 “Uniform”(等比缩放填满)、“Fill”(拉伸填满)或 “None”(保持原始尺寸),配合 “MaxWidth”“MaxHeight” 于不同分辨率下维持图像质量与布局平衡。 针对文本类控件,“TextBlock” 的 “TextWrapping” 设为 “Wrap” 实现自动换行,“MaxWidth” 依父容器或屏幕宽度动态调整,确保长文本不溢出、排版美观。图像类控件 “Image” 的 “Stretch” 属性依场景设为 “Uniform”(等比缩放填满)、“Fill”(拉伸填满)或 “None”(保持原始尺寸),配合 “MaxWidth”“MaxHeight” 于不同分辨率下维持图像质量与布局平衡。
运用尺寸自适应触发器,依屏幕宽度阈值切换布局样式或隐藏 / 显示控件。如窗口宽度小于 600px 时,将两列 “Grid” 布局切换为单列 “StackPanel”,重新排列控件顺序、调整间距与字体大小,提升移动设备或小屏幕浏览体验,实现全场景优质交互与视觉呈现。 运用尺寸自适应触发器,依屏幕宽度阈值切换布局样式或隐藏 / 显示控件。如窗口宽度小于 600px 时,将两列 “Grid” 布局切换为单列 “StackPanel”,重新排列控件顺序、调整间距与字体大小,提升移动设备或小屏幕浏览体验,实现全场景优质交互与视觉呈现。
### (八)错误码常量类
创建统一的错误码常量类ErrorCodes,用于集中管理应用程序中的错误码。该类应位于项目的合适位置,例如Helpers文件夹下,以提高可维护性和复用性。
在ErrorCodes类中,使用public const关键字定义错误码常量,常量名应具有清晰的语义,能够直观反映错误类型。
例如:
```csharp
public static class ErrorCodes
{
// 数据库连接错误
public const int DB_CONNECTION_ERROR = 1001;
// 数据验证失败错误
public const int DATA_VALIDATION_FAILED = 1002;
// 文件读取错误
public const int FILE_READ_ERROR = 1003;
// 用户认证失败错误
public const int USER_AUTHENTICATION_FAILED = 1004;
// 网络请求超时错误
public const int NETWORK_REQUEST_TIMEOUT = 1005;
}
```
在整个项目中,当发生相应错误时,统一使用这些错误码常量进行标识和传递。例如,在数据库访问层捕获到连接错误时,返回ErrorCodes.DB_CONNECTION_ERROR;在数据验证模块验证失败时,返回ErrorCodes.DATA_VALIDATION_FAILED。
在处理错误的地方(如视图模型中的错误处理逻辑、全局异常捕获处),依据接收到的错误码常量执行特定的错误处理策略,如显示友好错误提示信息给用户、记录详细错误日志以供排查、进行错误恢复尝试或引导用户采取正确操作等,提升错误处理的规范性与可维护性,增强应用程序的健壮性与用户体验。
Loading…
Cancel
Save