自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(772)
  • 资源 (13)
  • 论坛 (1)
  • 收藏
  • 关注

原创 【goland环境搭建】1.go终极包管理工具go module 2.shell脚本文件发布可执行文件

1)设置好环境变量go env -w GO111MODULE=autogo env -w GOPROXY=https://goproxy.cn,direct2)初始化项目1.随便找一个目录: 如module-repocdmodule-repo2.使用go mod init命令初始化自己包的名字,以后导包就靠它啦go mod init github.com/eddycjy/module-repo3)编写main文件package mainimport ( ".

2020-08-07 00:18:04 230

原创 【Linux快速部署】1.maven-assembly-plugin打包jar 2.上传Linux 3.进程查看杀死指定pid的进程 4.nohup运行shell 5.tail查看日志文件

nohup java -jar xxx.jar>log.txt &

2020-03-31 10:21:03 212

原创 使用git高效管理项目

 简单在一个目录下拉取别人的一个工程 1.在任何一个目录下新建一个文件夹比如:work,然后cd 切换到工作目录 2.仓库初始化git init 3.从某个地址拉取工程到自己的工作目录git clone git@192.168.0.21:2dxproj/AdventureEliminate.git 备注:比较大的工程往往用http协议下载不下来,这...

2015-04-01 17:48:24 4118

原创 分布式服务器启动

1)先启动Administrator@Administrator MINGW64 /f/MongoDB/Server/3.6/bin$ ./mongod -dbpath=./data2)设置用户$ ./mongoMongoDB shell version v3.6.23connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodbImplicit session: session { "id" : UUID("121e

2021-05-01 23:47:23 14

原创 Reactor与多线程架构设计(Redis 6.0 IO多线程方案)

lee老师1.从0到1设计高并发的系统 单机服务上面: cpu 内存 IO(性能影响很大,因为它很慢,1/100) 多进程 线程池 read、write IO Reactor的设计模式2.nginx源码很NB,如何学习? 1.了解人家的设计方案 2.当然还有语言、数据结构等细节 3.把框框图转化为代码,如: redis 6.0的源码3.reactor...

2021-05-01 05:40:56 28

原创 红黑树

1)二叉排序树:1.用的不多,但是它是红黑树的基础;操作:每次插入,必然是插入到最下面的叶子节点。最坏的情况下,会退化成链表。2)红黑树1.linux内核进程调度2.nginx定时器;3)红黑树在工程上的使用(1)利用红黑树排序的功能; ==》顺序;(2)快速查找的功能,key-value;任何数据结构,比如:二叉树, 咱们写逻辑时要做到性质和业务没有做到分离。==》业务和数据结构要分离。4)红黑树的5个性质1.每个节点是红的...

2021-04-30 16:38:10 10

原创 远程通信协议原理:NIO(包括select、epoll),深刻理解epoll为什么叫做同步非阻塞(同步在于:服务器回执时客户端需要到内核空间去拷贝数据到用户空间 非阻塞在于:服务器不会卡在IO)

远程通信协议原理1)分布式: 在不同计算机上。2)切入: http协议的通信流程 DNS解析==》域名解析服务得到ip==》通过 ip地址去访问 CDN:网络缓存技术。放到离:客户资源最近的地方。 cdn.baidu.com 思考: 拿到ip地址后,如何建立连接和通信的? 通信协议: http是应用层协议,在tcp/udp之上。 还有:ftp、smtp、TelNet。 ...

2021-04-29 01:12:30 11

原创 用js的原型链机制设计插件系统在不修改原先类的情况下,去动态修改类的功能。案例1:草稿键盘 案例2:组键盘 (符合对内修改关闭,扩展的话,新增即可,解耦)

➜ Script tree.|____Helloworld.ts|____utils| |____JsUtils.ts|____APlugin.ts|____base| |____BaseComponent.ts| |____BasePlugin.ts|____Helloworld.tsimport BaseComponent from "./base/BaseComponent";const {ccclass, property} = cc._decorator;...

2021-04-28 18:05:41 31

原创 grpc入门案例

1)配置环境变量export PROTOBUF=/Users/jianan/protobuf-3.15.8export PATH=$PROTOBUF/bin:$PATH2)搭建好➜ ~ protoc --versionlibprotoc 3.15.83)pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"

2021-04-28 11:37:52 18

原创 git pull --rebase 让提交成一条直线

1)如果不加--rebase参数,那么就会红框内的分叉出现冲突的话:解决冲突git rebase --continuegit rebase --skip2)xy的做法git fetch upstream git rebase upstream/master

2021-04-27 14:35:31 17

原创 01.分布式架构的发展及演进

