你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码

Posted mngmbear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码相关的知识,希望对你有一定的参考价值。

本篇文章适用语言:python,c++,Java.(其实我就是随便bb)
我们在编辑代码的时候,不免拿其他人的代码进行学习,或者将自己的代码拿给别人修改.这个时候,如何让别人快速读懂你的代码,是提升效率的关键,而且一个好的码风可以让自己读起来也赏心悦目.那么接下来我就会对这一部分进行讲解.

变量命名

我将码风分为两个部分,变量命名和代码书写.

变量命名当中,最最最最恶心的一点就是拿拼音来为变量命名,你拿x,y,z都好过.什么书本的数量用"shuben",你是小学没学过吗?我幼儿园都会"book".不仅打起来麻烦而且让人感觉你很low.要是让我看见还让我给他改代码我就一拳上去.

比如答案就用"ans"(answer),表示访问的不要用bj(标记),"flag","vis","visit"用着不香吗?拼音很容易让人不知道什么意思,常常过两天来看你自己都不知道.而用英文简写就很容易让人知道什么意思.这也就是代码编辑中的约定俗成.

再者,比如循环变量i,j,k,实在不行加一个l,乱七八糟的不要用.abcxyz等最好不要在太多地方使用,n,m都可以.

代码书写

使我们的代码变得清晰美观的只有一个键--空格.空格的使用使代码变得不那么拥挤.

比如在使用逗号的时候,可以将逗号后面留一个空格.其次,在"="前后也可以有空格,";"后面也允许用空格,"==","&&","||",">=","<="前后我都会加空格
比如在for语句里,我经常这么写:for(int i = 1; i <= n; i++).

但这不是强行要求,你可以在上面进行更改,只要你看着比较美观就好.

示范

随便copy一个同学的代码(来源:洛谷)

#include<bits/stdc++.h>
using namespace std;
int x,sum;
int cf(int a,int b){
    int z=1; 
    for(int i=0;i<b;i++){
        z*=a;
    }
    return z; 
}
void digui(int n){
    int y;
    if(n==0) return;
    for(int i=0;i<=15;i++){
        y=i;//进行储存
        if(cf(2,i)>n){
            y--;
            break;
        }
    }
    if(y==0) cout<<"2(0)";
    if(y==1) cout<<"2";
    if(y>1){
        cout<<"2(";
        digui(y);
        cout<<")";
    }
    if(n!=cf(2,y)){
        cout<<"+";
        digui(n-cf(2,y)); 
    } 
}          
int main(){
    cin>>x;
    digui(x);
    return 0;
}

其实这样我是不推荐的,下面是我更改码风过后的代码,当然,如果你使用Dev_C++d等编辑器进行阅读效果会更好:

#include <bits/stdc++.h>
using namespace std;

int x, sum;

int cf(int a, int b)
{
    int z = 1; 
    for(int i = 0; i < b; i++)
        z *= a;
    return z; 
}

void dg(int n)
{
    int y;
    if(n == 0) 
    return;
    for(int i = 0; i <= 15; i++)
    {
        y = i;
        if(cf(2, i) > n)
    {
            y--;
            break;
        }
    }
    if(y == 0) 
    cout<<"2(0)";
    if(y == 1) 
    cout<<"2";
    if(y > 1)
    {
        cout<<"2(";
        dg(y);
        cout<<")";
    }
    if(n != cf(2,y))
    {
        cout<<"+";
        dg(n - cf(2, y)); 
    } 
}          
int main()
{
    cin>>x;
    dg(x);
    return 0;
}

现在我很无语,因为这家伙真tm用digui(递归)做函数名.
我当场吐血.

你用dg都好过digui.好吗?

写在最后

总之,这是我本人提的一些小建议,如果你喜欢我的码风的话,请支持一下本蒟蒻吧.(言外之意我想你不会不懂)

以上是关于你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码的主要内容,如果未能解决你的问题,请参考以下文章

别傻了,瀑布到来时,一句口号根本守不住你的币

什么,你还在用拼音命名法?

独家秘籍!如何写出让同事无法维护的代码?-

学习者移植NES

牛逼!这个网站可以帮助程序员命名变量和函数!

牛逼!这个网站可以帮助程序员命名变量和函数!