提高可读性,3 个让代码更简洁的小技巧

在完成代码重构之后,我总是会获得一种莫名的成就感。其实,不仅是大规模的代码重构能给我带来这种感觉,一些小的修改也能让我感到很高兴。以下3个简单的重构技巧就能帮你改善代码的可读性。

1. 清理格式

代码的整体格式最能影响代码的可读性,让你迅速找到需要的代码。正确的缩进、分行和模式能帮助开发者省去大量的无用代码。你可以看看下面两种格式的比较。先看第一个格式:

 Inventory inventory = new Inventory();

for (int i = 0; i < cars.Count; i++){

    inventory.Cars.Add(cars[i]);

    var owner = owners.Where(x => x.VIN == cars[i].VIN).OrderByDescending(x => x.PurchaseDate).FirstOrDefault();

inventory.PreviousOwners.Add(new Owner { VIN = cars[i].VIN,

                                        Name = owner.Name});

}

再和下面这种格式比较一下:

Inventory inventory = new Inventory();

for (int i = 0; i < cars.Count; i++)

{

    inventory.Cars.Add(cars[i]);

    var owner = owners.Where(x => x.VIN == cars[i].VIN)

                        .OrderByDescending(x => x.PurchaseDate)

                        .FirstOrDefault();

    inventory.PreviousOwners.Add(new Owner

                                     {

                                        VIN = cars[i].VIN,

                                        Name = owner.Name

                                     });

}

第二种格式使用了正确的缩进、分行和模式,提高了代码的可读性。

书籍有章节、标题和正文,这种格式让我们可以快速找到需要的内容。代码其实也一样,好的格式可以提高可读性。

2.对类、方法和变量进行重命名

类、方法和变量的命名,应该可以帮助开发者更好的了解代码作用。对象的范围越短,其名字也可以更短一些。

在编写项目的第一稿时,我们总是喜欢使用一些信息量不足的名称,但是这样的命名方式在后期并不是最好的选择。

请看下面的代码:

 public IEnumerable<string> GetData(int year)

{

    var result = CallApi("/Cars", year);

    IEnumerable<string> output = new IEnumerable<string>();

    foreach(var c in result)

    {

        output.Add(c.Make);

    }

}

对比:

 public IEnumerable<string> RetrieveCarMakes(int year)

{

    var inventory = CallApi("/Cars", year);

    IEnumerable<string> carMakes = new IEnumerable<string>();

    foreach(var car in inventory)

    {

        carMakes.Add(car.Make);

    }

}

使用有实际意义的名称,能让其他人以及你自己更好的理解代码的作用。

3. 拆分较长的表达式

在写代码的时候,一些人很容易为了追求速度使用连锁命令,或是使用单行句法。很多时候,我在回看之前写的代码的时候,我就会发现很多这样的长表达式。看看下面两段代码的区别:

 bool hasHighSaleProbability = (daysOnLot < 60) ? true : (color == "Red" ? true : false);

var highSaleProbabilityVehicles = Inventory.Where(x => x.DaysOnLot < 60 or x.Color == "Red").Select(x => new { Make = x.Make, Model = x.Model, Year = x.Year }).Distinct().Select(x => new RecentInventoryView { YearDropdown = new SelectListItem { Text = x.Year, Value = x.Year }, MakeModelDropdown = new SelectListItem { Text = x.Make + " " + x.Model, Value = x.Make + " " + x.Model } });

拆分后:

bool hasHighSaleProbability = false;

if (daysOnLot < 60 || color == "Red")

{

    hasHighSaleProbability = true;

}

var distinctMakesModelsYears = Inventory

   .Where(x => x.DaysOnLot < 60 or x.Color == "Red")

   .Select(x => new

   {

    Make = x.Make,

    Model = x.Model,

    Year = x.Year

   })

   .Distinct()

   .ToList();

var recentInventoryView = distinctMakesModelsYears

    .Select(x => new RecentInventoryView

    {

     YearDropdown = new SelectListItem

     {

      Text = x.Year,

      Value = x.Year

     },

     MakeModelDropdown = new SelectListItem

     {

      Text = x.Make + " " + x.Model,

      Value = x.Make + " " + x.Model

     }

    });

虽然第一段代码更短,行数也更少,但是其可读性非常差。而第二段代码由于拆分了if逻辑,并且将所有连锁方法也进行了拆分,结果就是让其变得更好理解。