1)springcloud alibaba dubbo、RocketMQ2)SpringCloud NetFix3)去IOE(IB、Oracle、Emc)4)分/合--》有序化重构 userId、user_id、user 用户中心 迫切需要解决的问题,拆分和组合==》子系统或者模块或者组件进行拆分。5)业务架构、技术架构(中间件) 抽象思维6)电商 用户(注册、登陆) 商品(商品查询) 交易(下单、支付)v1:...

2021-04-27 00:34:56 15

原创 arr.map方法 功能: 数组里面每个元素都做一件事。最终并返回整个arr

let arr = [1, 2, 3];let newArr = arr.map(function (val, i) { return val * 2;});console.log(newArr);// [ 2, 4, 6 ]

2021-04-26 11:55:27 8

原创 Java并发编程3类: 1.线程池 2.阻塞队列 3.ConcurrentHashmap

1)线程池2)阻塞队列3)ConcurrentHashmap

2021-04-26 10:58:56 9

原创 mysql表例子

1.alter table eshop_order add stock_trade_no varchar(120) null comment '库存交易流水号';第二批 计划执行时间 2021-04-26 白天执行1.alter table eshop_goods add stock_code stock_code varchar(120) null comment '库存代码';2.alter table stock add stock_code varchar(120) null.

2021-04-26 10:54:45 11 1

原创 【Java】找出2个目录中的同名文件

import java.io.File;import java.util.HashMap;import java.util.List;public class Main { public static void listDir(File file, HashMap<String, String> namePathMap) { if (file.isDirectory()) { File[] results = file.listFiles.

2021-04-25 12:01:00 19

原创 跳表和红黑树学习的简单笔记

===============跳表1)基于链表结构2)不断的增加索引层==>接近于2分查找3)空间换时间的一种算法-->可以改变抽取间隔来平衡下需要的空间。4)基本操作: 插入 删除-->可能要修改前驱 索引5)随机函数实现平衡===============红黑树避免退化为单链表根节点是黑色。一个节点是:红色。 那么叶子节点必须是黑色。也就是遍历的话,不存在2个连续节点为红色。黑高度必须相同。新插入的节点,必然是: 红色的。...

2021-04-14 16:25:26 14

原创 mutex spinlock 无锁cas

并发1)加锁mutex 获取不到锁就休眠,让出CPU; ==>去尝试获取锁,并不怎么耗时间。 等拿到锁,比较耗时间。 使用场景:只有一个连接时,去连接数据库。 假如:有3个线程去,这时去竞争,那么就可以用mutex,让竞争不到的不要死等。 为什么不能用自旋锁呢? 因为会忙等,等于啥也不干空耗CPU。2)自旋锁 获取不到锁,继续去检测; 获取自旋锁:如果不能及时获取,它是一个忙等待的过程,占CPU。 使用场...

2021-04-14 15:06:06 13

原创 链表的交点

import java.util.HashMap;class Node { public Node next; public String val; public Node(String val) { this.val = val; }}public class Main { public static void main(String[] args) { // TODO 链表1 Node rootOne .

2021-04-14 14:13:15 9

原创 定时器的实现: 1.跳表 2.红黑树 3.时间轮

gcc skiplist.c sl-timer.c -I./ -o sl-timer./sl-timerg++ test.cc -o test./test1)红黑树2)时间轮3)跳表 zset 数据>=128时,数据用skiplist来存储。 redis有哪些事件需要定时器处理? key expire redis的是双向 链表的实现(无序的)。 优化: ...

2021-04-13 16:22:28 46

原创 协程的实现,及其我们为什么用协程

