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

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

  •  1
     
  •   exceldream · 2021-09-01 23:22:54 +08:00 via Android · 8622 次点击
    这是一个创建于 938 天前的主题,其中的信息可能已经有所发展或是发生改变。

    故事是这样,不管老哥是换了新的工作环境,还是换了一台新的电脑。做的第一件事就是装一堆环境(不管是 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  
       2021-09-01 23:24:31 +08:00 via iPhone
    timemachine……真的好方便……
    heyjei
        2
    heyjei  
       2021-09-01 23:29:13 +08:00
    我刚在安装一台 windows10 的开发环境。开发工具其实只要有一个常用列表,和配置文件备份,弄起来还是挺快的。

    关键就是有些地方要代理才能配置好,这个就很麻烦
    chendy
        3
    chendy  
       2021-09-01 23:33:54 +08:00
    人肉装
    jdk,idea,vsc,语雀,chrome,完事
    guangzhouwuyanzu
        4
    guangzhouwuyanzu  
       2021-09-01 23:40:27 +08:00
    我有自己常用的配置,vagrant up,docker 启动,环境就好了,整个过程速度取决去网速。

    虚拟机共享 window 目录,docker 挂载虚拟机目录~
    OSDI
        5
    OSDI  
       2021-09-01 23:42:43 +08:00   ❤️ 1
    dotfiles
    ysicing
        6
    ysicing  
       2021-09-01 23:55:08 +08:00
    虚拟机的话可以考虑 vagrant
    容器的话可以考虑 vscode 的 devcontainer
    hallDrawnel
        7
    hallDrawnel  
       2021-09-02 00:18:16 +08:00   ❤️ 19
    人肉装,享受安装配置过程,感觉像在布置新家一样。
    rpman
        8
    rpman  
       2021-09-02 00:25:01 +08:00 via iPad
    工作机只 vscode+ssh 用,配置跟着 vscode 走,openssh config 自己默写
    环境按项目的来
    TypeError
        9
    TypeError  
       2021-09-02 01:14:34 +08:00   ❤️ 1
    ide
    包管理
    git+网盘同步各种代码和配置
    LotusChuan
        10
    LotusChuan  
       2021-09-02 01:26:09 +08:00
    dotfile 的话用 dotbot,配合 bash 脚本装好对应的工具,然后挨个 vim 进配置文件用对应的 plugin manager 装插件;命令行里面一些重要的比如 fzf 这种也直接写到 bash 脚本里面,其他的工具需要的时候临时装就行; ide 的话基本用 jetbrain 家的,它家那个 vim 插件装完就能上手开写了。
    exceldream
        11
    exceldream  
    OP
       2021-09-02 03:05:48 +08:00 via Android
    @guangzhouwuyanzu 如果是编译型语言(像 java )这个工作流怎么做,ide 是在宿主机上吗?如果在宿主机,宿主机上还需要装 jdk 等编译器
    icy37785
        12
    icy37785  
       2021-09-02 03:47:48 +08:00 via iPhone
    全天刚刚重装了系统,然后人肉装的各种环境,都还挺方便的。
    oaa
        13
    oaa  
       2021-09-02 04:08:33 +08:00 via Android
    xiaket
        14
    xiaket  
       2021-09-02 07:11:49 +08:00
    脚本, 不太相信第三方工具.
    locoz
        15
    locoz  
       2021-09-02 07:35:43 +08:00
    基本靠远程桌面解决问题,但如果只能重新搞环境的话,就人肉装,毕竟脚本容易在碰到一些位置出问题时引起连锁反应、虚拟机方案存在镜像文件大和硬件情况差异的问题,人肉是最稳的选择。反正大致要装的东西的列表是有的,部分安装时状态比较固定的也有现成的命令复制,用不了半天。
    paranoiddemon
        16
    paranoiddemon  
       2021-09-02 07:55:20 +08:00 via Android
    手动装其实也挺快的,换设备的频率很低
    dcoder
        17
    dcoder  
       2021-09-02 08:00:28 +08:00   ❤️ 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  
       2021-09-02 08:09:27 +08:00
    每次都是抹掉再装,不留备份。全部上云,ECS 运行环境 + Git 、Docker 、iCloud 数据支持 + vscode 客户端。 从抹盘到调通撑死俩小时。
    joshua7v
        19
    joshua7v  
       2021-09-02 08:36:42 +08:00
    早期是直接把开发机硬盘整个复制到新电脑硬盘,后来是直接在新电脑上配置
    因为用的工具也没有非常多,并没有想象中那么消耗时间
    yazinnnn
        20
    yazinnnn  
       2021-09-02 08:43:18 +08:00
    java,npm,python,go-lang

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

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

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

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

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


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

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

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