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

Defects启示 | 洞见

1947年9月9日,Grace Hopper发现了第一个电脑上bug。当团队Mark II计算机上工作,搞不清楚为什么电脑不能正常工作了。...经过深度挖掘,才发现,原来是一飞蛾误打误撞地飞到了计算机内部,从而引发了故障。从此,人们开始用“Bug”(原意是“虫子”)来称呼计算机隐含错误。...交互体验不佳:指用户使用起来不方便。譬如,电梯控制面板上“报警”按钮和“关门”按钮紧挨在一起,你是否经常由于”关门”而误触了“报警”按钮?...再比如,你在网页填写了一个长长表单,点击“提交”按钮后,系统提示输入信息有误,并没有告诉你错误哪里,你是会不耐烦地从头查阅,还是干脆放弃?...除此之外,每周项目内进行一次技术分享Session。 当然,以上两点只是基于A项目举一个例子。实际上,Defects还给了我们很多启示,比如,为什么项目老是加班?

67640

TCPIP协议簇必知必会十大问题!

1.1 IP地址 在数据链路层我们一般通过MAC地址来识别不同节点,而在IP层我们也要有一个类似的地址标识,这就是IP地址。...比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机。给主机一个处理错误机会,这 也就是为什么说建立IP层以上协议是可能做到安全原因。...原理是用类型码为0ICMP请 求,受到请求主机则用类型码为8ICMP回应。 ping程序来计算间隔时间,并计算有多少个包被送达。用户就可以判断网络大致情况。...ACK报文段,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1;当主机2也发送了FIN报文段,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,也没有数据要发送了,之后彼此就会愉快中断这次...另,慢开始“慢”并不是指cwnd增长速率慢,而是指在TCP开始发送报文段先设置cwnd=1,使得发送方开始发送一个报文段(目的是试探一下网络拥塞情况),然后再逐渐增大cwnd。

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

TCPIP你不得不知十大秘密

1)IP地址 在数据链路层我们一般通过MAC地址来识别不同节点,而在IP层我们也要有一个类似的地址标识,这就是IP地址。...给主机一个处理错误机会,这 也就是为什么说建立IP层以上协议是可能做到安全原因。 四、ping ping可以说是ICMP最著名应用,是TCP/IP协议一部分。...ping这个单词源自声纳定位,而这个程序作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0ICMP请 求,受到请求主机则用类型码为8ICMP回应。...ACK报文段,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1;当主机2也发送了FIN报文段,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,也没有数据要发送了,之后彼此就会愉快中断这次...另,慢开始“慢”并不是指cwnd增长速率慢,而是指在TCP开始发送报文段先设置cwnd=1,使得发送方开始发送一个报文段(目的是试探一下网络拥塞情况),然后再逐渐增大cwnd。

95661

15 张图, 把TCPIP 讲得一清二楚!

1.1 IP地址 在数据链路层我们一般通过MAC地址来识别不同节点,而在IP层我们也要有一个类似的地址标识,这就是IP地址。...给主机一个处理错误机会,这 也就是为什么说建立IP层以上协议是可能做到安全原因。 四、ping ping可以说是ICMP最著名应用,是TCP/IP协议一部分。...TCP/IP协议,TCP协议提供可靠连接服务,连接是通过三次握手进行初始化。三次握手目的是同步连接双方序列号和确认号并交换 TCP窗口大小信息。 「第一次握手」:建立连接。...ACK报文段,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1;当主机2也发送了FIN报文段,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,也没有数据要发送了,之后彼此就会愉快中断这次...另,慢开始“慢”并不是指cwnd增长速率慢,而是指在TCP开始发送报文段先设置cwnd=1,使得发送方开始发送一个报文段(目的是试探一下网络拥塞情况),然后再逐渐增大cwnd。

1.8K00

关于 TCPIP,必知必会十个问题

