要避免的Node.js架构陷阱
原文:Node.js Architecture Pitfalls to Avoid
构建高可维护、可读和可靠的代码库不仅对后来维护你的代码的人很重要,而且也是为了您自己的心智负担。
我已经处理了数十个生产 Node.js 后端服务,并将分享我的经验,构建您的架构陷阱时应该避免什么。
本文中的示例是为 JavaScript 和 TypeScript 量身定制的,以及一些问题(如依赖管理)需要在 Node.js 项目比其他语言中应该更得到更多关注。但是,其中许多原则也适用于其他语言。
让我们开始吧!
ubuntu安装Python
记录一下安装 python 的两个安装方法
apt 安装
- 以 root 用户或具有 sudo 访问权限的用户身份运行以下命令,以更新软件包列表并安装必备组件:
1 | sudo apt update |
- 将 Deadsnakes PPA 添加到系统的来源列表中:
1 | sudo add-apt-repository ppa:deadsnakes/ppa |
- 启用存储库后,请使用以下命令安装 Python 3.8:
1 | sudo apt install python3.8 |
源码安装
- 更新软件包列表并安装构建 Python 所需的软件包:
1 | sudo apt update |
- 找个位置存放源码包
3.10
1 | wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tar.xz |
3.11
1 | wget https://www.python.org/ftp/python/3.10.9/Python-3.11.1.tar.xz |
- 开始生成 makefile 并且编译安装
1 | ./configure --enable-optimizations |
–enable-optimizations 选项通过运行多个测试来优化 Python 二进制文件,这会使构建过程变慢。2 代表用两个线程进行 make。
优化你的Vue应用
文章源地址:Optimizing A Vue App
在构建我们的 Web 应用程序时优先考虑性能可以改善用户体验,有助于确保尽可能多的人可以使用它们。在本文中,Michelle Barker 将向您介绍一些前端优化技巧,以保持我们的 Vue 应用程序尽可能高效。
flutter的一些坑(1)
过早调用 context 报错
在 initState 里像下面这样使用 context:
1 | @override |
可能会导致下面报错:
1 | dependOnInheritedWidgetOfExactType<_LocalizationsScope>() or dependOnInheritedElement() was called before XxxXxx.initState() completed. |
因为 context 在 initState 调用过程中只是创建了,但是属于不可用状态,需要在 initState 执行完成之后才能正常使用,所以需要延后context的使用时间,如果只需要调用一次的话应该使用Future.delayed或者addPostFrameCallback进行调用
1 | @override |
onGenerateRoute和routes冲突
如果在MaterialApp传入routes,那么onGenerateRoute将不会被调用
flutter快速入门笔记(1)
本系列不包含 Dart 语法笔记,以掌握 Dart 语法为前提记录。不懂可以百度搜一下Dart快速入门教程,如果你本来就懂js,基本可以一两小时内掌握Dart的语法,比如看下Flutter实战上的Dart简介
解决mobx-miniprogram在TS下的一些小问题
在搭建带 TS 的微信小程序模板时,使用 mobx-miniprogram 会遇到一些奇奇怪怪的问题(应该是微信官方懒得解决 BUG)
Ubuntu搭建Flutter开发环境
公司业务需要开发一个 Flutter 应用,记录一下如何搭建一个 Ubuntu 的开发环境
动态加载JS文件并执行
记录下一个简单的动态加载 js 代码并执行的方法
Vue3学习笔记(7):Vue2没有的或者改变的一些细节
再学习一波Vue3新版文档,记录一下一些我还没见过的内容