Skip to main content

使用nvm实现nodejs多版本管理

· 2 min read
orange
programmer on jvm platform

在日常开发中, 有时候需要使用不同版本的nodejs来开发不同的项目.
例如, 有一个UI项目, 需要使用nodejsv12版本, 而另一个项目需要使用nodejsv14版本.
这时候就需要使用nvm来实现nodejs的多版本管理.
本文将以nodejs-v18为例介绍如何使用nvm来实现nodejs的多版本管理

启用SSH密码验证

· One min read
orange
programmer on jvm platform

ssh中, 默认是不允许使用password认证的, 但是有时候, 我们需要使用password认证.
为了能够实现这个功能, 我们需要对ssh进行配置

常见的命名前缀

· 7 min read
orange
programmer on jvm platform

在编程中, 命名是一件非常重要的事情, 好的命名能够让代码更加易读, 也能够让代码更加易于维护.
通常我们在阅读第三方库的代码时, 会发现很多方法的命名都是以一些固定的命名前缀开头的.
本文主要总结目前我所了解的一些常见的命名前缀的含义. 并对其进行分类, 大致的分类主要如下.

  • 对象的创建
  • 对象的属性和状态
  • 对象的元素操作
  • 其他

对于每种命名规则, 我都会给出自定义的例子, 同时也会附带第三方库中的现有案例以便于更好的理解.
代码以kotlin实现, 但是大部分的命名规则都是通用的, 也适用于其他的语言.

springdoc-v2中在不配置@ParameterObject的情况下实现Pageable以及Sort对象到API参数的转换

· 5 min read
orange
programmer on jvm platform

springdoc是一个可以快速生成API文档的第三方公共库, 并提供了UI页面以供访问.
同时它也提供了spring-webmvc中的handler中的参数对象到API参数的转换.
对于spring-data-commons中的PageableSort, springdoc提供了开箱即用的功能, 需要在配置文件中启用以及在参数中声明@ParameterObject

application.yml
springdoc:
model-converters:
pageable-converter:
enabled: true

对于已经存在的项目, 当刚引入springdoc时, 需要配置大量的@ParameterObject注解以实现参数转换功能.
这个过程通常比较繁琐, 因为对于一个具有一定规模的项目而言, 其对外提供的API往往会非常多, 需要进行大量的修改功能才能实现该功能
那么此时我们需要一种解决方案, 即如何在不配置@ParameterObject的情况下实现Pageable以及Sort对象到API参数的转换

通过为aws-eks托管的k8s中的service启用nlb以实现对外暴露服务

· One min read
orange
programmer on jvm platform

默认情况下k8s中的ServiceClusterIP类型, 即只能在集群内部访问, 无法通过外部访问(这里的外部指的是k8s集群外部, 即k8s集群所在的VPC外部).
NodeProt也存在同样的问题, 无法通过外部访问.
为了能够通过外部访问k8s中的service, 需要启用nlb以实现为aws-eks托管的k8s中的service启用外部访问能力.

使用aliyundrive-webdav和rclone实现阿里云盘文件挂载到本地

· 2 min read
orange
programmer on jvm platform

aliyun-webdav是一个开源的工具, 可以为阿里云盘提供WebDAV服务.
rclone是一个开源的工具, 可以将本地文件同步到各种云存储服务中, 包括但不限于

  • S3
  • WebDAV
  • FTP
  • SFTP
  • ...

以下将介绍如何使用aliyun-webdav搭配rclone实现将本地文件同步到阿里云盘.
本案例是基于ubuntu实现的, 方案使用到了docker因此理论上可以在任何支持docker的系统中实现.

使用snap安装指定版本的应用

· One min read
orange
programmer on jvm platform

在使用snap安装应用时,如果没有指定版本,会默认安装最新版本的应用.
有些场景下需要安装指定版本的应用
例如UI项目目前仅支持nodejsv12版本, 那么就不能安装最新版本的nodejs
这个例子仅作为参考, 因为更好的解决方案是使用nvm来管理nodejs的版本
python中,可以使用pyenv virtualenv来管理python的版本
下面将介绍如何使用snap安装指定版本的应用