首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
dll
utf-8
instance
grid
integer
hashcode
char
perl
java
function
cPlusPlus
case
node.js
cmd
regex
ip
loops
const
runtime
yaml
uml
client
io
expression
js
heap
netty
heatmap
copy
version
bit
express
sum
include
byte
post
rsa
random
python2
object
request
require
join
replace
export
vbscript
cpython
main
python
bitmap
foreach
stream
substring
range
lua
nodejs
list
emoji
php7
audio
match
metadata
shell
config
vba
jsp
c语言
httprequest
md5
usb
default
php
select
input
blob
dockerfile
hash
text
bash
当前位置:
开发笔记
>
编程语言
> 正文
一些编程实践总结
作者:54打工仔i_858 | 来源:互联网 | 2023-07-05 15:10
认真的:尽可能使用有符号数,存在加减操作的字段禁止使用无符号数。可以使用无符号数的情形:玩家UID,物品ID等。禁止使用无符号数的情形:金币、钻石等核心资产字段。尽可能使用int3
认真的:
尽可能使用有符号数,存在加减操作的字段禁止使用无符号数。
可以使用无符号数的情形:玩家UID,物品ID等。
禁止使用无符号数的情形:金币、钻石等核心资产字段。
尽可能使用int32,减少使用int8、int16。
尽量不使用bool,用int32代替。
可以使用int64的情形:序列号,唯一标识,毫秒时间戳等。
涉及到配置的唯一标识符尽量使用字符串,见文知义。
指针必须判空,但new出来的对象不要判空,因为new默认走异常。
避免箭头代码,改为提前中断。
提交代码前,可以用静态检查工具扫描下代码。
尽可能使用命名空间,可以避免很多重名冲突。
尽量使用stl,不要造轮子。
尽量使用string,避免使用c风格字符串函数。
bool字段,即使当前只需要2个状态,也尽量改为int32。
可以使用bool字段的情形:IsXXX,HasXXX。
函数入口对参数做检验时,一个条件对应一个if语句。
打印日志时,多个字段尽可能拼接为一行日志输出,不要拆分为多行。
打印日志时,把上下文的信息打印完整,不要偷懒只打一部分。
每个return的地方,尽可能加上描述精确的日志。
避免使用float,double类型。可以考虑放大倍数。
暂时用不上的代码,就删掉,保持干净。代码仓库上有历史记录的。
随机数函数不要使用系统自带的,用线性同余公式写一个。
禁止代码和注释不一致。这种比没有注释危害性更大。
引入自定义头文件时使用全路径,不要只使用文件名。
使用#pragma once,替代#ifndef #define #endif。
减少宏的使用,宏不利于调试和维护。
switch语句必须要有default结尾。
配置开关使用int类型,0表示关闭,1表示开启。
尽量使用开源代码库,可以从学习的角度造轮子。
开源代码库需要注明源码地址和版本,在一个目录集中管理。
函数的参数过多时,使用结构体封装下。
能加const的地方就加上,利于编译器优化。
类的成员变量尽量不加static。
处理客户端上行消息时,服务端需要保证在任何情况下都有下行回包。
处理客户端上行消息时,最终结果的可能性需要处理完全,三类:成功、失败、超时
服务端下行回包时,尽可能携带上行包一并回下去。
服务端的回包,携带状态码,一个码对应一种情况,不要一对多。
服务端的回包,状态码表示失败时,附加一个字符串字段,说明失败原因。
隔段时间回顾下过去写的代码,还认识不?是自己写的么?
保持代码的复杂度和业务的复杂度线性相关,能做到亚线性更好。
中文、英文名称不要写错了。写错了,会误导很多人,包括自己。
直接表达做什么,而非描述具体怎么做。
用正交思想替代设计模式。用抽象思维替代业务思维。
尽一切可能减少宏的使用,C++的未来是抛弃宏的。
合理使用assert断言,尽快将问题暴露,节约时间。
佛系的:
成员变量不要加类型前缀。
尽量使用新版本的语法,简洁且性能不会差,易用性也提高了。
类的私有函数,私有变量,可以用下划线打头。
名称尽量使用小写和下划线,提高敲键盘的速度。
inline关键字就不要敲了,意义不大,编译器优化的很好了。
少用设计模式硬套代码。设计模式的最高境界:不知道用的什么模式,但是觉得就应该这么写。
慢工出细活。代码是艺术品。
能通过沟通来完成的,就不要敲代码。
不写代码就不会有bug,精简代码行数。
编程
int
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
int
SQL日志收缩及截断方法详解
本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ...
[详细]
蜡笔小新 2023-12-14 18:23:25
js
lua语言闭包、模式匹配、日期、编译、模块的特性及应用
本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ...
[详细]
蜡笔小新 2023-12-14 18:18:21
utf-8
Python3中选择文件对话框的格式打开和保存图片
本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ...
[详细]
蜡笔小新 2023-12-14 17:46:55
io
数据库的存储结构及其重要性
本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ...
[详细]
蜡笔小新 2023-12-14 16:00:02
io
C#学习教程:在Console中工作但在Windows窗体中不工作的异步代码分享
本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ...
[详细]
蜡笔小新 2023-12-14 15:56:00
io
Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ...
[详细]
蜡笔小新 2023-12-14 17:57:01
js
【机器学习】生成式对抗网络模型综述
生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ...
[详细]
蜡笔小新 2023-12-14 17:51:18
js
gcdexgcd斐蜀定理的求解方法及应用
本文介绍了求解gcdexgcd斐蜀定理的迭代法和递归法,并解释了exgcd的概念和应用。exgcd是指对于不完全为0的非负整数a和b,gcd(a,b)表示a和b的最大公约数,必然存在整数对x和y,使得gcd(a,b)=ax+by。此外,本文还给出了相应的代码示例。 ...
[详细]
蜡笔小新 2023-12-14 17:48:30
io
在类中定义数组时出错 - Error on defining arrays in class
Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ...
[详细]
蜡笔小新 2023-12-14 17:38:12
io
Android开发笔记:使用Picasso加载网络图片等比例缩放
在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ...
[详细]
蜡笔小新 2023-12-14 17:34:00
version
kotlin动画实现上下移动、放大缩小、旋转功能
本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ...
[详细]
蜡笔小新 2023-12-14 17:29:08
version
JetBrain有哪些产品可以用来编写C++和C代码?
本文介绍了JetBrain的哪些产品可以用来编写C++和C代码,帮助读者选择适合自己的开发工具。 ...
[详细]
蜡笔小新 2023-12-14 17:23:24
io
Android 新闻App的本地服务器搭建教程
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
char
SpringBoot uri统一权限管理的实现方法及步骤详解
本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ...
[详细]
蜡笔小新 2023-12-14 16:11:30
ip
Java实战之电影在线观看系统的实现
本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ...
[详细]
蜡笔小新 2023-12-14 15:52:03
54打工仔i_858
这个家伙很懒,什么也没留下!
Tags | 热门标签
dll
utf-8
instance
grid
integer
hashcode
char
perl
java
function
cPlusPlus
case
node.js
cmd
regex
ip
loops
const
runtime
yaml
uml
client
io
expression
js
heap
netty
heatmap
copy
version
RankList | 热门文章
1
阿里云_阿里云云大使9月推广返利规则
2
惠普激光打印机硒鼓加碳粉图解篇
3
一探0 day漏洞交易背后的黑市交易
4
甲方视角的情报体系——从人的角度量化安全威胁
5
求最新的windows7旗舰版密钥 求最新的windows?
6
关于页面滚动插件fullpage的问题
7
Centos 单用户模式修改root密码
8
jQuery学习之选择器
9
大金空调u2故障怎么处理?
10
一些spdy的疑问
11
QQ互联中的分享到QQ是否支持本地项目调用?
12
苹果ios10系统中小气泡功能怎么弄?:苹果泡泡怎么设置
13
fcn pspnet 全卷积理解
14
环境变量_MySQL环境变量的配置
15
起步,停车——走好你的IT运维管理之路
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有