给大家分享一下,最近一个月,关注的一些技术动态。同时,也有一些工具、学习资料、小技巧等有意思的内容。
前端
Webpack
在今年 2 月份,Webpack 已经推出 4.0.0 的版本。Wepack 4 不再支持 Node.js 4,在编译速度上也有很大优化提升。同时,Webpack 4 移除了 commonchunk 插件,改用了optimization 属性进行更加灵活的配置,这部分可能是升级改造中最复杂的一部分。
Fastpack
Fastpack 是一个 JavaScript 应用打包器,目标是做到对于中型应用(约1000个模块)的打包时间小于1000ms,增量重新打包时间低于100ms。
下面是基准测试结果:
Vue CLI 3.0
尤雨溪在 Medium 上宣布正式发布 Vue CLI 3.0
Vue CLI 的核心目标是为基于 Webpack 4 构建的预配置,提供构建设置。目标是最大限度地减少开发人员配置的次数。
官方文档:https://cli.vuejs.org/zh/guide/
后端
Python
版本更新:Python 3.7.0 & 3.6.6 已经放出
学习资料:
- RealPython:Socket Programming in Python (Guide) :https://realpython.com/python-sockets/
- RealPython:Python Code Quality: Tools & Best Practices:https://realpython.com/python-code-quality/
- Python 101 : subprocess 模块:https://python101.pythonlibrary.org/intro.html
Python 相关工具
- Jupyter Notebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。Jupyter Notebook 101 Preview Chapter : http://www.blog.pythonlibrary.org/
- PyCharm 2018.2 Out Now,相关链接:https://blog.jetbrains.com/pycharm/2018/07/pycharm-2018-2-out-now/
- Nice Vim trick for Python code:https://jugad2.blogspot.com/2018/08/nice-vim-trick-for-python-code.html
- Seaborn 是一个在 matplotlib 的基础上,进行了更高级的 API 封装的数据可视化工具:https://seaborn.pydata.org/
celery
2018.07.18 版本更新: v4.2.1
相关链接:http://docs.celeryproject.org/en/latest/whatsnew-4.2.html
更新特征如下:
## Result Backends
### New Redis Sentinel Results Backend(Sentinel:哨兵模式,高可用)
### Cassandra Results Backend(cassandra: Apache 分布式 NoSQL 数据库)
### DynamoDB Results Backend(DynamoDB:Amazon 完全托管、无缝扩展的 NoSQL 数据库)
### Python 2/3 Compatibility Fixes
## Canvas
## Tasks
### Bound Tasks as Error Callbacks
### Task Representation
### Custom Requests
### Retries with Exponential Backoff(Exponential Backoff:指数退避算法)
## Sphinx Extension(Sphinx:一种文档工具,它可以令人轻松的撰写出清晰且优美的文档,已成为Python项目首选的文档工具)
redis
redis 最近发布了 5.0 版本,其中添加了一个新的数据结构 stream,该结构是一个支持多播的可持久化消息队列,并且 Redis 的作者坦言 stream 的设计很大程度上借鉴了 Kafka 的设计。
工具
Windows 下的 Console
Windowns 下使用 CMD、PowerShell 通常不能完全满足开发需求。这里给大家介绍几种 Console 工具:
特点 | Cygwin | MinGW/MSYS | MSYS2 |
---|---|---|---|
是否 GNU | 否 | 是 | 是 |
更多软件支持 | 支持绝大多数的 GNU 软件 | 支持常用软件,Git、Vim 等软件需要独立支持 | 支持大多数 GNU 软件 |
更类 Linux | Cygwin 在 Windows 中就好像 Wine 在 Linux 中 | 实现了 Bash 等主要的 Linux 程序 | 原生 64/32 bit 支持 |
GCC 编译 | 内含 MingGW32 交叉编译功能,既支持依赖 cygwin.dll 的程序编译,也支持独立的 Windows 程序编译;可以直接编译 Linux 下的应用程序 | 支持独立的 Windows 程序编译 | 支持独立的 Windows 程序编译 |
中文支持 | 直接支持中文显示和输入法 | 需要配置才能支持中文显示和输入,删除一个中文字符需要删除 2 次 | 支持中文显示和输入法,中文帮助系统和中文提示(部分软件) |
运行速度 | 慢 | 快 | 快 |
Windows 下的包管理工具:chocolatey
官方网站:https://chocolatey.org/
如何安装 chocolatey ?以管理员权限执行如下命令:
|
|
有意思的
Chrome 是如何把 html 文档渲染为页面上的像素的
视频:https://drive.google.com/file/d/1Ky59m-F79ULs4ydMbD4Mp1dBXvs_eDes/view
文档:https://docs.google.com/presentation/d/1boPxbgNrTU0ddsc144rcXayGA_WF53k96imRH8Mp34Y/edit#slide=id.g25ae9c179b_0_75
小技巧
Webpack 通过代理解决跨域问题
在本地开发调试时,通常需要访问线上数据, http://localhost:8008/api -> http://online.com/api , 通过代理能够有效解决跨域问题。通过配置代理,可以有效避免 django-cors-headers 留下的安全隐患。
const proxyPath = [
'/api'
]
const proxyRule = {}
proxyPath.forEach(item => {
proxyRule[item] = {
target: 'http://online.com',
secure: false,
changeOrigin: true
}
})
devServer: {
port: 8008,
public: 'localhost',
hot: true,
proxy: proxyRule
}