- 博客(21)
- 收藏
- 关注
原创 Nest.js中的设计模式——模块化
Nest是以模块作为应用组件进行开发的,开发时需要注重模块化的编程思想。We want to emphasize that modules are strongly recommended as an effective way to organize your components.我们要强调的是,强烈建议将模块作为组织组件的有效方式。一个简单的Nest模块Nest.js的模块化用到了面向对象(OOP)和依赖注入(DI)的设计方法。OOP编程面向对象编程OOP三大要素:封装、多态和继承封
2022-05-27 14:19:16 681
原创 Nest.js中的设计模式——上下文
背景Nest是围绕一种称为装饰器的语言特性构建的。装饰器风格的实现Nest在面向对象设计中用到了装饰器模式去组织代码。装饰器模式是一种动态地往一个类别中添加新的行为的设计模式在写项目的时候,可以说处处都是围绕着装饰器模式去进行定义的。例如将一个类定义为一个controller,并将方法暴露为Get请求的方法是像下面这样处理:import { Controller, Get } from '@nestjs/common';@Controller('cats')export class
2022-05-20 16:52:22 782
原创 Nest.js中的设计模式——装饰器
背景Nest是围绕一种称为装饰器的语言特性构建的。装饰器风格的实现Nest在面向对象设计中用到了装饰器模式去组织代码。装饰器模式是一种动态地往一个类别中添加新的行为的设计模式在写项目的时候,可以说处处都是围绕着装饰器模式去进行定义的。例如将一个类定义为一个controller,并将方法暴露为Get请求的方法是像下面这样处理:import { Controller, Get } from '@nestjs/common';@Controller('cats')export class
2022-05-17 18:27:13 1750
原创 排班问题——Nurse Rostering Problem(NRP)实战
文章目录背景问题调研工具查找——找巨人的肩膀ActionCode exampleor-tools的基本用法参数调整画甘特图总结背景上次周末碰到女朋友在排班表,花了快一个小时,就想着看用代码帮她节省点时间。问题调研上网查了一下,看了几篇论文了解了背景。http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.1030.5363&rep=rep1&type=pdfhttps://arxiv.org/pdf/1804.05002
2022-03-25 11:59:07 6842
原创 Nest.js实战——扫描application下的所有metadata
背景最近项目需要到一个基于事件驱动的一些业务模块,就封装一下类似@nestjs/bull一样的API去进行事件注册和触发,减少了一定的代码量。通过Nest Core的功能去完成全局扫描metadata通过@nestjs/core,我们可以找到相应框架实现的功能和工具,去完成我们需要写业务逻辑前的工作DiscoveryService —— 扫描所有app module注册到的controllers和services首先我们需要扫描所有的controller和service,通过DiscoverySe
2021-12-17 17:49:04 1021
原创 你自己写的进程,你得管理
在互联网后端服务场景下,我们会面对如何在进程挂掉的时候(例如爆CPU或者内存导致进程卡死),你的服务能不间断地提供服务,提供系统稳定性的问题。无论你的服务器是单机的还是跑在集群上,都需要思考在实际过程中如何做到这一点。而基于多任务操作系统的异步性特征(不可复现),我们需要回归到对服务进程进行管理和监控。下面我讲一下怎么去做进程管理。守护进程脱离终端的控制,默默在操作系统背后跑的进程,就是守护进程(后台进程)。不同操作系统用的技术是不一样的,Linux以前是init.d,后面转用Systemd去做进程
2021-12-06 14:16:02 279
原创 奇怪的知识又增加了——JS篇
NOTE:本文持续更新CommonJS Module用require.main判断是否用命令行运行程序if (require.main === module) { // this module was run directly from the command line as in node xxx.js} else { // this module was not run directly from the command line and probably loaded by
2021-11-12 16:06:09 666
原创 package如何进行版本控制
Semantic Versioning版本控制的格式version = MAJOR.MINOR.PATCH:一般来说,对于需要发布到package registry的包,可以根据规范去更新相应的版本号:MAJOR version 当API有改动,或进行与之前架构不相容的项目重整;MINOR version 当进行功能开发和做向下兼容的修改;PATCH version 当进行向下兼容的bug fixes。而对于项目开发而言,其实也是可以依据这个规范去做版本号的管理的,下面是我认为较为合理的版本
2021-02-09 14:43:26 587
原创 使用lerna构建monorepo
使用lerna构建monorepomonorepo是什么?monorepo就是在一个git repository里面管理多个packages或者项目在实际开发使用中,在哪些场景下可能你会想要使用这种代码管理的方式呢?例如,你们团队是一个以全栈开发为目标的团队,可以将前后端的项目放在一个repository里面进行管理又例如,如果你是想使用微服务的,无论是后端微服务还是前端微服务(Single-SPA)之类的,你就可以在一个repository里面管理多个相关的项目Lernamonorepo是一
2021-02-05 14:58:10 1320
原创 Golang使用reflect操作struct
Golang的Reflect包是做什么用的?Reflection in computing is the ability of a program to examine its own structure, particularly through types;it’s a form of metaprogramming反射是程序检查其自身结构的能力,尤其是通过类型;它是元编程的一种形式。From The Go Blog - The Laws of Reflection上面是反射的定义,也就是
2020-12-24 13:23:11 1090
原创 go-kit 简单例子说明
文章目录最简单的例子概述ServiceEndpointTransportmain.go其他最简单的例子概述个人觉得其实可以大概看一下文档就跳过官方的stringsvc例子了,实际实操可以从addsvc开始。addsvc的pkg分层如下|- addendpoint |- middleware.go |- set.go|- addservice |- middleware.go |- service.go|- addtransport |- grpc.go |- http.go |-
2020-09-16 14:39:03 559
原创 golang mongo-driver 使用基础
BSON是什么?BSON就是二进制编码的JSON序列化数据。根据官网上的三个特点:更轻量可转换(序列化和反序列化)更高效,因为是二进制的BSON在mongdo-driver中的应用根据上面所说的BSON的特点,MongoDB是用BSON作为主要的数据格式go.mongodb.org/mongo-driver/bson 的使用bson struct在进行mongodb操作时,经常需要一些基本的bson结构体。有四种struct可以定义bson的数据结构:bson.D{}、bson.E{
2020-09-09 14:41:05 1322
原创 jenkins+webhook区分多项目多环境
我的方法是项目区分带在webhook url,环境区分是通过分支名做管理jenkins插件安装获取jenkins的webhook urlapi tokenurl配置git仓库的webhook配置jenkins项目插件变量解析介绍项目变量环境变量添加filter参考资料jenkins插件安装到jenkins的插件管理页面,安装Generi...
2018-04-24 15:27:00 2840
原创 用docker+ES+kafka搭建用户行为数据收集系统
DockerElasticsearchdocker-composeymlConfluent
2017-11-27 12:01:21 5025
原创 朴素贝叶斯算法规则
算法规则概率求解概率先验概率联合概率规范化后验概率全概率sklearn中浅尝算法规则癌症例子先从一个例子出发,引出如何计算后验概率。假设你患有癌症的概率为P(cancer) = 0.01而你去医院检测到的出现结果的概率为当你有癌症时,有90%的概率检测到你有癌症(positive)当你没有癌症时,有90%的概率检测到你没有癌症
2017-08-10 16:50:02 442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人