镜像自地址
https://gitee.com/medical-alliance/Medical-nlp.git
已同步 2025-12-06 01:16:47 +00:00
387 行
17 KiB
HTML
387 行
17 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title></title>
|
||
<script type="text/javascript" src="js/d3.min.js" ></script>
|
||
<script type="text/javascript" src="js/strucMap.min.js" ></script>
|
||
<link rel="stylesheet" href="css/strucMap.min.css" />
|
||
|
||
</head>
|
||
<body>
|
||
<div id="title" >后端架构师技术栈知识图谱</div>
|
||
<div id="topomap" style="margin: 0 auto;" ></div>
|
||
<script type="text/javascript">
|
||
|
||
var nodePX = 0;
|
||
var nodePY = 0;
|
||
|
||
var options = {
|
||
selector:"#topomap",
|
||
width: 1440,//实际展开图宽度
|
||
height: 1440,//实际展开图高度
|
||
lineLength:100,
|
||
// textColor:"#000",
|
||
// textFontFamily:'',
|
||
nodesClick: function(t) {
|
||
//if(t.index==0) t.fixed=1;//判断如果是第一级,移动后就将它固定
|
||
t.fixed = 1;
|
||
console.log(t);
|
||
var nodeX = JSON.parse(JSON.stringify(t.x));
|
||
var nodeY = JSON.parse(JSON.stringify(t.y));
|
||
//xy都没有变,说明没有拖动
|
||
if((nodeX == nodePX)&&(nodeY == nodePY)){
|
||
console.info("跳页面啦~~~~~~");
|
||
}
|
||
},
|
||
nodesDragstart:function(t) {
|
||
nodePX = JSON.parse(JSON.stringify(t.x));
|
||
nodePY = JSON.parse(JSON.stringify(t.y));
|
||
//console.log("移动开始",JSON.parse(JSON.stringify(t.x)),JSON.parse(JSON.stringify(t.y)));
|
||
}
|
||
};
|
||
|
||
var nodesJson = [{"fixed":true,"id":0,"index":0,"prop":{"name":"后端架构师技术图谱","size":32},"x":724,"y":616},
|
||
{"id":1,"index":1,"prop":{"name":"数据结构","size":25}},
|
||
{"id":2,"index":1,"prop":{"name":"常用算法","size":25}},
|
||
{"id":3,"index":1,"prop":{"name":"并发","size":25}},
|
||
{"id":4,"index":1,"prop":{"name":"操作系统","size":25}},
|
||
{"id":5,"index":1,"prop":{"name":"设计模式","size":25}},
|
||
{"id":6,"index":1,"prop":{"name":"运维","size":25}},
|
||
{"id":7,"index":1,"prop":{"name":"中间件","size":25}},
|
||
{"id":8,"index":1,"prop":{"name":"网络","size":25}},
|
||
{"id":9,"index":1,"prop":{"name":"数据库","size":25}},
|
||
{"id":10,"index":1,"prop":{"name":"搜索引擎","size":25}},
|
||
{"id":11,"index":1,"prop":{"name":"性能优化","size":25}},
|
||
{"id":12,"index":1,"prop":{"name":"大数据","size":25}},
|
||
{"id":13,"index":1,"prop":{"name":"安全","size":25}},
|
||
{"id":14,"index":1,"prop":{"name":"常用开源框架","size":25}},
|
||
{"id":15,"index":1,"prop":{"name":"分布式设计","size":25}},
|
||
{"id":16,"index":1,"prop":{"name":"设计思想&开发模式","size":25}},
|
||
{"id":17,"index":1,"prop":{"name":"项目管理","size":25}},
|
||
|
||
{"id":18,"index":2,"prop":{"name":"队列","size":15}},
|
||
{"id":19,"index":2,"prop":{"name":"集合","size":15}},
|
||
{"id":20,"index":2,"prop":{"name":"链表、数组","size":15}},
|
||
{"id":21,"index":2,"prop":{"name":"字典、关联数组","size":15}},
|
||
{"id":22,"index":2,"prop":{"name":"栈","size":15}},
|
||
{"id":23,"index":2,"prop":{"name":"树","size":15}},
|
||
{"id":24,"index":2,"prop":{"name":"BitSet","size":15}},
|
||
|
||
{"id":25,"index":2,"prop":{"name":"排序、查找算法","size":15}},
|
||
{"id":26,"index":2,"prop":{"name":"布隆过滤器","size":15}},
|
||
{"id":27,"index":2,"prop":{"name":"字符串比较","size":15}},
|
||
{"id":28,"index":2,"prop":{"name":"深度优先、广度优先","size":15}},
|
||
{"id":29,"index":2,"prop":{"name":"贪心算法","size":15}},
|
||
{"id":30,"index":2,"prop":{"name":"回溯算法","size":15}},
|
||
{"id":31,"index":2,"prop":{"name":"剪枝算法","size":15}},
|
||
{"id":32,"index":2,"prop":{"name":"动态规划","size":15}},
|
||
{"id":33,"index":2,"prop":{"name":"朴素贝叶斯","size":15}},
|
||
{"id":34,"index":2,"prop":{"name":"推荐算法","size":15}},
|
||
{"id":35,"index":2,"prop":{"name":"最小生成树算法","size":15}},
|
||
{"id":36,"index":2,"prop":{"name":"最短路径算法","size":15}},
|
||
|
||
{"id":37,"index":2,"prop":{"name":"Java 并发","size":15}},
|
||
{"id":38,"index":2,"prop":{"name":"多线程","size":15}},
|
||
{"id":39,"index":2,"prop":{"name":"线程安全","size":15}},
|
||
{"id":40,"index":2,"prop":{"name":"一致性、事务","size":15}},
|
||
{"id":41,"index":2,"prop":{"name":"锁","size":15}},
|
||
|
||
|
||
{"id":42,"index":2,"prop":{"name":"计算机原理","size":15}},
|
||
{"id":43,"index":2,"prop":{"name":"CPU","size":15}},
|
||
{"id":44,"index":2,"prop":{"name":"进程","size":15}},
|
||
{"id":45,"index":2,"prop":{"name":"线程","size":15}},
|
||
{"id":46,"index":2,"prop":{"name":"协程","size":15}},
|
||
{"id":47,"index":2,"prop":{"name":"Linux","size":15}},
|
||
|
||
{"id":48,"index":2,"prop":{"name":"设计模式的六大原则","size":15}},
|
||
{"id":49,"index":2,"prop":{"name":"23种常见设计模式","size":15}},
|
||
{"id":50,"index":2,"prop":{"name":"应用场景","size":15}},
|
||
{"id":51,"index":2,"prop":{"name":"单例模式","size":15}},
|
||
{"id":52,"index":2,"prop":{"name":"责任链模式","size":15}},
|
||
{"id":53,"index":2,"prop":{"name":"MVC","size":15}},
|
||
{"id":54,"index":2,"prop":{"name":"IOC","size":15}},
|
||
{"id":55,"index":2,"prop":{"name":"AOP","size":15}},
|
||
{"id":56,"index":2,"prop":{"name":"UML","size":15}},
|
||
{"id":57,"index":2,"prop":{"name":"微服务思想","size":15}},
|
||
|
||
{"id":58,"index":2,"prop":{"name":"常规监控","size":15}},
|
||
{"id":59,"index":2,"prop":{"name":"APM","size":15}},
|
||
{"id":60,"index":2,"prop":{"name":"持续集成(CI/CD)","size":15}},
|
||
{"id":61,"index":2,"prop":{"name":"自动化运维","size":15}},
|
||
{"id":62,"index":2,"prop":{"name":"测试","size":15}},
|
||
{"id":63,"index":2,"prop":{"name":"虚拟化","size":15}},
|
||
{"id":64,"index":2,"prop":{"name":"容器技术","size":15}},
|
||
{"id":65,"index":2,"prop":{"name":"云技术","size":15}},
|
||
{"id":66,"index":2,"prop":{"name":"统计分析","size":15}},
|
||
{"id":67,"index":2,"prop":{"name":"DevOps","size":15}},
|
||
{"id":68,"index":2,"prop":{"name":"文档管理","size":15}},
|
||
|
||
|
||
{"id":69,"index":2,"prop":{"name":"Web Server","size":15}},
|
||
{"id":70,"index":2,"prop":{"name":"缓存","size":15}},
|
||
{"id":71,"index":2,"prop":{"name":"客户端缓存","size":15}},
|
||
{"id":72,"index":2,"prop":{"name":"服务端缓存","size":15}},
|
||
{"id":73,"index":2,"prop":{"name":"消息队列","size":15}},
|
||
{"id":74,"index":2,"prop":{"name":"定时调度","size":15}},
|
||
{"id":75,"index":2,"prop":{"name":"数据库中间件","size":15}},
|
||
{"id":76,"index":2,"prop":{"name":"日志系统","size":15}},
|
||
{"id":77,"index":2,"prop":{"name":"配置中心","size":15}},
|
||
{"id":78,"index":2,"prop":{"name":"日志系统","size":15}},
|
||
{"id":79,"index":2,"prop":{"name":"API 网关","size":15}},
|
||
|
||
{"id":80,"index":2,"prop":{"name":"协议","size":15}},
|
||
{"id":81,"index":2,"prop":{"name":"网络模型","size":15}},
|
||
{"id":82,"index":2,"prop":{"name":"连接和短连接","size":15}},
|
||
{"id":83,"index":2,"prop":{"name":"框架","size":15}},
|
||
{"id":84,"index":2,"prop":{"name":"零拷贝(Zero-copy)","size":15}},
|
||
{"id":85,"index":2,"prop":{"name":"序列化(二进制协议)","size":15}},
|
||
|
||
{"id":86,"index":2,"prop":{"name":"基础理论","size":15}},
|
||
{"id":87,"index":2,"prop":{"name":"MySQL","size":15}},
|
||
{"id":88,"index":2,"prop":{"name":"Oracle","size":15}},
|
||
{"id":90,"index":2,"prop":{"name":"NoSQL","size":15}},
|
||
|
||
{"id":91,"index":2,"prop":{"name":"搜索引擎原理","size":15}},
|
||
{"id":92,"index":2,"prop":{"name":"Lucene","size":15}},
|
||
{"id":93,"index":2,"prop":{"name":"Elasticsearch","size":15}},
|
||
{"id":94,"index":2,"prop":{"name":"Solr","size":15}},
|
||
{"id":95,"index":2,"prop":{"name":"sphinx","size":15}},
|
||
|
||
{"id":96,"index":2,"prop":{"name":"性能优化方法论","size":15}},
|
||
{"id":97,"index":2,"prop":{"name":"容量评估","size":15}},
|
||
{"id":98,"index":2,"prop":{"name":"CDN 网络","size":15}},
|
||
{"id":99,"index":2,"prop":{"name":"连接池","size":15}},
|
||
{"id":100,"index":2,"prop":{"name":"性能调优","size":15}},
|
||
|
||
{"id":101,"index":2,"prop":{"name":"流式计算","size":15}},
|
||
{"id":102,"index":2,"prop":{"name":"Hadoop","size":15}},
|
||
{"id":103,"index":2,"prop":{"name":"Spark","size":15}},
|
||
|
||
|
||
{"id":104,"index":2,"prop":{"name":"web 安全","size":15}},
|
||
{"id":105,"index":2,"prop":{"name":"WDDoS 防范","size":15}},
|
||
{"id":106,"index":2,"prop":{"name":"用户隐私信息保护","size":15}},
|
||
{"id":107,"index":2,"prop":{"name":"序列化漏洞","size":15}},
|
||
{"id":108,"index":2,"prop":{"name":"加密解密","size":15}},
|
||
{"id":109,"index":2,"prop":{"name":"服务器安全","size":15}},
|
||
{"id":110,"index":2,"prop":{"name":"数据安全","size":15}},
|
||
{"id":111,"index":2,"prop":{"name":"网络隔离","size":15}},
|
||
{"id":112,"index":2,"prop":{"name":"授权、认证","size":15}},
|
||
|
||
{"id":113,"index":2,"prop":{"name":"开源协议","size":15}},
|
||
{"id":114,"index":2,"prop":{"name":"日志框架","size":15}},
|
||
{"id":115,"index":2,"prop":{"name":"ORM","size":15}},
|
||
{"id":116,"index":2,"prop":{"name":"网络框架","size":15}},
|
||
{"id":117,"index":2,"prop":{"name":"Web 框架","size":15}},
|
||
{"id":118,"index":2,"prop":{"name":"工具框架","size":15}},
|
||
|
||
|
||
|
||
{"id":119,"index":2,"prop":{"name":"扩展性设计","size":15}},
|
||
{"id":120,"index":2,"prop":{"name":"稳定性&高可用","size":15}},
|
||
{"id":121,"index":2,"prop":{"name":"数据库扩展","size":15}},
|
||
{"id":122,"index":2,"prop":{"name":"服务治理","size":15}},
|
||
{"id":123,"index":2,"prop":{"name":"分布式一致","size":15}},
|
||
{"id":124,"index":2,"prop":{"name":"分布式文件系统","size":15}},
|
||
{"id":125,"index":2,"prop":{"name":"唯一ID生成","size":15}},
|
||
{"id":126,"index":2,"prop":{"name":"一致性Hash算法","size":15}},
|
||
|
||
{"id":127,"index":2,"prop":{"name":"DDD(Domain-driven Design - 领域驱动设计","size":15}},
|
||
{"id":128,"index":2,"prop":{"name":"Actor 模式","size":15}},
|
||
{"id":115,"index":2,"prop":{"name":"响应式编程","size":15}},
|
||
{"id":130,"index":2,"prop":{"name":"分布式文件系统","size":15}},
|
||
{"id":131,"index":2,"prop":{"name":"DODAF2.0","size":15}},
|
||
{"id":132,"index":2,"prop":{"name":"Serverless","size":15}},
|
||
{"id":133,"index":2,"prop":{"name":"Service Mesh","size":15}},
|
||
|
||
|
||
{"id":134,"index":2,"prop":{"name":"架构评审","size":15}},
|
||
{"id":135,"index":2,"prop":{"name":"重构","size":15}},
|
||
{"id":136,"index":2,"prop":{"name":"代码规范","size":15}},
|
||
{"id":137,"index":2,"prop":{"name":"代码 Review","size":15}},
|
||
{"id":138,"index":2,"prop":{"name":"RUP","size":15}},
|
||
{"id":139,"index":2,"prop":{"name":"看板管理","size":15}},
|
||
{"id":140,"index":2,"prop":{"name":"SCRUM","size":15}},
|
||
{"id":141,"index":2,"prop":{"name":"敏捷开发","size":15}},
|
||
{"id":142,"index":2,"prop":{"name":"极限编程(XP)","size":15}},
|
||
{"id":143,"index":2,"prop":{"name":"结对编程","size":15}},
|
||
{"id":144,"index":2,"prop":{"name":"PDCA 循环质量管理","size":15}},
|
||
{"id":145,"index":2,"prop":{"name":"FMEA管理模式","size":15}},
|
||
|
||
|
||
|
||
|
||
|
||
|
||
];
|
||
//source和target都是按照数组的顺序来的,下标
|
||
var linksJson = [
|
||
{"source":0,"target":1,},
|
||
{"source":0,"target":2,},
|
||
{"source":0,"target":3,},
|
||
{"source":0,"target":4,},
|
||
{"source":0,"target":5,},
|
||
{"source":0,"target":6,},
|
||
{"source":0,"target":7,},
|
||
{"source":0,"target":8,},
|
||
{"source":0,"target":9,},
|
||
{"source":0,"target":10,},
|
||
{"source":0,"target":11,},
|
||
{"source":0,"target":12,},
|
||
{"source":0,"target":13,},
|
||
{"source":0,"target":14,},
|
||
{"source":0,"target":15,},
|
||
{"source":0,"target":16,},
|
||
{"source":0,"target":17,},
|
||
|
||
{"source":1,"target":18,},
|
||
{"source":1,"target":19,},
|
||
{"source":1,"target":20,},
|
||
{"source":1,"target":21,},
|
||
{"source":1,"target":22,},
|
||
{"source":1,"target":23,},
|
||
{"source":1,"target":24,},
|
||
|
||
{"source":2,"target":25,},
|
||
{"source":2,"target":26,},
|
||
{"source":2,"target":27,},
|
||
{"source":2,"target":28,},
|
||
{"source":2,"target":29,},
|
||
{"source":2,"target":30,},
|
||
{"source":2,"target":31,},
|
||
{"source":2,"target":32,},
|
||
{"source":2,"target":33,},
|
||
{"source":2,"target":34,},
|
||
{"source":2,"target":35,},
|
||
{"source":2,"target":36,},
|
||
|
||
{"source":3,"target":37,},
|
||
{"source":3,"target":38,},
|
||
{"source":3,"target":39,},
|
||
{"source":3,"target":40,},
|
||
{"source":3,"target":41,},
|
||
|
||
{"source":4,"target":42,},
|
||
{"source":4,"target":43,},
|
||
{"source":4,"target":44,},
|
||
{"source":4,"target":45,},
|
||
{"source":4,"target":46,},
|
||
{"source":4,"target":47,},
|
||
|
||
{"source":5,"target":48,},
|
||
{"source":5,"target":49,},
|
||
{"source":5,"target":50,},
|
||
{"source":5,"target":51,},
|
||
{"source":5,"target":52,},
|
||
{"source":5,"target":53,},
|
||
{"source":5,"target":54,},
|
||
{"source":5,"target":55,},
|
||
{"source":5,"target":56,},
|
||
{"source":5,"target":57,},
|
||
{"source":6,"target":58,},
|
||
{"source":6,"target":59,},
|
||
{"source":6,"target":60,},
|
||
{"source":6,"target":61,},
|
||
{"source":6,"target":62,},
|
||
{"source":6,"target":63,},
|
||
{"source":6,"target":64,},
|
||
{"source":6,"target":65,},
|
||
{"source":6,"target":66,},
|
||
{"source":6,"target":67,},
|
||
{"source":6,"target":68,},
|
||
{"source":7,"target":69,},
|
||
{"source":7,"target":70,},
|
||
{"source":7,"target":71,},
|
||
{"source":7,"target":72,},
|
||
{"source":7,"target":73,},
|
||
{"source":7,"target":74,},
|
||
{"source":7,"target":75,},
|
||
{"source":7,"target":76,},
|
||
{"source":7,"target":77,},
|
||
{"source":7,"target":78,},
|
||
{"source":7,"target":79,},
|
||
{"source":8,"target":80,},
|
||
{"source":8,"target":81,},
|
||
{"source":8,"target":82,},
|
||
{"source":8,"target":83,},
|
||
{"source":8,"target":84,},
|
||
{"source":8,"target":85,},
|
||
{"source":9,"target":86,},
|
||
{"source":9,"target":87,},
|
||
{"source":9,"target":88,},
|
||
{"source":9,"target":89,},
|
||
{"source":9,"target":90,},
|
||
|
||
{"source":10,"target":91,},
|
||
{"source":10,"target":92,},
|
||
{"source":10,"target":93,},
|
||
{"source":10,"target":94,},
|
||
{"source":10,"target":95,},
|
||
|
||
{"source":11,"target":96,},
|
||
{"source":11,"target":97,},
|
||
{"source":11,"target":98,},
|
||
{"source":11,"target":99,},
|
||
{"source":11,"target":100,},
|
||
|
||
{"source":12,"target":101,},
|
||
{"source":12,"target":102,},
|
||
{"source":12,"target":103,},
|
||
|
||
{"source":13,"target":104,},
|
||
{"source":13,"target":105,},
|
||
{"source":13,"target":106,},
|
||
{"source":13,"target":107,},
|
||
{"source":13,"target":108,},
|
||
{"source":13,"target":109,},
|
||
{"source":13,"target":110,},
|
||
{"source":13,"target":111,},
|
||
{"source":13,"target":112,},
|
||
|
||
{"source":14,"target":113,},
|
||
{"source":14,"target":114,},
|
||
{"source":14,"target":115,},
|
||
{"source":14,"target":116,},
|
||
{"source":14,"target":117,},
|
||
{"source":14,"target":118,},
|
||
|
||
{"source":15,"target":119,},
|
||
{"source":15,"target":120,},
|
||
{"source":15,"target":121,},
|
||
{"source":15,"target":122,},
|
||
{"source":15,"target":123,},
|
||
{"source":15,"target":124,},
|
||
{"source":15,"target":125,},
|
||
{"source":15,"target":126,},
|
||
|
||
{"source":16,"target":127,},
|
||
{"source":16,"target":128,},
|
||
{"source":16,"target":129,},
|
||
{"source":16,"target":130,},
|
||
{"source":16,"target":131,},
|
||
{"source":16,"target":132,},
|
||
{"source":16,"target":133,},
|
||
|
||
{"source":17,"target":134,},
|
||
{"source":17,"target":135,},
|
||
{"source":17,"target":136,},
|
||
{"source":17,"target":137,},
|
||
{"source":17,"target":138,},
|
||
{"source":17,"target":139,},
|
||
{"source":17,"target":140,},
|
||
{"source":17,"target":141,},
|
||
{"source":17,"target":142,},
|
||
{"source":17,"target":143,},
|
||
{"source":17,"target":144,}
|
||
|
||
|
||
];
|
||
|
||
console.log("初始化打印",linksJson);
|
||
loadMap(options, nodesJson, linksJson);
|
||
</script>
|
||
</body>
|
||
</html>
|