1)为什么要有协程?2)客户端的同步和异步 1.客户端的同步:发送一个请求,等待服务器端的返回。如:请求Redis,等待返回value 缺点: 每一秒钟客户端请求服务器的数量不会很多。 2.客户端的异步:不停的提交。 结论:客户端使用异步,速度远远快于同步。3)king式四元组: 1.init 2.commit 3.callback 4.destroy4)服务器端的同步与异步(以增加1000连接为例子) (...

2021-04-12 23:16:44 23

原创 centos7下c/c++环境搭建 1.安装vscode 2.下载插件 3.调试 4.直接运行代码ctrl+F5 5.gcc编译多个文件及其task.json配置 及其 C++ 用g++编译

准备工作sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascsudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/micr

2021-04-12 01:13:42 85

原创 消息基本消息设计原则: 服务器的消息驱动客户端的UI显示

消息基本消息设计原则: 服务器的消息驱动客户端的UI显示。以 ‘五子棋’为例子,服务器分配给客户端座位号,轮到谁则是服务器驱动着走。

2021-04-11 10:38:24 14

原创 proto文件变量名不可带下划线, 如: uint32 x_block = 1; 而只能是 uint32 xblock = 1;

proto文件变量名不可带下划线, 如: uint32 x_block = 1; 而只能是 uint32 xblock = 1;

2021-04-11 10:34:11 16

原创 本地缓存: LoadingCache模块的基本封装的使用(慢的用数据库用于查询,并且使用单线程异步持久化数据)

| | |____java| | | |____BaseCacheDao.java| | | |____Player.java| | | |____Main.java| | | |____PlayerDao.javaBaseCacheDao.javaimport com.google.common.cache.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.

2021-04-09 16:43:50 64

原创 与场景相关的设计模式: MJResMgr, 这样在GameScene中挂到Canvas上进行初始化为单例,从而在其它组件中使用

与场景相关的设计模式: MJResMgr, 这样在GameScene中挂到Canvas上进行初始化为单例,从而在其它组件中使用

2021-04-09 15:02:16 14

原创 export class xx {} 和 export default class xx {};的区别 在于引入模块时写法import xx 和 import {xx}

export let xx = 1; 和 export default let xx =1;的区别 在于引入模块时写法import xx 和 import {xx}

2021-04-08 11:32:59 23

原创 --save 的作用: 1. 安装模块到项目 node_modules 目录下。 2. 会将模块依赖写入 dependencies 节点。

1. 安装模块到项目 node_modules 目录下。 2. 会将模块依赖写入 dependencies 节点。

2021-04-08 11:28:45 25

原创 任务系统的核心原理

其实还是之前那句话,要学会分析问题。以最简单的例子来说: 赢3场,则获得50金币奖励,这个需求来说。那么赢一场的时候,就触发一个函数,然后检测各个条件的变化。push_task_process(int win){ check_win_times(xx); // 检查赢的次数是否达成任务}...

2021-03-31 23:11:26 22

原创 Mgr管理之: 大总管在onLoad中调用小组件的init方法配合使用

现在情况是: 一个大的Template模板管理很多个小的模板,但是想先初始化一下小的模板,这样Template才能收集到正确的信息。但是:Template的onLoad先执行,而小部件的onLoad后执行,因此这样在小组件的onLoad中初始化是不行的。正确做法: 为小组件写init方法,class Template{ onLoad(){ // 初始化小组件 // 获取所有小组件的信息 }}class Co...

2021-03-31 10:37:49 14

原创 微元法应用场景: 渲染、路径行走(塔防)、转盘、AI怪物思考、技能释放是否攻击到目标。。。

1)渲染: 累积时间后,update渲染一次路径行走(塔防怪物行走、AI赛车路径行走、捕鱼达人鱼的游动、转盘中通过调整speed实现转盘转动快变慢): fromPos + dt*speed = targetPos,这样根据开始和结束位置和速度,就知道行驶过去的时间,如果超过了时间,则退一下,这样就能化连续问题为离散的问题。 比如: 玩家速度是1000,需要时间0.1s走到目的地,但是dt都是0.3s了,0.3 > 0...

2021-03-23 11:04:32 21

原创 linux常用命令: 1.curl/yum(下载) 2.tail(查看日志) 3.scp(上传与下载) 4.ssh远程登录服务器 5.ps(查看进程信息)

curl -O url 带有进度的下载文件 1.下载python-3.6.3-macosx10.6.pkg安装包 2.下载百度首页index.html下载python安装包➜ ~ curl -O https://www.python.org/ftp/python/3.6.3/python-3.6.3-macosx10.6.pkg % Total % Received % Xferd Average Speed Time Time Time Current ...

2021-03-22 11:26:54 19

原创 creator 客户端锁消息队列,从而避免丢一个消息

1.点击按钮开始切场景,此时锁消息队列。2.注册下一个场景的事件。3.切场景成功后,打开消息队列。因此,在打开消息队列时,已经注册完下一个场景的监听了。就不会丢消息了。

2021-03-19 11:57:25 9

原创 Tomcat+Jenkins实现自动化部署(MAC环境为例子)

1)下载jenkinshttps://www.jenkins.io/download/2)下载tomcat3)把jenkins.war放到webapps目录下4)为tomcat下面的sh加权限,并且必须以sudo方式启动tomcat5)打开jenkinshttp://localhost:8080/jenkins6)初次使用配置jenkins密码7)加权限并且查看密码cd /varsudo chmod -R 777 rootopen /var/r

2021-03-16 16:17:02 46

原创 [express]1.creator3.0 ab包第三方部署实战(以Web Desktop这个环境来测试AB包) 2.3类AB包 3.h5游戏资源加载方式

1)配置为ab包,勾选IsBundle,选好Web Desktop,勾选IsRemoteBundle2)构建任务Project-->Build3)先不选Md5 Cache,防止文件名字一直变化; 勾选主包也为Bundle; 配置第三方Server地址;4)将打包出来的AB包放到第三方服务器上注意配置跨域var express = require("express");var path = require("path");var a...

