关于平常工作中在前端,后端以及运维中遇到问题的一些文章总结。以后也会做系列文章进行输出,如前端高级进阶系列,个人服务器指南系列。
说到个人服务器,如果你是新人的话,在阿里云有优惠,这里有连接进行购买:阿里云新人优惠服务器。可以跟着我的系列文章 跟着山月管理个人服务器 来学习。 如果你对服务器完全没有概念,建议购买配置
1核2G
,也就八十来快钱。如果对云主机有所了解,建议购买配置2核4G
。
大学时读了温庭筠一首词,山月不知心底事,水风空落眼前花
,于是就起了一个名字: 山月水风。
后来难免觉得花间词过于矫情,于是把名字拆成两个,只取前两个字:山月。取李白 暮从碧山下,山月随人归
之意,恰好那段时间从京西阳台山下来时伴着月亮。
再后来读书读多了,觉得 松风吹解带,山月照弹琴
与 水风轻,蘋花渐老,月露冷,梧叶飘黄
的意境也不错,也很喜欢。
- @shanyue/promise-utils (npm): 一些有用的 promise 工具函数,如 map, filter, retry 与 sleep
- cls-session (npm): Node 类似 CLS 的实现,并避免了 Promise 在 async_hooks 中内存泄漏问题
- we-api (npm): 关于微信公众号 API 封装的 SDK,支持 TS与更好用的 SDK
- shfshanyue/whoami (docker): Tiny node.js webserver that prints os information and HTTP request to output
- shfshanyue/ansible-op (ansible role): 满足你个人服务器一切运维需求的 Ansible Role
- shfshanyue/apollo-server-starter (graphql template): 基于 apollo-server 的 graphql 后端脚手架
- shfshanyue/markdown-to-html-api: 根据 mardown 生成美化 html 的 GraphQL API
- shfshanyue/interview-api: 程序员面试每日一题
- shfshanyue/geek: 极客时间返利平台: https://geek.shanyue.tech
以下项目均部署在我的个人服务器中,详情见 当我有一台服务器时我做了什么
- shfshanyue/2019-ncov: 全国新型冠状病毒,肺炎疫情实时省市地图,单日 PV 最高48万
- shfshanyue/shici: 诗词小站,服务器容器运维、爬虫及前后端开发可参考我的博客,单日 PV 500 https://shici.xiange.tech/
- shfshanyue/shici-spider: 诗词小站的爬虫
- shfshanyue/shici-server: 诗词小站的服务端
- shfshanyue/wechat: 个人公众号的微信开发,黑客增长实践,看文需扫码关注功能
- shfshanyue/wechat-bot: 个人微信机器人开发,社群运营、智能对话与提醒。自动通过好友,加群后欢迎语以及基金、疫情信息监控
- shfshanyue/wechat-cron: 个人公众号的自动上传素材脚本,使用 we-api 作为 SDK
- shfshanyue/reacht-rubic: 使用 react 开发一个魔方
- shfshanyue/tomato: 基于 vue 与 cordova 的番茄闹钟APP
- shfshanyue/eleven: 小程序十一选五小助手
- shfshanyue/cheat-sheets: cheat sheets
- shfshanyue/tieba_post (python): 模拟百度贴吧的登录及自动发帖
- shfshanyue/spider (python): python 写的网页定时备份小工具
- 前端高级进阶:javascript 代码是如何被压缩
- 前端高级进阶:如何更好地优化打包资源
- 前端高级进阶:网站的缓存控制策略最佳实践及注意事项
- 前端高级进阶:团队代码规范约束最佳实践
- 前端高级进阶:在生产环境中使你的 npm i 速度提升 50%
- 前端高级进阶:使用 docker 高效部署你的前端应用
- 前端高级进阶:CICD 下的前端多特性分支环境的部署
- 前端高级进阶:前端部署的发展历程
- 前端高级进阶:本地环境 https 证书配置
更多文章: 前端工程化系列
- Node实践语言篇: 如何引入模块及其细节
- Node实践源码篇: 40 行代码实现精简版 koa
- Node实践代码篇: 为你的应用添加单元测试
- Node实践质量篇: Node 应用中如何做数据类型校验
- Node实践质量篇: Node 脚本遭遇异常时如何安全退出
- Node实践交互篇: 浏览器跨域与服务器中的 CORS
- Node实践日志篇: 如何正确且高效地打印日志
- Node实践日志篇: async_hooks,CLS 与异步资源生命周期监听
- Node实践日志篇: Node 中全链路式日志实践
- Node实践监控篇: 如何监控 Node 服务的内存
- Node实践部署篇: 如何使用 Docker 部署 Node 应用
- Node实践质量篇: Node 脚本遭遇异常时如何安全退出
- Node实践质量篇: Controller 层如何做数据类型校验
更多文章: Node 实践
山月在测试环境及生产环境中遇到的那些有关前端,后端及运维的虫子 (BUG)
更多文章: 虫子集
更多文章: 用户增长
但仅仅是开发一个简单的项目(弱数据存储),有可能你并不需要一个云服务器。
- 如果你只想搭建一个博客
- 使用 Netlify 托管静态网站与持续集成
- 使用 AliOSS 部署及加速你的静态网站
- Github Actions 持续集成简介及实践
- Serverless 与 Serverless Framework
- 使用 serverless 开发第一个 Koa 应用
- 使用 serverless 开发第一个 Next 应用
更多文章: 你并不需要云服务器
你可以在阿里云新购一台服务器作为实践:
- 高效简单的服务器登录配置
- 服务器上 git 安装及基本配置
- 服务器上 ssh key 管理及 github 配置
- 云服务器基本指标信息查看及命令
- vim 基本操作及配置
- tmux 与多窗口管理
- ansible 简易入门
- docker 简易入门
- Dockerfile 最佳实践
- 案例: 使用 docker 高效部署前端应用
- docker compose 编排架构简介
- docker compose 简易入门
- 使用 traefik 做反向代理
- 使用 traefik 自动生成 https 的证书
- 使用 dnsmasq 搭建本地 DNS 服务
- 使用 openvpn 访问内部集群私有服务
- 使用 postgres 做数据存储
- 使用 redis 做缓存服务
- 使用 sentry 做异常监控
- 案例:黑客增长 - 从博客向公众号引流
- 案例:黑客增长 - 使用公众号开发模拟面试
- 预备工作
- 搭建过程中常见 linux 命令使用
- docker 的安装与配置
- kubelet/kubeadm 简介与安装
- 搭建一个集群的主节点 (control plane node)
- 为集群添加一个工作节点 (work node)
- 在本地环境管理集群
以下都是关于技术思考的文章分享
- 各种架构图乱七八糟的图索引
- linux 性能监控指标速查
- jwt 实践应用以及特殊案例思考
- jwt 邮件验证码与登录实践
- GraphQL 开发指南
- 由 GraphQL 来思考 API Design
- Node 中异常,EXIT CODE 与 dockerfile
- 限流算法: 漏桶与令牌桶简介
- 使用 requestId 标记全链路日志
- Node 中的异常收集,结构化与监控
- 谈谈 Redis 在项目中的常见使用场景
- 项目实践: 使用微信公众号开发模拟面试功能
- Sequelize V5 升级记录及注意事项
- 如何判断文件中换行符 LF(\n) 与 CRLF(\r\n)
- 两个由于 async/await 导致 OOM 的示例
- 隔离级,悲观锁与诗词字云功能的开发
- 域名更改注意事项须知
- 从数据库到前端,使用 enum 代替 constant number
- SQL必知必会
- JS 调试问题汇总及示例
- 如何实现 Promise 的限流
- 如何实现一个简单的 Promise
- 你不知道的 JS 之疑难汇总
- 使用纯 CSS 实现仿 Material Design 的 input 过渡效果
- Canvas VS SVG 画影图形
- Grid 布局指南
- 使用 Grid 进行常见布局
- 浏览器中的二进制以及相互转化
我是山月,一个以前喜欢跑步与爬山的程序员,我会定期分享全栈文章在个人公众号中。如果你对全栈面试,前端工程化,graphql,devops,个人服务器运维以及微服务感兴趣的话,可以关注我的微信公众号【全栈成长之路】。