“我”为什么做测试 本篇所指的“我”,其实不光是作者本人,而是大多数从业软件测试的人员。 什么是测试?其实关于测试的名词解释,作者不再进行阐述。...为什么做测试?...也有一些是因为不满足当前自身行业的发展,被迫或主动的选择了测试,比如之前是做开发的,但是由于自己的开发能力不足或是不想天天加班等,才会转到测试。...,如何做的等。...本篇其实没有所谓的指导思想,看似说了一些,但好像什么都没有说,只是单纯的聊聊一些感受,也是想让同行反思一下,为什么要做测试,如何让自己的测试职业发展更好。为什么说如何让自己发展更好?
问题无处不在 我: “大佬,帮我看看这个问题错在哪了?” 大佬: “你的代码呢、你的错误提示呢?” 我: “好的,我发给你” 大佬: “。。。...再见” 留下一脸懵逼的我 如何解决问题 最简单的方法是根据错误提示,查看对应位置的代码,Pycharm会提示具体是哪一行代码有问题,并抛出错误。...// 别人笑我忒疯癫,我笑自己命太贱; // 不见满街漂亮妹,哪个归得程序员?
Cancer by Expression Profiles Analysis”,链接如下:https://pubmed.ncbi.nlm.nih.gov/33688252/ 文章给出了清晰的数据分析流程图 没什么难度...当整个流程走完之后,我发现,我的上下调基因的基因和文章结果是反的!我的第一反应是:分组错了??!...因为,这是在跑流程时特别要注意的点,所以我每次都是反复确认,而且流程中每一步都设置了代码进行检查以确保分组无误~ 难道这个数据是有什么玄妙吗?...还是说因为我背景知识了解的不够,所以导致没做什么前期处理呢?顿时心中跑过1万个自我怀疑...... 原因可能是 在分析过程中,还是有一点忐忑的,无形之中,总感觉对数据很不了解,难以产生联结。...左边,是文章中给出的,差异top10的上下调基因的logFC热图;右边,是我选取其中一个数据集GSE27447,做的表达量热图。
比如,如果我们想查看系统中的进程监听了哪些 TCP 端口,则可以使用下面这个命令 netstat -napt: 接下来,小林带大家分析,为什么我说 man 手册写错了 netstat 命令中 Recv-Q...如果你想知道 TCP 半连接和全连接溢出会发生什么?可以看看这篇文章:TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?...最后 看到这,大家肯定会说:小林你太强了吧,为什么对 Linux 内核源码那么熟,这都能分析出来。 其实,我并没有熟读过 Linux 内核源码啦,其实只要大家有好奇心,其实你也能分析出来。...我是这样一步一步查资料分析的: 先网上查下 netstat 源码,看是根据什么信息打印 Send-Q 和 Recv-Q,然后看到网上有人说是读 /proc/net/tcp 这个文件; 接着,就网上查 /...你看,其实我也是通过「搜索」一步一步分析出来的,其实并没有什么难度。 只是我比较细节一点
过了几天,我想去看看有没有人看了我的文章真的去提了个PR,发现仍然是没有,心想,可能是大家太忙(懒)了吧。...测试一下 先编译一下,咚,报错了:import cycle not allowed! [p2.png] 啥意思呢?循环依赖了!...这瞬间勾起了我的兴趣,如果我让它运行时形成依赖环,会怎么样呢?...milliseconds. func CurrentTimeMillis() uint64 { return CurrentClock().CurrentTimeMillis() } 这里的CurrentClock()是什么...这个实现是什么时候注入的呢?
关于MVCC的原理,在《我想进大厂》之mysql夺命连环13问写过一次,但是当时写的其实并不准确,这个理解可以应付面试,帮助快速理解,但是他的真正实现原理我想再次拿出来说一说。...简单理解版 以下先引用我之前写过的那篇中的内容,可以快速理解,建议先简单看看。 要说幻读,首先要了解MVCC,MVCC叫做多版本并发控制,实际上就是保存了数据在某个时间节点的快照。...这样做是为了保证事务读取的数据是在事务开始前就已经存在的,要么是事务自己插入或者修改的。...总结 我是艾小仙,我承认我浪了,我之前居然还想浪,我以为年没过几天,结果发现最近一次技术文更新是在2月2号。 我哭,所以,我肝了3个小时,痛定思痛,结束了我的短暂的王者生涯。...我要回到正常更新的频率中来。 - END -
书接上文:当我做 hackathon 时我在做什么(1)。 前文中提到,我做的第二个项目是个可视化的项目,名字叫 deneb。deneb 是天鹅座的一等星,也是夏季大三角和北十字两个星群的端点之一。...嗯,deneb - vega - altair,聪明的你一定想到了我为什么起这样一个名字: ? 为什么是 vega-lite? 在数据可视化这块,我自己走了不少弯路。...如果你需要能够对可视化的图表做简单的动画,plotly 也能胜任。 我一度以为 plotly 是我的真命天子,直到有一天我敲开了 altair [4] 这个潘多拉魔盒。...第五次撞墙:IElixir 和 jupyter notebook 完成 ex_polars 就像打完我自己的淮海战役一样,做 deneb 的过程是摧枯拉朽,几乎不费太大的力气。...最后,我成功解决了问题,并给 IElixir 的作者提交了一个 PR(还有什么比一个对已有开源项目的 PR 更能彰显 OSS-a-thon 的意义的?): ?
首先,互联网上有很多镜像,我给他们定义了2种分类: 1. 操作系统镜像(包括常见的Centos,Ubuntu,Debian,Alpine,Busybox等)。.../bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4… 204MB 总结来看,就是直接把文件追加到容器里面,然后一个CMD里面加了个bash,至于这个文件里面有什么内容呢...其次我们可以分析那些中间件镜像是如何做的。...然后其他中间件镜像,是不是可以在这个操作系统镜像基础上接着做呢?...2.这个是虚拟机生成的镜像,所以和标准的Centos7.9(200M)的差距还是很大的,当然我这个操作系统里面自带的东西也比标准的镜像更多。
我本来计划为 quenya 项目支持 GRPC backend,之前已经有了思路,但一直没时间做。...当我写到 groupby_apply 时,我发现:额错了,额真滴错了。...这是个非常合理的需求,然而 rustler 并不允许我这么做。...(s_eq_u8, u8, eq); 然而,rust 编译器又一次让我撞墙。编译器给出的错误信息不够直白,说的净是那些什么 TokenStream 啦,什么 Group 啦,之乎者也让人看不懂的错误。...我这辈子也没写过这么多无趣的代码。什么 TMD 叫搬砖,这 TMD 就叫 TMD 搬砖。
我的方法论 清晰可见的目标 我喜欢在做一件事情前把目标能够表达清楚,然后脑海里有一个当我成功达到后这东西该长什么样的草图。...我的开发工具箱 所谓「工欲善其事,必先利其器」,好的工具是提升效率的保证。 Marp 这两年我做 slides,基本都是使用 Marp。...那位问了,这么简陋的工具,能画什么样的图形?...比如我做的这个: ? 工具本身并没有限制我。...其实像 excalidraw 这样的好工具反而能解放我的大脑,因为我不再需要焦虑用什么样的图形才能更好地表达(使用 visio 或者类似工具时我总有类似焦虑),我也不再需要焦虑该为图形配什么样的颜色,因为
我非常擅长电脑编程,我童年的逃避最终成为了我职业生涯的基石。在某种程度上,编程给了我一种掌控感,就像是我的生活中所缺少的。 灵感来自一位火箭科学家 我九岁的时候,我的世界彻底改变了。...我记得我问,“你在玩什么游戏?” “我还没给它起过什么名字呢,”他回答。我不明白他的意思。 他为什么要叫它什么呢?然后他解释说,这是他自己用BASIC语言写的。 我的大脑爆炸。...我喜欢软件工程师的工作,但我的劳动成果是公司的。我不像我朋友的父亲那样,把我置于他的庇护之下。 我不高兴,但与此同时,我的岳父一直告诉我,如果我百分之百地喜欢我的工作,我就会付钱在那里工作。...他告诉我,除了经济上的回报,工作不需要提供任何东西,我的经历也证实了他的观点。 我的雇主在推销产品,让股东和董事会成员满意。这就是世界的方式。为更大的善做贡献是你在业余时间或退休后做的事。...问问你能做什么。 我绕了一圈。这个从火箭科学家那里学会了编程的男孩现在是一名高级软件工程师,他正在帮助年轻人学习编程的诀窍,以便他们能够挑战计算机科学的边界。
我也有点懵,第一反应就是 RedisTemplate 和 StringRedisTemplate 会不会用的两个不同的 Connection,导致相同的 Key 一个能查到,一个不能查到。...现在的问题就剩下为什么 StringRedisTemplate 的查询可以返回数据,RedisTemplate 的查询却不能返回数据?...于是我用 redis 客户端查看了存储的数据格式,发现这个 Hash 的格式是字符串。 ?...这也就是为什么用 StringRedisTemplate 可以获取到,估计存储的时候就是用的 StringRedisTemplate。...然后就能获取到了,个人感觉这个还是一个使用的问题,可能大家都以为这 2 个 RedisTemplate 是一样的,没什么差别,所以才导致了本文出现的问题。
这种似乎失控的编码方式,让我想到了邪恶的“GoTo”语法,很多编程语言里都有它, 但是都不建议你用它。因为邪恶的不是GoTo本身,而是滥用GoTo的我们。...题眼基本表达了我的论点,随着本文的深入会对该论点做加一个约束条件。现在容我开始论证它~ 都说抛异常很重,到底重在哪里? 不整虚的,我们用测试数据来说话。...当接口应答只是true/false的时候,抛异常会是个很匪夷所思的设计; 当下层方法不断的抛出各种异常,然后汇总到拦截器里处理时,或者需要对异常拆开做判断,再自定义成合理的应答话术;或者将好不容易区分开的不同异常...我的态度 任何的系统架构设计,都是在不断的在做天人交战,利弊权衡。鲜有绝对的对与错,只有在当前组织环境内相对的合理与不合理。对于异常用作流程控制这件事,我是投反对票。
com后缀的优势: 历史最悠久 2、全世界通用,热度最高 3、热度最高也就意味着大众识别度高 4、做好了就是自己的流量,不至于为他人做嫁衣,如果你用top,做好了会导流到com和cn,得不偿失。
前几天发了一篇《Java性能提升利器——本地缓存,你用上了吗?》,里面推荐大家使用Caffeine,但在使用的时候漏了一些步骤(对不起!对不起!对不起!)[卑微...
题目描述 女朋友,我错了。因为你惹女朋友生气了,女朋友让你写100遍 “我错了!”。请使用 for 循环完成该操作。 输入描述 无输入。 输出描述 输出 100 遍 “我错了!”。...代码讲解 下面是本题的代码: # 描述: 因为你惹女朋友生气了,女朋友让你写100遍 “我错了!” # 使用 for 循环完成该操作 # 输入: 无输入 # 输出: 输出 100 遍 “我错了!”...# 循环100次 for i in range(100): # 输出 “我错了!” print("我错了!")...输出 “我错了!”: 在循环体内,使用 print 语句输出 “我错了!”。 print("我错了!") 这样,在每次循环中都会输出一次 “我错了!”。...print("我错了!") 这个习题适合初学者,因为它涵盖了Python编程的基础知识,包括循环、range函数和print语句。帮助学习者理解如何使用循环实现重复的操作。
一般来说,麻烦的地方都是单细胞亚群的生物学命名啦,如下所示可以看到我在我们生信技能树视频号直播时候就是简单的分了大类,这个也是我常规的操作,代码在:(链接: https://pan.baidu.com/...pwd=a7s1) ,这样的话,很多看直播的小伙伴们就“如临大敌”,觉得做错了,很明显文章里面的给出来了两个不一样的髓系免疫细胞,但是我统一操作成为了巨噬细胞。...就算是髓系免疫细胞包括巨噬细胞,我演示的巨噬细胞少了一个亚群呀: 我统一操作成为了巨噬细胞 这个时候就回答了大家关心的另外一个话题了,降维聚类分群的时候设置的分辨率这个参数不高!...上面提到的Trem2基因表达量并不是说仅仅是在Trem2特异性亚群表达,而且因为它表达量要高于其它亚群,这就是为什么作者会把编号4的巨噬细胞亚群和编号8,13,17的亚群分开,这样的话,虽然说无限制提供分辨率确实是可以得到无限制多数量的单细胞亚群
但是最近我发现我对它们的使用一直有误解! 对useMemo的误解 请看下面的代码,即使用了useMemo,在isZero的没有变的情况下,第二个子组件还是重新渲染了!
你要感知到这个情况,告诉调用方“嘿,哥们,你传个null给我做甚"。...这种情况下,null是个”看上去“合理的值,例如,我查询数据库,某个查询条件下,就是没有对应值,此时null算是表达了“空”的概念。...(什么?想调用这个方法时,不记得之前实现该方法有没按照这个原则?所以说,代码习惯很重要!...解决这个问题的一个方式,就是使用Null Object pattern(空对象模式) 我们来改造一下 类定义如下,这样定义findAction方法后,确保无论用户输入什么,都不会返回null对象 public...{ action.doSomething();} 2、精简 ParserFactory.getParser().findAction(someInput).doSomething(); 因为无论什么情况
领取专属 10元无门槛券
手把手带您无忧上云