V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
exceldream
V2EX  ›  程序员

大家如何打造自己高效的开发环境

  •  1
     
  •   exceldream · 89 天前 via Android · 5906 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。

    故事是这样,不管老哥是换了新的工作环境,还是换了一台新的电脑。做的第一件事就是装一堆环境(不管是 java,npm,还是 python,go-lang ),还有各种让自己高效的工具。在这个自己熟悉的环境往往效律加倍。

    问题来了,各位老哥分享一下自己都是怎么解决这个问题的?

    我想到的有:

    a. 人肉装,可能花个半天到两天不等。

    b. 可能有个 shell 脚本,适用于 linux 环境,把自己的开发环境脚本化,跑一下脚本,抽根烟,可能就好了吧(此方案的老哥可以继续分享一下经验)

    c. 虚拟机方案,开发环境在虚拟机里面,安装好的环境打成镜像,换台新电脑,开发只要装个虚拟机,把镜像一搂完事(可能会存在虚拟机的性能不及本地操作系统)。

    d. 还有一种方案就是直接云主机了,可能成本会高些,随时远程连上去,不存在装环境的问题(不知道有没有靠谱的推荐)。

    e. 虚拟机方案,还想到一个是 Vagrant,可以脚本标准化环境。但这种对脚本语言 /解析型语言( python/javascript )可能问题不大,但对编译型语言( java )可能会存在问题,ide 装在宿主机还是装在 vagrant 的虚拟机里面,如果装在里面也可能会面临 gui 的性能问题。

    各位老哥有什么好的解决方案一起分享探讨。或者有使用上面的某个方案的,你是如何解决上面遇到的一些坑的?

    82 条回复    2021-09-08 11:58:33 +08:00
    afutureus
        1
    afutureus   89 天前 via iPhone
    timemachine……真的好方便……
    heyjei
        2
    heyjei   89 天前
    我刚在安装一台 windows10 的开发环境。开发工具其实只要有一个常用列表,和配置文件备份,弄起来还是挺快的。

    关键就是有些地方要代理才能配置好,这个就很麻烦
    chendy
        3
    chendy   89 天前
    人肉装
    jdk,idea,vsc,语雀,chrome,完事
    guangzhouwuyanzu
        4
    guangzhouwuyanzu   89 天前
    我有自己常用的配置,vagrant up,docker 启动,环境就好了,整个过程速度取决去网速。

    虚拟机共享 window 目录,docker 挂载虚拟机目录~
    OSDI
        5
    OSDI   89 天前   ❤️ 1
    dotfiles
    ysicing
        6
    ysicing   89 天前
    虚拟机的话可以考虑 vagrant
    容器的话可以考虑 vscode 的 devcontainer
    hallDrawnel
        7
    hallDrawnel   89 天前   ❤️ 18
    人肉装,享受安装配置过程,感觉像在布置新家一样。
    rpman
        8
    rpman   89 天前 via iPad
    工作机只 vscode+ssh 用,配置跟着 vscode 走,openssh config 自己默写
    环境按项目的来
    TypeError
        9
    TypeError   89 天前   ❤️ 1
    ide
    包管理
    git+网盘同步各种代码和配置
    LotusChuan
        10
    LotusChuan   89 天前
    dotfile 的话用 dotbot,配合 bash 脚本装好对应的工具,然后挨个 vim 进配置文件用对应的 plugin manager 装插件;命令行里面一些重要的比如 fzf 这种也直接写到 bash 脚本里面,其他的工具需要的时候临时装就行; ide 的话基本用 jetbrain 家的,它家那个 vim 插件装完就能上手开写了。
    exceldream
        11
    exceldream   89 天前 via Android
    @guangzhouwuyanzu 如果是编译型语言(像 java )这个工作流怎么做,ide 是在宿主机上吗?如果在宿主机,宿主机上还需要装 jdk 等编译器
    icy37785
        12
    icy37785   89 天前 via iPhone
    全天刚刚重装了系统,然后人肉装的各种环境,都还挺方便的。
    oaa
        13
    oaa   89 天前 via Android
    xiaket
        14
    xiaket   89 天前
    脚本, 不太相信第三方工具.
    locoz
        15
    locoz   89 天前
    基本靠远程桌面解决问题,但如果只能重新搞环境的话,就人肉装,毕竟脚本容易在碰到一些位置出问题时引起连锁反应、虚拟机方案存在镜像文件大和硬件情况差异的问题,人肉是最稳的选择。反正大致要装的东西的列表是有的,部分安装时状态比较固定的也有现成的命令复制,用不了半天。
    paranoiddemon
        16
    paranoiddemon   89 天前 via Android
    手动装其实也挺快的,换设备的频率很低
    dcoder
        17
    dcoder   89 天前   ❤️ 2
    vagrant/docker/远程桌面 都试验过... 其实都挺难用的...

    最省心的还是: Mac + Time Machine + NAS

    具体操作是:
    1. 直接在 Mac 上配置自己的开发环境
    app store + home brew + JetBrain IDEs + 简单的 .bash_profile 等等等
    2. 自己装个便宜的 NAS in home/office
    比如 Synology 2 Bay 2XX 型号
    然后你 Mac 不存任何 media 文件 (e.g. 照片, video)
    NAS 设置为永不休眠
    Mac 定时 /手动 备份 Time Machine 到 NAS
    3. 可以在 Mac 上随便乱折腾配置了
    一旦折腾坏了, 就从 NAS Time Machine 上读档
    4. 新装一台 Mac 可以从 NAS 上读个装机用的 Time Machine 存档
    然后这台新 Mac 也可以拥有自己的后续存档, 相当于分叉了
    MengiNo
        18
    MengiNo   89 天前
    每次都是抹掉再装,不留备份。全部上云,ECS 运行环境 + Git 、Docker 、iCloud 数据支持 + vscode 客户端。 从抹盘到调通撑死俩小时。
    joshua7v
        19
    joshua7v   89 天前
    早期是直接把开发机硬盘整个复制到新电脑硬盘,后来是直接在新电脑上配置
    因为用的工具也没有非常多,并没有想象中那么消耗时间
    yazinnnn
        20
    yazinnnn   89 天前
    java,npm,python,go-lang

    好奇什么岗位需要装这些环境...
    justrand
        21
    justrand   89 天前
    Vagrant 吧,ide 当然装在外面,不装虚拟机里面。对编译型语言( java )可能会存在问题,请问会碰到啥问题啊?
    idragonet
        22
    idragonet   89 天前
    我用 win10 的,带自己的固态硬盘走天下就是了,插入电脑启动系统什么都不用安装了。
    wangbenjun5
        23
    wangbenjun5   89 天前 via Android
    人肉装,话说重装系统或者换工作,这种情况也不多见,可能 1 年才 1 次。可以稍微整理一个文档出来,这样按部就班省点事
    anguiao
        24
    anguiao   89 天前
    Windows 可以试试 scoop,JDK 、Node.js 这些都是一条命令就装好了。然后 JetBrains 全家桶一装,就可以干活了。
    CodeCodeStudy
        25
    CodeCodeStudy   89 天前
    人肉装,然后记笔记,记录安装步骤、软件版本、注意事项等,下一直接照着笔记安装,软件放在网盘里,这样就避免了下一次安装还要搜索安装教程和下载软件
    emeab
        26
    emeab   89 天前
    docker 吧.
    balabalaguguji
        27
    balabalaguguji   89 天前
    @idragonet #22 USB 传输速度会不会是瓶颈,这样系统会变慢吧
    zzyphp111
        28
    zzyphp111   89 天前   ❤️ 1
    同 git 流+ shell 流 https://github.com/Darrenzzy/pro-guide/tree/master/config-files
    根据个人需要随时吧配置文件放到机器对应目录下
    Tetsuchou
        29
    Tetsuchou   89 天前
    脚本 + Homebrew
    agagega
        30
    agagega   89 天前 via iPhone   ❤️ 1
    wasd6267016
        31
    wasd6267016   89 天前
    主要是频率比较低,就强行人肉装了 -。- 顶多记下坑点,下次别继续踩坑就行了
    guxingke
        32
    guxingke   89 天前
    1. 梯子,这个基本得手动装
    2. 配置同步,Mackup
    3. 软件安装,Homebrew (brew bundle dump && brew bundle install)

    ---
    新的环境搭建大约需要 2 小时
    debuggerx
        33
    debuggerx   89 天前   ❤️ 1
    常用配置和脚本集放在 GitHub 私有仓库了,新机器到手先装 Linux,然后 jetbrains toolbox 装全家桶,clone 配置仓库,然后直接 ln -s 软链接搞定……这样我任何一台设备新增了配置和脚本,到其他机器上只要去 pull 一下就可以了
    exceldream
        34
    exceldream   89 天前 via Android
    @yazinnnn 举粟子哈。不过这里全栈的大佬应该也不少
    exceldream
        35
    exceldream   89 天前 via Android
    @justrand 如果你 ide 装在虚拟机外面,意味你需要在虚拟外面再装个 jdk,或者其他编译环境。而且编译调试什么的,你用的并不是虚拟机内的 jdk,实际运行的时候又是虚拟机内部的 jdk,感觉有点割裂
    nmap
        36
    nmap   89 天前
    人肉装就行了,也就半天~1 天时间,再说也是带薪的。。。
    aodiquan
        37
    aodiquan   89 天前
    除了环境还有一堆的绿色软件,我是用移动硬盘装的,大概 300 多 G,fastcopy 同步,环境变量备份成脚本,频繁更改且重要的软件用 git 同步,基本移动硬盘拷贝加 git pull 下来半天就完成了
    siteshen
        38
    siteshen   88 天前
    去一个自带电脑的公司 [狗头]
    ivyliner
        39
    ivyliner   88 天前
    @yazinnnn 全栈运维, 哈哈
    leafShimple
        40
    leafShimple   88 天前
    我自己的笔记本,不喜欢搞环境.
    darkengine
        41
    darkengine   88 天前
    同自带笔记本,已经两年多没碰过在新电脑上配环境了,需要使用新技术特别是后端技术的时候 docker 搞起。
    jdhao
        42
    jdhao   88 天前 via Android
    主要用 linux,自己写了配置脚本,一键安装
    EscYezi
        43
    EscYezi   88 天前 via iPhone
    javaer 表示装好 idea 就可以拉代码干活了,构建工具、jdk 、数据库连接工具 idea 里面都有
    finab
        44
    finab   88 天前   ❤️ 1
    使用 onedrive 或 dropbox 等同步盘

    使用新软件时,先找到软件的配置文件目录,拷贝到同步盘。
    写一个脚本,将自己使用的所有软件配置目录,从同步目录软连接到目标目录。

    新设备第一件事,就是运行这个脚本,这样所有软件的目录都链接好了,

    之后按需下载软件,打开直接用就可以了
    finab
        45
    finab   88 天前
    @finab 我用这个方式,同步了自己常用的软件和所有的游戏存档,包含各种经典模拟器。
    总共 3 台 mac 和一台 windows,都能同步游玩
    几台 mac 下的环境也一致,其中一台更改了,另外两台也同步更改(例如 1Password 、Alfred 等)
    jackmod
        46
    jackmod   88 天前
    照着前人留下的手册人肉装,公然摸鱼。
    falcon05
        47
    falcon05   88 天前 via iPhone
    人肉装吧,除非你是网管,有一堆电脑等着你
    yanzhiling2001
        48
    yanzhiling2001   88 天前
    我还真是 vmware 虚拟机
    idragonet
        49
    idragonet   88 天前
    @balabalaguguji 不是 USB,是打开电脑直接插入主板,启动系统。
    sakasaka
        50
    sakasaka   88 天前
    保持头脑清醒
    harde
        51
    harde   88 天前
    人肉装,再怎么频繁,也不可能天天装环境。
    能问出这个问题,楼主是干人力外包的?
    regothic
        52
    regothic   88 天前
    @yazinnnn 测试吧,哈哈哈😂
    jin7
        53
    jin7   88 天前
    scoop + 手工
    ericguo
        54
    ericguo   88 天前
    人肉装啊,用到啥装啥,一天肯定装完了。我还是喜欢所有工具都在本机以原生应用跑的控制感,有人说不同项目用到的组件版本不一样,全部本机不现实(比如不同项目用了不同版本的 pg ),我倒是没这个问题,因为我同时是运维,所以,所有项目组件版本能够保持一致的。


    装是小头,个人感觉比较费力的是开发机保持所有工具最新版本,不过天天读 change log 也是一种乐趣吧。。
    james2013
        56
    james2013   88 天前
    人肉装就挺好,用脚本和虚拟机还要定时更新和保存
    jabari
        57
    jabari   88 天前
    direnv + nix
    neptuno
        58
    neptuno   88 天前
    人肉装吧,很多公司对电脑有要求,不允许很多操作,到最后还是人肉装
    RRRoger
        59
    RRRoger   88 天前
    人肉装
    lamesbond
        60
    lamesbond   88 天前
    不管是写脚本,做虚拟机镜像不都要花时间?有这时间不如手动装,毕竟换机频率不大,一台 macbook 用 2,3 年都算少的吧
    terranboy
        61
    terranboy   88 天前
    vscode remote 开发
    hyy1995
        62
    hyy1995   88 天前 via iPhone
    人肉装,还能随带更新一下之前万年不更新的工具
    namelosw
        63
    namelosw   88 天前
    brew + brew cask 基本大部分东西都能一行搞定

    缺啥装啥,这样比较精简
    mawerss1
        64
    mawerss1   88 天前
    最近从 mac 切换到了 win10,开发环境都装在 wsl2 里,包括 jetbrains 系列 ide,wsl2 系统可以导出导入这个应该是最方便的了,但是 win10 上除了代码还有一些软件,文档资料,感觉如果要换电脑的化只能备份整个系统再还原了
    ch2
        65
    ch2   88 天前
    a 和 d 相结合,其它方案都不靠谱
    Hurriance
        66
    Hurriance   88 天前
    @dcoder 想请教一下,Time Machine 是真全备份吗,新设备相对旧设备会存在一定的风险差异吗
    sherryqueen
        67
    sherryqueen   88 天前
    人肉装. 前端开发。vscode 配置同步一份 + nodejs 就可以干活了
    efaun
        68
    efaun   88 天前
    虚拟机+docker
    sophos
        69
    sophos   88 天前
    必须是 vscode+wsl2 啊

    vscode 配置都可以同步到云端
    wsl2 导出再导入就好了
    tfdetang
        70
    tfdetang   88 天前
    难道不是 dockerfile + git 管理吗? 要开发什么项目直接起什么项目的环境,无论是本地开发还是 remote 开发都可以
    GiantHard
        71
    GiantHard   88 天前
    Linux 系统,先搭出一套自己熟悉的开发环境( DE + IDE + Shell + 各种软件),然后通过 rclone 到新的电脑。我现在使用的系统,最开始是装在一台 Acer ( Intel + NVIDIA )笔记本上的,后来又迁移到 mbp 2015 上面,现在又落在了一台锐龙 PC 上。每次迁移就是准备一块 SSD 通过 rclone 全盘备份,然后通过 USB Live CD 迁移到新机器上,接着用 mhwd 替换一下硬件驱动就成(是的,我用 Manjaro )
    7gugu
        72
    7gugu   88 天前 via iPhone
    人肉装,因为有很多工具是会随着自己的技能发展出现变更的,以前可能高效的软件,放到现在可能会有更好的选择。核心几大件几乎是不变的,附属软件慢慢调就好了。
    abc8678
        73
    abc8678   88 天前 via Android
    把 Windows 装在 vhd 映像里,可以拷到别的地方继续用。或者 Windows to go
    dcoder
        74
    dcoder   88 天前
    @Hurriance 新旧设备硬件不一致, 可能是有风险差异的. 我一般这样用的时候, 都是两台 Mac 硬件型号相同的情况下.
    exceldream
        75
    exceldream   87 天前 via Android
    @emeab 大佬,docker 流怎么操作?
    exceldream
        76
    exceldream   87 天前 via Android
    @EscYezi 主要是在公司有现成中间件可以连。假如在家里,可能有一堆中间件需要连 mysql,zk,mq etc.挺麻烦的
    exceldream
        77
    exceldream   87 天前 via Android
    @mawerss1 jetbrains 装在 wsl2 里面都能 gui 啦?
    wangxin13g
        78
    wangxin13g   86 天前
    用 php 那会是用 docker-compose up 就完事了
    现在主要是写 java 直接用 idea 配置多 jdk
    mawerss1
        79
    mawerss1   84 天前 via iPhone
    @exceldream 用 x410 这个 app win 上的
    exceldream
        80
    exceldream   84 天前 via Android
    @exceldream win11 可以。微软出了个 wslg 项目,可以直接把 wsl 中的 gui 跑到 win 桌面上👍
    shilianmlxg
        81
    shilianmlxg   83 天前
    @TypeError 老哥 怎么同步配置呢,你的哪些配置是需要同步的呢 。我以为能同步的只有 zshrc
    TypeError
        82
    TypeError   83 天前 via Android
    @shilianmlxg 还有 ide 配置、vscode 配置这些吧
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3586 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:01 · PVG 12:01 · LAX 20:01 · JFK 23:01
    ♥ Do have faith in what you're doing.