话不多说先上图,简要说明一下干了些什么事.图可能太模糊,可以点svg看看 背景 最近公司开展了小程序的业务,派我去负责这一块的业务,其中需要处理的一个问题是接入我们web开发的传统架构--模块化开发.我们来详细说一下模块化开发具体是怎么样的.我们的git工作流采用的是git flow.一个项目会拆分成几个模块,然后一人负责一个模块(对应git flow的一个feature)独立开发.模块开发并与后端联通后再合并至develop进行集成测试,后续经过一系列测试再发布版本.目录结构大体如图所示,一个…
本文介绍如何打包Qt程序,使其在没有安装Qt的系统可以运行. 默认前提:另外一个系统和本系统是同一个系统版本. 1,编写导出依赖包的脚本copylib.sh #!/bin/bash LibDir=$PWD"/lib" Target=$1 lib_array=($(ldd $Target | grep -o "/.*" | grep -o "/.*/[^[:space:]]*")) $(mkdir $LibDir) for Variable in…
动态链接库技术使软件工程师们兽血沸腾,它使得应用系统(程序)可以以二进制模块的形式灵活地组建起来.比起源码级别的模块化,二进制级别的模块划分使得各模块更加独立,各模块可以分别编译和链接,模块的升级不会引起其它模块和主程序的重新编译,这点对于大系统的构建来说更加实用.另一方面,对于商业目的明显的企业,各模块可以独立设置访问权限,开发成员只能访问自己负责的模块,其它模块是不能也不给看到的,这样减少了整个系统泄漏技术的风险. 一.动态链接库技术概况 动态链接库技术用得很多.事实上,整个Windows就…
今年3月份,在阿里云北京峰会上,阿里巴巴正式发布了“阿里巴巴小程序繁星计划”,截至当前,已经有成千上万的开发者加入这个计划,使得小程序得到蓬勃发展,然而不可避免的是,这些服务加重了对云端的开发部署.运行运维等能力的依赖. 直播预告:9月11日(周三)晚上8点,中间件小姐姐萝莉音直播,手把手教你玩转插件和小程序云,学习工作两不误!直播间地址点击这里! 为了满足对众多小程序场景的需求,阿里发布了「小程序云」,为开发者提供了“一次开发,全网运行”的能力,支持 Spring Boot.Node.js 等…
昨天一位网友问我小程序怎么解析富文本.他尝试过把html转出小程序的组件,但是还是不成功,我说可以把内容剥离出来.但是这两种方法都是不行了.后来找到了wxParse-微信小程序富文本解析组件. 特性 支持特性 实验功能 ToDo [x] HTML的大部分标签解析 [x] 小表情emjio [x] table标签 [x] 内联style [x] a标签跳转   [x] 标签Class [x] 动态添加   [x] 图片自适应规则     [x] 图片多图片预览     [x] 模版层级可扩展性  …
阅读文档 Babel中文网 关于 Babel 你必须知道的 如何写好.babelrc?Babel的presets和plugins配置解析 不容错过的 Babel 7 知识汇总 一口(很长的)气了解 babel core-js@3带来的惊喜 babel 7 的使用的个人理解 介绍 Babel is a JavaScript compiler.——顾名思义,Babel 就是将最新的 ES6+ 语法,向后兼容,编译转化为支持各个浏览器可以运行的 javascript 代码. Babel 编译 babe…
最近集中开发了两款微信小程序,分别是好奇心日历(每天一条辞典+一个小投票)和好奇心日报(轻量版),直接上图: Paste_Image.png 本文将结合具体的实战经验,主要介绍微信小程序的基础知识.开发中遇到的难点.项目的架构设计.最佳实践以及踩过的坑.文章内容较多,如果想看架构设计和躲坑技巧,请直接浏览后面的正文,简书没有目录,也挺伤感的. 值得再次声明的是:微信小程序的内容部分是hybrid模式,并非原生,所以性能并不好,绑定的tap事件也有明显的延迟. 每一个由边框围起来的部分,都是一个最…
前言 虽然现在已经有很多实用的 ESLint 插件了,但随着项目不断迭代发展,你可能会遇到已有 ESLint 插件不能满足现在团队开发的情况.这时候,你需要自己来创建一个 ESLint 插件. 本文我将带你了解各种Lint工具的大致历史,然后一步一步地创建一个属于你自己的 ESLint 插件,以及教你如何利用AST抽象语法树来制定这个插件的规则. 以此来带你了解 ESLint 的实现原理. 课外知识:Lint 简史 Lint 是为了解决代码不严谨而导致各种问题的一种工具.比如 == 和 ===…
目录 前言 定义插件 使用插件 获取自定义选项 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (一) >,分享了使用 proto3 的 自定义选项 可以实现插件的编写,说到基于 MethodOptions 和 ServiceOptions 选项去实现 method 和 service 自定义设置拦截器. 接上篇文章,继续分享. 定义插件 // plugin/interceptor/options/interceptor.proto syntax = "p…
目录 前言 演示代码 小结 推荐阅读 前言 上篇文章<Go - 如何编写 ProtoBuf 插件 (二) >,分享了基于 自定义选项 定义了 interceptor 插件,然后在 helloworld.proto 中使用了插件,最后在 golang 代码中获取到使用的插件信息. 接上篇,继续分享. 既然获取到了插件信息,我们就可以使用它们.本文主要分享在 grpc.ServerOption 中的 grpc.UnaryInterceptor 中使用. 演示代码 还是以上篇文章中 hellowor…