代码怎么写才看起来是有经验的程序员
的有关信息介绍如下:【若想成为一个合格的程序员,首先写出的代码是需要满足规范的,但若想成为一个有经验的程序猿,那么你写出的代码就需要简单和富有表现力】
代码是程序猿与计算机之间的语言。说起语言,就犹如大伙学习写作文那会,初期喜欢用一些华丽的言辞来修饰,而文坛大咖们的文章,往往言辞朴实而又不失感染力。同样,有经验的程序猿,他的代码应该上升到一个高度,有着返璞归真的质朴感。
思诚现在抛砖引玉的举一些小例子,让大家思考从哪些方面改善自己的代码。
1.用代码阐述代替注释
反例:
///
/// !@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((
///
///
public decimal GetCash()
{
//!@#$%^&^&*((!@#$%^&^&*((
var a = new List
var b = 2;
var c = 0m;
//!@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((
foreach (var p in a)
{
c += p*b;
}
return c;
}
优化后:
public decimal CalculateTotalCash()
{
var prices=new List
var itemCount = 2;
return prices.Sum(p => p*itemCount);
}
注释,是在别的程序猿看不懂代码的情况下使用,尽量让你的代码命名能代替注释吧。
2. 为布尔变量赋值
反例:
public bool IsAdult(int age)
{
bool isAdult;
if (age > 18)
{
isAdult = true;
}
else
{
isAdult = false;
}
return isAdult;
}
优化后:
public bool IsAdult(int age)
{
var isAdult = age > 18;
return isAdult;
}
3.双重否定的条件判断
反例:
if (!isNotRemeberMe)
{
}
优化后:
if (isRemeberMe)
{
}
你不理解双重否定不要紧,你总知道负负得正吧
4.拒绝HardCode,拒绝挖坑
反例:
if (carName == "Nissan")
{
}
优化后:
if (car == Car.Nissan)
{
}
让错误发生的编译阶段,你能更好的发现问题
5.拒绝魔数
反例:
if (age > 18)
{
}
优化后:
const int adultAge = 18;
if (age > adultAge)
{
}
所谓魔数(Magic number)就是一个魔法数字,它没有单位,每当你看到这个数字时都不了解这是什么。这个现象很常见,最好的就是给它一个值,然后替代。
6.复杂的条件判断
反例:
if (job.JobState == JobState.New
|| job.JobState == JobState.Submitted
|| job.JobState == JobState.Expired
|| job.JobTitle.IsNullOrWhiteSpace())
{
//....
}
优化后:
if (CanBeDeleted(job))
{
//
}
private bool CanBeDeleted(Job job)
{
var invalidJobState = job.JobState == JobState.New
|| job.JobState == JobState.Submitted
|| job.JobState == JobState.Expired;
var invalidJob = string.IsNullOrEmpty(job.JobTitle);
return invalidJobState || invalidJob;
}
到受到牛气冲天了吗?