首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java代码评审歪诗!让你写出更加优秀的代码!

贾言 代码评审歪诗 窗外风雪再大 也有我陪伴着你 全文字数:2000 阅读时间:5分钟 贾言 代码评审歪诗 验幻空越重 命频异长 依轮线日简 接偶正分壮 架构师说, 用20个描述代码评审的内容...-勋 不要在循环中调用服务,不要在循环中做数据库等跨网络操作; 频-品 写每一个方法时都要知道这个方法的调用频率,一天多少,一分多少,一秒多少,峰值可能达到多少,调用频率高的一定要考虑性能指标,考虑是否会打垮数据库...,是否会击穿缓存; 异-宜 异常处理是程序员最基本的素质,不要处处捕获异常,对于捕获了写日志,没有任何处理的catch要问一问自己,这样吃掉异常,是否合理; 下面是一个反例, 导出文件的controller...日-日 打印日志和设定合理的日志级别,如有必要要添加if条件限定是否打印日志,日志中使用JSON序列化,生成长字符串的toString()都要做if限定打印,否则配置的日志级别没达到,也会做大量字符串拼接...而不要实现一个类,然后类的各个方法中都根据业务类型做if else或更复杂的各种判断。 典型示例做法1: ? 典型示例做法2: ?

5.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

mysql分表详解

mysql数据量对索引的影响 本人mysql版本为5.7 新增数据测试 为了测试mysql索引查询是否和数据量有关,本人做了以下的测试准备: 新建4个表article1,article2,article3...('2019-01-01')),//随机生成日期                     'description' => getChar(mt_rand(8, 64)),//随机生成8-64位汉字,...{     $b = '';     for ($i = 0; $i < $num; $i++) {         // 使用chr()函数拼接双字节汉字,前一个chr()为高位字节,后一个为低位字节...水平分表 根据数据的不同规则作为一个分表条件,区分数据以数据之间的分表叫做水平分表 水平分表是比较常见的分表方法,也是解决数据量大时候的分表方法,水平分表中,也根据场景的不同而分表方法不同 取模分表...,这个时候,其实就可以叫做是垂直分表 把会员金额的字段分到了其他的表中(会员金额表) 垂直分表较为简单,有以下几种分法: 1:字段意义和表其他字段意义不同,可以尝试分表 2:字段占用空间太大,不常用或特定情况使用

4.6K10

异步,同步,阻塞,非阻塞程序的实现

