• 请不要在回答技术问题时复制粘贴 AI 生成的内容
exceldream
V2EX  ›  程序员

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

  •  1
     
  •   exceldream · Sep 1, 2021 via Android · 11253 views
    This topic created in 1890 days ago, the information mentioned may be changed or developed.

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

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

    我想到的有:

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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