测试人员如何快速熟悉项目代码,是一个比较头疼的问题,作为测试架构师,有义务去解决这个问题,最近在为团队赋能的时候,做了三件事,来帮助团队成员快速熟悉业务代码,方便后期更好的做测试策略设计。...注:skywalking的使用,官网地址:https://skywalking.apache.org/ 02 在大体上熟悉了项目的核心组件后,接下来就是要看看代码了,如果直接查看源代码,也是件比较痛苦的事...那有什么办法可以比较好的了解代码呢? 在IDEA中,有个非常有用的插件,那就是SequenceDiagram,它可以快速生成时序图,让你看代码轻松许多。...生成的结果如下: 支持导出,也支持设置遍历深度,这图不管是用来自己熟悉代码,还是做代码评审、业务逻辑梳理,都是非常有用的。 注:SequenceDiagram直接在IDEA的插件库中搜索即可安装。...如果想阅读更多文章,请关注我的公众号。
引子 最近一直在用PyQT跟python-opencv做开发,正好需要固定阈值二值化,于是我就随手写下了如下的代码片段: image[image > t] = maxval image[image <...t] = maxval image[image <= t] = 0 else: image[image > t] = 0 image[image <= t] = 255 感觉这代码写的满分...,于是我调试的时候,输入一张灰度图像,只要我选择bin_type=0总是正确执行二值化,只要我输入bin_type=1就一片白色。...我测试了几张图像之后感觉有点怀疑人生了,逻辑这么好的代码,居然不正确执行! 真相让我崩溃 这个问题当时让好郁闷,感觉自己智商出问题了!...后来我还想起了很久以前,我从github上面下载有个别人的项目,他的代码里面也有类似的写法,我记得我当时调试发现这段代码不工作,因为当时项目代码很长,我就保存图像发现不正确,就用opencv-python
完整的代码有两千多行,我就不贴出来了,感兴趣的朋友可以自行查阅下,反正距离现在怎么也得快三十年了。...但是对其感兴趣的可能有不少人,包括我,所以将学习所得分享给大家。...,其他方式无法编写的小段代码里。...比如我了解到linux内核代码中,有关字符串操作的函数都是通过嵌入式汇编完成的,因为内核以及用户程序对于字符串函数的调用非常频繁,因此汇编代码就是为了提高效率,这过程就是以牺牲可读性和可维护性为代价的。...但是如果我们想研究和阅读一些底层代码的话,掌握汇编指令正是突破此事的根本。 对于基础的汇编知识,我也会边学习边分享给大家。
最近,来自 BBC 的一名资深软件工程师 Daniel Harper 使用 Go 语言成功模拟出了一个 CPU 的所有功能,并把自己的经历写成了博客,引起了人们的热议。...让我们看看 Daniel 是如何做到模拟 CPU 的: 几个月前,我实在不理解计算机如何在后台工作,也不清楚现代计算机的工作原理。之后,我读了 J....我不知道 L1/L2 缓存(cache)和 pipelining 是什么,也完全不确定自己是否理解 Meltdown 和 Spectre 漏洞论文,所以想要更深入地了解这些东西。...我的开发之旅 开发过程实际上只是阅读文本、查找图表、然后尝试使用通用编程语言代码(而不是使用为集成电路开发而设计的代码)来翻译。 之所以用 Go 语言来写,是因为我对 Go 了解一点。...无论如何,我最终编写出了四个程序,其中多数程序使用一些共享代码来绘制字体、获取键盘输入等。虽然与操作系统还有一定的距离,但它确实让我意识到一个简单的操作系统也可能提供一些服务。
利用cocos creator 3d做了个3d版的羊了个羊,文末“阅读原文”可体验。
从一开始学习python的时候,就一直不是很理解装饰器是个什么东东,再看了很多篇博文和自己动手敲了好多代码后,算是略有了解。 ...我理解的装饰器是: 在不改变原有函数调用的情况下,对其进行包装,使其变成另外一种函数来使用,一般的用途是 插入日志、性能测试、事务处理等。...Python装饰器学习 http://blog.csdn.net/thy38/article/details/4471421 2....Python装饰器的理解 http://apps.hi.baidu.com/share/detail/17572338 4....Python装饰器学习(九步学习) http://www.cnblogs.com/rhcad/archive/2011/12/21/2295507.html
大家好,又见面了,我是你们的朋友全栈君。 从链家网站爬虫石家庄符合条件的房源信息,并保存到文件,房源信息包括名称、建筑面积、总价、所在区域、套内面积等。其中所在区域、套内面积需要在详情页获取计算。...第一版是2019年4月份写的,当前已失效。 第二版是12月份写的。 第一版: #!.../usr/bin/python from bs4 import BeautifulSoup import requests def getHouseList(url): house =[]...第二版: 获取某个小区的房源信息,并写入excel。 #!.../usr/bin/python from bs4 import BeautifulSoup import requests import xlwt def getHouseList(url):
当然不能啦,对于我们这种小白来说最好是用最直白的语言进行描述。 从字面上我们是大概了解到是从一个服务器中调用另一个服务器中的方法,使用它提供的功能。...在我最开始接触RPC的时候,是在这本书中《PHP精粹:编写高效PHP代码》【(美)Lorna Mitchell,(美)Davey Shafik,(美)Matthew Turland著;彭冲,胡琳译】。...是的,我所从事的语言就是世界上最好的语言--PHP,222333哈哈。 在这本书中所介绍的RPC的实现方式是通过HTTP协议进行的。...在我上一篇文章中所讲的Web service(SOAP)也是RPC的一种实现方式。 ...3、总结 总的来说,我所写的这个例子是非常非常简单的,仅仅只是用来参考哈。当然啦,性能上肯定是鸡肋。在我自己做简单测试的时候,Ajax刷新返回数据都非常缓慢。
最近做的业务涉及到的 I/O 操作比较多,对于Linux上的 I/O 操作的优化 Zero Copy 早有耳闻,今天打算由上而下(从应用层到底层,当然并不会涉及到内核的细节)的研究一下这个问题。...什么是零拷贝 为了更好的描述 zero copy ,本文将以网络服务器的简单过程所涉及的内容展开,该过程通过网络将存储在服务端的文件中的数据提供给客户端。...所有对磁盘的读写操作都会通过这个统一的 cache。如果不使用直接 I/O,该功能不能轻易关闭。...这同时也极大的简化了代码,因为所有保持 cache 和文件系统之间一致性的逻辑现在都被放到了 OS 中,这样做比一次性的进程内缓存更准确、更高效。...这里给出了一个非常简单的设计:相比于维护尽可能多的 in-memory cache,并且在空间不足的时候匆忙将数据 flush 到文件系统,我们把这个过程倒过来。
CDN:(Content Delivery Network) 内容分发网络 是建立并覆盖在承载网之上, 由分布在不同区域的边缘节点服务器群组成的分布式网络 百度百科解释: CDN是构建在现有网络基础之上的智能虚拟网络...,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容, 降低网络拥塞。...CDN的关键技术主要有内容存储和分发技术 这是阿里云官网的例子,看完就明白了 从例子中可以了解到: 1、CDN的加速资源是跟域名绑定的。...2、通过域名访问资源,首先是通过DNS查找离用户最近的CDN节点(边缘服务器)的ip 3、通过ip访问实际资源时,如果CDN上并没有缓存资源,则会到源站请求资源,并缓存到CDN节点上。...这样,下次用户访问时,该cdn节点就有对应的资源缓存了 百度百科链接: https://baike.baidu.com/item/CDN/420951?fr=aladdin
不知不觉公众号已经有很多人关注了,小编先谢谢大家的支持~今天我们就来谈一谈我对RF的理解,因为前段时间换了工作,目前RF知识基本用不上了。...这里我还是推荐大家学习python,如果你先写java后写python,可能感觉不到python的方便,但是如果你先写python后写java,你就会立刻发现——java太麻烦了,这也是小编最近最深的感触...Robot…… 唯一的以不变应万变的方法就是加强自己的代码水平,接下来的工作中我涉及到的是倾向与Selenium方面的知识,过段时间还会有java的testNG部分,小编会慢慢的和大家分享这部分知识...放心,小编会加油的~ 今天小编的公众号可以开评论和打赏啦,哈哈,这也是为什么我大半夜不写代码给大家聊天的真正原因,嘿嘿 之前我们讲的是用RF测接口,接下来会给大家介绍另一种接口测试方法—...—纯粹的码代码,所以大家一定要抽空看一下python,大致的知识块就是: 1.
对于当时我一个小白而言完全是胡说一通,词不达意,搞得面试官一脸懵逼,现在想想那可能就叫尬聊吧……时隔两年在不断爬坑中对这个问题有了自己新的认识,今天趁着上午没什么事情,写下这篇博客,想到哪写到哪,谈一谈我所理解的前端...产品追求的是什么?说实话,我自己没有深刻去思考过这个问题。站在一个惯性的角度思考可以想到:一个产品为什么存在,他的存在能解决什么问题,他的用户体验好不好。这些才是决定一个产品的核心价值。...但是对于程序来说,却万万不能。因为一个细节的逻辑往往决定了整个大方向。举个例子:有一个需求,用户的作品需要提交审核,经过审核才可以让所有人看到。当产品经理交这个需求给你的时候,你能察觉到什么问题了吗?...6.对自己的程序有一颗艺术的心 有人说过,当需求影响到代码扩展性的时候,会首先砍需求,而不是改代码!在一定程度上,我是认同这句话的。...,如果你不能证明是这些问题导致项目延期,这个锅你必背无疑,唯一的方法就是--à口头确认--à发email到责任人确认--à通知上级,千万不要觉得这个麻烦,出问题的时候会比这个更麻烦的, 写不动了,以上就是个人爬坑后对前端的一些理解
1、MVP框架说明 MVP的通用解释如下: View 对应于Activity,负责View的绘制以及与用户交互; Model 负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等; Presenter...负责完成View于Model间的交互,主要起到桥梁作用,是一个中间协调人的角色。...从代码实现的角度,简单的来说MVP的关系,V调用P的方法来实现某个用户具体行为的操作(比方点击某个按钮代表的点赞),并提供接口给P来更新界面;P通过M获取或者提交数据做相关的业务,M可以提供同步或者异步的方法来完成...-> 同步数据获取接口 可以 异步返回结果 <- M MVP的作用是显而易见的:代码结构清晰、易维护...另一方面Model层可以封装复用,可以极大的减少代码量。
之前一直想写一篇关于高可用的内容,但一直没一个契机,最近被一个真实的案例坑的够惨,关键是发现对于高可用彼此竟然有比较大的理解差异,然后就总结一下自己想象中的高可用,也是自己对高可用的理解,算是分享和交流吧...后台表示,此类问题纯属偶然,而且目前我们同时封多个接口的目前只有这一个。经过这次梳理不会再有问题。 我瞬间就蒙逼了!!!...这不是高可用,是隐藏bug的高级手段。 具体的,高可用对于功能的使用者来说,意味着平台的异常不影响或者尽可能小的影响使用者。...而且即使功能提供者无法即使响应,平台自身有一些自动切换、故障隔离、进程重启、代码逻辑等策略自动完成故障屏蔽或者自愈,这个过程中几乎不影响正常的使用。...最重要的一点,高可用体现在平台有问题的时候,对于功能使用者来说是无感知的,但是对于功能的提供者来说是第一时间通过测试、告警等方式了解到问题的存在。同时,功能提供者对于故障的处理的时机并不重要。
XLNet和Bert 首先讲讲我对XLNet和Bert比,有什么异同?有什么模型方面的改进?...的理解(该部分主要拜读了@张俊林博士的解读) 1.1 自回归语言模型 第一次听到自回归语言模型(Autoregressive LM)这个词。...那不妨换个思路,我把句子中随机一个单词用[mask]替换掉,是不是就能同时根据该单词的上下文来预测该单词。...但是我们在Fine-tune的时候总不能也随机组合输入的句子吧,那这和加了[mask]有啥区别呢?别急,继续往下看。...以上我的理解都是源自两位大牛的解读,理解的比较浅,有兴趣的小伙伴建议阅读原文章: https://www.zhihu.com/question/330307904/answer/721986216 https
一、什么是幂等 幂等来源于数学概念,幂等元素被重复运算多次,依旧等于自己,即f(f(x)) = f(x); 程序世界里对于幂等,有一个很常见的描述是:对于相同的请求应该返回相同的结果,所以查询类接口是天然的幂等性接口...我更赞同这种定义:幂等指的是相同请求(identical request)执行一次或者多次所带来的副作用(side-effects)是一样的。...目前大型的系统都会引入消息中间件,作为大量请求的缓冲,同时也会将一些异步逻辑使用消息中间件实现。消息中间件一个很重要的功能就是有限资源内保证消息消费成功。...所以实现接口的幂等是每一个程序员必须掌握的技能。 三、怎么实现幂等 ####3.1 识别相同请求 从对上面的分析,可以知道幂等的一个重要逻辑就是***识别相同请求***。...v2版: 上面这个方法依赖于分布式锁的正确性,当分布式锁失效时,依旧存在幂等失败的情况。
总述 TCP 是面向连接的协议。运输连接是用来传输 TCP 报文的。TCP 运输连接的建立和释放是每一次面向连接通信中必不可少的过程。因此,运输连接有三个阶段,即:连接建立,数据传输和连接释放。...(1)要使一方明确知道对方的存在。 (2)要允许双方协商一些参数(如最大窗口值等)。 (3)能够运输实体资源进行分配。 TCP 的连接建立(三次握手) ? 如上图所示,上图画出了 TCP 的连接过程。...假定主机 A 运行的是 TCP 客户程序,而B运行的是 TCP 服务器程序。最初两端的 TCP 进程都处于 CLOSE 状态。图中在主机下面的方框中分别是 TCP 进程所处于的状态。...TCP 规定,SYN 报文段,不能携带数据,但要小号掉一个序号,这时 TCP 客户程序进入 SYN-SEND(同步已发送)状态。 B接收到连接请求报文段后,如同意连接,则向 A 发送确认。...请注意,这个报文段也不能携带任何数据,但同样要消耗掉一个序号。这时,TCP服务程序进入 SYN-RCVD(同步收到)状态。 TCP客户进程收到B的确认后,还要向B确认。
JavaScript开发中,作用域算是难点和一大核心,作用域的理解很深,我可能会另外再写一些,先写一下目前为止理解到的层次。...函数有一个作用域链,执行的时候从内向外层层寻找。...在执行方法前,作用域链是早就创建的。...,a已经为1替换成3了,再执行fun();就输出了3。...JavaScript中,函数声明是提前的,会移到顶部。
MVP框架的浅谈 最近部门变革,一口气招了5个新人,我们之前的ABC组也已经全部取消,重组拆分为研发/技术支持/新手村,我暂时分在研发组,负责音乐/视频代码的重构,代码重构的目的一个是为了适配安卓9.0...,一个是重构代码框架结构,降低耦合,以便日后降低对音乐/视频代码修改难度,还有一个更远期的目标是能通过换壁纸的形式,直接实现新UI; 我对MVP框架的理解 ?...,三个部门各司其职,View只负责控件的控制,Module负责处理逻辑,Presenter是个中间纽带传话的关系,为了方便,现在我的音乐做法是将Module和Presenter合并起来,将逻辑层与显示层区分开...} interface Presenter extends BasePresenter { void itemclick(int position); } } 代码十分通俗易懂...,MvpPresenter就是这些武器的使用秘笈 ? ,运行起来的流程就是机器人拿起狼牙棒,看了武林秘籍后,从此称霸武林 ? !
我很喜欢问的一个问题是:“解释一下 Twitter 源代码的前十几行”。 我认为这是一个很简单的测试,可以借此了解应聘者对前端基础知识的掌握程度。本文列出了这个问题的最佳答案。...我打开 Twitter.com,点击查看源代码并分享我的屏幕,然后要求他们逐行进行解释,他们想说多少就说多少。...2 第 2 行: 这一行代码可以告诉我应聘者是否了解可访问性和本地化的问题。...12 更多有趣的代码 我一直很喜欢玩浏览器的检查器工具,看一看网站是如何制作的,我就是因为这个想出了这样的面试方法。尽管我自认为算是语义 HTML 方面的专家,但每次这样做时我都会学到一些新东西。...因为 Twitter 主要是一个客户端 React 应用,所以源代码只有几十行。即使这样还是有很多东西可以学!在 Twitter 的源代码中,还有一些更有趣的行,我留给读者做练习。
领取专属 10元无门槛券
手把手带您无忧上云