- 博客(53)
- 收藏
- 关注
原创 DDD领域驱动设计(DP、Entity介绍;DDD实现流程;DDD聚合Aggregate;限界上下文(Bounded Context))
DDD(Domain Driven Design)DP(Domain Primitive)define:一切模型、方法、架构的基础,是指在特定领域、拥有精准定义、可以自我验证、拥有行为的对象,可以认为是领域的最小组成部分三条原则:让隐性的概念显性化让隐性的上下文显性化封装多对象行为EntityDP: 抽象并封装自检和一些隐性属性的计算逻辑,且这些逻辑是无状态的Entity: 抽象并封装单对象有状态的逻辑Domain Service: 抽象并封装多对象的有状态逻辑
2022-05-23 01:56:28
1913
1
原创 Java进阶之路(九)ElasticSearch
ElasticSearch倒排索引正序索引倒排索引使用倒排索引可能导致索引量爆炸只索引到诗名且建立索引矩阵搜索引擎三大过程爬取内容->进行分词->建立反向索引ElasticSearch数据组织其中,keyword类型不会进行分词,而text会进行分词后建立反向索引ElasticSearch集群ELK...
2021-11-01 13:43:59
829
原创 Library not loaded: libpq.5.dylib C++连接PostgreSQL折腾踩坑
首先列一下项目CMakeListscmake_minimum_required(VERSION 3.14)project(CraEngine)set(CMAKE_CXX_STANDARD 11)#打开UIC、Moc、Rcc开关set(CMAKE_AUTOMOC on)set(CMAKE_AUTOUIC on)set(CMAKE_AUTORCC on)set(CMAKE_MACOSX_RPATH 0)#非常重要!定义PG的路径set(PostgreSQL_ROOT "/Library/
2021-07-20 09:26:46
984
原创 QGIS+PostgreSQL/PostGIS+GeoServer+OpenLayers 开源webGIS部署一条龙
1、软件准备绘图:QGIS数据库:PostgreSql+PostGIS服务管理:GeoServer前端框架:OpenLayers2、下载安装QGIS下载链接:qgis下载下载下来后一路默认安装即可(Windows的话注意安装目录问题)PostgreSQL+PostGIS下载链接:PostgreSQL下载下载下来后一路默认安装即可(Windows的话注意安装目录问题)PostgreSQL安装完成后会弹出Application Stack Builder安装器,选择PostGIS组件
2021-07-07 16:53:32
2117
原创 主机Mac虚拟机linux环境下实现远程调试Supermap iObjects Java 解决no WrapjGeo问题
前言摸索这个是因为本人电脑为Mac,但是超图只提供了win和linux版本的iobjects组件,虽然linux和mac os都是类unix os,但是实际上Mac os是属于bsd系,底层api与linux并不相同,故而只好采取此种折中办法。安装iobjects组件下载超图iobjects组件的tar.gz包,在linux(比如ubuntu)中使用tar -zxvf iobjectsname.tar.gz进行解压,随后将其移动到指定位置。参照主目录下的InstallationGuide.pdf完成
2021-06-30 09:45:22
841
2
原创 Java进阶之路(八)Docker从入门到集redis集群、部署SpringBoot
Docker架构镜像(image)镜像是一个模板,可以用来创建容器,一个镜像可以创建多个容器容器(container)独立运行一个或者一个组应用,通过镜像创建,可以看为一个简易linux系统仓库(repository)存放镜像的地方,分为公有仓库和私有仓库运行原理在本机寻找镜像——>有则运行,无则去DockerHub下载并运行底层原理docker是一个CS结构,守护进程运行在主机上,通过Socket从客户端访问Docker为什么比VM快Docker比虚拟机抽象层更少利用的
2021-04-16 15:21:30
325
原创 Java进阶之路(七)分布式中间件(集群、分布式、CAP、SpringCloud、Dubbo、Redis、消息队列MQ)
概念集群同一个业务,部署在多个服务器上分布式同一个业务,拆分为多个子业务,部署在不同的服务器上CAP理论C:数据一致性(consistency)所有节点拥有数据的最新版本A:可用性(availability)数据具备高可用性P:分区容错性(partition-tolerance)容忍网络出现分区,分区之间网络不可达。SpringCloud基础功能服务治理: Spring Cloud Eureka客户端负载均衡: Spring Cloud Ribbon服务容错保护: Sprin
2021-04-12 16:32:55
808
原创 Java进阶之路(六) MySQL(索引、锁、事务、隔离级别)
Mysql一条SQL语句怎么执行通过连接器登录数据库查询缓冲(8.0后已删除)进入分析器进行词法分析和语法分析通过优化器选择最优方案通过执行器执行命令三大范式1NF:字段不可分2NF:有主键3NF:非主键字段不能相互依赖查询--基本查询SELECT * FROM <TABLE> WHERE <CONDITION> NOT/AND/OR <CONDITION1>;--投影查询SELECT KEY1,KEY2,KEY3 KEY3_NEWNAME
2021-04-12 16:31:20
199
原创 Java进阶之路(五) 数据结构与算法(数据结构、查找算法、排序算法、算法思想)
数据结构与算法线性表数组大小固定的数据结构链表物理存储单元上非连续、非顺序的存储结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fcg9u4F3-1618216193605)(./images/单链表.jpg)]栈与队列栈先进后出,在栈顶操作,操作有push和pop队列先进先出,在表的front(队头)进行取值/删除,在rear(队尾)进行插入树与二叉树树由n(n>=1)个有限节点组成一个具有层次关系的集合二叉树二叉树是每个节点最多有两
2021-04-12 16:30:14
165
原创 Java进阶之路(四) 计算机组成原理(操作系统、进程和线程、内存管理)
计算机组成原理操作系统的四个特性并发:同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件)共享:系统中的资源可以被内存中多个并发执行的进线程共同使用虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进进程与线程进程的状态:1:就绪状态,2:执行状态,3:阻塞状态(多线程时也是这些状态)分类:僵尸进程:子进程结束,父进程没有明确答
2021-04-12 16:28:31
269
原创 Java进阶之路(三) 计算机网络(OSI七层协议、TCP/IP、拥塞控制、HTTPS)
计算机网络网络层次划分分为TCP/IP4层模型划分和OSI7层模型,对应关系如下OSI七层协议、TCP/IP[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aBjNcuyX-1618216037651)(./images/七层模型.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcyhbtCz-1618216037653)(./images/七层四层五层模型.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存
2021-04-12 16:27:31
304
原创 Java进阶之路(二) Spring家族(Spring、SpringMVC、SpringBoot)
Spring开发IoC容器IOC原理IoC意为控制反转,又称为依赖注入定义IoC配置<beans> <bean id="dataSource" class="HikariDataSource" /> <bean id="bookService" class="BookService"> <property name="dataSource" ref="dataSource" /> </bean>
2021-04-12 16:25:54
428
原创 IDEA tomcat项目url去掉项目名的方式
在网上搜了一堆,都说要修改tomcat的server.xml,难道每个项目都要配置一次?太费劲了吧?其实只需要在项目的tomcat配置里修改一下程序的上下文就可以了,选择空白就可以了,如图
2021-04-06 15:47:56
903
原创 Mac上CLion+远程linux编译运行boost项目 例如muduo等
首先检查linux上gcc、gdb、cmake安装情况(安装过程略)本例中,我的boost安装在/usr/include,库文件在/usr/lib打开Clion,command+,进入设置,部署再接着设置工具链和cmake这样可以在本机进行代码编辑同时调用linux的gdb进行调试代码会自动上传cmakelists.txt设置参考cmake_minimum_required(VERSION 3.16)project(MuduoLike)set(CMAKE_
2021-03-22 15:27:12
577
原创 GIS开发常见bug汇总(持续更新)
文章目录问题:空间查询时,如果每个层级都查询一遍,效率很差且极其耗费资源;问题:gdb数据库无法进行SQL的嵌套查询,会报错:问题:通配符%不适用于mdb格式数据源,导致模糊查询时设置的删选条件无效,进而导致查询游标被置空;问题:CreatField算法要求使用下拉选择输入要素问题:输入int类型时模型识别为string类型,从而在初始化时候报错问题:任务返回了false,但未记录错误问题:在gdb很大时,计算总记录数算法的计算时间过于长(>20min),需要优化问题:使用IGpValueTableO
2020-12-23 13:35:39
1592
原创 Java进阶之路(一) Java基础(从面向对象到网络编程)
标题:#1 小标题:#3 小标题内标题:#5以下为目录,点击直达文章目录计算机网络网络层次划分OSI七层协议、TCP/IPAPR/RARPIP/路由TCP/IP协议TCP的四种拥塞控制算法UDP协议TIME_WAITDNSFTPHTTP包结构:状态码:输入URL后的执行全过程HTTP和HTTPS区别HTTPS加密过程计算机组成原理操作系统的四个特性进程与线程进程与线程的对比进程间通信方式虚拟内存和物理内存**页面置换算法**数据结构及算法线性表数组链表栈与队列栈队列树与二叉树树二叉树二叉树遍历二叉查
2020-12-23 10:14:12
729
原创 GIS开发进阶之路(十六) C# 解析WMTS服务元数据
C# 解析WMTS服务元数据定义WMTS,切片地图Web服务(OpenGIS Web Map Tile Service)当前版本是1.0.0。WMTS标准定义了一些操作,这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。原理操作文档树读取使用url方式:http://58.213.23.211:7002/NJDLG_10_17_WMTS/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetCapab
2020-12-23 10:11:01
448
原创 GIS开发进阶之路(十五)ArcEngine字段小结、Maven
ArcEngine字段小结常用接口IField、IField2IFieldEdit、IFieldEdit2ISchemaLockIFields、IFields2IFieldsEdit、IFieldsEdit2添加字段创建字段并添加到字段集中public IFields CreateFieldExample() { //1.新建IFields对象 IFields pFields = new FieldsClass()
2020-12-23 10:06:55
819
原创 GIS开发进阶之路(十四) ArcEngine打开cad文件的五种方法、ArcGIS Engine错误码
ArcEngine打开cad文件的几种方法方法一、通过遍历CAD数据集,依次加载中点线面注记等图层,所加载的数据均为一个独立的图层。 IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureLayer pFeatureLayer; IFeatureDataset pFeatureDataset; //打开CAD数据集 pWorkspaceFactory = new ..
2020-12-23 10:01:05
5113
原创 GIS开发进阶之路(十三) Activator和new的区别、GP工具输入参数问题、写入JObject到json文件、ArcGIS Server REST API、动态规划、贪心算法
Activator和new的区别需要动态的创建一个实例模型的时候,就用Activator.CreateInstance(Type type);如果是明确的知道要创建哪个实例的模型,就可以用 newC#在类工厂中动态创建类的实例,所使用的方法为:Activator.CreateInstance (Type)Activator.CreateInstance (Type, Object[])两种方法区别仅为:创建无参数的构造方法和创建有参数的构造函数。动态创建时,可能会动态使用到外部应..
2020-12-23 09:58:09
328
原创 GIS开发进阶之路(十二) 加载栅格、根据WKID进行投影、部分CENTOS指令
加载栅格、根据WKID进行投影通过自定义WKID json对应文件,使用projectiontool来定义投影类型//获取WKIDint WKID = ProjectionTool.WKID2EsriSRProjCSTypeNames.Where(t => t.Value.Equals(this.outputCoordinate)).Select(t => t.Key).FirstOrDefault();//加载栅格LocalConn conn = JsonConvert.Dese..
2020-12-23 09:54:32
186
原创 GIS开发进阶之路(十一) SSH、DevExpress
SSHSecure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议。安装:ubuntu:sudo apt-get install openssh-client sudo apt-get install openssh-servercentos:sudo yum instal..
2020-12-23 09:51:57
181
原创 GIS 使用JetBrains Rider进行C# .Net开发(从安装到开发配置)
一、下载地址:https://www.jetbrains.com/rider/二、安装这里没什么好讲的,选择好路径后一路下一步即可。三、授权地址:http://lookdiv.com/操作如图,不详细展开了(此处code适用于jetbrains全家桶):四、配置环境ASP.NET Core Runtime&.Net Core Runtime&.Net Core SDK:https://dotnet.microsoft.com/download/do
2020-09-23 15:21:07
5954
1
原创 GIS开发进阶之路(十) 模型后台、lambda详解、LeetCode部分算法
1、模型后台工作流程2、Lambda详解3、LeetCode算法学习题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。思路:利用字典存储nums中的值,遍历并检查target减去nums中的num的值是否在nums中,如果有就输出出来。代码:public class Solution {public int[] TwoSu.
2020-09-21 14:20:03
193
原创 GIS开发进阶之路(九) 模型中对于gdb的IO、NPOI、DATATABLE
模型中对于gdb的IO(1)Input/// <summary>/// 源要素类/// </summary>private FeatureClassDTO SourceFeatureClassDTO;base.InputParametersMeta.Add(nameof(this.SourceFeatureClassDTO), new Property() .SetName(nameof(this.SourceFe...
2020-09-14 09:31:49
169
原创 GIS开发进阶之路(八) gRPC、Kafka
1. gRPC:意义:在两个(多个)应用程序(强调!)中间传递消息和数据C#:(1)新建.Net Core类库项目,命名为gRPCDemo;(2)新建两个.Net Core控制台应用,分别命名为gRPCServer和gPRCClient;(3)在解决方案Nuget包里安装Google.Protobuf、Gprc及Gprc.Tools;//此处应记住Gprc.Tools的版本(4)在gRPCDemo内新建一个helloworld.proto文件,在里面写入:syntax = "p
2020-09-14 09:28:33
958
原创 GIS开发进阶之路(七) Spring Cloud、Lambda表达式、Substring、性能调优(JAVA&C#)
Spring Cloud(Eureka部分&负载均衡部分): 定义:微服务系统架构的一站式解决方案,基于Spring Boot(1)服务发现框架:Eureka基于REST,实现负载均衡和中间层服务器的故障转移一个比喻:Eureka相当于“中介”,房东(as 服务提供者),顾客(as 服务消费者),房产中介(服务中介)。服务注册Register:房东 (提供者 Eureka Client Provider)在中介 (服务器 Eureka Server) 那里登记房屋的信..
2020-09-01 14:23:25
449
原创 GIS开发进阶之路(六) DME模型、redis、Supermap iObjects
DME模型:项目结构:/// <summary>/// 依赖引用/// 创 建:lyw/// 创建时间:20190820/// </summary>using Dist.Dme.Base;using Dist.Dme.Model;using Dist.Dme.SRCE;………… namespace Dist.Dme.Algorithms.算法名{ /// <summary> /// 功 能:功能说明 ...
2020-09-01 14:17:39
571
原创 GIS开发进阶之路(五) 数据库、C#泛型
数据库:(1)按模型分类:数据类型:类似于编程语言的类型(2)按属性分类:商用:Oracle,SQL Server,DB2开源:MySQL,PostgreSQL桌面:Access嵌入式:Sqlite(3)表:行:记录:逻辑意义上的数据列:字段:同一表的每一行记录都拥有相同的若干字段主键:通过逐渐唯一区分出不同的记录选取原则:不使用业务相关的字段作为主键,一般命名为id(自增整数or全局唯一GUID)外键:通过外键可以把数据和另一张表关联起来,通过定义外键约
2020-09-01 14:14:44
191
原创 GIS开发进阶之路(四) AE接口类、C#语法
AE接口类:(1)数据层面:工作空间:IWorkspace——>数据集:IFeatureDataset(IDataset,IGeoDataset)——>数据类:IFeatureClass(IDataset,IGeoDataset,ITable)图层:ILayer;IFeatureLayer地图控件:IMapcontorl;地图:IMap;地图视图:IActiveView数据类型:图形:IGeometry;点线面:IPoint,IPolyline,IPlygon;图形集合:IG
2020-09-01 14:10:49
401
原创 GIS开发进阶之路(三) SqlSugar、点聚合抽稀方法
SqlSugar: (1)创建对象: //创建SqlSugarClient对象var db = new SqlSugarClient(xxx);var sdb = new SimpleClient<Student>(db);var student2 = sdb.GetById(1);var isDel=sdb.DeleteById(1); (2)继承扩展: //可以直接用SimpleClient也可以扩展一个自个的类 //推荐直接用 SimpleClient...
2020-09-01 14:07:31
771
原创 GIS开发进阶之路(二) Webapi、ArcGIS&Oracle、SqlSugar
WebApi进阶: 参数传递:在WebApi的RESETful风格里面,API服务的增删改查,分别对应着http的post/delete/put/get请求。 (1)GET请求: get请求的数据会附在URL之后(就是把数据放置在HTTP协议头中) { type: "get", url: "http://localhost:27221/api/Charging/FindByModel", contentType: "application...
2020-09-01 11:19:07
424
原创 GIS开发进阶之路(一) SOE开发
SOE的使用针对SOE的学习做了一个小的实验工程,从中加深对SOE开发流程的认识.SOE是在ArcGIS Server的的相关开发中很好的使用功能强大的AO,SOE在这两者当中起到了桥梁的作用.SOE的生命周期:1:MapServer初始化2:SOE初始化3:MapServer启动4:SOE构造5:SOE活动——REST/SOAP处理请求——SOE停止活动如ResetOperation的构造构造函数中,第一个参数是扩展名称,也是使用请求时的名称,第二个参数是是传入函数的参数,
2020-09-01 11:09:18
804
原创 OpenGL学习笔记(十五)模板测试
当片段着色器处理完一个片段之后,模板测试(Stencil Test)会开始执行,和深度测试一样,它也可能会丢弃片段。接下来,被保留的片段会进入深度测试,它可能会丢弃更多的片段。模板测试是根据又一个缓冲来进行的,它叫做模板缓冲(Stencil Buffer),我们可以在渲染的时候更新它来获得一些很有意思的效果。一个模板缓冲中,(通常)每个模板值(Stencil Value)是8位的。所以每个像素...
2019-12-23 13:33:57
267
原创 OpenGL学习笔记(十四)深度测试
深度缓冲就像颜色缓冲(Color Buffer)(储存所有的片段颜色:视觉输出)一样,在每个片段中储存了信息,并且(通常)和颜色缓冲有着一样的宽度和高度。深度缓冲是由窗口系统自动创建的,它会以16、24或32位float的形式储存它的深度值。在大部分的系统中,深度缓冲的精度都是24位的。当深度测试(Depth Testing)被启用的时候,OpenGL会将一个片段的的深度值与深度缓冲的内容进行...
2019-12-23 13:28:34
152
原创 OpenGL学习笔记(十三)模型加载
一个非常流行的模型导入库是Assimp,它是Open Asset Import Library(开放的资产导入库)的缩写当使用Assimp导入一个模型的时候,它会将整个模型加载进一个场景(Scene)对象,它会包含导入的模型/场景中的所有数据。Assimp会将场景载入为一系列的节点(Node),每个节点包含了场景对象中所储存数据的索引,每个节点都可以有任意数量的子节点。Assimp数据结构的(...
2019-12-14 23:12:04
309
原创 OpenGL学习笔记(十二)投光物/多光源
投光物(Light Caster):将光投射(Cast)到物体的光源定向光(Directional Light):使用一个假设光源处于无限远处的模型时,光就被称为定向光。eg.太阳struct Light { // vec3 position; // 使用定向光就不再需要了 vec3 direction; vec3 ambient; vec3 diff...
2019-12-12 16:02:10
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人