代码怎么写才看起来是有经验的程序员
1、用代码阐述代替注释反例:/// <summary>/// !@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*((/// </summary>/// <returns></returns>public decimal GetCash(){ //!@#$%^&^&*((!@#$%^&^&*(( var a = new List<decimal>() { 2m, 3m, 10m }; var b = 2; var c = 0m; //!@#$%^&^&*((!@#$%^&^&*((!@#$%^&^&*(( foreach (var p in a) { c += p*b; } return c;}优化后:public decimal CalculateTotalCash(){ var prices=new List<decimal>(){2m,3m,10m}; 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;}到受到牛气冲天了吗?