forked from Quorafind/golang-developer-roadmap-cn-2021
-
Notifications
You must be signed in to change notification settings - Fork 0
/
golang-developer-roadmap.xml
2 lines (2 loc) · 115 KB
/
golang-developer-roadmap.xml
1
2
<?xml version="1.0" encoding="UTF-8"?>
<mxGraphModel dx="918" dy="518" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="4" value="2019 Go 开发者成长路线图" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=16;fontStyle=0" parent="1" vertex="1"><mxGeometry x="273.5" y="30" width="280" height="30" as="geometry"/></mxCell><mxCell id="5" value="图例说明" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=12;" parent="1" vertex="1"><mxGeometry x="679" y="38" width="51" height="20" as="geometry"/></mxCell><mxCell id="7" value="一定要懂" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="680" y="70" width="120" height="20" as="geometry"/></mxCell><mxCell id="9" value="懂的话会更好" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="680" y="100" width="120" height="20" as="geometry"/></mxCell><mxCell id="10" value="可选项" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="680" y="130" width="120" height="20" as="geometry"/></mxCell><mxCell id="12" value="先决条件" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=10;fontStyle=0" parent="1" vertex="1"><mxGeometry x="250" y="115" width="280" height="15" as="geometry"/></mxCell><mxCell id="15" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;entryX=0.5;entryY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="12" target="17" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="270" y="210" as="sourcePoint"/><mxPoint x="360" y="190" as="targetPoint"/><Array as="points"><mxPoint x="390" y="140"/><mxPoint x="414" y="170"/></Array></mxGeometry></mxCell><mxCell id="16" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;entryX=0.5;entryY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="4" target="12" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="414" y="100" as="sourcePoint"/><mxPoint x="310" y="210" as="targetPoint"/><Array as="points"><mxPoint x="390" y="80"/></Array></mxGeometry></mxCell><mxCell id="17" value="Go" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="348.5" y="190" width="130" height="20" as="geometry"/></mxCell><mxCell id="18" value="&nbsp;Go 模组" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="348.5" y="215" width="130" height="20" as="geometry"/></mxCell><mxCell id="31" value="<span>学习 Go 依赖管理工具</span><br>" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="540.5" y="175" width="260" height="15" as="geometry"/></mxCell><mxCell id="32" value="语义版本控制(Semantic Versioning)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="540" y="200" width="260" height="15" as="geometry"/></mxCell><mxCell id="33" value="版本,脚本,存储库及其它特性" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="541.5" y="225" width="260" height="15" as="geometry"/></mxCell><mxCell id="34" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=1;exitY=0.25;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="18" target="31" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="358.5" y="205" as="sourcePoint"/><mxPoint x="290" y="162.5" as="targetPoint"/><Array as="points"><mxPoint x="500" y="193"/></Array></mxGeometry></mxCell><mxCell id="35" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="18" target="32" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="488.5" y="205" as="sourcePoint"/><mxPoint x="550" y="187.5" as="targetPoint"/><Array as="points"><mxPoint x="510" y="205"/></Array></mxGeometry></mxCell><mxCell id="36" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=1;exitY=0.75;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="18" target="33" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="498.5" y="215" as="sourcePoint"/><mxPoint x="560" y="197.5" as="targetPoint"/><Array as="points"><mxPoint x="520" y="218"/></Array></mxGeometry></mxCell><mxCell id="39" value="数组 &amp; 切片" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="46" y="166.5" width="208" height="15" as="geometry"/></mxCell><mxCell id="40" value="指针,结构,方法" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="22.5" y="181.5" width="230" height="15" as="geometry"/></mxCell><mxCell id="41" value="接口" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="54" y="194" width="200" height="15" as="geometry"/></mxCell><mxCell id="42" value="协程(Goroutine), 信道, 缓冲区, 选择(Select),互斥锁(Mutex)" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="13.5" y="216.5" width="240" height="15" as="geometry"/></mxCell><mxCell id="44" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.25;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="39" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="349" y="195" as="sourcePoint"/><mxPoint x="290" y="137.5" as="targetPoint"/><Array as="points"><mxPoint x="310" y="170"/></Array></mxGeometry></mxCell><mxCell id="45" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.25;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="40" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="349" y="195" as="sourcePoint"/><mxPoint x="270" y="187.5" as="targetPoint"/><Array as="points"><mxPoint x="300" y="180"/></Array></mxGeometry></mxCell><mxCell id="46" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.5;endFill=0;dashed=1;exitX=0;exitY=0.5;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="41" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="349" y="200" as="sourcePoint"/><mxPoint x="270" y="200.5" as="targetPoint"/><Array as="points"><mxPoint x="300" y="190"/></Array></mxGeometry></mxCell><mxCell id="47" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.75;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="42" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="349" y="205" as="sourcePoint"/><mxPoint x="280" y="210.5" as="targetPoint"/><Array as="points"><mxPoint x="300" y="200"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-52" value="GIT" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="27" y="334" width="260" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-53" value="HTTP/HTTPS" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="27" y="349" width="260" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-56" value="数据结构和算法" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="26" y="364" width="260" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-59" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.25;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="51" target="15a4b3893f7299b4-52" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="355.5" y="249" as="sourcePoint"/><mxPoint x="267" y="271.5" as="targetPoint"/><Array as="points"><mxPoint x="347" y="334"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-60" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.25;endFill=0;dashed=1;entryX=1;entryY=0.5;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="51" target="15a4b3893f7299b4-53" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="390.5" y="384" as="sourcePoint"/><mxPoint x="297" y="364" as="targetPoint"/><Array as="points"><mxPoint x="347" y="349"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-61" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.5;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="51" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="390.5" y="396.5" as="sourcePoint"/><mxPoint x="287" y="372" as="targetPoint"/><Array as="points"><mxPoint x="337" y="354"/></Array></mxGeometry></mxCell><mxCell id="111" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.631;exitY=1.033;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-68" target="109" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="659" y="900.5" as="sourcePoint"/><mxPoint x="689" y="953.5" as="targetPoint"/><Array as="points"><mxPoint x="701" y="900"/><mxPoint x="715" y="913"/><mxPoint x="699" y="943.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-66" value="高速缓存(Caching)" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="649" y="781" width="131" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-68" value="分布式缓存(Distributed Cache)" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="628" y="860" width="152" height="28" as="geometry"/></mxCell><mxCell id="109" value="GoMemcache" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="650.5" y="928.1666666666665" width="100" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-78" value="Go-Redis" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="535.5" y="928.1666666666665" width="100" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-88" value="网页框架+路由" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="501" y="525" width="100" height="30" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-92" value="数据库" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="172.5" y="612.5" width="70" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-93" value="关系数据库<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="108" y="512" width="110" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-95" value="SQL Server" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="2" y="442" width="80" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-96" value="MySql" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="88" y="442" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-97" value="MariaDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="163" y="442" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-100" value="PostgreSQL<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="238" y="442" width="72" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-105" value="云数据库" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="190" y="559" width="80" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-106" value="Azure CosmosDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="309" y="495" width="112" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-107" value="Amazon DynamoDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="308.5" y="519.5" width="90" height="35" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-110" value="测试" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="320.5" y="1375" width="70" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-111" value="API 客户端(API Clients)<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="520" y="1140" width="120" height="30" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-114" value="任务调度" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="531" y="1572" width="80" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-116" value="日志框架<br>(Log Framework)<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="244" y="940" width="130" height="31" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-118" value="NoSQL" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="30" y="652.5" width="80" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-119" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="hN1WOHKFd2xeFHFnYRlw-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="476.2108403120819" y="645.3433612483277" as="sourcePoint"/><mxPoint x="440" y="1850" as="targetPoint"/><Array as="points"><mxPoint x="450" y="590"/><mxPoint x="430" y="700"/><mxPoint x="490" y="960"/><mxPoint x="420" y="1280"/><mxPoint x="490" y="1610"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-120" value="" style="curved=1;endArrow=none;html=1;dashed=1;fontFamily=Verdana;fontSize=14;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="440" y="1850" as="sourcePoint"/><mxPoint x="510" y="1930" as="targetPoint"/><Array as="points"><mxPoint x="420" y="1920"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-121" value="保持学习 :)" style="text;html=1;strokeColor=#000000;fillColor=#FFFFCC;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;comic=0;fontFamily=Verdana;fontSize=14;labelBorderColor=none;glass=0;arcSize=50;perimeterSpacing=1;" parent="1" vertex="1"><mxGeometry x="430.5" y="1930" width="147" height="28" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-131" value="MongoDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="141" y="740" width="100" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-132" value="Redis" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="141" y="760" width="100" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-133" value="LiteDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="141" y="780" width="100" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-134" value="Apache Cassandra" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="141" y="800" width="119" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-135" value="RavenDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="141" y="820" width="100" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-136" value="Gentleman" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="534" y="1196.5" width="82" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-140" value="Zap<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="202.5" y="1035.5" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-142" value="ZeroLog" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="282" y="1035.5" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-144" value="单元测试(Unit Testing)" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="313" y="1230" width="107" height="33" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-145" value="Testify" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="65.5" y="1234.5" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-146" value="Ginkgo" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="65.5" y="1258" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-148" value="GoMega<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="66" y="1281" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-153" value="<span>集成测试(</span><span>integration testing</span><span>)</span>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="139" y="1452.5" width="136" height="34" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-154" value="Testify" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="30.5" y="1493.5" width="103" height="20" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-155" value="端对端测试(E2E Testing)" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="290" y="1480" width="120" height="29" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-156" value="Endly" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="349" y="1533.5" width="80" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-159" value="gron" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="663" y="1549.5" width="80" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-160" value="jobrunner" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="665.5" y="1577" width="80" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-166" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=0.5;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-88" target="15a4b3893f7299b4-163" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="346.33333333333326" y="654.8333333333334" as="sourcePoint"/><mxPoint x="323" y="754.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="480" y="560"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-167" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="425" y="693" width="23" height="23" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-168" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="439" y="813.5" width="23" height="23" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-169" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="461" y="907.5" width="23" height="23" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-170" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="429" y="1197" width="23" height="23" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-172" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="429" y="1325" width="23" height="23" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-173" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="453.5" y="1576" width="23" height="23" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-176" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-167" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="360.33333333333326" y="617" as="sourcePoint"/><mxPoint x="243" y="623" as="targetPoint"/><Array as="points"><mxPoint x="400" y="649"/><mxPoint x="330" y="649"/><mxPoint x="280" y="649"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-185" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=0.25;endFill=0;entryX=0.5;entryY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-92" target="15a4b3893f7299b4-93" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="-139.16666666666674" y="655.8333333333333" as="sourcePoint"/><mxPoint x="54.5" y="597.5" as="targetPoint"/><Array as="points"><mxPoint x="120" y="600"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-186" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.75;exitY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryX=0.432;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="15a4b3893f7299b4-92" target="15a4b3893f7299b4-105" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="-26.666666666666742" y="711" as="sourcePoint"/><mxPoint x="210" y="570" as="targetPoint"/><Array as="points"><mxPoint x="225" y="600"/><mxPoint x="208" y="590"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-187" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;entryX=0.5;entryY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.15;exitY=1.075;exitDx=0;exitDy=0;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-92" target="15a4b3893f7299b4-118" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="-42.5" y="622.5" as="sourcePoint"/><mxPoint x="-47.5" y="727.5" as="targetPoint"/><Array as="points"><mxPoint x="150" y="653"/><mxPoint x="110" y="610"/><mxPoint x="80" y="628"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-189" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=1;endFill=0;dashed=1;exitX=0.25;exitY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-93" target="15a4b3893f7299b4-95" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="103" y="492" as="sourcePoint"/><mxPoint x="37.83333333333326" y="484.83333333333326" as="targetPoint"/><Array as="points"><mxPoint x="133" y="492"/><mxPoint x="45" y="482"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-190" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=1;endFill=0;dashed=1;exitX=0.4;exitY=0.05;exitPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-93" target="15a4b3893f7299b4-96" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="145.33333333333326" y="522.3333333333333" as="sourcePoint"/><mxPoint x="55.33333333333326" y="467" as="targetPoint"/><Array as="points"><mxPoint x="153" y="492"/><mxPoint x="121" y="482"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-191" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=1;endFill=0;dashed=1;exitX=0.6;exitY=0.083;exitPerimeter=0;endSize=6;startSize=6;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-93" target="15a4b3893f7299b4-97" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="173.33333333333326" y="522.3333333333333" as="sourcePoint"/><mxPoint x="130.66666666666674" y="467" as="targetPoint"/><Array as="points"><mxPoint x="174" y="492"/><mxPoint x="195" y="482"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-192" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=1;endFill=0;dashed=1;exitX=0.75;exitY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-93" target="15a4b3893f7299b4-100" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="213" y="502" as="sourcePoint"/><mxPoint x="205.33333333333326" y="467" as="targetPoint"/><Array as="points"><mxPoint x="205" y="482"/><mxPoint x="263" y="482"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;exitX=0.75;exitY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-105" target="15a4b3893f7299b4-106" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="193.66666666666674" y="534.3333333333333" as="sourcePoint"/><mxPoint x="273.66666666666674" y="479" as="targetPoint"/><Array as="points"><mxPoint x="208.5" y="514.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-195" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;exitX=1;exitY=0.25;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-105" target="15a4b3893f7299b4-107" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="166.16666666666674" y="504.83333333333326" as="sourcePoint"/><mxPoint x="246.16666666666674" y="449.5" as="targetPoint"/><Array as="points"><mxPoint x="278.5" y="536.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-203" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;entryX=1;entryY=0;endFill=0;exitX=0;exitY=0.5;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-66" target="15a4b3893f7299b4-168" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="330" y="780" as="sourcePoint"/><mxPoint x="372.33333333333326" y="777.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="590" y="780"/><mxPoint x="540" y="770"/><mxPoint x="500" y="770"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-205" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-66" target="15a4b3893f7299b4-68" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="671.5" y="926" as="sourcePoint"/><mxPoint x="609" y="933.5" as="targetPoint"/><Array as="points"><mxPoint x="704" y="833.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-213" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0.375;entryY=0.994;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.437;exitY=0.011;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-78" target="15a4b3893f7299b4-68" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="797.3333333333333" y="1096" as="sourcePoint"/><mxPoint x="708" y="961.2142857142858" as="targetPoint"/><Array as="points"><mxPoint x="625" y="923"/><mxPoint x="615" y="893"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-215" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=0.5;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-111" target="15a4b3893f7299b4-170" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="262.83333333333326" y="1120.1666666666667" as="sourcePoint"/><mxPoint x="416.83333333333326" y="1083.5" as="targetPoint"/><Array as="points"><mxPoint x="510" y="1160"/><mxPoint x="490" y="1220"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-216" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=1;exitY=0.5;entryX=0;entryY=0.25;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-136" target="89" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="528" y="1017.1666666666667" as="sourcePoint"/><mxPoint x="535.3333333333335" y="957.1666666666667" as="targetPoint"/><Array as="points"><mxPoint x="615.5" y="1202"/><mxPoint x="655.5" y="1202"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-219" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;exitX=0.927;exitY=1.142;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-118" target="15a4b3893f7299b4-131" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="101" y="714.5" as="sourcePoint"/><mxPoint x="431.33333333333326" y="822.1666666666667" as="targetPoint"/><Array as="points"><mxPoint x="101" y="766.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-220" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;exitX=0.635;exitY=1.017;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-118" target="15a4b3893f7299b4-133" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="81" y="714.5" as="sourcePoint"/><mxPoint x="151.33333333333326" y="776.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="71" y="794.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-221" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="15a4b3893f7299b4-135" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="60" y="673" as="sourcePoint"/><mxPoint x="151.33333333333326" y="796.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="51" y="834.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-222" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;exitX=0.5;exitY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-118" target="15a4b3893f7299b4-134" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="71" y="714.5" as="sourcePoint"/><mxPoint x="151.33333333333326" y="856.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="61" y="814.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-223" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;exitX=0.75;exitY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-118" target="15a4b3893f7299b4-132" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="91" y="714.5" as="sourcePoint"/><mxPoint x="151.33333333333326" y="816.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="81" y="774.5"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-224" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=1;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-169" target="15a4b3893f7299b4-116" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="515.8333333333333" y="946.1666666666667" as="sourcePoint"/><mxPoint x="669.8333333333333" y="909.5" as="targetPoint"/><Array as="points"><mxPoint x="440" y="940"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-225" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=0;endFill=0;dashed=1;exitX=0.25;exitY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-116" target="15a4b3893f7299b4-140" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="73.16666666666674" y="1072.6666666666667" as="sourcePoint"/><mxPoint x="245.83333333333326" y="1172.6666666666667" as="targetPoint"/><Array as="points"><mxPoint x="270" y="1000"/><mxPoint x="250" y="1018"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-226" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=0;endFill=0;dashed=1;exitX=0.578;exitY=1.136;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-116" target="15a4b3893f7299b4-142" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="254.5" y="1012.5" as="sourcePoint"/><mxPoint x="214.5" y="1072.5" as="targetPoint"/><Array as="points"><mxPoint x="300" y="1000"/><mxPoint x="314" y="1021"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-228" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-172" target="15a4b3893f7299b4-110" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="429.014348102899" y="1386.925717405145" as="sourcePoint"/><mxPoint x="306.66666666666674" y="1133.3333333333333" as="targetPoint"/><Array as="points"><mxPoint x="420" y="1385"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-229" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;entryX=0.5;entryY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-144" target="15a4b3893f7299b4-110" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="441.5" y="1231.1666666666667" as="sourcePoint"/><mxPoint x="538.1666666666667" y="1277.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="320.5" y="1300"/><mxPoint x="380.5" y="1330"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-230" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;entryX=0.5;entryY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-110" target="15a4b3893f7299b4-155" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="264.5" y="1243.6666666666667" as="sourcePoint"/><mxPoint x="332.5" y="1507" as="targetPoint"/><Array as="points"><mxPoint x="370" y="1431"/><mxPoint x="328" y="1450"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-231" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.25;exitY=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-110" target="15a4b3893f7299b4-153" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="274.5" y="1253.6666666666667" as="sourcePoint"/><mxPoint x="240.5" y="1463" as="targetPoint"/><Array as="points"><mxPoint x="330" y="1451"/><mxPoint x="270" y="1431"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-232" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitX=0.404;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-153" target="15a4b3893f7299b4-154" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="170.5" y="1474" as="sourcePoint"/><mxPoint x="650" y="1532.5" as="targetPoint"/><Array as="points"><mxPoint x="180.5" y="1520"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-233" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="15a4b3893f7299b4-145" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="160" y="1290" as="sourcePoint"/><mxPoint x="128" y="1220.5" as="targetPoint"/><Array as="points"><mxPoint x="160" y="1251"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-235" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" target="15a4b3893f7299b4-148" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="160" y="1290" as="sourcePoint"/><mxPoint x="798" y="1276.1666666666667" as="targetPoint"/><Array as="points"><mxPoint x="140" y="1281"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-240" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-155" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="375" y="1504" as="sourcePoint"/><mxPoint x="375.5" y="1532" as="targetPoint"/><Array as="points"><mxPoint x="380.5" y="1529"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-244" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-114" target="BwiGo_6VFYfL9zqDBXxp-256" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="500" y="1620" as="sourcePoint"/><mxPoint x="440" y="1530" as="targetPoint"/><Array as="points"><mxPoint x="490" y="1600"/><mxPoint x="510" y="1660"/></Array></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-245" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.25;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-159" target="15a4b3893f7299b4-114" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="634.1666666666667" y="1685" as="sourcePoint"/><mxPoint x="660" y="1574" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="15a4b3893f7299b4-246" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-160" target="15a4b3893f7299b4-114" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="617" y="1628.3333333333333" as="sourcePoint"/><mxPoint x="680" y="1590" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="ac9188710934de2-52" value="" style="shape=image;html=1;verticalAlign=top;verticalLabelPosition=bottom;labelBackgroundColor=#ffffff;imageAspect=0;aspect=fixed;image=https://cdn1.iconfinder.com/data/icons/logotypes/32/github-128.png;rounded=1;glass=0;comic=0;strokeColor=#000000;fillColor=#FFFFFF;fontFamily=Verdana;fontSize=14;align=center;" parent="1" vertex="1"><mxGeometry x="20" y="40" width="20" height="20" as="geometry"/></mxCell><mxCell id="ac9188710934de2-55" value="Alikhll/GoLang-developer-roadmap" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="42.5" y="42.5" width="260" height="15" as="geometry"/></mxCell><mxCell id="ac9188710934de2-57" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.5;entryX=1;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="51" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="400.66666666666674" y="384.33333333333337" as="sourcePoint"/><mxPoint x="287.19047619047615" y="386.5238095238095" as="targetPoint"/><Array as="points"><mxPoint x="337" y="364"/></Array></mxGeometry></mxCell><mxCell id="9221bb110d1119f-52" value="最好知道的库" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="558.5" y="1309" width="130" height="20" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-53" value="Validator" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#fad7ac;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="699.5" y="1352.5" width="69" height="15" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-54" value="Glow" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#fad7ac;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="699.5" y="1372.5" width="71" height="15" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-59" value="GJson" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#fad7ac;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="699.5" y="1393.5" width="69" height="15" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-60" value="Authboss" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="700" y="1416" width="70" height="15" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-69" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="447.5" y="1461" width="23" height="23" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-70" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=0.75;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryX=0.848;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="9221bb110d1119f-52" target="9221bb110d1119f-69" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="280" y="1300.5" as="sourcePoint"/><mxPoint x="460" y="1395" as="targetPoint"/><Array as="points"><mxPoint x="510" y="1340"/><mxPoint x="520" y="1450"/></Array></mxGeometry></mxCell><mxCell id="9221bb110d1119f-71" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0.867;entryY=1.016;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="9221bb110d1119f-52" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="700" y="1360" as="sourcePoint"/><mxPoint x="745.7931034482758" y="1313.7241379310346" as="targetPoint"/><Array as="points"><mxPoint x="670" y="1360"/></Array></mxGeometry></mxCell><mxCell id="9221bb110d1119f-72" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;entryX=0.75;entryY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" parent="1" source="9221bb110d1119f-54" target="9221bb110d1119f-52" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="580.5" y="1346.5" as="sourcePoint"/><mxPoint x="675.5" y="1320" as="targetPoint"/><Array as="points"><mxPoint x="670" y="1380"/><mxPoint x="660" y="1350"/></Array></mxGeometry></mxCell><mxCell id="9221bb110d1119f-73" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;entryX=0.658;entryY=1.016;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;entryPerimeter=0;exitDx=0;exitDy=0;" parent="1" source="9221bb110d1119f-59" target="9221bb110d1119f-52" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="580.5" y="1366.5" as="sourcePoint"/><mxPoint x="698" y="1309.5" as="targetPoint"/><Array as="points"><mxPoint x="635" y="1390"/></Array></mxGeometry></mxCell><mxCell id="9221bb110d1119f-74" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;entryX=0.5;entryY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" parent="1" source="9221bb110d1119f-60" target="9221bb110d1119f-52" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="590.5" y="1376.5" as="sourcePoint"/><mxPoint x="719" y="1329.5" as="targetPoint"/><Array as="points"><mxPoint x="660" y="1420"/><mxPoint x="620" y="1370"/></Array></mxGeometry></mxCell><mxCell id="9221bb110d1119f-77" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="440.5" y="1775.5" width="23" height="23" as="geometry"/></mxCell><mxCell id="9221bb110d1119f-87" value="Go 模式" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="488.5" y="1747" width="70" height="29" as="geometry"/></mxCell><mxCell id="29283392ea474178-65" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;exitX=1;exitY=1;entryX=1;entryY=1;endArrow=none;endFill=0;jettySize=auto;orthogonalLoop=1;strokeColor=#000000;fillColor=#FFFFFF;fontFamily=Verdana;fontSize=8;" parent="1" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="480" y="1001" as="sourcePoint"/><mxPoint x="480" y="1001" as="targetPoint"/></mxGeometry></mxCell><mxCell id="81" value="GCache" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="523.5" y="869.5" width="80" height="16" as="geometry"/></mxCell><mxCell id="84" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;entryX=0.354;entryY=1.05;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;entryPerimeter=0;exitDx=0;exitDy=0;" parent="1" target="9221bb110d1119f-52" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="700" y="1443" as="sourcePoint"/><mxPoint x="724.5" y="1320.5" as="targetPoint"/><Array as="points"><mxPoint x="660" y="1440"/><mxPoint x="630" y="1420"/><mxPoint x="600" y="1360"/></Array></mxGeometry></mxCell><mxCell id="85" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0.25;exitY=1;entryX=0.5;entryY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-66" target="81" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="734" y="848.5" as="sourcePoint"/><mxPoint x="619" y="866" as="targetPoint"/><Array as="points"><mxPoint x="677" y="833.5"/><mxPoint x="595" y="853"/></Array></mxGeometry></mxCell><mxCell id="88" value="Creational<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="670" y="1706" width="110" height="15" as="geometry"/></mxCell><mxCell id="89" value="REST" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="668" y="1196.3333333333333" width="70" height="20" as="geometry"/></mxCell><mxCell id="94" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=1;exitY=0.75;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-111" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="878" y="1173" as="sourcePoint"/><mxPoint x="713" y="1196" as="targetPoint"/><Array as="points"><mxPoint x="653" y="1180"/><mxPoint x="713" y="1166"/></Array></mxGeometry></mxCell><mxCell id="95" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=1;exitY=0.25;entryX=0.5;entryY=1;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-111" target="90" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="825.5" y="1183" as="sourcePoint"/><mxPoint x="748" y="1230" as="targetPoint"/><Array as="points"><mxPoint x="699.5" y="1159.5"/></Array></mxGeometry></mxCell><mxCell id="108" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="407.8333333333335" y="1712.8333333333335" as="sourcePoint"/><mxPoint x="558.5" y="1768.5" as="targetPoint"/><Array as="points"><mxPoint x="652.5" y="1714.5"/><mxPoint x="626.5" y="1758.5"/></Array></mxGeometry></mxCell><mxCell id="190" value="<font style="font-size: 11px">Go-Underscore</font>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="700" y="1438" width="100" height="22" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-193" value="<font style="font-size: 12px">延迟(Defer)机制,错误,<br>严重(Panic)异常,恢复(Recover)</font>" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="34.5" y="244" width="225" height="17" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-195" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" target="BwiGo_6VFYfL9zqDBXxp-193" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="350" y="210" as="sourcePoint"/><mxPoint x="260" y="230" as="targetPoint"/><Array as="points"><mxPoint x="320" y="210"/><mxPoint x="290" y="220"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-203" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;endFill=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="15a4b3893f7299b4-92" target="BwiGo_6VFYfL9zqDBXxp-204" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="-22.5" y="635" as="sourcePoint"/><mxPoint x="94.5" y="697.5" as="targetPoint"/><Array as="points"><mxPoint x="230" y="660"/><mxPoint x="200" y="680"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-204" value="搜索引擎" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="170" y="694" width="90" height="20" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-205" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=1;exitY=0.25;exitDx=0;exitDy=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-204" target="BwiGo_6VFYfL9zqDBXxp-208" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="266" y="710" as="sourcePoint"/><mxPoint x="360.5" y="694" as="targetPoint"/><Array as="points"><mxPoint x="280.5" y="700.5"/><mxPoint x="330.5" y="693"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-208" value="ElasticSearch" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="290.5" y="693" width="90" height="15" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-214" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0.1;entryY=0.167;entryDx=0;entryDy=0;entryPerimeter=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-204" target="BwiGo_6VFYfL9zqDBXxp-215" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="266" y="710" as="sourcePoint"/><mxPoint x="350.5" y="728.5" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-215" value="Solr" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="290.5" y="720" width="90" height="15" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-217" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-204" target="BwiGo_6VFYfL9zqDBXxp-218" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="265" y="720" as="sourcePoint"/><mxPoint x="330.5" y="767.5" as="targetPoint"/><Array as="points"><mxPoint x="278" y="759"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-218" value="Sphinx" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="290.5" y="747.5" width="90" height="15" as="geometry"/></mxCell><mxCell id="90" value="GraphQL" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="664" y="1116.8333333333333" width="70" height="20" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-238" value="微服务" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="283.5" y="1692.5" width="74" height="20" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-239" value="消息代理" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="225" y="1632" width="105" height="20" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-240" value="RabbitMQ" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="51" y="1606.5" width="87" height="15" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-241" value="Apache Kafka" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="52" y="1634.5" width="87" height="15" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-242" value="ActiveMQ<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="51" y="1661.5" width="88" height="15" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-243" value="消息总线(Message-Bus)" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="35" y="1720" width="120" height="35" as="geometry"/></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-247" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-173" target="BwiGo_6VFYfL9zqDBXxp-238" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="326.5" y="1662" as="sourcePoint"/><mxPoint x="188.66666666666674" y="1560.3333333333333" as="targetPoint"/><Array as="points"><mxPoint x="420" y="1600"/><mxPoint x="400" y="1680"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-248" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;entryX=0.5;entryY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.635;exitY=0.979;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-239" target="BwiGo_6VFYfL9zqDBXxp-238" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="157.5" y="1733" as="sourcePoint"/><mxPoint x="360.66666666666674" y="1723.3333333333333" as="targetPoint"/><Array as="points"><mxPoint x="279" y="1671"/><mxPoint x="320" y="1681"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-250" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;entryX=1;entryY=0.5;endFill=0;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-238" target="BwiGo_6VFYfL9zqDBXxp-243" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="97" y="1699.1666666666667" as="sourcePoint"/><mxPoint x="193.66666666666674" y="1745.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="290" y="1761"/><mxPoint x="190" y="1721"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-252" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.75;endFill=0;dashed=1;exitX=0.124;exitY=-0.021;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-239" target="BwiGo_6VFYfL9zqDBXxp-240" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="360" y="1702" as="sourcePoint"/><mxPoint x="399.83333333333326" y="1820.833333333333" as="targetPoint"/><Array as="points"><mxPoint x="200" y="1618"/><mxPoint x="170" y="1621"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-253" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.75;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" target="BwiGo_6VFYfL9zqDBXxp-241" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="220" y="1638" as="sourcePoint"/><mxPoint x="424.83333333333326" y="1809.833333333333" as="targetPoint"/><Array as="points"><mxPoint x="176.5" y="1638"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-254" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.75;endFill=0;dashed=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-239" target="BwiGo_6VFYfL9zqDBXxp-242" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="330" y="1755.5" as="sourcePoint"/><mxPoint x="475" y="1739.6666666666667" as="targetPoint"/><Array as="points"><mxPoint x="166" y="1673"/></Array></mxGeometry></mxCell><mxCell id="BwiGo_6VFYfL9zqDBXxp-256" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="453" y="1685.5" width="23" height="23" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-195" value="模拟(Mocking)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFF66;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="170" y="1160" width="110" height="20" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-196" value="" style="endArrow=none;dashed=1;html=1;fontFamily=Verdana;fontSize=10;elbow=vertical;exitX=0.012;exitY=0.067;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-144" target="eWhZLLQIlKZYAl_bHdPU-195" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="537.5" y="1261.1666666666667" as="sourcePoint"/><mxPoint x="577.5" y="1284" as="targetPoint"/><Array as="points"><mxPoint x="320" y="1211"/><mxPoint x="290" y="1180"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-199" value="" style="endArrow=none;dashed=1;html=1;fontFamily=Verdana;fontSize=10;entryX=1;entryY=0.75;entryDx=0;entryDy=0;curved=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-144" target="eWhZLLQIlKZYAl_bHdPU-201" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="320.5" y="1244" as="sourcePoint"/><mxPoint x="607.5" y="1231" as="targetPoint"/><Array as="points"><mxPoint x="291" y="1258"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-200" style="edgeStyle=none;rounded=0;html=1;entryX=1;entryY=0.25;entryDx=0;entryDy=0;jettySize=auto;orthogonalLoop=1;fontFamily=Verdana;fontSize=10;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1"><mxGeometry relative="1" as="geometry"><mxPoint x="478" y="1157.6666666666667" as="sourcePoint"/><mxPoint x="478" y="1157.6666666666667" as="targetPoint"/></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-201" value="框架<br>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFF66;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="220" y="1239" width="66" height="19" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-202" value="GoMock" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="66.5" y="1163" width="65" height="15" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-205" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="eWhZLLQIlKZYAl_bHdPU-195" target="eWhZLLQIlKZYAl_bHdPU-202" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="631.3275862068967" y="1201.344827586207" as="sourcePoint"/><mxPoint x="128.5" y="1170" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-218" value="行为测试(Behavior Testing)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFCC99;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="160" y="1370" width="123" height="33" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-220" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.325;entryY=0.098;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-243" target="eWhZLLQIlKZYAl_bHdPU-221" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="409.5" y="1848.5" as="sourcePoint"/><mxPoint x="503.5" y="1827.5" as="targetPoint"/><Array as="points"><mxPoint x="80" y="1771"/><mxPoint x="63" y="1781"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-221" value="Message-Bus" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="29.5" y="1794.5" width="103" height="20" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-226" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="eWhZLLQIlKZYAl_bHdPU-218" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="582.3275862068967" y="1396.844827586207" as="sourcePoint"/><mxPoint x="120.5" y="1370" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-227" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="eWhZLLQIlKZYAl_bHdPU-218" target="eWhZLLQIlKZYAl_bHdPU-229" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="180.5" y="1395" as="sourcePoint"/><mxPoint x="697.5" y="1422" as="targetPoint"/><Array as="points"><mxPoint x="170.5" y="1400"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-228" value="GoDog" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFF66;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="42" y="1360" width="78" height="20" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-229" value="GoConvey" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFCC99;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="42" y="1385.5" width="78" height="20" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-230" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.072;exitY=1.101;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="eWhZLLQIlKZYAl_bHdPU-218" target="eWhZLLQIlKZYAl_bHdPU-231" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="210.5" y="1410" as="sourcePoint"/><mxPoint x="697.5" y="1432" as="targetPoint"/><Array as="points"><mxPoint x="170.5" y="1430"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-231" value="GinkGo" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CCCCCC;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="42" y="1412" width="78" height="20" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-232" value="断言" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFF66;fontFamily=Verdana;fontSize=10;" parent="1" vertex="1"><mxGeometry x="230" y="1299" width="63" height="20" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-233" value="" style="endArrow=none;dashed=1;html=1;fontFamily=Verdana;fontSize=10;elbow=vertical;entryX=1;entryY=0.5;entryDx=0;entryDy=0;curved=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-144" target="eWhZLLQIlKZYAl_bHdPU-232" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="340.5" y="1276" as="sourcePoint"/><mxPoint x="580" y="1339.5" as="targetPoint"/><Array as="points"><mxPoint x="300.5" y="1270"/><mxPoint x="310.5" y="1300"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-243" value="Structrul" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="670" y="1731.5" width="110" height="15" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-244" value="Behavioral" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="670" y="1755.5" width="110" height="15" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-245" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=1.006;exitY=0.94;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" parent="1" source="9221bb110d1119f-87" target="eWhZLLQIlKZYAl_bHdPU-243" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="616.166666666667" y="1776.166666666667" as="sourcePoint"/><mxPoint x="697" y="1802.5" as="targetPoint"/><Array as="points"><mxPoint x="656.5" y="1761.5"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-247" value="synchronization" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="670.5" y="1779.5" width="110" height="15" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-249" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0.971;exitY=1.086;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="9221bb110d1119f-87" target="eWhZLLQIlKZYAl_bHdPU-244" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="593.8333333333335" y="1785.8333333333335" as="sourcePoint"/><mxPoint x="673.8333333333335" y="1790" as="targetPoint"/><Array as="points"><mxPoint x="632.5" y="1778.5"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-250" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0.826;exitY=1.086;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="9221bb110d1119f-87" target="eWhZLLQIlKZYAl_bHdPU-247" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="546.3333333333335" y="1798.666666666667" as="sourcePoint"/><mxPoint x="670.5" y="1791.5" as="targetPoint"/><Array as="points"><mxPoint x="616.5" y="1802.5"/><mxPoint x="642.5" y="1778.5"/></Array></mxGeometry></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-251" value="Concurrency" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="670" y="1805.5" width="111" height="15" as="geometry"/></mxCell><mxCell id="eWhZLLQIlKZYAl_bHdPU-252" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0.681;exitY=1.011;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="9221bb110d1119f-87" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="553.8333333333335" y="1832.166666666667" as="sourcePoint"/><mxPoint x="670.5" y="1813.5" as="targetPoint"/><Array as="points"><mxPoint x="616.5" y="1822.5"/><mxPoint x="652.5" y="1802.5"/></Array></mxGeometry></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-192" value="Azure Service Bus<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="20" y="1687" width="119" height="15" as="geometry"/></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=1;entryY=0.25;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-239" target="uMhVVYeGSkHIRUrs6LYO-192" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="220" y="1651" as="sourcePoint"/><mxPoint x="409.5" y="1773" as="targetPoint"/><Array as="points"><mxPoint x="210" y="1691"/></Array></mxGeometry></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-194" value="日志管理系统<br>(Log Management System)" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="100" y="870" width="170" height="44" as="geometry"/></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-200" value="" style="endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;curved=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-116" target="uMhVVYeGSkHIRUrs6LYO-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="210" y="990" as="sourcePoint"/><mxPoint x="252.5" y="965" as="targetPoint"/><Array as="points"><mxPoint x="220" y="961"/></Array></mxGeometry></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-201" value="Sentry.io<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="40" y="936" width="90" height="15" as="geometry"/></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-202" value="loggly.com" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="40" y="968.5" width="90" height="15" as="geometry"/></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-213" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=0;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" source="uMhVVYeGSkHIRUrs6LYO-194" target="uMhVVYeGSkHIRUrs6LYO-201" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="131" y="913" as="sourcePoint"/><mxPoint x="59.5" y="941" as="targetPoint"/><Array as="points"><mxPoint x="100" y="920"/></Array></mxGeometry></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-216" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="uMhVVYeGSkHIRUrs6LYO-202" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="150" y="914" as="sourcePoint"/><mxPoint x="52.92857142857156" y="985.7857142857142" as="targetPoint"/><Array as="points"><mxPoint x="150" y="930"/><mxPoint x="150" y="960"/><mxPoint x="130" y="976"/></Array></mxGeometry></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-220" value="GinkGo<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="30.5" y="1523" width="103" height="20" as="geometry"/></mxCell><mxCell id="uMhVVYeGSkHIRUrs6LYO-221" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=0.57;exitY=1.009;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="15a4b3893f7299b4-153" target="uMhVVYeGSkHIRUrs6LYO-220" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="595" y="1464.8333333333335" as="sourcePoint"/><mxPoint x="130.5" y="1533" as="targetPoint"/><Array as="points"><mxPoint x="200.5" y="1500"/><mxPoint x="193.5" y="1520"/><mxPoint x="170.5" y="1533"/></Array></mxGeometry></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-192" value="CouchDB" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" parent="1" vertex="1"><mxGeometry x="141" y="840" width="100" height="15" as="geometry"/></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="sat4DyTJGvhsXtlwCdvt-192" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="51" y="675" as="sourcePoint"/><mxPoint x="151.33333333333326" y="816.8333333333333" as="targetPoint"/><Array as="points"><mxPoint x="40" y="855"/></Array></mxGeometry></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-208" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="456" y="1028" width="23" height="23" as="geometry"/></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-209" value="" style="endArrow=none;html=1;strokeColor=#6C8EBF;curved=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="sat4DyTJGvhsXtlwCdvt-210" target="sat4DyTJGvhsXtlwCdvt-208" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="540" y="1060" as="sourcePoint"/><mxPoint x="445.2758620689656" y="1064.0344827586207" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-210" value="<font style="font-size: 10px">实时通讯</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFF66;fontFamily=Verdana;" parent="1" vertex="1"><mxGeometry x="532.5" y="1029" width="86" height="34" as="geometry"/></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-213" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#6C8EBF;fontFamily=Verdana;curved=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="sat4DyTJGvhsXtlwCdvt-214" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="617.5" y="1015" as="sourcePoint"/><mxPoint x="619" y="1046" as="targetPoint"/><Array as="points"><mxPoint x="658" y="1032"/></Array></mxGeometry></mxCell><mxCell id="sat4DyTJGvhsXtlwCdvt-214" value="Centrifugo" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="677.5" y="1020.5" width="100" height="15" as="geometry"/></mxCell><mxCell id="diX9zyQE_nDw343dQQNk-199" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="8b8zto7bdzKnc40BGQ4G-192" target="51" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="420" y="270" as="sourcePoint"/><mxPoint x="477" y="379" as="targetPoint"/><Array as="points"><mxPoint x="420" y="320"/><mxPoint x="475" y="350"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-191" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=0;exitY=0.25;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" target="5M5RA4630KzdzOqGL4hx-192" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="349" y="195" as="sourcePoint"/><mxPoint x="258" y="160" as="targetPoint"/><Array as="points"><mxPoint x="306" y="160"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-192" value="变量,常量, 类型,函数,包等等" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="7" y="146.5" width="248" height="15" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-208" value="Echo" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="632" y="419.5" width="96" height="20" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-214" value="" style="endArrow=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.669;entryY=-0.033;entryDx=0;entryDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;entryPerimeter=0;" parent="1" source="5M5RA4630KzdzOqGL4hx-208" target="15a4b3893f7299b4-88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="460.5" y="574.5" as="sourcePoint"/><mxPoint x="510.5" y="524.5" as="targetPoint"/><Array as="points"><mxPoint x="583" y="489.5"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-215" value="Beego" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="685" y="464.5" width="96" height="20" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-216" value="" style="endArrow=none;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.944;entryY=0.033;entryDx=0;entryDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;entryPerimeter=0;" parent="1" source="5M5RA4630KzdzOqGL4hx-215" target="15a4b3893f7299b4-88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="400.1379310344828" y="449.25862068965523" as="sourcePoint"/><mxPoint x="476" y="569.2586206896551" as="targetPoint"/><Array as="points"><mxPoint x="660" y="500"/><mxPoint x="620" y="500"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-218" value="Gin" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="705.5" y="509.5" width="99" height="20" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-220" value="" style="endArrow=none;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;" parent="1" source="5M5RA4630KzdzOqGL4hx-218" target="15a4b3893f7299b4-88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="379.7068965517242" y="488.6034482758621" as="sourcePoint"/><mxPoint x="495.5689655172414" y="569.2931034482758" as="targetPoint"/><Array as="points"><mxPoint x="680" y="520"/><mxPoint x="643" y="529.5"/><mxPoint x="620" y="542"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-221" value="Revel" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="685.5" y="555" width="99" height="20" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-222" value="" style="endArrow=none;html=1;curved=1;strokeColor=#6C8EBF;dashed=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;" parent="1" source="5M5RA4630KzdzOqGL4hx-221" target="15a4b3893f7299b4-88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="690" y="565" as="sourcePoint"/><mxPoint x="583" y="557.5" as="targetPoint"/><Array as="points"><mxPoint x="660" y="570"/><mxPoint x="633" y="564.5"/><mxPoint x="610" y="550"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-223" value="Chi" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="632" y="592.5" width="99" height="20" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-225" value="" style="endArrow=none;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" parent="1" source="5M5RA4630KzdzOqGL4hx-223" target="15a4b3893f7299b4-88" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="402.5689655172414" y="602.1896551724137" as="sourcePoint"/><mxPoint x="505.5" y="554.5" as="targetPoint"/><Array as="points"><mxPoint x="603" y="589.5"/><mxPoint x="620" y="570"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-233" value="Logrus" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="357" y="1035.5" width="65" height="15" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-235" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.5;entryY=0;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitX=0.794;exitY=1.008;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="15a4b3893f7299b4-116" target="5M5RA4630KzdzOqGL4hx-233" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="319.5" y="1003.5" as="sourcePoint"/><mxPoint x="330.18965517241395" y="1073.1551724137933" as="targetPoint"/><Array as="points"><mxPoint x="340" y="1000"/><mxPoint x="380" y="1010"/><mxPoint x="389.5" y="1020.5"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-236" value="GRequests" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="533.5" y="1221" width="82" height="15" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-237" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=1;exitY=0.5;entryX=0.107;entryY=0.933;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;entryPerimeter=0;exitDx=0;exitDy=0;" parent="1" source="5M5RA4630KzdzOqGL4hx-236" target="89" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="625.5" y="1209.7241379310346" as="sourcePoint"/><mxPoint x="677.9137931034484" y="1211.103448275862" as="targetPoint"/><Array as="points"><mxPoint x="625.5" y="1215"/><mxPoint x="655.5" y="1225"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-238" value="GoCheck" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="66" y="1304" width="65" height="15" as="geometry"/></mxCell><mxCell id="15a4b3893f7299b4-163" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="438" y="532" width="23" height="23" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-245" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="15a4b3893f7299b4-163" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="464" y="440" as="sourcePoint"/><mxPoint x="440" y="1850" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-252" style="edgeStyle=none;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;jettySize=auto;orthogonalLoop=1;strokeColor=#6C8EBF;fontSize=9;" parent="1" source="eWhZLLQIlKZYAl_bHdPU-218" target="eWhZLLQIlKZYAl_bHdPU-218" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-254" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-110" target="eWhZLLQIlKZYAl_bHdPU-218" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="500.5" y="1300" as="sourcePoint"/><mxPoint x="383.07142857142844" y="1385.2380952380952" as="targetPoint"/><Array as="points"><mxPoint x="310.5" y="1380"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-258" style="edgeStyle=none;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;jettySize=auto;orthogonalLoop=1;strokeColor=#6C8EBF;fontSize=9;" parent="1" source="BwiGo_6VFYfL9zqDBXxp-239" target="BwiGo_6VFYfL9zqDBXxp-239" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-259" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="9221bb110d1119f-87" target="9221bb110d1119f-77" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="554.1034482758623" y="1683.2586206896553" as="sourcePoint"/><mxPoint x="467.2068965517242" y="1758.4310344827586" as="targetPoint"/><Array as="points"><mxPoint x="480" y="1800"/></Array></mxGeometry></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-260" value="Heimdall" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="533" y="1246" width="82" height="15" as="geometry"/></mxCell><mxCell id="5M5RA4630KzdzOqGL4hx-261" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;exitX=1;exitY=0.5;entryX=0.337;entryY=1.075;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;entryPerimeter=0;exitDx=0;exitDy=0;" parent="1" source="5M5RA4630KzdzOqGL4hx-260" target="89" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="625.7586206896553" y="1238.1724137931035" as="sourcePoint"/><mxPoint x="685.7586206896553" y="1225.0689655172414" as="targetPoint"/><Array as="points"><mxPoint x="643" y="1240"/><mxPoint x="673" y="1250"/><mxPoint x="692" y="1240"/></Array></mxGeometry></mxCell><mxCell id="6bhzbPwlADFKcEgcKH03-192" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="15a4b3893f7299b4-146" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="158.5" y="1286" as="sourcePoint"/><mxPoint x="129.16666666666652" y="1256.952380952381" as="targetPoint"/><Array as="points"><mxPoint x="150" y="1265"/></Array></mxGeometry></mxCell><mxCell id="6bhzbPwlADFKcEgcKH03-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontStyle=1" parent="1" target="5M5RA4630KzdzOqGL4hx-238" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="160" y="1290" as="sourcePoint"/><mxPoint x="142.66666666666652" y="1293.952380952381" as="targetPoint"/><Array as="points"><mxPoint x="150" y="1311"/></Array></mxGeometry></mxCell><mxCell id="6bhzbPwlADFKcEgcKH03-194" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;strokeWidth=1;dashed=1;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="181" y="1291" as="sourcePoint"/><mxPoint x="160" y="1289.5" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="6bhzbPwlADFKcEgcKH03-195" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=-0.023;entryY=0.433;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="eWhZLLQIlKZYAl_bHdPU-201" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="180" y="1291" as="sourcePoint"/><mxPoint x="166.6111111111111" y="1242.4444444444443" as="targetPoint"/><Array as="points"><mxPoint x="196" y="1251.5"/></Array></mxGeometry></mxCell><mxCell id="6bhzbPwlADFKcEgcKH03-196" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="eWhZLLQIlKZYAl_bHdPU-232" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="180" y="1291" as="sourcePoint"/><mxPoint x="216.72222222222217" y="1257.2222222222222" as="targetPoint"/><Array as="points"><mxPoint x="200" y="1309"/></Array></mxGeometry></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=0.969;entryY=-0.067;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" target="8b8zto7bdzKnc40BGQ4G-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="350" y="250" as="sourcePoint"/><mxPoint x="270" y="270" as="targetPoint"/><Array as="points"><mxPoint x="330" y="250"/><mxPoint x="300" y="260"/></Array></mxGeometry></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-192" value="SQL 基础原理" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="348" y="240" width="130" height="20" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-194" value="基础 Sql 语法" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="80" y="275" width="187" height="15" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-195" value="Scrum, 看板(Kanban) 或者其它项目策略" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="26" y="378" width="260" height="15" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-197" value="" style="endArrow=none;dashed=1;html=1;strokeColor=#6C8EBF;fontFamily=Verdana;curved=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="8b8zto7bdzKnc40BGQ4G-198" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="620.5" y="989.5" as="sourcePoint"/><mxPoint x="622" y="1030" as="targetPoint"/><Array as="points"><mxPoint x="661" y="1006.5"/></Array></mxGeometry></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-198" value="Melody" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="680.5" y="995" width="100" height="15" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-201" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="350" y="1510" as="sourcePoint"/><mxPoint x="320" y="1570" as="targetPoint"/><Array as="points"><mxPoint x="340.5" y="1542"/></Array></mxGeometry></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-202" value="Selenium" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="250" y="1569.5" width="80" height="15" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-204" value="Messaging" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="664" y="1833" width="111" height="15" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-205" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="540" y="1780" as="sourcePoint"/><mxPoint x="664.5" y="1841" as="targetPoint"/><Array as="points"><mxPoint x="610.5" y="1850"/><mxPoint x="646.5" y="1830"/></Array></mxGeometry></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-206" value="Stability" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;strokeColor=#000000;" parent="1" vertex="1"><mxGeometry x="664" y="1864.5" width="111" height="15" as="geometry"/></mxCell><mxCell id="8b8zto7bdzKnc40BGQ4G-207" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="540" y="1780" as="sourcePoint"/><mxPoint x="664.5" y="1872.5" as="targetPoint"/><Array as="points"><mxPoint x="610.5" y="1881.5"/><mxPoint x="646.5" y="1861.5"/></Array></mxGeometry></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-194" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="430.5" y="612.5" width="23" height="23" as="geometry"/></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-195" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="15a4b3893f7299b4-163" target="hN1WOHKFd2xeFHFnYRlw-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="450" y="555" as="sourcePoint"/><mxPoint x="440" y="1850" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-199" value="Xorm" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="670.5" y="707.5" width="96" height="20" as="geometry"/></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-205" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;entryX=1;entryY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="490" y="655.1666666666667" as="sourcePoint"/><mxPoint x="449" y="635.5" as="targetPoint"/><Array as="points"><mxPoint x="468" y="651.5"/></Array></mxGeometry></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-206" value="" style="endArrow=none;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;" parent="1" target="hN1WOHKFd2xeFHFnYRlw-196" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="684.5" y="651" as="sourcePoint"/><mxPoint x="579.5" y="659" as="targetPoint"/><Array as="points"><mxPoint x="658.5" y="646"/><mxPoint x="640" y="663"/></Array></mxGeometry></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-197" value="Gorm" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="677" y="642.5" width="96" height="20" as="geometry"/></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-196" value="<span>对象关系映射(</span>ORMs<span>)</span>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="490" y="648" width="140" height="30" as="geometry"/></mxCell><mxCell id="hN1WOHKFd2xeFHFnYRlw-207" value="" style="endArrow=none;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.95;entryY=1.05;entryDx=0;entryDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;entryPerimeter=0;" parent="1" target="hN1WOHKFd2xeFHFnYRlw-196" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="690.5" y="703" as="sourcePoint"/><mxPoint x="585.5" y="711" as="targetPoint"/><Array as="points"><mxPoint x="664.5" y="698"/><mxPoint x="627.5" y="707.5"/></Array></mxGeometry></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-191" value="<span>基本<span>Authentication</span>,OAuth,JWT等</span><br>" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="595" y="300" width="215" height="15" as="geometry"/></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-192" value="SOLID, YAGNI, KISS" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="619" y="333" width="141" height="15" as="geometry"/></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-194" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=1;exitY=0.25;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="XFU3M1Zc6Uf69TgAGMwG-191" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="559" y="355.5" as="sourcePoint"/><mxPoint x="370" y="298" as="targetPoint"/><Array as="points"><mxPoint x="580" y="328.5"/></Array></mxGeometry></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-195" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;exitX=1;exitY=0.5;entryX=0;entryY=0.5;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" target="XFU3M1Zc6Uf69TgAGMwG-192" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="559" y="360.5" as="sourcePoint"/><mxPoint x="630" y="323" as="targetPoint"/><Array as="points"><mxPoint x="590" y="340.5"/></Array></mxGeometry></mxCell><mxCell id="51" value="基本开发技能" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="390.5" y="351" width="170" height="20" as="geometry"/></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-201" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="EPePUyGaW99lsd4_mFo_-190" target="XFU3M1Zc6Uf69TgAGMwG-202" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="240" y="1778" as="sourcePoint"/><mxPoint x="180" y="1835" as="targetPoint"/><Array as="points"><mxPoint x="210.5" y="1831.5"/></Array></mxGeometry></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-202" value="Go-Kit" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="68.5" y="1837" width="69" height="15" as="geometry"/></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-203" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="EPePUyGaW99lsd4_mFo_-190" target="XFU3M1Zc6Uf69TgAGMwG-204" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="239.5" y="1787" as="sourcePoint"/><mxPoint x="197" y="1862" as="targetPoint"/><Array as="points"><mxPoint x="200" y="1850"/></Array></mxGeometry></mxCell><mxCell id="XFU3M1Zc6Uf69TgAGMwG-204" value="Micro" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="98" y="1874.5" width="65" height="15" as="geometry"/></mxCell><mxCell id="Mr79BJ1flNqhiNwwE-pG-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" parent="1" target="Mr79BJ1flNqhiNwwE-pG-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="349" y="190" as="sourcePoint"/><mxPoint x="258" y="146" as="targetPoint"/><Array as="points"><mxPoint x="306" y="146"/></Array></mxGeometry></mxCell><mxCell id="Mr79BJ1flNqhiNwwE-pG-194" value="GO 命令行操作" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;comic=0;fontFamily=Verdana;fontSize=8;" parent="1" vertex="1"><mxGeometry x="10" y="125" width="245" height="15" as="geometry"/></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-190" value="框架<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="204" y="1788.5" width="74" height="20" as="geometry"/></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-191" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" target="EPePUyGaW99lsd4_mFo_-190" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="323" y="1713" as="sourcePoint"/><mxPoint x="302" y="1760" as="targetPoint"/><Array as="points"><mxPoint x="325.5" y="1750.5"/></Array></mxGeometry></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-193" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="326" y="1713" as="sourcePoint"/><mxPoint x="355" y="1780" as="targetPoint"/><Array as="points"><mxPoint x="340.5" y="1760.5"/></Array></mxGeometry></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-194" value="RPC" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="322" y="1782" width="68" height="20" as="geometry"/></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-195" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.628;exitY=1.025;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="345.5" y="1804.5" as="sourcePoint"/><mxPoint x="285.5" y="1861.5" as="targetPoint"/><Array as="points"><mxPoint x="316" y="1858"/></Array></mxGeometry></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-196" value="Protocol Buffers" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="232" y="1859" width="100" height="15" as="geometry"/></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-197" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" target="EPePUyGaW99lsd4_mFo_-198" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="352" y="1804.5" as="sourcePoint"/><mxPoint x="327" y="1880" as="targetPoint"/><Array as="points"><mxPoint x="360" y="1869.5"/></Array></mxGeometry></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-198" value="gRPC-Go" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="246" y="1895" width="80" height="15" as="geometry"/></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-199" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="EPePUyGaW99lsd4_mFo_-200" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="362" y="1805.5" as="sourcePoint"/><mxPoint x="390" y="1881" as="targetPoint"/><Array as="points"><mxPoint x="370" y="1870.5"/></Array></mxGeometry></mxCell><mxCell id="EPePUyGaW99lsd4_mFo_-200" value="gRPC-gateway" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="336.5" y="1895" width="100" height="15" as="geometry"/></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-190" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;rounded=1;comic=0;strokeColor=#314354;fillColor=#647687;fontFamily=Verdana;fontSize=14;align=center;fontColor=#ffffff;" parent="1" vertex="1"><mxGeometry x="453" y="421.5" width="23" height="23" as="geometry"/></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-191" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0.5;exitY=1;entryX=0.5;entryY=0;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" source="51" target="rfDUgTz2_V2Ag_AOsTuV-190" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="476" y="371" as="sourcePoint"/><mxPoint x="454.8333333333335" y="499.8333333333335" as="targetPoint"/><Array as="points"><mxPoint x="460" y="390"/></Array></mxGeometry></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-194" value="<span>命令行界面</span>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=10;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="504" y="419.5" width="100" height="30" as="geometry"/></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-196" value="cobra" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="718.5" y="355.5" width="96" height="20" as="geometry"/></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-197" value="<span>urfave/cli</span>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=9;fillColor=#FFCC99;" parent="1" vertex="1"><mxGeometry x="718.5" y="387.5" width="96" height="20" as="geometry"/></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-202" value="" style="endArrow=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;" parent="1" source="rfDUgTz2_V2Ag_AOsTuV-196" target="rfDUgTz2_V2Ag_AOsTuV-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="697.5" y="334" as="sourcePoint"/><mxPoint x="587.5" y="418" as="targetPoint"/><Array as="points"><mxPoint x="602.5" y="383.5"/></Array></mxGeometry></mxCell><mxCell id="rfDUgTz2_V2Ag_AOsTuV-203" value="" style="endArrow=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;curved=1;strokeColor=#6C8EBF;dashed=1;" parent="1" source="rfDUgTz2_V2Ag_AOsTuV-197" target="rfDUgTz2_V2Ag_AOsTuV-194" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="769" y="356" as="sourcePoint"/><mxPoint x="564" y="430" as="targetPoint"/><Array as="points"><mxPoint x="612.5" y="393.5"/></Array></mxGeometry></mxCell><mxCell id="uPw9hMTFMSpvk-o1PrTG-192" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=10;exitX=0;exitY=0.5;endFill=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;" parent="1" source="rfDUgTz2_V2Ag_AOsTuV-194" target="rfDUgTz2_V2Ag_AOsTuV-190" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="486" y="381" as="sourcePoint"/><mxPoint x="475" y="432" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="uPw9hMTFMSpvk-o1PrTG-193" value="<b><font color="#004c99">译者:BON</font></b>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"><mxGeometry x="40" y="70" width="68" height="20" as="geometry"/></mxCell><mxCell id="5QnNOwW0YDB_NFh8rlEr-190" value="rpcx" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" parent="1" vertex="1"><mxGeometry x="142.5" y="1902.5" width="65" height="15" as="geometry"/></mxCell><mxCell id="5QnNOwW0YDB_NFh8rlEr-191" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="EPePUyGaW99lsd4_mFo_-190" target="5QnNOwW0YDB_NFh8rlEr-190" edge="1"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="233" y="1819" as="sourcePoint"/><mxPoint x="180" y="1900" as="targetPoint"/><Array as="points"><mxPoint x="210" y="1860"/></Array></mxGeometry></mxCell><mxCell id="sFd9btHIfrBd1v6-EQJl-190" value="CockroachDB<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFFF66;" vertex="1" parent="1"><mxGeometry x="315" y="442" width="86" height="15" as="geometry"/></mxCell><mxCell id="sFd9btHIfrBd1v6-EQJl-191" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;entryX=0.25;entryY=1;endFill=0;dashed=1;exitX=0.75;exitY=0;fillColor=#dae8fc;strokeColor=#6c8ebf;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="15a4b3893f7299b4-93" target="sFd9btHIfrBd1v6-EQJl-190"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="201" y="522" as="sourcePoint"/><mxPoint x="284" y="467" as="targetPoint"/><Array as="points"><mxPoint x="215" y="492"/><mxPoint x="273" y="492"/></Array></mxGeometry></mxCell><mxCell id="sFd9btHIfrBd1v6-EQJl-192" value="gplgen" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#FFCC99;" vertex="1" parent="1"><mxGeometry x="719.5" y="1082.5" width="82" height="15" as="geometry"/></mxCell><mxCell id="sFd9btHIfrBd1v6-EQJl-193" value="graphql-go<br>" style="rounded=1;whiteSpace=wrap;html=1;comic=0;fontFamily=Verdana;fontSize=8;fillColor=#CCCCCC;" vertex="1" parent="1"><mxGeometry x="607.5" y="1075" width="74" height="15" as="geometry"/></mxCell><mxCell id="sFd9btHIfrBd1v6-EQJl-196" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;entryX=0.5;entryY=1;fillColor=#dae8fc;strokeColor=#6c8ebf;entryDx=0;entryDy=0;" edge="1" parent="1" source="90" target="sFd9btHIfrBd1v6-EQJl-193"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="626" y="1214" as="sourcePoint"/><mxPoint x="678" y="1211" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell><mxCell id="sFd9btHIfrBd1v6-EQJl-197" value="" style="curved=1;endArrow=none;html=1;fontFamily=Verdana;fontSize=8;endFill=0;dashed=1;fillColor=#dae8fc;strokeColor=#6c8ebf;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="90" target="sFd9btHIfrBd1v6-EQJl-192"><mxGeometry width="50" height="50" relative="1" as="geometry"><mxPoint x="707.6167146974062" y="1126.8333333333333" as="sourcePoint"/><mxPoint x="701" y="1079" as="targetPoint"/><Array as="points"/></mxGeometry></mxCell></root></mxGraphModel>