早上上班看到阮老师这个微博和评论后对Quickjs提起了兴趣。当我点进网站看到Features时,感觉作者是真的牛逼。
Quickjs干了什么?
它能把js构建为二进制可执行文件,能运行至任何地方,也可以基于WASM运行在浏览器上。这是大大地扩展了js的可移植性,在我看来牛逼得不行!
分享我的发现、想法与心得
Photo by Adeolu Eletu on Unsplash
调查时间为2019年05月上旬进行
目前开发小程序可选方案有以下几种方式:
原生开发由于设计问题需要管理大量文件导致开发过程不流畅(如创建一个组件需要新建三份文件编写代码);更多的问题是JS新特性不支持、css样式不支持Less/Sass,也不能灵活运用npm包管理(尽管新版本提供了支持);细说就是上面那些问题,对于日常开发的前端工程师来说却是需要重视的,这类问题得不到解决,开发及维护成本是高昂的!现代的前端工程师日常开发场景已经常常使用ES6/7的新特性(甚至有些习惯使用TypeScript),然后要让这些人回头使用老旧的方法写代码,只能说工作成本太高了。结论:不推荐用原生开发,除非你的程序足够简单。
这事断断续续折腾我大概两周时间,这就把我经历的事分享给大家。
为了实现在本地提交这个blog项目能不用手动到线上更新而努力着,刚开始在找解决办法时以为就那么简单,结果却折腾在docker、linux权限和如何写shell的几个关键知识里面。
git flow 普片认为最早是由荷兰独立软件工程师Vincent Driessen在2010年发表的一个成功的Git分支模型(A successful Git branching model)这篇文章提出的。文章中提到文森特早在一些项目中使用git flow,并证明它是成功的。文中提及使用git flow的根据分支策略解决自动构建和部署问题。文森特后来制作了nvie/gitflow工具用于扩展git实现git flow功能,gitflow思想也推广了出去。
持续集成工具:
Jenkins | GoCD | drone | |
---|---|---|---|
Github Stats | 12K | 4.6K | beta 16.9K (正式版本不开源) |
优点(top5) | 内部托管 免费开源 非常适合构建,部署或启动任何异步 大量的集成 丰富的插件和良好的文档 |
开源 管道依赖性 管道结构 可以并行运行作业 非常灵活 |
开源 建在docker上 免费开源 GitHub集成 灵活的脚本 |
缺点 | 缺少插件文档 声明性管道的能力有限 |
缺少插件 可怕的UI |
无 |
对比内容参照: drone-io-vs-go-cd-vs-jenkins
Jenkins作为人尽皆知的持续部署工具,由于其庞大的插件和生态支持使它无所不能,规模较大的团队更喜欢使用Jenkins。GoCD是ThoughtWorks在做咨询和交付交付项目时自己开发的一款开源的持续集成工具,满足更复杂的部署实现,但是入门门槛却比其他两款CI高得不少。GoCD贯彻管道(pipeline)
概念使其可以组合串行、并行执行任务,实现复杂的、精细的工作流。相比Jenkins也能在官网和社区的插件支持下实现类似效果,可是对比下来Jenkins中的管道只是相当于GoCD中一个单独的任务,如果不是存在复杂的部署需求不建议使用GoCD。
最后能看出drone受关注程度比其余两者都高,是因为drone简单的UI和灵活的设计导致备受关注。对比Jenkins和GoCD在通道方面没有提供更多的支持,但是正由于其简单的设计容易理解之余扩展也十分简单。值得一提的是drone虽然插件没有Jenkins多,但是提供的插件文档和插件例子能作为自制插件提供很好的参考。可惜的是正式版本(1.0之后的版本)不再开源,如果是在小团队中使用还是非常值得考虑的。
参考:
目前见到存在三种思路:
相关的工具:
在安装一些扩展时会出现下面这种错误:
1 | go get -u -t -v github.com/golang/lint/golint |
由于国内环境被墙了导致下载失败,此时可以用以下方式解决:
1 | # 创建目录 |