本文作者:姚泽源
栏目简介
介绍本周值得分享的技术内容, 周四发布
可视化管理工具
1.adminer
1.<高性能MySQL>推荐的数据库管理工具之一
2.只有一个php文件, 通过docker可以快速启动
3.安全可靠, 支持汉语/换肤(目前我在用的是这款)
4.在线demo
1.MongoDB-Compass
1.MongoDB的官方管理工具
1.motrix
1.如果你经常看到迅雷的版权提示/会员广告, 而且觉得很烦的话, motrix显然是一个好选择
2.motrix是一款基于aria2封装的下载工具. aria2可以说是目前最好的开源下载软件, 但是只有命令行界面, 使用起来很不方便. motrix则是使用Electron对aria2进行的封装, 图形化界面, 目前github一万star.
渐进式TS迁移
目前网络上对TS的主流观点还是认为这是一门新的编程语言, 通过静态分析对数据类型进行严格校验, 专业解决面向对象方面的问题. 当然, 对应的是, 引入成本比较高(需要引入tsc / ts-loader / tslint / etc)
由于抱有上面的想法, 因此在业务方中, 推广TS并不容易. 因为在业务方看来, TS虽然完美实现了面向对象当中的类/接口/多态, 但这不过是创造了一个前端开发中并不存在的问题并解决了它. 带来了大量的学习/迁移成本不说, 对实际工作还没有帮助. 因此, 业务方对TS的兴趣并不大.
但是, 如果换个思路考虑就好多了.
在实际业务开发中, 如何记忆繁冗的state/props/接口数据接口是一个很头疼的问题. 虽然实践中产生了诸如Mock数据/分层处理/强制编写注释等方案, 但这些方案都属于治标不治本. 但这个问题, 如果使用TS的类型声明的话, 就可以很容易的解决.
而在babel7中, facebook官方推出了babel版的ts转换工具, 其实现思路为: 1. 将TS分解为类型声明+JavaScript 2. 移除类型声明 3.正常编译JavaScript.
换句话说, 由于JS不需要学习, 前端只要掌握TS中类型声明的方法, 就可以正常接入TS. 而且 100%兼容旧代码.
实际上, 这也是create-react-app中实际采用的方案(利用tsc对ts代码进行静态类型检测, 使用babel进行代码转换)
所以, 如果在业务方中只推广TS的类型提示功能的话, 可以很轻松的引导业务方迁移到TS生态 =>
1.升级babel6到babel7
2.安装babel-plugin-transform-typescript, 配置babelrc
3.在项目中添加tsconfig.json
4.将后缀名由js改为ts
5.在代码中添加类型声明, 搞定