本篇文章适用语言: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;
}

其实这样我是不推荐的,下面是我更改码风过后的代码:

#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别傻了,教你写出优质代码的更多相关文章

  1. Python_变量命名

    Python的变量命名 变量的命名的原则一直都是我这种小白的头疼事,好几条,根本记不住...... 为了解决大家的头疼问题,今天想出来一个好办法,那就是:身边常备头疼片.......(哈哈哈,开玩笑的 ...

  2. Python变量命名规范

    模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...

  3. google 变量命名规则简要记录

    1.文件命名规则 好的文件名命名可以很清晰的看出这个文件将要承载的内容,Google给出的规则为:文件名要全部小写, 可以包含下划线 (_) 或连字符 (-). 按项目约定来, 例如:cmd_save ...

  4. JS-JS变量命名规则

    原则 变量名区分大小写,允许包含字母.数字.美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号. 禁止使用JavaScript关键词.保留字全名. 变量命名长度应该尽可能的 ...

  5. 变量命名神器Codelf

    个人感觉,当觉得命名困难的时候,其实是因为还没有想清楚这个变量.这个方法或者这个类是要干什么,还不能用一个或几个词准确描述它的工作,才觉得无法命名,这是命名的最困难的阶段.而只要想清楚了它的任务,命名 ...

  6. 「C语言」常量和变量的表示、应用和变量命名规则

    在程序运行中,其值不能改变的量成为常量. 在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 目录: 一.常量 二.C语言标识符 三.变 ...

  7. python的变量命名规范

    一.python变量名命名规则: 1.变量名通常由字母,数字,下划线组成; 2.数字不能作为变量名开头; 3.不能以python中的关键字命名; 4.变量名要有意义; 5.不要用汉字和拼音去命名; 6 ...

  8. 变量命名网站 Codelf

    程序员最头疼的事情除了头发以外就是给变量或函数命名,一开始学编程语言的时候还可以 abc.a1.x2 等方式命名,等到工作过程中开始真正的项目开发时,如果还是这样随意的命名,即使同事可以忍受你的 ab ...

  9. JavaScript 中的变量命名方法

    三种命名方法 在程序语言中,通常使用的变量命名方法有三种:骆驼命名法(CamelCase),帕斯卡命名法(PascalCase)和匈牙利命名法. 依靠单词的大小写拼写复合词的做法,叫做"骆驼 ...

随机推荐

  1. C#实现EXCEL表格转DataTable

    C#代码实现把Excel文件转化为DataTable,根据Excel的文件后缀名不同,用不同的方法来进行实现,下面通过根据Excel文件的两种后缀名(*.xlsx和*.xls)分别来实现.获取文件后缀 ...

  2. 第一篇博客-- 走上IT路

    首先介绍一下本人,我是一名在校大学生,在一次学长分享学习经验时了解到,写博客可以帮助复习.所以这就是我要写博客的原因. 我是非常喜欢网络安全技术,因此我选择了我这个专业.在接下来的一段时间我会在这里记 ...

  3. Spring学习记录4——Spring对DAO的支持

    Spring对DAO的支持 随着持久化技术的持续发展,Spring对多个持久化技术提供了集成支持,包括Hibernate.MyBatis.JPA.JDO:此外,还提供了一个简化JDBC API操作的S ...

  4. 干货!SQL性能优化,书写高质量SQL语句

    写SQL语句的时候我们往往关注的是SQL的执行结果,但是是否真的关注了SQL的执行效率,是否注意了SQL的写法规范? 以下的干货分享是在实际开发过程中总结的,希望对大家有所帮助! 1. limit分页 ...

  5. 官方文档中文版!Spring Cloud Stream 快速入门

    本文内容翻译自官方文档,spring-cloud-stream docs,对 Spring Cloud Stream的应用入门介绍. 一.Spring Cloud Stream 简介 官方定义 Spr ...

  6. java jvm jre jdk三者的关系

    jvm:java虚拟机器(跨平台的关键) jre:java运行环境 jdk:java 开发工具包(kit) jdk>jre>jvm 环境变量配置 https://www.cnblogs.c ...

  7. javaweb-codereview 学习记录-4

    反射java.lang.Runtime 之前在p牛的知识星球中也学过反射机制调用Runtime来执行命令时需要用getruntime来返回Runtime类的实例,因为Runtime类设计是单例模式,并 ...

  8. LeetCode动画 | 1038. 从二叉搜索树到更大和树

    今天分享一个LeetCode题,题号是1038,标题是:从二分搜索树到更大和数. 题目描述 给出二叉搜索树的根节点,该二叉树的节点值各不相同,修改二叉树,使每个节点 node 的新值等于原树中大于或等 ...

  9. Egret学习-TiledMap使用

    环境说明: 引擎版本:5.2.4 Egret Wing 4.1.6 1.下载依赖,下载地址https://github.com/egret-labs/egret-game-library/tree/m ...

  10. python 获取一个网页里的a 标签

    #!/usr/bin/python # -*- coding: utf-8 -*- #encoding=utf-8 #Filename:urllib2-header.py import re impo ...