1.1 IP地址 在数据链路层我们一般通过MAC地址来识别不同节点,而在IP层我们也要有一个类似的地址标识,这就是IP地址。...给主机一个处理错误机会,这 也就是为什么说建立IP层以上协议是可能做到安全原因。 四、ping ping可以说是ICMP最著名应用,是TCP/IP协议一部分。...TCP/IP协议,TCP协议提供可靠连接服务,连接是通过三次握手进行初始化。三次握手目的是同步连接双方序列号和确认号并交换 TCP窗口大小信息。 第一次握手:建立连接。...ACK报文段,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1;当主机2也发送了FIN报文段,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,也没有数据要发送了,之后彼此就会愉快中断这次...另,慢开始“慢”并不是指cwnd增长速率慢,而是指在TCP开始发送报文段先设置cwnd=1,使得发送方开始发送一个报文段(目的是试探一下网络拥塞情况),然后再逐渐增大cwnd。

22730

TCP协议—三次握手四次挥手原理 三次握手四次挥手原理

1.第一次挥手:主机1(可以使客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2一个FIN报文段;此时,主机1进入FIN_WAIT_...那TCP为什么非要进行三次连接呢?谢希仁《计算机网络》是这样说: 为了防止已失效连接请求报文段突然又传送到了服务端,因而产生错误。...书中同时举了一个例子,如下: "已失效连接请求报文段”产生在这样一种情况下:client发出一个连接请求报文段并没有丢失, 而是某个网络结点长时间滞留了,以致延误到连接释放以后某个时间才到达...TCP是全双工 模式,这就意味着,当主机1出FIN报文段,只是表示主机1已经没有数据要发送了,主机1告诉主机2, 它数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2数据;当主机...2返回ACK报文 段,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1;当主机2也发送了FIN 报文段,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,也没有数据要发送了

46321

TCP 三次握手 和 四次挥手

TIME_WAIT状态两端端口不能使用,要等到2MSL时间结束才可继续使用。当连接处于2MSL等待阶段时任何迟到报文段都将被丢弃。...不过实际应用可以通过设置SO_REUSEADDR选项达到不必等待2MSL时间结束再使用此端口。 TTL与MSL是有关系但不是简单相等关系,MSL要大于等于TTL。 为什么要三次握手?...1、《计算机网络》是这样说: 为了防止已失效连接请求报文段突然又传送到了服务端,因而产生错误。...书中同时举了一个例子,如下: 已失效连接请求报文段”产生在这样一种情况下:client发出一个连接请求报文段并没有丢失,而是某个网络结点长时间滞留了,以致延误到连接释放以后某个时间才到达...也发送了FIN报文段,这个时候就表示 Server 也没有数据要发送了,就会告诉 Client ,也没有数据要发送了,之后彼此就会愉快中断这次TCP连接。

87750

TCP详解+wireshark抓包演示简介

不过,只有当标志位ACK标志(下面介绍)为1该确认序列号字段才有效。主要用来解决不丢包问题; Offset:给出首部32 bit字数目,需要这个值是因为任选字段长度是可变。...TCP应答号将会包含在TCP数据包;有两个取值:0和1,为1时候表示应答域有效,反之为0; TCP协议规定,只有ACK=1有效,也规定连接建立后所有发送报文ACK必须为1 PSH:这个标志位表示...没有“已失效连接请求报文” 假定出现了一种异常情况   即客户端发出一个连接请求报文段并没有丢失,而是某些网络节点长时间滞留了,以致延误到连接释放以后某个时间才到达了服务端。...1进入FIN_WAIT_2状态;主机2告诉主机1,“同意”你关闭请求; 第三次分手:主机2向主机1送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态; 第四次分手:主机1收到主机2...TCP2.png 第一次握手: 这里截图我们接到传输层协议部分。 向着服务端发送一个Syn报文。其中Sequence Number=0 ?

2.1K30

App数据分析全攻略(2)先部署这8个事件

转化统计 一个普通App里面,可供统计用户行为非常多:每一个按钮,每一次点击几乎都可以作为事件发送给GA。而如果人力有限,应该优先统计哪些呢?...这样一来,和分享行为相关信息基本就统计全了。 事件参数用法非常灵活和自由,本篇中大家只要知道这是用法之一即可,以后文章里再解释为什么要这样设置,以及能得到什么样结果。...然后他把这段需求发给研发同事小孟看了一下,对方发来一个问题:分享文章有两个关键点,1、用户App内点击分享按钮之后,再点击选择具体分享平台(例如“朋友圈”);2、微信里完成分享之后,用户可能回到...触发条件:用户文章列表页滚屏加载更多内容发送事件 Category:加载下一页 Action:加载下一页 Label:(留空) 与下拉刷新类似,加载更多也是一个比较简单事件,所以送了两个必填参数...触发条件:App端发生错误时发送事件 Category:报错信息 Action:具体错误信息 Label:用户设备信息 除了崩溃之外,有时候App还会产生一些其他类型错误,例如服务器相应超时、图片加载失败之类

68180

JavaScript 表单处理

一.表单介绍 HTML,表单是由元素来表示而在JavaScript,表单对应则是HTMLFormElement类型。...//如果存在返回退出事件 flag = true;//否则确定是第一次,设置为true PS:某些浏览器,F5能起到缓存刷新效果,有可能获取不到真正源头更新数据。...由于类型可以表示多种表单字段,因此有些属性适用于某些字段。...某些浏览器,blur事件会先于change事件发生;而在其他浏览器,则恰好相反。...如果要阻止裁剪、复制和粘贴,那么我们可以剪贴板相关事件上进行处理,JavaScript提供了六组剪贴板相关事件: 事件名 说明 copy 发生复制操作触发 cut 发生裁剪操作触发 paste

4.8K101

Servlet技术【第三篇】会话技术——Cookies、Session详解

,A买了一个HHKB键盘,而B则购买了一把民谣吉他,这些信息都会被保存下来 用途是:保存账户信息,登录询问日后是否自动登录,或者根据之前浏览,购买过商品,分析用户喜欢什么类型商品,做出精准推送...Session (五) Session 问题:再Aservlet设置了Session属性,Bservlet获取A属性 浏览器中新建一个页面再次访问Bservlet 报空指针异常 现在问题来了...第二种:网络延迟,多次点击提交按钮 略图 解决方案: 网络延迟问题: 对于第二种网络延而造成多次提交数据给服务器,其实是客户端问题,我们可以使用javaScript来防止 → 当用户第一次点击提交按钮是...Session可以存储任何类型数据,可以把Session看成是一个容器 从隐私安全上比较 Cookie存储浏览器,对客户端是可见。信息容易泄露出去。...从跨域名上比较 Cookie可以设置domain属性来实现跨域名 Session在当前域名内有效,不可跨域名 结尾: 如果内容中有什么不足,或者错误地方,欢迎大家给我留言提出意见 邮箱:ideal_bwh

1.1K30

ASP.NET AJAX(3)__UpdatePanel

当经过 Interval 属性定义时间间隔,该 JavaScript 组件将从浏览器启动回。...,是一个Control类型参数(重载为Page类型),表示为哪个控件注册脚本,这就是多出来那个参数,最后一个参数,表示是不是为注册脚本加入一个标记 这时我们点击按钮,就可以正常弹出提示框了...我们自行处理错误时候,就需要在客户端响应PageRequestManagerendRequest事件,并将errorHandled属性设置为True 一个关于错误处理示例 现在如果使用Visual...,然后浏览页面,点击按钮,就会自动跳转到我们设定默认错误页面 那么,如果想在当前出现错误页面处理错误,就要这样做 首先把AllowCustomErrorsRedirect="false" 然后页面添加如下代码...读取请求信息 取消此次异步更新         一个示例             如果我们要在一个优先级高异步回送发起,取消已经发起优先级较低操作,而在一个优先级较低异步回送发起,如果一优先级高异步回送还没有完成

4.9K50

hexo-theme-yun 制作笔记

设计风格 起初咱也打算遵循 Google Material Design 风格来设计(很喜欢),顺便也借用了栅格、卡片按钮等组件。所以最初能够快速成型。...决定使用 medium-zoom 替代,并全部使用 Vanilla JavaScript,以移除 jQuery。...Strato - Hexo 主题「Yun」版本宣传 PV 当我第一次听说要做主题宣传 PV 是拒绝,因为,不能你让 1.0,就马上去,第一要试一下,因为不愿意做完了以后再加一些特技上去...而且也不是工业级东西),其实 0.8.x 时候便准备,又听 Hexo 5.0 即将发布,于是便再等等,适配完再发吧,中途也又修了不少 BUG,希望 1.0 至少功能上是一个相当稳定阶段。...不得不承认,最开始开坑主要是想写一个自用主题,一是不想过于同质化(毕竟 next 真的是太 ?

1K20

微信小程序开发学习笔记(二)——小程序框架、组件、WXML

开放能力、无障碍访问 2.0、单位 2.0.1、响应式单位rpx 使用 CSS 进行移动端网页开发,由于不同手机设备屏幕比,换算像素单位时会遇到很多麻烦。...使用竖向滚动,需要给scroll-view一个固定高度 说白了其实就是一个可以 允许滚动容器,只需要设置最大高度即可 属性说明: 属性 类型 默认值 必填 说明 最低版本 scroll-x boolean...否 获取用户手机号回调,open-type=getPhoneNumber时有效 1.2.0 binderror eventhandle 否 当使用开放能力,发生错误回调,open-type=...合法值说明最低版本 contact 打开客服会话,如果用户会话中点击消息卡片后返回小程序,可以从 bindcontact 回调获得具体信息,具体说明 (*小程序插件不能使用*...aspectFill 缩放模式,保持纵横比缩放图片,保证图片短边能完全显示出来。也就是说,图片通常水平或垂直方向是完整,另一个方向将会发生截取。

1.9K40

趣图:会 JS 了不起啊!

程序猿已经风中凌乱。。。 从这个段子多少能折射出产品和技术之间各种激情“火花”。产品经理眼中简单需求,而在我们看来是不可能实现。而程序员也无法理解产品经理为什么要实现这样需求。...它们执行与我们手动测试应用程序时相同操作。 我们应用程序,我们有一个用户(操作)旅程。当用户点击按钮,模式将打开,当他们点击模式按钮,模式将关闭。...这个按钮称呼它为“逐过程执行”按钮,和“逐语句执行”按钮不同,“逐过程执行”按钮常用在一个方法调用多个js文件,涉及到js代码比较长,则会使用到这个按钮。 上图: ?...假设上图227行打了个断点,然后一直点击逐语句执行”按钮到229行,这时候如果再点击一次“逐语句执行”按钮呢?则会进入下图js里: ?...模块 不少人都曾经 npm 上发布过自己开发 JavaScript 模块,而在使用一些模块过程经常产生“这个模块很有用,但如果能 xxx 就更好了”想法。

2.5K33

Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】

Session相当于服务器建立了一份“客户明细表”。 为什么使用Session技术?...接着,浏览器中新建一个会话,再次访问Servlet7 ? 发现报了空指针异常错误 ? 现在问题来了:服务器是如何实现一个session为一个用户浏览器服务?...于是,我们可以使用javaScript来防止这种情况 要做事情也非常简单:当用户第一次点击提交按钮,把数据提交给服务器。当用户再次点击提交按钮,就不把数据提交给服务器了。 监听用户提交事件。...由于网络延迟造成多次提交数据给服务器,我们还可以使用javaScript代码这样解决:当我点击过一次提交按钮就把提交按钮隐藏起来。不能让用户点击了! 想要让按钮隐藏起来,也很简单。...现在有一个问题:购物途中,不小心关闭了浏览器。当我再返回进去浏览器时候,发现购买过商品记录都没了!!为什么会没了呢?

2.2K50

twikoo仿段落评论,实现快速评论功能

碎碎念 前几天twikoo交流群,有人提到了这样一个问题:twikoo可以实现段落评论吗?...问题提出番茄小说Hexo段落链接说说卡片回复卡片回复效果 内容简述 实现亮暗模式适配 实现高分辨率适配,设置上下阈值,基本确保不会超出屏幕 动画效果适配 自动将节选段落放置评论框 解决文本中含有回车导致函数失效问题...经过设计,决定将按钮添加在右键菜单,并且是文章页,且需要选中文字右键才有效果(因为你不选中文字回复什么段落),我们先添加按钮,如果没有进行魔改右键菜单请按照别人教程进行魔改) 以上均可以实现右键菜单魔改...妥协方案 下面我们需要实现该功能,刚开始选择使用和说说页面类似的效果,当点击评论后,找到评论区输入框,将选中文字放到输入框,进行类似于回复段落效果,但是由于我设置懒加载,当评论区没有滚入到页面视野内不会自动加载...所以,想出了最后一种方案:弹窗法。 完美(可能)实现方案 经过了半天思考,在想,为什么我会被说说评价局限住呢?可以参考一下番茄小说,每段话后面有个按钮,点击后弹窗,那我也可以这么实现吧?

10920

【rainbowzhou 面试10101】技术提问--如何进行埋点测试?

介绍了大数据系统测试之功能测试,含对数据采集和传输,存储和管理,数据计算,数据查询和分析以及数据可视化等功能测试。本篇埋点测试便是其中功能测试一部分。...说说理解,应用程序(APP/H5/小程序等)投入运营后, 在做用户行为分析时候需要挖掘核心业务功能使用情况,往往会需要在应用代码添加一些额外代码来采集数据,这就是所谓“埋点”。...而埋点测试就是对埋点数据测试。 现在埋点方式主要分为三种,分别是:代码埋点、可视化埋点、无埋点(全埋点)。 代码埋点主要由研发工程师手工程序写代码实现,通过触发某个动作后程序自动发送数据。...埋点测试需要注意点 1.语义准确(一致性) 语义准确指主要是我们要知道开发埋一个什么类型点,这里类型指代一个一个语义模型,例如一个卡片曝光( show + card )、一个按钮曝光( show...2.字段准确(准确性) 埋点每个字段值在上报时候应该保证准确,这里准确是字段和埋点列表枚举值应该一一对应,例如卡片曝光 logtype 是 show,element_type 是 card

60631

JavaScript(十三)

表单基础知识 ---- HTML ,表单是由 form 元素来表示而在 JavaScript ,表单对应则是 HTMLFormElement 类型。...提交表单可能出现最大问题,就是重复提交表单。解决这一问题办法有两个: 第一次提交表单后就禁用提交按钮 利用 onsubmit 事件处理程序取消后续表单提交操作。...用户单击重置按钮重置表单,会触发 reset 事件,利用这个机会,我们可以必要时取消重置操作。 表单字段 可以像访问页面其他元素一样,使用原生 DOM 方法访问表单元素。...value 值改变触发,对于 select 元素,在其选项改变触发 文本框脚本 ---- HTML,有两种方式来表现文本框: 使用 input 元素单行文本框 使用 textarea 元素多行文本框...浏览器自己会根据标记规则执行验证,然后自己显示适当错误消息(完全不用 JavaScript 插手)。 只有某些情况下表单字段才能进行自动验证。

3.3K20

自己动手写客户端UI库——事件机制(设计思路大放送)

(这是真正事件) 然而,WUI库,为一个按钮绑定事件是这样,(这不是一个事件,这只是调用了一个方法,给这个方法传递了一个i额委托) 问题: 为什么会有这样差异呢?...这个方法是可以随意控制他,让他做想做事情 二:ButtonBindClickEvent方法 第一:这个方法接收一个类型为Action类型参数,...为以后使用这个按钮(比如说触发他事件)打下基础第五:我们判断是不是第一次对这个Button实例做Click事件绑定,如果是,那么就做下面的工作,如果不是,就不必做了;也就是说不管我给这个按钮绑定多少个...方法 在这个方法,我们把绑定事件JS脚本得到,并反馈给调用者, 以后可能还会有其他脚本,所以智力使用了StringBuilder 七:移除一个事件绑定 第一: 事件列表应该存在待移除事件...第二: 事件列表中就剩这么一个移除事件,并且,这个按钮已经渲染在界面上了;就执行js解绑脚本 第三: 事件列表移除这个事件 八:移除所有事件绑定 第一: 当事件列表存在事件记录 第二:

1.4K90
领券