2021-03-16 11:34:52 29

原创 定点数: 用于浮点数的精确比较(左移16位)

定点数: 用于浮点数的精确比较(左移16位)int x = (int)(dir.x * (1 << 16));乘以65536倍,这样就ok了

2021-03-14 17:42:10 42

原创 win下java环境搭建

1)阿里云镜像<mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>...

2021-03-14 16:08:46 26

原创 实际中遇到的2个需要重构的问题: 1.普通mj场扩展出金币场 2.一种mj玩法,扩展出20多种玩法

(1)从普通麻将场扩展出金币场 1.抽象出 普通麻将和金币场的相同接口 和 在金币场上新增接口, 利用继承去扩展, 动态添加对应的组件。(2)麻将app,开始有1种玩法, 后来有20种玩法 1.简单粗暴的方法: 大量的if else。 2.较好写法的思考: 写好继承关系, 利用代码, 添加组件(未实践)....

2021-03-12 16:13:01 16

原创 Timer中和Server中操作eventQueue队列

Timer是在另外的线程,因此设计到修改变量,则要加同步。如: 在MMORPG游戏中,服务器跑地图,需要迭代客户端发来的请求,那么就可以先扔队列,然后不断的发送给客户端即可。

2021-03-12 15:33:52 18

原创 客户端数据 和 服务器数据 的信任关系

1)基本原则客户端相信客户端。服务器相信服务器。客户端收到服务器信息,更新即可,总是认为服务器发来的数据是正确的。2)一个背包问题的实战:比如:背包系统。 服务器推送了所有的背包数据,那么客户端初次展示背包内容。假如:背包中物品A有10个,当客户端发起售卖请求卖了5个A时,客户端的背包如何刷新呢?方法1: 客户端removeAllChildren所有的背包数据,从而从新请求背包数据从而刷新UI。方法2:客户端发起售卖,服务器告诉售卖成功,数量变化为5,客户端从本地存储..

2021-03-12 15:21:56 36

原创 ghost和ctrl分离的方式处理同步设计

Ghost和ctrl分开的设计思想用于多人状态同步。那么:棋牌的也可以。自己和别人的区别在于,大家都有Ghost,也就是显示。Ctrl: 是发出动作,自己的有这个组件,别人的没有这个组件而已,其余的完全相同。...

2021-03-12 15:15:55 18

Unity 3D网络游戏实战(全)

Unity 3D网络游戏实战(全) Unity 3D网络游戏实战(全) Unity 3D网络游戏实战(全)

2018-08-10

手把手教你用C#制作RPG游戏__罗培羽著

手把手教你用C#制作RPG游戏__罗培羽著_北京:海洋出版社_2014.05_P256_13532862

2018-08-10

C++ 0-1背包问题源代码

C++ 0-1背包问题源代码

2012-01-03

JavaScript应用开发实践指南.pdf

JavaScript应用开发实践指南 JavaScript应用开发实践指南

2018-05-17

图书馆管理系统C++源代码

C++开发的图书馆管理程序源代码

2012-01-02

markdown写的简历模板

作为程序员,当然应该不用什么word之类的来写简历,我们应该使用简洁美观的markdown编辑器来完成

2018-04-25

C++编写的图书馆管理系统

C++编写的图书馆管理系统

2012-03-30

node.js实战

node.js实战,学习node.js开发必读书籍,npm作者大作 node.js实战,学习node.js开发必读书籍,npm作者大作

2018-05-31

航海乘务管理系统C++源代码

航海乘务管理系统C++源代码.

2012-01-02

MASM汇编语言新手入门

MASM汇编语言新手入门

2012-03-30

JavaScript设计模式与开发实践-源代码

JavaScript设计模式与开发实践-源代码 JavaScript设计模式与开发实践-源代码

2018-06-03

JavaScript函数式编程

JavaScript函数式编程_PDF电子书下载 高清 带索引书签目录_(美)佛格斯著_北京:人民邮电出版社_P204_2015.08

2018-06-01

编写可维护的JavaScript

编写可维护的javascript 编写可维护的javascript 编写可维护的javascript

2018-05-28

私密文章

发表于 2018-01-12 最后回复 2018-01-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除