New Year's 2017

With 2016 behind us and the new year begun, it’s time to write some articles about code! As in year’s past, some articles can help you known some interesting and useful things. Many thanks to Surge.sh and GitHub.io, provide a place where i can do some writing.

查看更多

评论

2016总结

我的2016

2016年2月,正式开始工作,上家公司(轻客)由于投资方的原因主动破产,我们属于坚持梦想的那一批人,将轻客改名为荟萃,继续为企业提供人力众包等服务。条件也算辛苦,我们6个人在原来老大租的房子里办公,虽然人少,但是生活很充实。改版,重构,写代码,想解决方案,去浙大踢球,打LOL(而且跟他们学会了打羽毛球)。就这样我们一直坚持到了5月中旬,投资方有音讯了,是一位上海的投资人。但是这个时候由于一些经济上的问题,不得不选择了离开这个目前还没有薪资的小团队。我是在15年的8月底加入这家公司,前前后后大概一年的时间,认识了这一帮能文能武能玩耍效率高的朋友,在这里我成长了许多,碰到了爱的人(虽然现在已经分手了,但是毕竟爱过),学习到了许多新的知识,并且开始学习做技术架构。我和公司的另一名手淘挖来的好兄弟一起搞完了轻客的即时通讯框架,HTML本地缓存框架,花了有一些时日,让人可以得到安慰的的是,这些框架的稳定性很好。

查看更多

评论

快速搭建属于自己的斗鱼TV

让小白也可以快速搭建属于自己的斗鱼TV的教程

简明扼要,开始干活:

  • 打开qiniu.com注册个人开发者帐号
  • 申请直播空间

查看更多

评论

WebApp问题整理

问题列表

伪类 :active 生效

要CSS伪类 :active 生效,只需要给 document 绑定 touchstarttouchend 事件

<style>
a {
  color: #000;
}
a:active {
  color: #fff;
}
</style>
<a herf=foo >bar</a>
<script>
  document.addEventListener('touchstart',function(){},false);
</script>

消除 transition 闪屏

两个方法

查看更多

评论

SwiftTips(一)

最新1年的Swift小Tip与一些建议阅读源码或者使用到项目中的开源库

查看更多

评论

如何利用Swift解析MarkDown

由于自己的开源项目需要使用MarkDown作为主要的文本语法,本该由iOS小组同学负责的东西由于他有点事情所以就改为由我负责了。由于也是第一次接触在Swift上边解析MarkDown,所以先去了解了一些github上边的开源项目,但是少之又少,而且实现的功能都很简单(大多数都是使用NSAttributeString来实现简单的加粗、倾斜、下划线),并不能达到我所期望的效果(支持90%以上的MarkDown并支持HTML)。

更新,IBM提供了C库用来解析MardDown到HTML

如何解决问题

首先根据经验,我首先想到的是CoreText + Regex。没错,给我一段MarkDown的文本,先用Regex匹配出每一个MarkDown的Element,然后使用CoreText绘制出来,如果是图片则预先占位,表格则细化解析,绘制。尝试着下手之后,发现MarkDown的语法不是一般的多,这样写下去光是解析器我可能要写一个月左右(编码、测试等)。

查看更多

评论

移动H5前端性能优化注意点

希望得到的最好的效果:

PC优化手段在Mobile侧同样适用

  1. 最多三秒钟渲染完成单屏或者使用Loading
  2. 基于3G/4G移动网络下,每屏幕资源不超过1024KB
加载优化
  • 合并CSS、JavaScript
  • 合并小图片、使用雪碧图
  • 缓存一切可以缓存的资源,部分资源css、js使用src="abc.css?cacheVersion=1"来控制版本
  • 使用长Cache
  • 压缩HTML、CSS、JS
  • 启用GZip
  • 使用首屏加载

查看更多

评论

如何迈出第四步(数据展示)

数据的获取与展示是每个App必不可少的功能,最常见的就是列表(iOS的TableView,Android的ListView)。在RN中当然也有ListView,第四步将在第三步建立好衔接的基础下,完成2个列表视图的构建,并加入网络请求知识(也就有下拉刷新了)。首先,我们去寻找一个接口,用以获取数据。这里为了方便直接使用聚合,我这里是找了一个微信文章推荐的接口:

1
http://v.juhe.cn/weixin/query?pno=1&ps=20&key=1cb0962fb0fb73dae41d96e88733ac96

参数:

  1. pno:页码
  2. ps:每页内容个数
  3. key:我的key,上边的可以直接拿去使用

接下来继续打开项目,进行编码,首先我们需要的是获取数据进行展示,在News.js中。

查看更多

评论

如何迈出第三步(衔接)

第二步,我们依旧遗留了一个问题,从引导页进入到程序主界面,打算使用React-Router来解决这个问题。目前我对React-Router也是处于知道但没用过的状态,我们先尝试着寻找资料了解一下这个功能组件(记住React-Router这个名字还是因为我之前使用了很久的vue-router)。来到Reacr-Router Github的主页后,阅读了一下大致的介绍,感觉还是只适合Web的React相关的路由操作(小白见解),我们使用另一个:

1
$ npm i react-native-router-flux --save

并且在使用之前建议大家阅读一下这篇文章,接着我们按照Github的文档来看下具体该如何操作:

查看更多

评论

如何迈出第二步(组件优化)

真的这种事情很好,勇敢的迈出第一步之后,就必须要接着走下去了。因为我第一篇的文章已经发出去了,并在结尾说下一次要做优化,为了厚脸皮也要用心的把问题解决了。解决完问题之后,还要装个逼,装逼到一半的时候,装不下去了,就必须得继续学习才能继续装逼。希望大家可以勇敢的迈出惧怕或者懒散的一步,程序员不要眼高手低。谁说高手组队不会翻车?不仅仅是这样,越牛逼的人翻车的后果越严重。

接着上一篇比较破的文章(我确实是第一天开始写RN的代码,之前都是看),发文章的时候我甚至有点脸红,妈的这是第一次,觉得这么坑的文章要发出去了,但是随之带来的就是写好下一篇的思想。不啰嗦,开始写:

查看更多

评论