测试人员如何快速熟悉项目代码,是一个比较头疼的问题,作为测试架构师,有义务去解决这个问题,最近在为团队赋能的时候,做了三件事,来帮助团队成员快速熟悉业务代码,方便后期更好的做测试策略设计。...01 项目比较复杂,有众多的微服务需要关注,刚进入项目组,没办法快速了解有多少应用,他们的调用关系如何。于是尝试引入skywalking,来快速了解每个大功能可能涉及到的服务(为什么不直接问开发?...为什么是skywalking呢?因为它对代码没有业务入侵(这点非常重要,所以哪怕它粗略些,也能接受)。...那有什么办法可以比较好的了解代码呢? 在IDEA中,有个非常有用的插件,那就是SequenceDiagram,它可以快速生成时序图,让你看代码轻松许多。...如果想阅读更多文章,请关注我的公众号。
大家好,我是小林。 很早之前写了一篇图解虚拟内存的文章:真棒!...20 张图揭开内存管理的迷雾,瞬间豁然开朗 最近想多写一些内存管理的文章,这次我们就以 malloc 动态内存分配为切入点,我在文中也做了小实验: malloc 是如何分配内存的?...如下图: 什么场景下 malloc() 会通过 brk() 分配内存?又是什么场景下通过 mmap() 分配内存?...我在 maps 文件通过此 1 字节的内存起始地址过滤出了内存地址的范围。...free() 函数只传入一个内存地址,为什么能知道要释放多大的内存? 还记得,我前面提到, malloc 返回给用户态的内存起始地址比进程的堆空间起始地址多了 16 字节吗?
说实话技术难点有限,但不同项目有不同项目的坑点,每做一个项目也在尝试不同的解决技巧.好在我的习惯是每做一个项目我都会把所有的东西能封装就封装一下,以便下次直接拿来使用.而这在日后我的工作中发挥了不可估量的作用...而且这里面有很多我想做的东西,自我实现空间更大,爬虫,数据分析都能玩。...我心里无数次在想我是不是该抓住这波机遇来焕发自己的职业第二春.有了这个想法我就有自己的信仰,也确定了自己想做的事情,我想在Python上做些事情。...最近一段时间开始在做了Python方面教程,但我觉得我花的精力还不够,所以会在以后的日子多下点功夫。...最近几天和一些朋友搞互推,我发现很多人都喜欢我这个公众号,说明其实很多人想来学Python,但他们找不到比较系统的学习资源,各种资源都很多,没有形成一套体系,有鉴于此,我的公众号定位基本就是这样:Python
折腾 这几天,由于我的博客备案好了,有很多服务商可供我选择,于是,我从UCloud折腾到壹盾安全再到腾讯云,就这样,度过了6天(宝贵的寒假时间)。...过程 折腾的过程是很煎熬但有趣的,我买了1T的UCloud云分发,然后,我以为完美适配我的站点,没想到,出现了这样的问题(可能是我自己折腾错了): 初次使用云分发 一、保存主题设置无法正常保存 二...、配置https后显示的他人站点 三、云分发post仅支持16k 切换到壹盾安全后,出现了: 一、域名没过白(自己的锅): 导致一直reset 二、有时候打得开有时候打不开 (应该是源站和节点有冲突...) 然后我就切换到了腾讯云的cdn 一切安好 这些内容,折腾到1.25 o(╥﹏╥)o 现在 小屁的博客采用: 腾讯云的CDN+利用UCloud云分发自建的cos源+国内服务器 ps:请不要恶意攻击本站点
当然,充电的手持小风扇或者电蚊拍也可以,不过略显奢侈。毕竟是便宜货,所以,超级快充什么的就不要想了。 主要特性如下,懒得手打,截个图: ?...摘几条我觉得还可以的: 同步开关充放电 - 边充边放 自适应充电电流调节 -不用担心调节充电电流 支持1/2/3/4LED电量显示 - 哇塞,还有显示!...原理图比较简单,只需要几个简单的外设,就能做个移动电源出来,而且是带照明功能的那种哦~~~ 数据手册里有详细的说明,LED数量是可调整的,每种方案都有原理图介绍。 ? 甚至,连BOM都给你提供好了。...唉,适合我这种懒人~~~ ? 由于之前做小车的缘故,刚好我手头有几个闲置的锂电池,于是搞了个小板子。外形长这样,凑合吧! 不得不说,LCEDA的3D预览功能越来越强大了,看着就舒服。...“宝,我今天做了个充电宝!” “什么宝?” “做你的臭宝~~~”
此时,A 和 B 发生以下对话: A:我不知道 C 的年龄,我知道你不知道。 B:原本我不知道的,现在我知道了。 A:现在我也知道了。 那么,请问 C 的年龄是? ---- 2....解题关键 1、我知道你不知道的含义: 这句话的含义是:根据我的现有信息,可以知道你未取得命题的充分条件。...更通俗的说法是,我不知道你现在是什么情况,反正一定不是那个可以推断出结果的状态; 2、“唯一性” 隐含的充分条件: 有 36、46、57 这三个数,假设已知目标数的个位数是 7 ,那么很明显这个数就是...A:我不知道 C 的年龄,我知道你不知道。 首先,A 说 “不知道 C 的年龄”,说明十位数是不唯一的。...为什么 A 敢断言:“你手上的个位数一定不是 7 和 8” 呢?一定是 A 手中的十位数不是 3,也不是 5 的时候。
做这款插件确实有点吃饱了没事干的嫌疑,毕竟 maven-publish 已经提供了很好的支持,但一想到每次都要写一遍那一大段的 publishing 又会觉得,能省几行代码是几行代码,也看过其他人将 publishing...相关的内容抽离到一个独立的 gradle 文件中,想用的时候再 apply from 引入一下,但始终觉得,这种每次都要拷贝文件到仓库的方式显得太麻烦,就没有那种直接申明 GAV 就可以上传的嘛?...所以,我就想到了开发这个插件。...也不行,起初怀疑是自己的 workingDir 设置的有问题,所以,尝试了下新建文件的命令 touch a.txt 来看看是否能生效,试了下是成功的,在仓库的目录生成了 a.txt 文件,这就让我百思不得其解...为了不让自己思路进入死胡同,转而使用 eclipse 开源的 JGit 来实现,JGit 是一款 java 实现的用来操作 Git 的轻量库,本来想直接用 JGit 来操作整个 Git 流程的,但在用
大家好,我是鱼皮,今天来分享一下我最新上线的作品~ 相信大家都用过浏览器主页,在我小的时候,印象中的浏览器主页是这样的: 这类主页上有一堆无用的链接,看起来就很复杂,很多时候我都是被迫捆绑设置了这些主页...就拿我自己的使用习惯来说,像我在工作中经常要从不同网站去搜索内容,比如百度、Google、GitHub;有时还要用一些翻译啊、倒计时之类的小工具。这个时候我就要在不同网页中穿梭、跳转。...作为一个懒人,我不能接受这种麻烦。 所以我理想中的浏览器主页应该可以用最快捷的操作完成我常用的所有功能。 最好是我脑袋想到要搜索什么内容就能立刻打开网页哈哈,但是这个我实现不了。...那么除了脑控外,对于程序员来说,最快捷的操作是什么呢? 答案是:命令行!不需要任何鼠标操作,通过输入命令来操作网站、使用工具。 不过很可惜,现在网上并没有类似的网站。那咱就自己做一个吧!...后面我计划开发云端同步功能,你就可以跨设备地维护和共享自己添加的内容。 小工具 除了上面的基本功能外,这个网站最强大的能力就在于 —— 包容万物,我可以把所有实用的工具全部封装在小小的命令行里。
大家好,我是小林。 在前一篇文章我讲了下 MySQL 的全局锁、表记锁和行级别锁,其中行级锁只提了概念,并没有具体说。...那到底是什么场景呢?今天,我们就以下面这个表来进行实验说明。 其中,id 是主键索引(唯一索引),b 是普通索引(非唯一索引),a 是普通的列。...总结 这次我以 MySQL 8.0.26 版本做了几个实验,让大家了解了唯一索引和非唯一索引的行级锁的加锁规则。 这里需要注意的是,不同的版本加锁规则可能会有所不同。...我这里总结下, 我这个 MySQL 版本的行级锁的加锁规则。 唯一索引等值查询: 当查询的记录是存在的,next-key lock 会退化成「记录锁」。...这些加锁规则其实很好总结的,大家自己可以用我文中的案例测试一遍,看一下你的 MySQL 版本和我的 MySQL 版本的加锁规则有什么不同。 就说到这啦, 我们下次见啦!
不要用select * 自己用什么字段就查询什么字段,不要使用select *,当我们用了select *: 肯定用不了覆盖索引。 多余的字段会造成mysql解析负担。...,user_id不是有索引吗,而且我只获取5条数据,我通过explain也看到用了user_id索引。...明明user_id是有索引的,为什么还会全表扫?...* from user where CAST(user_id AS signed int)=100000; 复制代码 当mysql的索引字段做了函数操作时,优化器会放弃走索引。...全同步复制: 由于普通异步模式会导致出现slave丢失数据而master不知道的情况,进而引发主从不一致。
EventLoop是MS中的高频问题,理解繁琐,一步小心,步步入坑。 1、本文要点 1、EventLoop是什么? 2、任务队列是什么? 3、同步任务和异步任务? 4、微任务和宏任务?...... 2、EventLoop是什么?...queue中的回调函数,进入主线程执行 不断的重复这个过程,也就是常说的Event Loop(事件循环)了 3、任务队列是什么?...异步则相反,我并不强依赖你,我对你响应的时间也不敏感,无论你返回还是不返回,我都能继续运行;你响应并返回了,我就继续做之前的事情,你没有响应,我就做其他的事情。...也就是说我不存在等待对方的概念,我就是非阻塞的。
伪元素 伪元素能做什么?我们要他有何用?它能为我们解决什么问题?和其他的方法相比她有什么有点?我们为什么要使用它?...一个父元素的所有子元素如果都是浮动的,那么这个父元素是没有高度的;父元素并没有脱离正常的文档流,仍然占据正常文档流的空间; 如果这个父元素的相邻元素是行内元素,那么这个行内元素将会在这个父元素的区域内见缝插针...,找到一块放得下它的地方 如果相邻的元素是一个块级元素,那么设置这个块级元素的margin-top将会以这个父元素的起始位置作为起点。...3.计数器 动态的计算商品的数量,我们经常会借用js来实现;我想告诉css也能实现这个效果,他比js用起来简单多了 ?...那么为什么使用了 :after 伪元素之后就可以实现对齐了呢?
记录下我的学习笔记 标签模板化字面量 啊c这是什么东西听起来好厉害 不说都不知道,这是通过``定义的字符串带有的特性,我们光知道 `${}` 这种用法,却很少有人知道下边这种用法 `\n`....是有编译器的,我蛮怀疑人生的听到这个 L、R代表左侧和右侧,什么玩意儿的左侧和右侧呢?...其实还是有区别的,不知道有没有老哥踩过类似下边这种代码的坑: let max = maxWidth || preferences.maxWidth || 500 当我们认为maxWidth为0是有效的情况下...我尝试了一下,是意外之喜没错了。 ---- 创建对象之Object.create() 这种创建对象的形式和正常创建有什么区别?...在JavaScript中Date、Array这些内置类(然而往底下纠的话,原来这些都是构造函数,震撼我一整年)你也肯定耳熟能详。如果你还不知道什么的原型,往下走看一下"什么的原型链"然后回来看看。
记录下我的学习笔记 原生JS如何获取父节点?...element.parentNode sort()函数详细 sort函数蛮常用,但是我的开发日常也仅限于sort(),还是有必要详细陈列 sort可以接受一个函数 sort((a,b)=>{...return a-b; }) a\b是什么嘞?...我尝试了一下 var array=[-1,1,3,4,6,10]; array.sort((a,b)=>{console.log(a,b);return a-b;}); 1 -1 3 1 4 3 6...---- Promise的then 我想你对于 promise .then(()=>{ console.log('success'); }) 蛮熟悉 谁知道这玩意儿居然有第二个参数!
半年前我加入一个刚刚拿到 A 轮资金的创业团队负责 iOS 项目。早期的时候公司生死未卜,只追求快速迭代找到一个正确的方向。这种早期默默无闻的团队也没什么工程追求,就是写的快就好了。...我之前思考过团队文化是什么,怎么形容团队文化。后来看到一个说法感觉挺贴切。文化是空气,无处不在。...团队内遇到的问题是,很多成员不理解这项工作背后的价值。很容易就觉得我早上没有推进项目进度,只是在坐在那里不知道在看什么。觉得我 commit 的代码不多。最后我获得了团队“代码最少产出”奖。...对于我个人而言,其实不搞 review 我肯定更轻松。这个功能我肯定能把控所有细节,这样写只是不好而已,也不是不能用。我也大可以不对他们解释为什么这样写是不好的。...只要让他们按照我的 comment 改就可以了。 但是吃力不讨好的坚持是为了什么? 我刚工作的时候,出去旅游路上遇到一个大学教授。闲聊起来我说我请教你一个问题,中国古代的鞋子,会把花绣在鞋底。
我之前思考过团队文化是什么,怎么形容团队文化。后来看到一个说法感觉挺贴切。文化是空气,无处不在。...常看到工程师讨论这些开发者功能的入口要藏在哪里,有的说在某个文本框输入特定字符,有的说在某个角落里点几下什么的。开发者面板的入口我选择配置在 universal link 里。...团队内遇到的问题是,很多成员不理解这项工作背后的价值。很容易就觉得我早上没有推进项目进度,只是在坐在那里不知道在看什么。觉得我 commit 的代码不多。最后我获得了团队“代码最少产出”奖。...对于我个人而言,其实不搞 review 我肯定更轻松。这个功能我肯定能把控所有细节,这样写只是不好而已,也不是不能用。我也大可以不对他们解释为什么这样写是不好的。...只要让他们按照我的 comment 改就可以了。 但是吃力不讨好的坚持是为了什么? 我刚工作的时候,出去旅游路上遇到一个大学教授。闲聊起来我说我请教你一个问题,中国古代的鞋子,会把花绣在鞋底。
记录我的学习笔记,本篇之前都是JavaScript相关的内容 prototype和proto的灵活应用 想必时间戳的各种转换需求大家见到的不算少,有时候封装一个方法非常有必要。...使用上边的方法你会发现,你可以调用一个实例化Date对象的format方法,但是Date.format()是行不通的 这是自然的,想做到Date.format这种看着很像静态方法的操作(实际应用场景中其实没有所谓...当然我们可以用bind函数硬修改this的作用域,这是我觉得非常实用的函数。...return this.apply(obj,arguments); } } 复制代码 这应该是我能想到的实现 bind 最少代码的形式; new绑定 在js中,并没有所谓的类,JavaScript...,而这样一个箭头函数的this实际上并不存在,箭头函数的this来自于它的上一层作用域
工作环境发生变化 我从事Android开发的前三年只在一家公司待过,每天都做着几乎相同的工作,做的项目也是较为简单的小项目,一两个人就能承担的应用开发,用的也是相对简单,没有什么核心竞争力的技术....更让我无法适应的是它那非常慢的工作节奏,一周的工作半天就完成了,剩下的时间完全不知道做什么...真的是无事可做....创业公司的坑虽然不少,不过这对我们个人的成长还是非常有价值的.在创业公司的这一年,我做了很多普通程序员这一辈子可能都无法触及的工作内容,也积累了很多人生哲学. 1.应用开发框架的搭建. 2.产品需求讨论...帮助(指导)他人的能力. 团队建设和管理的能力. 这也是为什么我去年写了那么多经验感悟文章的原因.而上面的这些能力,很多是仅仅靠撸码是无法获取到的....大公司产品的功能较为复杂,碰到一些没人遇到过坑也是常有的事. 大公司对项目的风险一般是零容忍的:宁可不做也不能冒风险. 这也是为什么很多大公司不愿意采用新技术,而是选择沿用之前成熟的技术的原因.
我的邻居小路入职三年,脾气虽有点儿急躁,但工作还算勤勉。 他近来闷闷不乐,总有意无意提起想辞职。我问出了什么事,他一脸委屈和困惑。 公司空缺了一个组长职位。他跟同事小李都努力争取。...说我没有契约精神,坏了规矩,给公司带来的潜在危害,比收益大得多。” 他很困惑,不是总说客户至上么?为了提升客户满意度,自发加班怎么倒成了过错?凭什么说我没有契约精神?...个人浅见,我觉得主要有以下三种心态: 我是金主爸爸,给钱了啊!给你们提点要求,难道不是应该的? 我就是试试,看看你们的底线到哪里。 我其实也不知道想要啥。...负责任地说,你若真那么做了,才是两头不落好。 一方面,从人性角度,客户会要得更多。另一方面,老板不会满意。何况,你自己的精力也并非无穷无尽。...两天后,师父搞定回来了,摇头对我苦笑,你啊,把客户都惯坏了。现在我一拒绝他们就说,那年轻人可啥都答应的,让我再把你派回去。 领导也语重心长告诫我,没什么可委屈的,你完全是自作自受。
最近研究了Golang Template 模板引擎,发现它自身提供的能力比较弱,很多常用的功能都没有,比如字符串替换、判断,base64加解密等等。...最开始的想法是通过Golang Template做一个开源项目,把常用的模板函数能力都实现了,但是又怕重复造轮子,所以就去Github上搜索有没有已经实现好的库,搜索了一圈没有找到(大家找到了记得告我我...没有找到就只能自己做了,在开始写之前,又想起来HUGO这个开源项目,我自己的博客就是用这个构建的。...HUGO为了支持博客的自定义,所以内置了很多强大的模板函数,既然这样,可以把HUGO的这些模板函数抽取出来,进行修改和增强,这样就可以形成了一个日常使用的工具库了。...然后周末晚上,夜深人静的时候,着手准备,最终花了近4个小时的时间,抽取了一个beta版本。隔了几天,又在一个夜深人静的黑夜,完善了相关代码和文档,最终开源到了Github上。
领取专属 10元无门槛券
手把手带您无忧上云