ARTS第一周
ARTS第一周
leetcode算法题
给定一个没有重复数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
解答
class Permutation {
constructor(arr) {
this.arr = Array.from(arr);
this.result = [];
this.len = 0;
this.run(0);
}
run(index) {
if (index == this.arr.length - 1) {
this.result.push(Array.from(this.arr));
this.len++;
return;
}
for(let i = index; i < this.arr.length; i++) {
[this.arr[index], this.arr[i]] = [this.arr[i], this.arr[index]];
this.run(index + 1);
[this.arr[index], this.arr[i]] = [this.arr[i], this.arr[index]];
}
}
}
点评英文技能文章
19 ways to become a better Node.js developer in 2019
- Add some types and schemas. Typescript is a great candidate in 2019
Node.js的让javascript语言,在后端语言中占有一席之地,但是后端依然被强类型语言占领着,因为强类型语言的编译过程能帮程序员找去更多的问题。在编译阶段就报错,而且强类型语言的可读性更强。TypeScript让javascript有了强语言的优点。
Node.js从入门到精通的必读文章,帮助Node.js开发指明node.js的学习方向。没一点都值得深入学习。
学习至少一个技能技巧
pm2 + alinode + 钉钉 报警错误
杀死所有的pm2进程
pm2 kill -all
ps -ef | grep pm2
kill -9 XXXX
记录node版本
node -v
# v8.14.1
卸载node.js
# nvm 安装
$ rm -rf "$NVM_DIR"
# 删除~/.bashrc中的相关设置
$ source ~/.bashrc
安装alinode
- 查找alinode版本: Node.js性能平台运行时版本和官方对应列表
-
官方教程:5分钟快速入门
设置环境变量
$export ENABLE_NODE_LOG=YES
$export NODE_LOG_DIR=XXXXX
配置 agenthub config
{
"appid": "***",
"secret": "***",
"logdir": "/home/ubuntu/***/log",
"error_log": [
"***/log/err.log",
"***/log/common-error.log"
],
"packages": [
"***/package.json"
]
}
- packages: 不会立马生效,要过一个小时左右
- error_log: 文件名必须为common-error.log
修改错误日志的代码
logger.error(new Error('*****'));
- alinode只能检测到内建错误类型的报错,括号内应为new Error对象
pm2 启动配置
- pm2错误输出到 “***/log/common-error.log”中
- 启动
$ pm2 start ecosystem.config.js
钉钉创建机器人
钉钉推送
如何创建钉钉机器人- pro : https://oapi.dingtalk.com/robot/send?access_token=b67e9ec3c6b2193280efc0e8da8c522e7262f3677f8b8d378b050f7d4b529195
Node.js性能平台
- 检查: 【查看实例信息】【检查进程】不要有报错
- 报警配置 @stack include “Error”
分享一盘有观点和思考的技术文章
进入云服务时代
云服务功能愈发完善,就比如说k8s,简单的实现服务器的快速伸缩。极大的简化了运维人员的工作,降低了公司的成本。