让你的代码变优雅

总结中,希望各位大虾指点

1)    使用强类型的资源文件

不使用资源文件
        ShowMessage(“没有执行”+ privilegeName +”的权限”);
    使用强类型的资源文件
        ShowMessage(SR.NotHavePrivilege(privilegeName));

2)    尽量避免使用Copy/Paste

  • 将重复的代码抽象成方法,将功能关联的方法组织成类
  • 为同一方法提供多种重载,让一些重载调用另外一些重载
  • 恰当的使用外观(Facade)模式,避免让类库的使用者同过于细粒度的对象打交道,比如说用户希望这样调用:

Bank.Transfer(A,B,100);

而不是调用:

A. Decrease(100);
B. Increase(
100);
Log.Write(“转帐成功!”);

3)    避免过于庞大的方法和过于庞大的类

保持方法和类的职责单一性,将有代码注释的地方用Extract Method抽出来形成单独的方法。
    尤其是非常长的
try..catch..让人非常厌恶
    比如      
      


void
 Work()
{
    
try
    {
        
//网络操作
        
//文件操作
        
//数据库操作
    }
    
catch(NetException)
    {
    }
    
catch(IOException ex)
    {
    }
    
catch(SqlException ex)
    {
    }
}


应该重构成

void
 Work()
{
    
try
    {
        DoWork();
    }
    
catch(Exception ex)
    {
        ExceptionHandler.HandleException(ex);
    }
}

void DoWork()
{
    DoNetWork();
    DoFileWork();
    DoDbWork();
}

void DoNetWork()
{
    
//网络操作
}

void DoFileWork()
{
    
//文件操作
}

void DoDbWork()
{
    
//数据库操作
}

4)    遵从一些良好的习惯

  • 使用 String.Format 来格式化字符串,而不是用 + 的形式
  • 将功能关系密切的代码用 region 折叠
  • 遵从标准的编码规范(冬冬
  • 泛型代替弱类型 (冬冬
  • 用String.isNullOrEmpty()代替String(冬冬
  • 给DataSet和DataTable起名字(冬冬

 

posted @   quitgame  阅读(2245)  评论(11编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示