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

程序员在代码审查时,遇到这样的领导是好是坏?

今天在浏览网站的时候,看到别人发的这么一个帖子,刚刚入职一个新公司,代码审查的时候,leader 对他的代码进行了一些修改,而这个程序员感觉很多地方没有必要,你们看完上面这个帖子什么感觉?...看法 我看的看法是: 一是,遇到这样的领导真的很好,咱先不讨论领导这样的修改,有些地方是否有没有必要,光看领导这么事无巨细的在这些小地方都帮你 code review 进行一些修改,就说明领导非常负责,...这个不好说,但是领导的修改我个人认为确实很规范,最起码没错。 二是,我认为确实领导的一些修改没有必要。...还有一个地方比如:a.do1() a.do2() ,领导给修改成 a.do1.do2(),或许没必要,但是领导的这个修改可以让代码更简洁,看起来更方便,在维护代码和更新迭代上来讲,确实让你一眼就懂,很清楚...如果有,是你没有按照规范来使用,那就是你的问题,如果没有规范,那你可以找 leader 谈一谈,团队应该制定一个规则,能否出个规则,以后我按照这个规约来写,也可以减轻领导 code review 的工作量

52940

VLookup等方法在大量多列数据匹配时的效率对比及改善思路

VLookup无疑是Excel中进行数据匹配查询用得最广泛的函数,但是,随着企业数据量的不断增加,分析需求越来越复杂,越来越多的朋友明显感觉到VLookup函数在进行批量性的数据匹配过程中出现的卡顿问题也越来越严重...六、 对公式法的改进 考虑到仍有大量的朋友没有使用PowerQuery,我在想: 是否有可能对公式进行一定程度的改进,以实现效率上的提升? PowerQuery的合并查询效率为什么会这么高?...在思考这些问题的时候,我突然想到,Power Query进行合并查询的步骤,其实是分两步的: 第一步:先进行数据的匹配 第二步:按需要进行数据的展开 也就是说,只需要匹配查找一次,其它需要展开的数据都跟着这一次的匹配而直接得到...那么,如果我们在公式中也可以做到只匹配一次,后面所需要取的数据都跟着这次匹配的结果而直接得到,那么,效率是否会大有改善呢?...七、结论 在批量性匹配查找多列数据的情况下,通过对Index和Match函数的分解使用,先单独获取所需要匹配数据的位置信息,然后再根据位置信息提取所需多列的数据,效率明显提升,所需匹配提取的列数越多,

