慎用专题

java慎用String.substring(int start, int end)

1:问题的抛出         今天在安卓项目中使用后台线程操作一个大文件,分块读取文件中的所有内容,每次操作加载一个小块进行解析,解析到指定的文本内容之后会加载并常驻内存中,即使所有我解析到的文本内容被加入到内存中也不会很大,这样不会造成内存泄露问题。原理如此,但是最终依然出现oom。 2:问题的排查 仔细检查之后发现线程中所有的产生的对象都已经在操作结束之后回收(即:生成的对象没有引用)

mac下记一次教训-慎用rm -rf

rm -rf XXX/XXX ./ 导致自己电脑当前目录下的所有资料被删,之后很难找回。所以建议用rmtrash替代rm。 1.使用rmtrash替代rm命令,mac下可用: brew install rmtrash 用rmtrash 替代 rm,rmtrash有个好处,它不会立马把资料从你电脑上删除,而是移动到废纸篓,如果误删,可以在废纸篓中恢复。 2.修改环境变量,用rmtrash替代

慎用lombok.Builder

lombok是一个Java库,使用注解方式来简化 Java 代码,可以减少诸如getter、setter的方法。 它常用的注解有: @Getter、@Setter、@ToString 不必多说,分别实现getter、setter、toString、hashCode等方法。@Data 则是包含上面的那些,有这个可以不需要写上面的注解@NoArgsConstructor 生成无参构造函数@AllAr

python编程不良习惯纠正: 慎用顶层代码

这几天在跑一个开源代码时,发现,pdb断点不起作用,经过一番检查,发现代码在from show import  时,有大量的操作。 经过进一步的检查发现, show.py中没有main函数,操作都放在顶层执行,如下是show.py的内容 print("Hi")print("Hi")print("Hi")print("Hi")print("Hi")print("Hi")def sho

三层架构慎用跨层公用数据类型

在三层架构中,定义公共数据类型供三个层共用是可能的,但这种做法需要谨慎考虑。虽然共享数据类型可以减少代码冗余和提高数据一致性,但也可能导致层与层之间的耦合度增加,从而降低了系统的可维护性和可扩展性。 如果你决定定义公共数据类型,以下是一些建议: 明确数据类型的职责:公共数据类型应该仅包含三个层都需要的基本数据结构和属性。避免在这些类型中添加与特定层相关的逻辑或行为。 保持稳定性:由于这些数

在Outlook的VBA工程中慎用OOM做为参数

在Outlook的VBA中只有两个地方可以用OOM(Outlook Object Model)做为参数。 ThisOutlooksession。在rule中跑的Sub。 除些之外使用OOM做为参数会引发424错误。 如果你的VBA不是在允许用OOM做为参数的范围内Sub或Function请使用EntryID做为参数传递Item或MAPIFolder。

在主线程中慎用WaitForSingleObject (WaitForMultipleObjects) --代替方法:MsgWaitForMultipleObjects

