你还用拼音为变量命名?新人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;
}
其实这样我是不推荐的,下面是我更改码风过后的代码:
#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别傻了,教你写出优质代码的更多相关文章
- Python_变量命名
Python的变量命名 变量的命名的原则一直都是我这种小白的头疼事,好几条,根本记不住...... 为了解决大家的头疼问题,今天想出来一个好办法,那就是:身边常备头疼片.......(哈哈哈,开玩笑的 ...
- Python变量命名规范
模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类名: 单词首字母大写 AdStats ConfigUtil 全局变量名(类变量,在java中相当于static变量 ...
- google 变量命名规则简要记录
1.文件命名规则 好的文件名命名可以很清晰的看出这个文件将要承载的内容,Google给出的规则为:文件名要全部小写, 可以包含下划线 (_) 或连字符 (-). 按项目约定来, 例如:cmd_save ...
- JS-JS变量命名规则
原则 变量名区分大小写,允许包含字母.数字.美元符号($)和下划线,但第一个字符不允许是数字,不允许包含空格和其他标点符号. 禁止使用JavaScript关键词.保留字全名. 变量命名长度应该尽可能的 ...
- 变量命名神器Codelf
个人感觉,当觉得命名困难的时候,其实是因为还没有想清楚这个变量.这个方法或者这个类是要干什么,还不能用一个或几个词准确描述它的工作,才觉得无法命名,这是命名的最困难的阶段.而只要想清楚了它的任务,命名 ...
- 「C语言」常量和变量的表示、应用和变量命名规则
在程序运行中,其值不能改变的量成为常量. 在基本数据类型中,常量可分为整型常量.实型常量.符号常量和字符型常量(包括字符常量和字符串常量),现分别介绍如下: 目录: 一.常量 二.C语言标识符 三.变 ...
- python的变量命名规范
一.python变量名命名规则: 1.变量名通常由字母,数字,下划线组成; 2.数字不能作为变量名开头; 3.不能以python中的关键字命名; 4.变量名要有意义; 5.不要用汉字和拼音去命名; 6 ...
- 变量命名网站 Codelf
程序员最头疼的事情除了头发以外就是给变量或函数命名,一开始学编程语言的时候还可以 abc.a1.x2 等方式命名,等到工作过程中开始真正的项目开发时,如果还是这样随意的命名,即使同事可以忍受你的 ab ...
- JavaScript 中的变量命名方法
三种命名方法 在程序语言中,通常使用的变量命名方法有三种:骆驼命名法(CamelCase),帕斯卡命名法(PascalCase)和匈牙利命名法. 依靠单词的大小写拼写复合词的做法,叫做"骆驼 ...
随机推荐
- python实现浏览器打开指定url
关键 webbrowser+time+os import os,timeimport webbrowser url = 'http://www.baidu.com' webbrowser.op ...
- feign架构 原理解析
什么是feign? 来自官网的解释:Feign makes writing java http clients easier 在使用feign之前,我们怎么发送请求? 拿okhttp举例: publi ...
- java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executors线程池
上期回顾: 上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁.非公平锁的.内部的双向链表到底是什么意思,prev和next到底是什么,为什 ...
- mysql复习1
SQL语句分为以下三种类型: DML: Data Manipulation Language 数据操纵语言,用于查询与修改数据记录,包括如下SQL语句:INSERT:添加数据到数据库中UPDATE:修 ...
- @Controller和@RestController
@RestController=@Controller+@ResponseBody 1.使用RestController时,返回到前端的内容是Return里的内容,无法返回jsp/html等页面, 此 ...
- Numpy科学计算从放弃到入门
目录 一.什么是Numpy ndarray对象 相关文档 二.如何创建数组 三.如何访问数组 下标索引 切片索引 布尔型索引 整数索引 方形索引 四.如何做算数运算 五.如何使用统计函数 六.数组转置 ...
- 异数OS 织梦师-纤手(二)-- LPC RPC篇
异数OS 织梦师-纤手(二)– LPC RPC篇 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455784 ...
- 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API
今天学习一下Drupal的另一个漏洞,由于渲染数组不当造成的漏洞 poc: url:http://localhost/drupal-8.5.0/user/register?element_parent ...
- [状压DP思路妙题]图
源自 luhong 大爷的 FJ 省冬令营模拟赛题 Statement 给定一个 \(n\) 个点 \(m\) 条边的图,没有重边与自环 每条边的两端点编号之差不超过 \(12\) 求选出一个非空点集 ...
- CF6B President's Office 题解
看到大致思路一致的题解,决定发一篇运用STL不用dfs的题解 好久不发题解,心里不爽 思路: 1.输入的同时找到总统桌子的位置,用vector<pair <int,int> ...