你还用拼音为变量命名?新人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.好吗?

写在最后

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

原文地址:https://www.cnblogs.com/mngmbear/p/12349267.html

时间: 2024-11-02 23:21:40

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

变量命名大部分都是 fuck,shit ,这程序员老哥是被命名逼疯,还是戾气太重?

最近一个工作4年的老同事离职了,领导让我接手维护他的功能并把代码交给我. 我拿到代码一看,变量命名大部分都是 fuck,shit 之类的粗话,甚至 for 循环用于 break 的 label 也命名为 FUCK_FOREACH,JUnit 测试导出的文件也带有 Fuck 字样,而且通篇没有注释,应该就剩数据库的表命名没带粗话了... 我这里没有 code review,貌似领导也不知道,不知道那个老同事经历了什么,我的天!!! 你们会在代码里带粗话吗? 「 被命名逼疯的节奏 」 说真的,看到这

【转】变量命名(简短且无歧义)

---恢复内容开始--- 湾区日报上分享的一篇文章,文章的作者在Google设计Dart语言,就变量命名方面给了4点建议,文中也列出了好变量名.坏变量名的对比.不管作者的看法与你实际中的命名习惯是否一致,看完这篇文章,相信可以在变量命名方面有一些新的思考. 原文地址(康桑阿米达):http://journal.stuffwithstuff.com/2016/06/16/long-names-are-long/?utm_source=wanqu.co&utm_campaign=Wanqu+Dail

计算机语言变量命名规则

计算机变量一般命名规则为: 变量名首字母必须为字母(a-z A-Z),下划线(_),或者美元符号($)开始,php编程中所有变量必须以$开始.(有些编译器已经支持中文变量名了) 变量名只能是字母(a-z A-Z),数字(0-9),下划线(_)的组合,并且之间不能包含空格,数字不能放在变量名首位. 变量名不能使用编程语言的保留字.比如在javascript中不能使用true,false,while,case,break保留字等等. 在每个代码范围内使用足够短和足够长的名称:例如循环计算器用一个字符

前端变量命名之规则

无论是从技术角度还是开发视角,对于web前端开发规范文档都有一定规范,本文就css3和html5的发展前景总结了一系列的web开发文档,仅供大家参考. 规范目的: 为提高团队协作效率, 便于后台人员添加功能及前端后期优化维护, 输出高质量的文档, 特制订此文档. 本规范文档一经确认, 前端开发人员必须按本文档规范进行前台页面开发. 本文档如有不对或者不合适的地方请及时提出, 经讨论决定后方可更改. 基本准则: 符合web标准, 语义化html, 结构表现行为分离, 兼容性优良. 页面性能方面,

零基础学python-10.2 多目标赋值与变量命名规则

1.多目标赋值 >>> a=b=c='abc' >>> a,b,c ('abc', 'abc', 'abc') >>> 2.多目标赋值与共享引用 对于不可变对象是没有问题,但是对于可变对象,这里就有问题的了 >>> a=1 >>> b=a >>> b=a+1 >>> id(a) 505991632 >>> id(b) 505991648 >>>

JavaScript 变量命名规则

著名的变量命名规则Camel 标记法首字母是小写的,接下来的字母都以大写字符开头.例如: var testValue = 0, secondValue = "hi";Pascal 标记法 首字母是大写的,接下来的字母都以大写字符开头.例如: var TestValue = 0, SecondValue = "hi";匈牙利类型标记法 在以 Pascal 标记法命名的变量前附加一个小写字母(或小写字母序列),说明该变量的类型.例如,i 表示整数,s 表示字符串,如下

python变量命名规则

在Python中,变量标记或指向一个值.当遇到变量时,Python将其替换为指向值. >>> cost=2.99 >>> .1*cost 0.29900000000000004 变量命名规则: 变量名的长度不受限制,但其中的字符必须是字母.数字.或者下划线(_),而不能使用空格.连字符.标点符号.引号或其他字符. 变量名的第一个字符不能是数字,而必须是字母或下划线. Python区分大小写. 不能将Python关键字用作变量名. 对于  x=expr这样的赋值语句,可以

C++变量命名规则

转自:http://www.cnblogs.com/finallyliuyu/archive/2010/09/25/1834301.html 浅谈C++变量命名规则 不知道别的公司如何,反正我现在的公司对变量命名并没有一定的规范,唯一要求就是能简单易懂,但是,我想,这个多个程序员,大概每个人都有自己习惯的一套 命名规则吧,不过,要是并不通用的话,大概看别人的程序会很头疼吧,SO 为了别人看偶的程序不至于太头疼,偶决定找个通俗的命名法来参考下,于是,搜到了匈牙利命名法... 匈牙利命名法的来历和介

【基础篇】各类语言的变量命名规则

----------------------------------------------JAVA----------------------------------------------- JAVA-区分大小写:类名和接口名是首字母大写:变量和方法是驼峰式:包名完全小写:静态变量完全大写 1. Package(包)命名: 完全小写 | 例如net.ebseries.modules. 2. Class(类)命名:首字母大写 | 多个单词合成,要求每个单词的首字母也要大写,例如:DataFil