5.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Element table设置固定列,没有滚动条时底部会显示一条线的解决方法

    固定列需要在el-table-column 上设置fixed属性,它接受Boolean值或者left  right,表示左边固定还是右边固定 <el-table :data="tableData...text" size="small">编辑 在小屏幕上含有滚动条...,显示是正常的,但是如果是大屏幕没有滚动条就在底部约17像素的地方有一条线,非常不美观, ?...通过审查元素发现,如果是左侧固定,不管有没有滚动条.el-table-fixed 这个元素 样式都是距离底部17px, ? 固定右边的列类似,只是样式没有直接写bottom:17px 如何解决呢?...思路:页面解析完成后,如果内容的宽度小于或者等于容器的宽度 就把bottom设置为1px 完整的代码 mounted() { //修改固定列有和没有滚动条的样式 var wrapWidth

    5.4K11

    VLookup及Power Query合并查询等方法在大量多列数据匹配时的效率对比及改善思路

    VLookup无疑是Excel中进行数据匹配查询用得最广泛的函数,但是,随着企业数据量的不断增加,分析需求越来越复杂,越来越多的朋友明显感觉到VLookup函数在进行批量性的数据匹配过程中出现的卡顿问题也越来越严重...六、 对公式法的改进 考虑到仍有大量的朋友没有使用PowerQuery,我在想: 是否有可能对公式进行一定程度的改进,以实现效率上的提升? PowerQuery的合并查询效率为什么会这么高?...在思考这些问题的时候,我突然想到,Power Query进行合并查询的步骤,其实是分两步的: 第一步:先进行数据的匹配 第二步:按需要进行数据的展开 也就是说,只需要匹配查找一次,其它需要展开的数据都跟着这一次的匹配而直接得到...那么,如果我们在公式中也可以做到只匹配一次,后面所需要取的数据都跟着这次匹配的结果而直接得到,那么,效率是否会大有改善呢?...七、结论 在批量性匹配查找多列数据的情况下,通过对Index和Match函数的分解使用,先单独获取所需要匹配数据的位置信息,然后再根据位置信息提取所需多列的数据,效率明显提升,所需匹配提取的列数越多,

    4.9K20

    Hive在spark2.0.0启动时无法访问..libspark-assembly-*.jar: 没有那个文件或目录的解决办法

    无法访问/home/ndscbigdata/soft/spark-2.0.0/lib/spark-assembly-*.jar: 没有那个文件或目录。...而这一行究竟是怎么回事,网上没有任何有关的资料。 没办法,只好一步一步分析,终于找到问题的症结。...其主要的原因是:在hive.sh的文件中,发现了这样的命令,原来初始当spark存在的时候,进行spark中相关的JAR包的加载。...而自从spark升级到2.0.0之后,原有的lib的整个大JAR包已经被分散的小JAR包的替代,所以肯定没有办法找到这个spark-assembly的JAR包。这就是问题所在。...*.jar`   CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}" 将这个spark-assembly-*.jar`替换成jars/*.jar,就不会出现这样的问题

    2K80

    JDBC 最佳实践

    访问数据:在循环内部,根据数据库列中存储的数据类型使用适当的 getter 方法来访问当前行中的特定值。...这样可以避免频繁地创建和销毁连接,从而减少了数据库的负担和响应时间,提高了应用的性能。 资源管理: 连接池能够限制同时打开的连接数量,防止应用程序过载数据库服务器。...当出现问题时,会抛出异常来表示潜在问题。在 JDBC 领域,比如 SQLException 是我们的主要敌人。...您可以在再次尝试操作之前以合理的延迟实现重试逻辑。 数据截断:当您尝试将数据插入超出其定义大小限制的列时,会发生这种情况。检查您的数据并进行调整以适应列的限制。...在处理 SQLException 时,必须要考虑数据安全性的问题,而且要放在首要的位置。

    15310

    🚀一文彻底弄懂 MySQL 优化:从 Java 后端视角出发!

    Java 开发者在面对数据库操作时,不仅仅是简单的 CRUD(增删改查)操作,而是需要学会从底层优化数据库的性能,这样才能跟得上业务发展的需求。...索引的优劣及如何避免“鸡肋”索引。常见的优化误区误区 1:认为添加索引就是万灵丹。其实不然,索引过多会拖慢数据库写入速度。误区 2:频繁创建和销毁数据库连接。这样不仅增加了资源消耗,还会导致响应延迟。...JDBC 连接池优化数据库连接池是高并发情况下的性能保障。没有连接池时,频繁创建和销毁数据库连接会耗费大量系统资源。通过连接池的管理,Java 应用可以显著降低数据库连接的消耗,提高响应速度!...延迟加载连接:如果连接的建立是按需而非静态初始化,可以在 getConnection 方法中首次调用时再创建连接,减少启动时的资源消耗。...小结MySQL 优化在 Java 应用中至关重要,无论是连接池设计、查询优化,还是索引的选择,合理的优化手段都能让数据库“焕发新生”。开发者们在面对高并发和复杂业务逻辑时,拥有优化技能就是最大的底气。

    15321

    Mybatis事务的理解

    在JDBC中,是根本不存在事务挂起的说法的,也不存在这样的接口方法。...SQLException; } 有了文章开头的分析,当你再次看到close()方法时,千万别再认为是关闭一个事务了,而是关闭一个conn连接,或者是把conn连接放回连接池内。...connection.close()含义为销毁conn,既然要销毁conn,为何还多此一举的调用一个resetAutoCommit()呢?消失之前多喝口水,真的没有必要。...其实,原因是这样的,connection.close()不意味着真的要销毁conn,而是要把conn放回连接池,供下一次使用,既然还要使用,自然就需要重置AutoCommit属性了。...因此,后续在分析到类似insert()、update()等方法内部时,需要忘记事务的存在,不要试图在insert()等方法内部寻找有关事务的任何方法。

    58320

    数据库连接(2) - 为什么C3P0连接池那么慢

    数据库连接池与线程池同属于池化技术,没有太大区别,都是需要管理池的大小,资源控制。...一个基本的数据库连接池包括几大部分 取出连接 放回连接 异步/同步处理线程 进行创建连接和销毁连接 对于一个数据库连接池的根本就在于并发容器的实现,也是决定连接池的效率高低,常见的连接池配置如下 initialSize...timeBetweenEvictionRunsMillis:销毁线程的时间检测 testOnBorrow:申请连接时执行,比较影响性能 validationQuery:testOnBorrow为true...C3P0,和DBCP是出现的比较早的数据库连接,主要用于hibernate,和tomcat6.0以下,比较稳定,在低并发的情况下,工作还可以,但是高并发下,性能比较差,所以在tomcat6,又重写了一个...或者使用jdk原生的,比如CopyOnWriteList这样的结构 而锁通过有两种,一种JVM级别的synchronized,一种是JDK提供的ReentrantLock,两者在语义上并没有多大区别,互斥

    1.1K10

    Mybatis:颠覆你心中对事务的理解

    在JDBC中,是根本不存在事务挂起的说法的,也不存在这样的接口方法。...SQLException; } 有了文章开头的分析,当你再次看到close()方法时,千万别再认为是关闭一个事务了,而是关闭一个conn连接,或者是把conn连接放回连接池内。...connection.close()含义为销毁conn,既然要销毁conn,为何还多此一举的调用一个resetAutoCommit()呢?消失之前多喝口水,真的没有必要。...其实,原因是这样的,connection.close()不意味着真的要销毁conn,而是要把conn放回连接池,供下一次使用,既然还要使用,自然就需要重置AutoCommit属性了。...因此,后续在分析到类似insert()、update()等方法内部时,需要忘记事务的存在,不要试图在insert()等方法内部寻找有关事务的任何方法。 4.

    57010

    MyBatis 事务管理解析:颠覆你心中对事务的理解!

    在JDBC中,是根本不存在事务挂起的说法的,也不存在这样的接口方法。...SQLException; } 有了文章开头的分析,当你再次看到close()方法时,千万别再认为是关闭一个事务了,而是关闭一个conn连接,或者是把conn连接放回连接池内。...connection.close()含义为销毁conn,既然要销毁conn,为何还多此一举的调用一个resetAutoCommit()呢?消失之前多喝口水,真的没有必要。...其实,原因是这样的,connection.close()不意味着真的要销毁conn,而是要把conn放回连接池,供下一次使用,既然还要使用,自然就需要重置AutoCommit属性了。...因此,后续在分析到类似insert()、update()等方法内部时,需要忘记事务的存在,不要试图在insert()等方法内部寻找有关事务的任何方法。 4.

    2K20

    面试不懂ThreadLocal 实现原理?

    ,这里可以有两种解决方案: 使用连接池管理连接,既不是每次都创建、销毁连接,而是从一个连接池里借出可用的连接,用完将其归还。...会变成null,然后在每次get/set/remove ThreadLocalMap中的值的时候,会自动清理key为null的value,这样value也能被回收了。..., 在使用线程池时,线程会被复用,那么里面保存的ThreadLocalMap同样也会被复用,会造成线程之间的资源没有被隔离,所以在线程归还回线程池时要记得调用remove方法。...hash冲突 上面提到ThreadLocalMap是自己实现的类似HashMap的功能,当出现Hash冲突(通过两个key对象的hash值计算得到同一个数组下标)时,它没有采用链表模式,而是采用的线性探测的方法...当数组较大时,这个性能会很差,所以建议尽量控制ThreadLocal的数量。

    42910

    Java程序设计(高级及专题)- JDBC

    在MySQL中提供了Commit、Rollback命令进行事务的提交与回滚。实际上在JDBC中也存在事务处理,如果要想进行事务处理的话,则必须按照以下的步骤完成。...,有意在第二个的sql语句中多给一个字段,这是有错误,但是第一句是没有错误的,那么执行发现出现错误,两条sql语句在数据库中都没有执行....连接池 原因: 传统方式创建和销毁连接都需要消耗系统资源 传统方式创建和销毁连接都需要消耗时间 目的: 为了复用连接,代替传统的频繁占用系统资源和耗费时间的方式 便于管理连接,可以规定最大的连接数...,用完该连接对象时归还连接对象到连接池中。...当应用服务器需要连接对象而当前池子中没有连接对象可取时,就让其先等待,如果等待超时还没有回获取到连接对象,就新建一个连接对象给服务器让其使用,用完后销毁该创建的对象。

    56720

    使用连接池连接数据库

    新学者可以先不用连接池 (这是注册用户时用到的代码,主要是sql语句不一样,就可以实现不同的功能) //1.加载注册驱动 Class.forName("com.mysql.jdbc.Driver...,这样我们就想到静态代码块。...使用连接池的好处? 直接举个例子,如果你的家在河的一边,你的外婆家在河的另一边。假设没有交通工具可以过河,你只能通过架设一个桥来到你的外婆家去。...没使用连接池之前,相当于每连接一个数据库你就架设了一个桥,当你到达河的对面,也就是对数据库的操作(增,删,查,改操作),你关闭数据库连接就相当于把桥销毁了。当你再次过河时还要重新架桥。...这样就大大增加了cpu的工作量,效率会大大降低。所以,连接池就应运而生。连接池主要思路是,先给你建好几个连接对象,当你使用完毕,它没有销毁,只是返回给连接池,让你下次方便使用。

    94720

    学习JDBC需要掌握些什么?

    不知道大家在工作中还有没有写过JDBC,我在大三去过一家小公司实习,里边用的就是JDBC,只不过它封装了几个工具类。写代码的时候还是能感受到「这是真真实实的JDBC代码」 ?...很多时候,不同的项目由不同的程序员开发,在公司层面可能没有将技术完全统一起来,一个项目用Mybatis,一个项目用Hibernate都是很有可能的。...不管用的是什么ORM框架,都是在JDBC上封装了一层嘛,所以JDBC还是需要好好学习的。 什么是ORM?...Statement对象编译SQL语句时,如果SQL语句有变量,就需要使用分隔符来隔开,如果变量非常多,就会使SQL变得非常复杂。...ROWNUM这个伪列,ROWNUM主要作用就是产生行号。

    85920

    Mybatis数据源结构解析

    3、连接池有点类似在客户端做优化 数据库连接是一项有限的昂贵资源,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。...---- 线程池:(降低线程创建销毁损耗) 1、线程池是面向后台程序的 2、线程池是是为了提高内存和CPU效率 3、线程池有点类似于在服务端做优化 线程池是一次性创建一定数量的线程(应该可以配置初始线程数量的...避免了频繁创建线程,及销毁线程的系统开销,提高是内存和CPU效率。 相同点: 都是事先准备好资源,避免频繁创建和销毁的代价。...❞ ❝注意dataSource 此时只会保存好配置信息.连接池此时并没有创建好连接.只有当程序在调用操作数据库的方法时,才会初始化连接. ❞ DataSource什么时候创建Connection对象 我们需要创建...❝我们每调用一次getConnection()方法,都会通过DriverManager.getConnection()返回新的java.sql.Connection实例,这样当然对于资源是一种浪费,为了防止重复的去创建和销毁连接

    42510

    Mybatis数据源结构解析

    3、连接池有点类似在客户端做优化 数据库连接是一项有限的昂贵资源,一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。...---- 线程池:(降低线程创建销毁损耗) 1、线程池是面向后台程序的 2、线程池是是为了提高内存和CPU效率 3、线程池有点类似于在服务端做优化 线程池是一次性创建一定数量的线程(应该可以配置初始线程数量的...❞ ❝注意dataSource 此时只会保存好配置信息.连接池此时并没有创建好连接.只有当程序在调用操作数据库的方法时,才会初始化连接. ❞ DataSource什么时候创建Connection对象 我们需要创建...❞ 重新启动项目,在运行到需要执行实际的sql操作时,可以看到他已经被代理增强了 ❝直到此时,连接数还是没有变,说明连接还没有创建,我们接着往下看. ❞ ❝我们按F7进入方法,可以看到,他被代理,,这时候会执行到之前的代理方法中调用...❝我们每调用一次getConnection()方法,都会通过DriverManager.getConnection()返回新的java.sql.Connection实例,这样当然对于资源是一种浪费,为了防止重复的去创建和销毁连接

    57030
    领券