在主线程中慎用WaitForSingleObject (WaitForMultipleObjects) 下面的代码我调试了将近一个星期,你能够看出什么地方出了问题吗? 线程函数: DWORD WINAPI ThreadProc(      while ( ! bTerminate)       {          //  从一个链表中读取信息并且插入到CListCtrl中

UVM:6.5.5 在sequence 中慎用fork join_none

1.将DUT 的数据口扩展为4路,验证平台也要有4个完全相同的driver,sequencer。my_vsqr 如下: 2.virtual sequence: 1)由于join_none 的特性,系统并不等fork 起来的进程结束就进入下一次for 循环,展开后如下: 问题是:使用join_none 并不等这4个mseq 执行完就直接返回。然后就是endtask,此时

中国式危机公关9加1策略(第五章 慎用信息控制策略)

第五章 慎用信息控制策略 第一节 信息控制策略的应用背景 …… 运用这一策略必须有一些基本条件,每一个条件都要具备充分的有利于企业的基础,这些条件彼此之间又互相联系制约。 比如,一些企业发现一款产品的确存在问题,而整改只需要三五天的时间,并且在整改后,并不妨碍消费者使用,这时候可以考虑控制信息。 此外,如果企业具备下面这样的优势,才可以考虑着手控制信息: 天时: 产品能够得到“冠冕堂

进度反馈慎用SendMessage

由于工作需要,编写了一个解析300M字符串的MFC小程序。为了显示出当前的解析进度,使用了MFC的消息: void WorkThreadFunction() {     UIWnd->PostMessage(WM_PROGRESS, BEGIN, NULL);     while(notEnd())     {         ......         UIWnd->PostMe

【黄啊码】php实现关注公众号自动回复消息(网上教程有大坑,慎用)

废话不多说,直接上代码 define("TOKEN", config("wx_token"));$wechatObj = new Wxapi();if (isset($_GET['echostr'])) {$wechatObj->valid();}else{$wechatObj->responseMsg();}class Wxapi{/*** 微信公众号验证*/public

EFCore 反向工程(DBFirst)----慎用

使用EFCore时一般推荐code first,也就是先创建实体类,然后根据实体类生成数据表。但是有时候数据表已经存在,这时候就需要基于数据库表来创建实体类。 首先已经有数据表,显示如下: 下载依赖包: Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Tools 控制台执行如下命令: S

oracle connect by很强,但是要慎用,不然有你哭的时候

前言:         第四次工业革命,带来了科技的巨大变更,同时带来了很多半结构化数据,很多数据会做成集合、JSON的形式存储到数据库中,通过ETL工具我们将这些数据抽取到数仓里面,我们怎么进行分析呢?这些数据类似这样的保留在数据库里面。比如下面所示,同一个检测项目由多个人负责检测,因此会通过"\" "/"等等分隔符一次性将数据录入字段里头,方便用户进行数据维护,当然这些数据对分析人员提出较高

Insert into select请慎用!

事故发生的经过 由于数据数据库中order_today数据量过大,当时好像有700W了并且每天在以30W的速度增加。所以上司命令xxx将order_today内的部分数据迁移到order_record中,并将order_today中的数据删除。这样来降低order_today表中的数据量。 注意 由于考虑到会占用数据库I/O,为了不影响业务,计划是9:00以后开始迁移,但是xxx在8:00的

慎用Insert into select!这里有坑!

Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,女同事发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了

Insert into select语句慎用、force index强制使用指定索引

前言 Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用insert into select实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太

AtCoder题解——Beginner Contest 161——B-Popular Vote。血的教训,算法中慎用浮点数比较

简单记录一个原则,慎用浮点数比较。 问题由来 给一个朋友忽悠了,去写讲解一下 AtCoder Beginner Contest。既然是讲课,备课肯定是必须的。 题目链接为https://atcoder.jp/contests/abc161/tasks/abc161_b。 Problem Statement We have held a popularity poll for N item

用node版本管理工具 n 来回切换高低node版本时遇到的问题,注意慎用n

以前就在电脑上安装了n 模块,但是一直没怎么使用它,昨天心血来潮,想要来回切换一下node版本,结果出大事了。先上个图, 如上图就是不正常的表现,我按q退出去后,在命令行中输入node -v,显示还是切换过的版本,可是我明明用n切回以前的版本了,接着我输入npm -v,显示npm:command not found,这下我慌啦,百度谷歌了一圈,有说把node彻底删除干净,重新安装的,有说n的安装

Flutter image_picker 慎用!

image_picker插件是一个flutter中很好的插件 其功能包括: 拍照、图库选择图片 其中拍照功能的实现方式是调用系统相机 调用系统相机有一个优点也有一个缺点 优点就在于: 不用于自己写ui 且相机的各项参数都由系统调教好了 缺点也很明显: 使用系统相机,在安卓系统中,存在杀后台的情况,即调用系统相机后,调用的应用被迫进入后台,然后被系统给kill掉了,就会出现闪退的情况, 解决方案:

注意ES的默认排序和慎用_doc排序

这两天遇到了一个坑,就是ES的默认排序,对于我们有时候直接把ES当数据库来玩的时候,往往返回的结果的_score都是0, 而ES默认的排序,恰恰就是按 _score的desc。   那么,在全部doc的_score 都是0分的时候,分页就会错乱,有时候出现在第一页的结果很可能会重复出现在第二页,第三页 (取决于当时shards 返回的结果的顺序。 好了,有些人会觉得,为了提高性能,又不c

Archlinux回滚系统(回滚有风险,慎用)

回滚前历程 前些天在Arch上配置docker,nvidia-docker使用一直报错,以为是显卡驱动的问题,于是就大意地升级了下系统(sudo pacman -Syu),然后很悲催地升级完后还是不要好用,原来的系统内核是5.5.11,升级之后变成了5.8.12。同样地,软件包也跟着一起更新了,nvidia驱动由之前的440.64变成了450.23,cuda由之前的10.2变成了11.1。 为

Android 慎用GsonFormat,小心入坑!

1.安装:请自行在Android stdio中下载此插件并安装。 2.使用: 3.问题: 一直以来,我都十分喜欢这个工具,但是它有一个巨坑的地方。比如: 用工具生成的类有有static出现,在这里并没有它存在的意思,它的存在导致我的程序出错还不报错。我们要知道,内部类出现静态类,静态类分配内存就不一样,赋值也不一样。希望今后使用这个工具时候,可以谨慎点,检查下类中代码在写其他代

再次提醒!!!慎用rm -rf!!!!

今天差点出事,吓得一身冷汗.. 本来是想删除某个文件夹下面的所有文件 执行命令: rm -rf /* 是的,你没看错!就是 /*! 辛亏zsh貌似会忽略-f参数,还是会提醒我 不然后果不堪设想,后怕啊 其实正确的写法是:rm -r ./*,主要注意空格的位置! 再次提醒大家,慎用! 这里再记录下这个命令的作用: rm 删除文件、文件夹 -r Recurve的首字母,递归的

linux设置开机启动慎用nohup

我机器ubuntu9,设置开机启动我的应用程序,这个大家都知道只要在/etc/rc.local中加上一条shell启动命令就可以了。 但我确碰到了一个奇怪的问题:无法启动我的应用程序。 由于我的程序是java写的,一直怀疑是classpath问题,检查多次没发现问题,网上搜了好久也没结果。 我的脚本/usr/local/startapp.sh是这个写的: #!/bin/bash #由于想让其后台运

C++ string的c_str函数极易产生bug, 有陷阱, 请慎用---强烈建议用strncpy来拷贝c_str

string的c_str函数很怪异很危险, 先来看一个简单的例子: #include <iostream>#include <string>using namespace std;int main(){string s = "abc";const char *p = s.c_str();cout << p << endl; // abcs = "xyz";cout << p

慎用Boolean

Java是面向对象,但是并不是全部面向对象就是好的。 Java中有个Boolean对象,对应boolean类型的数据,两者几乎相似, 但是有一点不同,就是Boolean是对象,对象可以赋值为null,而boolean数据不可以。 有段代码是这么写的 public Boolean checkPermission(String name,String oper){ Boolean resul