本文来自开源中国社区 [http://www.oschina.net]

时间: 2024-08-28 18:58:00

提高可读性,3 个让代码更简洁的小技巧的相关文章

巧用函数-让你的代码更简洁

函数是指可以在应用中直接调用并实现特点"功能"的一段代码,在码栈中有系统函数和用户函数两种. 系统函数 系统函数也称为系统命令,用户可以直接使用,完整函数列表在后续会进行介绍. 用户函数 用户可通过使用 Func...EndFunc 语句来自定义函数.可按需要定义函数的参数及其返回值. 函数名必须用字母或下划线"_"开头, 剩下的部分(非首字符)则可在字母,数字或下划线中随意选择. 下面列出的都是合法的函数名:     MyFunc     Func1     _M

UI设计显得更简约的小技巧

互联网界一直在有提倡简约设计的声音,可简约设计有什么小技巧? 谈简约设计的书籍有很多,互联网界也一直在有提倡简约设计的声音.有人说,看国内的各大门户的设计,通通都是文字和功能的粗暴堆砌,难道中国人真的不擅长设计简约吗. 产品长什么样是跟产品的受众有关的.我们看国内电视购物,从来都是以"有多少功能"的方向来推销产品的.或许我们的目标受众就是喜欢大而全的东西,并不是设计师和产品经理的错.为了迎合大环境的产品需求,我们不得不用各种可有可无的功能点来吸引用户. 臃肿易烦腻,简陋生欲望 产品功能

一篇文章玩转ButterKnife,让代码更简洁

前言 话说,Android开发的兄弟们都知道,每次初始化控件,设置相应的事件,写的那点过程多而且恶心.我们先一块回顾下不堪的曾经~那些年,我们是这样初始化控件: // 每次的习惯上来写一个initView()方法  tvContent = (TextView) findViewById(R.id.btn_content);  // 遇到项目大的时候,这里面的东西,也曾占据半壁江山...苦不堪言  // 当然也曾封装过方法,避免各种findViewById,但是依旧如此...   那些年,我们是这

如何让电脑运行更快点的小技巧

如何让电脑运行更快点呢? 除了一些常规的系统优化方法外, 这里再介绍一点方法,有硬件方面的方面, 也有系统优化方面的方法, 也有软件优化的方法. 1)增加系统的内存, 如本来你是1G的内存, 你可以升级到2G. 2)可以在系统中安装Ultra-133硬盘加速扩充卡或带有更大缓存的ATA硬盘,可以有效减少系统的启动时间和读取时间. 3)升级主板和显卡的驱动程序,升级BIOS. 4)系统盘使用NTFS格式的文件系统.可以这样查看 :双击"我的电脑",在C :盘上右击鼠标,选择"属

让U盘更安全的小技巧

  为了避免电脑使用U盘时,通过双击,或者右击盘符时,导致把病毒感染至整个电脑,因此使用下面的方法,可使U盘病毒不被激活传播. 在取消了U盘自动运行的情况下(在组策略中一定要关闭自动运行功能,否则只要一插上U盘,就会自动打开U盘使病毒传播). 插入U盘后, 在Windows操作系统中点击左下角"开始"-->"运行"-->输入"CMD"命令 (进入DOS命令模式)-->键入"G:"(举例G盘为U盘的盘符,此命令

关于代码阅读问题的小技巧 脚本之家原创(适合所有网站)不定时更新_相关技巧

因时间问题不可能一次写的很多,但我们会经常更新,方便大家.希望学习编程的朋友不要因为从网站复制了代码,而不能正常的运行而放弃.其实老鸟也是经常地遇到这类错误,看到错误提示就知道是什么问题,前期大家可以用google或百度搜下错误信息,就能知道大约的问题,慢慢培养对错误信息的认识,下次碰到一下就解决了. 1.字符的替换问题   很多网站都是将一些单引号(')替换为(')中文的单引号,直接导致代码无法运行   常见的字符有(",',$,&,*等) 2.复制代码的时候代码都是在一行显示的, 根

重构-使代码更简洁优美:实际经验之谈(提供一技巧,让你省掉N多代码)

这几天没怎么写文,因为在用 CYQ.Data  框架 重构以前的一个博客源码,而在重构的过程中,最关键的就是简化代码了.   今天,我将说一个很典型的示例,看完本示例后,不要惊讶,不要怀疑,它不是神马,也不是浮云,   而是很实在的一种方式,能让你节省了N多的代码,让你的代码看起来更简洁优美.   而这里说的一个很典型的示例,是从我目前重构中的博客中应用而来的:   一:正常的开发方式   1:扫一眼当前的项目解决方案   2:说说Module库 一般我们很常见的会有一个页面基类,当然各花叫法不

重构-使代码更简洁优美II:实际经验之谈(项目分层是怎么扯上代码节省的)

前言: 好几天没写文了,因为在折腾传说中的8国语言博客,实际目前预定义了10国+1自定义语言,代码还在慢慢的写着写着~~~~ 目前最新进展预览网址为:http://cyq.tupianshop.com/ ,其强大之处及 CYQ.Data 框架 V3.N 系列   后文再介绍了. 写文章有时候是需要有灵感或一时的冲动的~比如刚刚在改博客代码,经过一段思考,得到一些灵感,便有了此文.   在很久很久的 Long Long Ago 以前,写过一篇文章:重构-使代码更简洁优美:实际经验之谈(提供一技巧,

Visual Studio 小技巧:自定义代码片断

用鼠标点点Visual Studio,会发现有个代码片断菜单:    点开后发现,原来是常用的代码片断(Tab的快捷方式)的管理器:   于是打开上面的文件夹路径:   通过经验或者直觉可知:要自定义代码片断,只要把文件复制一份,改改名称和参数,然后导入就应该可以了:   下面我就演示下MAction类来示例:   我把if.snippet复制了一份,改名为maction.snippet,然后用vs打开,发现是个xml: <?xml version="1.0" encoding=