实现异步非阻塞是一个大命题,这里从原理出发。我会慢慢修改这篇文章。 本文将从异步sleep的实现入手,来讲解异步非阻塞程序的原理。...一个讲的是消息方式,一个讲的是线程状态。 线程同步调用下,也能非阻塞(同步轮非阻塞函数的状态),异步下,也能阻塞(调用一个阻塞函数,然后函数中调用回调,虽然没有什么意义)。...tornado中,有一个gen.sleep函数。...不使用线程 import time def my_sleep(now): """ 这个函数本来就是一个生成器。所以可以单线程下切换运行状态。...上面的代码中,一个while循环中timer的状态。由于timer存在于wait中。所以需要把timer“提取”出来。

7.5K10

PHP中如何跳出for循环

一、使用break关键跳出循环 PHP中,可以使用break关键来跳出循环。当循环执行到break语句时,循环会被立即终止,程序控制权会跳转到循环外的下一条语句。... $i . " "; } // 输出:1 2 3 4 在上面的示例中,当$i等于5时,使用break关键跳出循环,因此循环执行了前4次,输出结果为1 2 3 4。...}     echo $i . " "; } // 输出:1 2 3 4 6 7 8 9 10 在上面的示例中,当i等于5时,使用continue关键跳过本次循环,因此环中i等于5的这次循环中,echo...PHP中,可以为break和continue语句指定标签,来明确指定要跳出的是哪个循环。...下面是一个嵌套循环中使用break和continue的示例: for ($i = 1; $i <= 3; $i++) {     for ($j = 1; $j <= 3; $j++) {

55730

php7和php5具体区别实例讲解

简单说来,PHP是一门脚本语言,基本都用在web应用中的中间层,负责数据库以及前台页面交互和信息传递。主要php具有和java类似的class关键。因为不需要虚拟机,以致速度比java快5倍。...> 7、CSPRNG(伪随机数产生器)。 PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。 random_bytes() - 加密生存被保护的伪随机字符串。...random_int() - 加密生存被保护的伪随机整数。 8、异常 PHP 7 异常用于向下兼容及增强旧的assert()函数。...> 2.引入了一个新的php.ini设置(session.lazy_write),默认情况下设置为 true,意味着session数据发生变化时才写入。...11、PHP 7 移除的扩展 ereg mssql mysql sybase_ct 为什么 PHP7 比 PHP5 性能提升了?

38700

2021年最新大厂php+go面试题集(二)

的undo日志原理,中继日志是干嘛的 参考mysql拾遗 4.nginx和php的关系,一个请求进来怎么到php的 答:通过fastcgi协议,请求到nginx,通过fastcgi转发到...如何优化 答:循环中调用goroutinue,并在协程中打印value:很可能value指向最后一个元素。...关键继续执行后续分支的代码 --- 中间件 1.kafuka10个分区,一个消费者,golang会起几个协程 答:可以是单个线程,也可以是多个线程。...这一套服务集群内部访问,只需要一个service ip 和端口号就可以 (3)外网访问:每个Node上打开一个随机端口并且每个Node的端口都是一样的, 通过...(1)红黑树的查询性能略微逊色于AVL树,因为他比avl树会稍微不平衡最多一层, 也就是说红黑树的查询性能比相同内容的avl树最多多一次比较, (2)红黑树插入和删除上完爆avl树,avl

58220

用好搜索神器Everything,盘活你的文件

这是学习笔记的第 2141 篇文章 认识这个小工具纯属偶然,是和同事讨论一个问题的时候,我随口问了句,还有啥好工具推荐推荐,他推荐了两个: Typora和Everything....最开始看到这个工具,简直是神器,因为能让你的办公文件无处形,只要搜索关键都可以找到,而且关键的是,这个工具是免费开源的,你可以放心大胆的去用,而且还可以理直气壮的推荐给朋友。...技巧2:搜索关键词中的一个即可 如果要搜索的文件只需要满足其中的一个关键就可以,就可以使用空格隔开,这和我们搜索引擎的使用方式是差不多的。...比如这里输入的就是“mysql开发|案例”,会把存在其中一个关键的文件名输出。 ? 技巧3:关键顺序搜索 比如你搜索的文件,你只知道一部分,而且是有指定的顺序的,就需要使用符号*来拼接起来。...近期热文: 如何优化MySQL千万级大表,我写了6000的解读 一道经典的MySQL面试题,答案出现三次反转 业务双活的数据切换思路设计(下) 业务双活的数据切换思路设计(一) MySQL中的主键和

50820

一致性哈希算法的问题

分布缓存领域,对数据存在新增与查询,即数据通过路由算法存储一个节点后,查询时需要尽量路由到同一个节点,否则会出现查询未命中缓存的情况,这也是与分布式服务调用领域的负载算法一个不同点。...1.2 一致性哈希算法 一致性哈希算法 一致性哈希算法的设计理念如下图所示: 首先将哈希值映射到 0 ~ 2的32次方的一个圆中,然后将实际的物理节点的IP地址或取其hash值,放入到hash环中。...取决于各个实体节点在哈希环的分布情况,是否能分散,例如如下分布则会大打折扣: 这种情况会造成数据分布不均衡,为了解决数据很可能分布不均匀的情况,对一致性哈希算法,提出了改进,引入了虚拟节点的,可以设置一个哈希环中存在多少个虚拟节点...虚拟节点如何生成分散的哈希值 生成分散的哈希值,通常可以基于md5加密算法来实现。...,比轮、加权轮随机、加权随机算法等负载均衡算法相比,实现复杂,性能低下,运维管理复杂。

4K20

从架构上详解技术(SLB,Redis,Mysql,Kafka,Clickhouse)的各类热点问题

我们生活中,定义是:比较受广大群众关注或者欢迎的新闻或者信息或指某时期引人注目的地方或问题。...使用散列调度算法就容易遇到热点问题,因为散列容易造成请求不平均,请求量大可能触发到同一个负载均衡服务器。如果使用轮询,负载请求会平均,不容易触发热点问题。...关于redis cluster架构是多主,多从的架构,理论上是能很好的解决热点问题,写请求随机到不同的主从集群不同的主节点中,读请求会到不同的主从集群的从节点中,这样就很好的分散了请求,做到这一点其实至少要保证每个主节点都有一个主备...关于Mysql的读和写热点问题,其实还是比较明显,不管是读和写,量达到一定程度,都会存在的。我们很大的业务流量下,我们Mysql的前端都会有Redis或者中间件的来挡量。...Kafka写数据是从Producer生成,需指定Topic,最终是写入到某一个Partition(某个Leader副本的Partition)。

1.6K40

程序员面试必备PHP基础面试题 – 第十六天

一、使用PHP语言自定义一个函数,此函数作用是将一个句子按单词反序。例如"One World One Dream",反序后变为 "Dream One World One"。...(每个1分)说明Ajax实现原理是什么及JsonAjax中起什么作用?...元的商品 使用优惠券(将这个100元优惠券又去买完了商品) 相当于200元的现金 买来了 300元的商品 200/300=66% 八、我们希望开发一款扑克游戏,请给出一套洗牌算法,公平的洗牌并将洗好的牌存储一个整形数组里...,数据存储采用MySQL,用户数量为1000万,预计文章总数为10亿,日更新量至少为10万,日访问量为5000万,对数据库的读写操作比例超过10:1,你如何设计该系统,以确保其高效,稳定的运行?...(提示:可以从数据库设计,系统框架及网络架构方面进行描述,自由发挥) 网络 DNS轮 Nginx主 从服务器(2台以上 用于负载均衡) 集群服务器 PHP分发器(根据随机数对应ip连接数据库)

44320

解析PHP跳出循环的方法以及continue、break、exit的区别介绍

foreach循环几种,不管哪种循环中PHP中跳出循环大致有这么几种方式: 代码: 代码如下: PHP的代码片段的作用是输出100以内,既不能被7整除又不能被3整除的那些自然数,循环中先用if条件语句判断那些能被整除的数,然后执行 continue;语句,就直接进入了下个循环。...> 上面这个例子中直接在从循环里结束了代码的运行,这样会导致后面的代码都不会被执行,如果是一个php web 页面里面,甚至连exit后面的html代码都不会被输出。...可以从一个函数里调用,也可以从一个include()或者require()语句包含的文件里来调用,也可以是主程序里调用,如果是函数里调用程序将会马上结束运行并返回参数,如果是include()或者require...循环结束条件,自然跳出 这个当然是最好理解了,当循环满足循环临界条件时就是自己退出。 以上是PHP中跳出循环的几种方式的简单总结。

4.9K40

批量写库操作,如何优化?

上条插入语句插入一行数据,称之为单条插入,相应地,还可以一条语句中插入多行数据,称之为批量插入。...CPU不仅可以Cache数据,还可以Cache指令,单条插入的时候,一定时间内总是执行不同的指令,因此很难Cache,每次都需要从内存中取指令,将指令解码后,才能再去取数据,而在批量插入中,一个紧凑的循环中...存储层从SQL拿数据的时候,会调用一个虚函数get_next_row,C++里虚函数是通过虚函数表实现的,对象里有一个指向虚函数表的指针,每次调用函数的时候,需要通过指针找到这个表,然后表里再通过一个指针...·END· 相关阅读:MySQL与MongoDB,该如何做技术选型? 应该如何正确理解BFF架构设计?...深挖一下果然不简单 PHP 中数组是如何灵活支持多数据类型的?

18630

京东资深架构师代码评审歪诗

在此之前和讯网负责股票基金行情系统的研发工作,具备高并发、高可用互联网应用研发经验。 贾言验幻空越重, 命频异长。 依轮线日简, 接偶正分壮。言欢空月虫, 明勋品宜昌。...贾言 架构师说, 用20个描述代码评审的内容, 自省也省人。由于是一一含义, 不连贯, 为了增强趣味性, 每句都增加对应的歪解。只是对常见评审的描述, 不尽之处,欢迎补充!...: 不要在循环中调用服务,不要在循环中做数据库等跨网络操作 频: 写每一个方法时都要知道这个方法的调用频率,一天多少,一分多少,一秒多少,峰值可能达到多少,调用频率高的一定要考虑性能指标,...考虑是否会打垮数据库,是否会击穿缓存 异: 异常处理是程序员最基本的素质,不要处处捕获异常,对于捕获了写日志,没有任何处理的 catch 要问一问自己,这样吃掉异常,是否合理 下面是一个反例, 导出文件的...而不要实现一个类,然后类的各个方法中都根据业务类型做 if else 或更复杂的各种判断。

4.7K30

有趣的数字游戏

0 引言 经过一段时间对Python的学习,我们已经能够相对熟练的使用Python中的循环语句和条件语句,那么今天我们就结合循环语句和条件语句来做一个简单的猜数字游戏。...1 问题 系统随机生成一个1~100的数字,用户共有5次机会猜测。...2 方法 Python中用于生成随机数的模块是random,所以为了使系统随机产生一个数,我们需要导入import,之后再使用for坏,规定循环次数为5,再在循环语句中添加使用条件语句,列出条件并打印出符合条件的结果...本文的数字游戏针对规定范围内的整数进行猜测,后续还可以对其进行升级,缩小产生随机数字的范围并包括一位小数来增加游戏难度。 实习编辑:衡辉 稿件来源:深度学习与文旅应用实验室(DLETA)

41120

干货丨什么是CMS ,CMS 有哪些功能呢?

、低效率的循环中升级。...,PHP虽然开源的很多,但是限制也很多,而ASP.NET的程序支持MYSQL和ACCESS两种数据库,企业可以根据自己规模大小选用数据库。...(1)wordpress的概念 一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的。用户可以支持 PHPMySQL数据库的服务器上使用自己的博客。...(2)wordpress的软件框架    PHP+Mysql架构 (3)wordpress的软件功能   文章发布、分类、归档、收藏,统计阅读次数。    ...某些插件的支持下实现静态html页面生成(如WP-SUPER-CACHE)。    通过选择不同主题,方便地改变页面的显示效果。    通过添加插件,可提供多种特殊的功能。

6.8K20

PHP程序员经常碰到的11个MySQL错误

对于大多数web开发应用来说,数据库都是一个十分基础性的部分。如果你使用PHP,那么你很可能也使用MySQL—LAMP系列中举足轻重的一份子。...对于很多新手们来说,使用PHP可以短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。...很多应用仍然使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数,尽管PHP手册上说:   如果你使用MySQL v4.1.3或者更新版本,强烈推荐使用您使用...比如,你不会使用MySQL自带的AVG()函数,却会先对记录集中的值求和然后用PHP循环来计算平均值。   此外,请注意PHP环中的SQL查询。通常来说,执行一个查询比结果中迭代更有效率。   ...所以,需要的时候添加索引  10.忘记备份   虽然比较罕见,但是数据库还是有崩溃的危险。硬盘有可能损坏,服务器有可能崩溃,web主机提供商有可能会破产!

1.6K30

PHP开发人员常犯的10个MysqL错误

对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你使用PHP,那么你很可能也使用MySQL—LAMP系列中举足轻重的一员。...对于很多新手们来说,使用PHP可以短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。...很多应用仍然使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数,尽管PHP手册上说: 如果你使用MySQL v4.1.3或者更新版本,强烈推荐使用您使用...比如,你不会使用MySQL自带的AVG()函数,却会先对记录集中的值求和然后用PHP循环来计算平均值。 此外,请注意PHP环中的SQL查询。通常来说,执行一个查询比结果中迭代更有效率。...有的人会在每个字段上都添加索引,遗憾的是,执行了INSERT或者UPDATE之后这些索引都需要重新生成,这样就会影响性能。所以,需要的时候添加索引。 10、忘记备份!

96680
领券