作家
登录

Golang标准库间依赖的可视化展示

作者: 来源: 2017-10-11 13:38:07 阅读 我要评论

"io"
  •         "log"
  •         "os" 
  •     ] 
  • 梳理过的数据源,拜见: https://raw.githubusercontent.com/ios122/graph-go/master/data.js

    可视化道理

    示例输出:

    重要涉及一下内容:

    • 可视化显示,应用的是 echarts
    • 应用原始数据的 ImportPath 而不是 Name,来作为每个数据节点的独一id.如许是因为 golang 本身的包定名规范决定的.
    • 应用原始数据的 Imports 字段,来肯定标准库包与包之间的互相依附关系.golang是不许可轮回依附的,所以一些轮回依附相干的问题,不须要推敲.
    • 节点的大年夜小,和包被其他包惹人的次数成正相干.如许做,被依附袈浣多的包,图上最终显示时,就会越大年夜.常用包和不常用包,一目了然.

    就拭浇榄始数据,处理成 echarts 须要的数据,这里扼要说下最核心的思路:

    • echarts 显示相干的代码,很大年夜程度上参考了 graph-npm
    • 节点坐标和色彩,采取随机坐标和色彩,以去除节点和包之间的接洽.我认为如许处理,能更纯粹地不雅察标准库包与包之间的接洽.
    • 须要一个 edges 来记录包与包之间的依附关系.在每次遍历 Imports 时,动态写入.
    • 须要一个 nodes 来记录包自身的一些信息,然则其 size 参数,须要计算过所有依附关系后再填入.
    • 应用 nodedSize 来记录每个包被依附的次数,为了晋升效力,它是一个字典Map.

    数据整顿

    1.  /* 将原始数据,转换为搁笔友爱的数据.  
    2.     ImportPath 作为独一 id 和 标签; 
    3.     Imports 用于计算依附关系; 
    4.     节点的大年夜小,取决于被依附的次数; 
    5.     */ 
    6. function transData(datas){ 
    7.     /* 存储依附路径信息. */ 
    8.     let edges = [] 
    9.  
    10.     /* 存储基本节点信息. */ 
    11.     let nodes = [] 
    12.  
    13.     /* 节点尺寸.初始是1, 每被惹人一次再加1. */ 
    14.     let nodedSize = {} 
    15.  
    16.     /* 尺寸单位1. */ 
    17.     let unitSize = 1.5 
    18.  
    19.     datas.map((data)=>{ 
    20.         let itemId = data.ImportPath 
    21.  
    22.         nodes.push({ 
    23.             "label": itemId, 
    24.             "attributes": {}, 
    25.             "id": itemId, 
    26.             "size": 1 
    27.         }) 
    28.  
    29.         if(data.Imports){ 
    30.             data.Imports.map((importItem)=>{ 
    31.                 edges.push({ 
    32.                     "sourceID": importItem, 
    33.                     

        推荐阅读

        扫码进门、自动结账、人脸识别 无人超市炫技吸睛

      高温天巧克力等商品被晒化、市平易近进店不买器械只图吹空调……自负年夜无人便利店在国内出现以来,就以各类话题频频袈溱媒体和社交收集激发存眷,在各类新技巧的“卖点>>>详细阅读


      本文标题:Golang标准库间依赖的可视化展示

      地址:http://www.17bianji.com/lsqh/37788.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)