数据科学杂谈之三--快速跳转

前篇中提到数据科学工程面临两个困难:数据量大,处理复杂。 代码和数据混合的工程架构已经越来越无法处理大规模数据。 因为不同的模型、工具等等需要对参数进行反复试错,代码和数据耦合,无规则工程架构无法应对。 类似,要把一堆衣服、裤子、袜子等等分门别类放置到各个小箱子里。如果随手堆一堆,取放方便,但你要找某一个特定的衣物则需要耗费大量时间。

为快速打开每个“小箱子”,即快速在工程内部跳转,可以用类似如下逻辑获取目标路径:

if git status &> /dev/null; then
    ProjectRoot=$(git rev-parse --show-toplevel)
    CodeDir=$ProjectRoot/Code
    ...
    
    case $1 in
        "code" )
            echo -n $CodeDir
        ;;
        ...
        "fzf" )
        targetFolder=$(find $ProjectRoot -type d | fzf)
            if [ -z $targetFolder ]; then
                echo -n $(pwd)
            else
                echo -n $targetFolder
            fi
        ;;
        * )
            echo -n $(pwd)
        ;;
    esac
fi
  1. 然后在ranger的rc.conf中添加类似快捷键:
    map gc eval from ranger.ext.spawn import spawn; fm.cd(spawn("above.script.sh code").strip());fm.ui.win.redrawwin() 
    ...
    
  2. emacs的ranger.el中的ranger-go函数中可以添加:
    ('c (string-trim (shell-command-to-string "above.script.sh code")))
    

    在函数的末尾可以添加:(redraw-frame)可以实现跳转刷新。

  3. 在shell中可以用类似alias gc='cd $(projectJump.sh code)'的方式进行跳转。

这样就可以在各个应用层使用同样的逻辑进行跳转。

石见 石页 /
在共享协议(CC)下发布于
类别: technology 
标签: 数据科学  工程  数据科学杂谈  中