0%

简介

Promise简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

Promise有三种状态:pendingfulfilledrejected

Promise对象初始化时状态为:pending(进行中)

调用resolve方法时,Promise的状态由pending变为fulfilled

调用rejected方法时,Promise的状态由pending变为rejected

1、 Promise对象的状态不受外界影响,只有异步操作的结果可以决定当前时哪一种状态,任何其他操作都无法改变这个状态。

2、 一旦状态改变,就不会再变,任何时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从pending变为fulfilled和从pending变为rejected

Read more »

Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性 而且同时支持 iOS 和 Max OS X。

Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API。系统AutoLayout支持的操作,Masonry都支持,相比系统API功能来说,Masonry是有过之而无不及。也就是说Masonry就是NSLayoutConstraint,只不过是提供了更加简单的书写方法。如果你对NSLayoutConstraint有所了解,那么Masonry可以说是简单易懂

Masonry属性与NSLayoutAttrubute的对照表如下

Masonry NSLayoutAttrubute 说明
left NSLayoutAttrubuteLeft 左侧
top NSLayoutAttrubuteTop 上侧
right NSLayoutAttrubuteRight 右侧
bottom NSLayoutAttrubuteBottom 下侧
leading NSLayoutAttrubuteLeading 首部
trailing NSLayoutAttrubuteTrailing 尾部
width NSLayoutAttrubuteWidth 宽度
height NSLayoutAttrubuteHeight 高度
centerX NSLayoutAttrubuteCenterX 水平中心
centerY NSLayoutAttrubuteCenterY 竖直中心
baseline NSLayoutAttrubuteBaseline 文本基线
Read more »

简介

Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request,response现HTTP headers (包含cookies与caching信息).

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。可以在Charles官网下载(该软件为付费软件,试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过 30 分钟,并且启动时将会有 10 秒种的延时)

Read more »

代码规范只是让代码更容易被理解,让多人开发时代码也能保持内部一致性。

制定代码规范的标准因团队而异,可以根据多数人的开发习惯或者是参考别人的规范

实现代码规范的方法有很多种,在React-Native中可以使用ESLint配合编译器进行代码规范审核

不必矫枉过正

Read more »

开发前准备

  • 搭建开发环境

根据自身的硬件环境,分别安装不同的环境,具体请看官网的教程。#搭建开发环境

  • 关于node

开发RN项目之前,需要熟悉几个npm命令。例如

1
npm install

安装该项目中所有依赖包,一般写在package.json中

1
npm install XXX --save

为你的项目中添加某个依赖包

等等。。

Read more »

虚拟dom

​ 在react中,render执行的结果并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM。虚拟DOM具有batching(批处理)和高效的Diff算法。由虚拟DOM来确保只对界面上真正的部分进行实际的DOM操作。

​ 比较innerHTML 和Virtual DOM 的重绘过程如下:

  • innerHTML: render html string + 重新创建所有 DOM 元素
  • Virtual DOM: render Virtual DOM + diff算法+ 必要的 DOM 更新

批量DOM处理

​ 依靠 setState 的异步性,React在一段时间间隔内,将所有DOM更新收集起来,然后批量处理。也就是说调用setState的时候并不会立即更新状态,而是一段时间时候统一将变动的属性集体进行更新。从而达到减少渲染次数,提高性能的目的。

Read more »

由于特殊的情况,出差所在的地方同性交友网站上不去,CSDN打不开,百度云盘用不了(不要问我问什么。记录一下自己是如何走在被查水表的路上。

科学上网的方式有很多种,可以自己购买一台位于国外的VPS服务器搭建SS客户端,自己手动搭梯子。如果是懒得自己折腾可以购买VPN账号,但是很多的VPN服务商不稳定,有可能用着用着就被封了。所以一个月一个月买比较靠谱。这里说明一下购买账号后的操作。

下载Shadowsocks客户端

自行百度下载的方式,下载好之后。双击打开,把买入的账号填进去,点击确定。

启用系统代理即可。

打开浏览器,就可以开始你的科学上网之旅了。

如果你的账号不限制设备,并且想用手机同时用。可以在手机市场搜索Shadowsocks,同样的配置。iOS用户可以用SsrConnectPro。

特殊环境引起的问题

上述配置完成之后,依然不能访问到github,将ss的代理模式更改为全局代理。

即使是全局模式,命令行中,依然访问不到github。

查看Shadowsocks的本地代理端口,一般是1087端口。

打开命令行

1
2
3
4
5
6
7
vi .gitconfig
`在git的配置文件中添加http和https的代理`
[http]
proxy = http://localhost:1087
[https]
proxy = https://localhost:1087
`如果需要使用coding等国内的代码托管服务,请注释以上四行配置`

配置并保存后,就可以和github上的好基友玩耍了。

what’s jenkins?

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。

持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

Read more »

简介

Locust 是一个开源负载测试工具。使用python代码定义用户行为,也可以仿真百万个用户。

Locust 是非常简单易用,分布式,用户负载测试工具。Locust 主要为网站或者其他系统进行负载测试,能测试出一个系统可以并发处理多少用户。

Locust 是完全基于时间的,因此单个机器支持几千个并发用户。相比其他许多事件驱动的应用,Locust 不使用回调,而是使用轻量级的处理方式gevent。

特点

  • 使用纯 Python 代码编写用户测试场景;不需要 UIs 或者 XML
  • 分布式&可伸缩 - 支持成千上万的用户
  • 基于 Web 的 UI
  • 可以测试任意系统;虽然 Locust 是面向 Web 的,但是也可以测试其他任意的系统
Read more »

安装

npm install mobx --save

配合React: npm install mobx-react --save

概述

MobX 是一个通过对开发者透明的函数响应式编程(TFRP)方式,让状态管理(state management)变得简单、具有高扩展性的库,并且这个库经过了严格的测试。

MobX的思想非常简单:来源于应用的状态的任何事物,都能被自动获得。

包括UI、数据变更、与服务器通信等等。

Read more »