Wayne's blog

分类 · programming

首页

关于

归档

好友们

loading..
npmnode

Node项目离线构建

背景想要在一个无网络的环境下通过源代码构建dist,而不是拷贝dist到目标机器上,这样很难改动部分源代码重新部署应用。 offline build其实首先能明白一个理念就好解决了。(https://stackoverflow.com/questions/43064107/how-to-install-npm-package-while-offline) npm install 只是检查依赖项,如果没有找到本地文件中的相关依赖,则会下载他们。 但是 node_modules 又和平台相关,所以我们只需要建立和目标平台一致的联网环境即可,拷贝 node_modules 到无网环境中的源代码里就可以了。 接着执行 npm run build, 即可正常构建,整体感觉还是非常容易的。 cp -r ./node_m..

更多
loading..
Python

Python 打包平台二进制文件

Python 打包平台二进制文件背景不知道为什么 Python 怎么那么火,到处都有在用,导致不得不用Python来完成一些事情。 python 安装依赖需要用到 pip,而且还需要有外网,但是这对离线部署就很不友好。 所以 在一些场景下还是需要打包二进制的。 e.gprogram// app.py from flask import Flask import service.user import service.algorithm app = Flask(__name__) @app.route("/") def hello(): return {"status": "UP"} @app.route(&quo..

更多
loading..
nodejs

Nodejs HTTP Server

Nodejs HTTP Server背景最近有一个想法是做一个图片小工具,这个小工具可以给图片提供一些常用或不常用的图片做转换 又一次的 我想到了 cloudflare worker,能白嫖一些计算资源, 可用性又不用担心。(实际上是我想的太美了)。 所以我先想到nodejs上是不是有一些现成的图像处理库,找了一下 还真有 而且API用起来很舒服(Sharp 后续会单开文章来写)。 接下来就需要一个 server 来提供服务,把输入输出都对接好 就完事了。 然而并不是这么work的。 Cloudflare Worker并不支持Nodejs 只是说恰好支持某些库而已,在这里查找可以在worker上工作的库(实际上我认为就是用了Nodejs但是阉割了非常多的API 防止滥用) 并且 express 也不在支持范..

更多
Java

从Java 8 到 17(LTS) 新增的那些关键字

从Java 8 到 17(LTS) 新增的那些关键字Java 9modules 对于 个人开发者 意义其实没有那么大,仍然是给框架作者提供的更多控制,更不像是模块化,而是像权限控制。 你可以把更大的功能做成“模块”,仅暴露需要被用到的“接口” module声明模块 e.g: module myModuleName { // all directives are optional } requires标注需要用到的包 module my.module { requires module.name; } exports“公开”可以被调用的包 module my.module { exports com.my.package.name..

更多
loading..
mysqlspringreactive

Full Spring Reactive

Full Spring Reactive背景之前写的一些项目都是仅用了一半的Reactive写法,到数据库这边就还是传统的写法 因为现在最常用的就是 MyBatis,然而并不支持,甚至说 driver 都很难支持的全。 不过踩坑无数 终于写了个完整的Reactive应用并在生产环境发布了。 (偷偷说一句 即使是全reactive,也不会带来什么性能提升) 总结坑点 mysql driver支持太差。 数据库API为: r2dbc R2dbcRepository的字段映射 SQL Statement 参数绑定 模版引擎的返回处理 请求参数处理 多步聚合处理 多线程 Flux Reactive 消费 doOn 系列勾子 Reactive1. MySql Driver驱动还是非关系性数据库比较好,mongodb..

更多
loading..
linuxspringjavadocker

Spring Native

Spring Native其实我主要使用的编程语言是Java来着 背景 springboot 2.5.2spring native 0.10.1 前两天在 spring 上生成项目的时候,忽然发现有个叫 Spring Native 的依赖,听名字就觉得不一般,赶紧玩一玩。 简要介绍spring native 初步看下来是为了减少打包体积,减少内存使用量,加速容器启动和启动服务速度。 先看数据 stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % 05cbc775970a cranky_moser 0.03% 31.82MiB / 7.506GiB log2021-07-07 08:04:11.145 INFO 1 -..

更多
loading..
Vue

vue 技术第二弹

vue 技术第二弹在这之前第一弹指路:讲讲我学习 Vue.js 遇到的那些坑 一直在维护基于 vue 框架的项目的后果就是,遇到更多问题,然后解决更多问题。 似乎以后如果不出意外的话 这个系列会一直更新下去。 还有就是,有些东西可能不是vue相关的,可能是es6,或者别的,这都是我在用vue做实际工程的附加产物,所以就不新开一文写了。 CDN优化 对于服务器带宽比较低的项目来说 能从外部加载的都从外部加载 会大大的提高载入速度。本方法基于 vue-cli 1. 引入CDN编辑 /public/index.html, header里加入 Vue 或其他组件的 CDN 标签 另外吹一波 jsdelivr,这个CDN相当牛x <script src="https://cd..

更多
loading..
springVuedocker

vue.js 和 springboot 项目制作 docker 镜像

vue.js 和 springboot 项目制作 docker 镜像 这里用了两个框架的名字 而不是 node, java,只是偏向于项目常用的 而不是考虑大而全的。 本文用到的所有环境 linux: 3.10.x docker: 20.10.1 (API: 1.41) windows: 20H2 node.js: v12.16.1 yarn: 1.22.4 vue-cli: @vue/cli 4.5.9 maven: 3.6.3 springboot: 2.2.10.RELEASE 个别版本会在配置文件中指定 vue.js这里会演示一个最小化的部署, web-ui 和 web-api 在一个 docker network里面,通过容器名+端口可以直接访问。nginx 也可以直接proxy_..

更多
loading..
javaceph

Ceph 和 java client

Ceph 和 java 客户端 这应该是2020年度最后一个技术文章了… 背景很多个项目的需求都要牵扯到存点东西,老是存本地又不优雅。 迁移麻烦 测试麻烦 就是不想存本地 然后找到了个Ceph这个对象存储组件,打算要上了。 然后突然发现官方的java客户端最后更新时间在2014年….这个官方客户端为何弃疗… 但是仔细看 Ceph还支持了很多协议,例如 S3 . 看到是 Amazon 出品的我就放心了。果断上车。 install on docker有个blog写的特别好 整个过程行云流水,这里就不再复制粘贴了。 https://www.cnblogs.com/hackyo/archive/2004/01/13/13373340.html java client 中文ceph页面的 client 示例 好..

更多
loading..
nodejsVuevuetify

讲讲我学习Vue.js遇到的那些坑

讲讲我学习Vue.js遇到的那些坑 排名不分先后 最近好像都是只发了一些生活类,吐槽的一些blog,不更新点技术相关的 可能有人会觉得 这家伙肯定又在偷懒了。 那么 好 我要开始装逼了 类空指向就是类似于空指针的一种错误方式 不会在console上报错 非常难找的问题 resp.data.user.avatar //如果这个user是null的话 这么调用不会报错 也不会向下执行 非常坑 //如果你想判断这个avatar的话 要这么做 if(resp.data.user && resp.data.user.avatar){ //do... } ES6 箭头函数箭头函数和非箭头函数也是有很大区别的 //普通匿名函数写法 api() .then(fu..

更多
12