왜 나의 개발 환경이 가장 좋은가

왜 나의 개발 환경이 가장 좋은가


아니면 더 정확히 말하면, 지금 나에게 유용한 것들.
소프트웨어 개발자로서 우리는 매일 키보드에서 타자를 치는 데 많은 시간을 쓴다.우리가 시간을 써서 환경을 편안하고 효율적인 작업 장소로 만드는 것은 매우 자연스러운 것이다.
현지 개발 환경은 통상적으로 매우 개인화되고 단일 개발자의 취향에 따라 조정하고 맞춤형으로 제작된다.편집기와 IDE의 수량은 제한되어 있지만, 그 중에서 플러그인, 테마, 맞춤형 조합은 거의 무한하다.나의 현지 환경의 최근 변화 속에서 나는 개성화된 문화에 반항했다.

내 도구


내가 작성한 거의 모든 소프트웨어는 리눅스 스타일의 서버를 실행하고 생산 환경에서 실행된다.나는 virtual machine에서 모든 것을 현지에서 운행하는데, 이 기계는 가능한 한 생산 라인에 가깝게 설치되어 있다.여러 해 동안, 이것은 버그가 임시 저장 환경에 들어가기 전에 그것들을 포획하거나, 안전 조건에서 생산 문제를 재현하는 데 매우 귀중한 것이다.
가상 머신(VM)을 관리하고 실행하기 위해 VirtualBoxVagrant의 조합을 사용합니다.일단 내가 그것들을 설치하면, 나는 가상 컴퓨터를 실행할 준비가 거의 다 된다.가상 머신 자체에서 VirtualBox 게스트에 추가된 설치를 관리하는 vagrant-vbguest plugin도 사용했습니다.내 호스트와 Linux VM 간에 작업공간 디렉토리 공유: vagrant plugin install vagrant-vbguestVagrant 관리 VM의 구성은 코드로 저장할 수 있으므로 현재 GitHub의 주요 환경인 https://github.com/grahamlyons/centos-dev을 사용하고 있습니다.
그것을 실행하려면: repo 클론을 실행하고 VM을 시작한 다음 연결합니다.
git clone [email protected]:grahamlyons/centos-dev.git
cd centos-dev
vagrant up && vagrant ssh -c 'tmux attach || tmux'
Vagrantfile의 지침은 CentOS 7 기본 이미지에서 시작하여 다음을 수행합니다.
  • 가상 머신
  • 을 참조하는 고정 IP 주소를 지정합니다.
  • VM에 로컬 ~/workspace/ 디렉토리 마운트(동일한 경로)
  • 에는 tmux, vim, git 등의 기본 패키지가 설치되어 있습니다.
  • Docker
  • 설치 및 설정
  • 은 일부 로컬 구성 및 자격 증명 파일을 VM
  • 에 복제
    SSH connection 명령은 기존 tmux 세션에 추가하거나 새 세션을 시작합니다.Tmux는 SSH 세션에서 여러 탭과 창을 작성하는 데 유용한 도구입니다.CentOS에 설치된 패키지를 제외한 다른 구성은 사용하지 않습니다.

    VM의 이점


    내가 처음으로 가상 기기 내부에 소개되어 일을 하게 되었을 때, 나는 완전히 설득되었다.나에게 있어서 가능한 한 생산 환경에 접근하는 것은 매우 의미가 있다. 리눅스에 소프트웨어를 설치하고 적합한 패키지 관리자를 사용하는 것이 OSX(또는 Windows-내 기억 깊은 곳)보다 훨씬 낫다.
    공유 폴더(내 경우는 ~/workspace/)를 사용하면 호스트 운영 체제에서 내가 좋아하는 편집기를 사용할 수 있고 변경 사항은 항상 가상 컴퓨터 내부에서 언제든지 실행할 수 있다.
    가상 기기를 운행하는 것도 나로 하여금 한 번도 나의 기계를 완전히 파괴하는 것을 피하게 했다. 최악의 것은 rm -rf /root으로 의외로 운행하는 것이다.항상 작업 기계가 한 대 있는데, 너는 그것으로 도움을 찾아 문제를 해결할 수 있다. 이것은 매우 유용하다.만약 일이 정말로 회복된다면, 너는 그것을 파괴하고, 네가 이미 알고 있는 좋은 상태에서 다시 시작할 수 있다.

    VM의 단점


    VM을 사용하는 것은 완벽한 해결 방안이 아니며 호스트와 게스트 VM 간에 공유된 디렉터리에서 코드를 실행하면 성능 문제가 발생할 수 있습니다.공유 디렉터리는 간단한 편집기와 함께 사용하기에 매우 적합하지만, IDE를 사용하면 가상 시스템에서 코드를 실행하는 것은 복잡하거나 불가능할 수 있습니다.

    내 편집


    내가 전문적인 일을 시작했을 때, 내가 사용한 첫 번째 편집기는 Homesite이었다. 그것은 나의 전통을 배신했다.내가 다시는 그것을 찾지 못하자 나는 사방을 둘러보며 다른 물건을 찾았는데 Vim이라는 물건을 보았다.나는 매우 흥미가 있어서 그것을 다운로드하고 열었다.몇 분 후에 나는 마침내 퇴출할 방법을 생각해 냈는데, 1, 2년 동안 그것을 다시 열지 않았다.


    Vim을 투입한 후, 나는 지금 거의 그것만 사용하고 있다.다른 것을 사용하는 곳에서Vim key bindings 플러그인을 찾으려고 합니다.Vim은 매우 큰 학습 곡선을 가지고 있다. vimtutor은 큰 도움이 되지만 지금은 동작과 동작에 익숙해져서 내가 텍스트를 더 빨리 조작할 수 있는 것이 없다.

    플러그인 및 구성


    .vimrc 파일은 여러 번 교체되어 현재 약 10줄이 있습니다.
    set expandtab
    set shiftwidth=4
    set tabstop=4
    
    set modeline
    set modelines=5
    
    set nu
    set colorcolumn=80
    
    syntax enable
    
    let g:netrw_liststyle=3
    if exists("*netrw_gitignore#Hide")
        let g:netrw_list_hide=netrw_gitignore#Hide()
    endif
    
    나는 탭이 아닌 빈칸을 사용한다. (누가 할 줄 모르는가?)(OSX는 닫힌다) 파일 상단에서 Vim 설정을 읽는 것으로 설정(http://vim.wikia.com/wiki/Modeline_magic).행 번호 및 구문 강조 표시가 켜져 있습니다.줄이 너무 길지 않도록 80자짜리 열이 있고 디렉터리 목록을 나무로 설정합니다.
    내가 Vim에서 사용하는 다른 것들은 모두 바닐라의 것이다.기본 설정에 익숙해지기만 하면 나는 서로 다른 기계 사이를 더욱 쉽게 이동할 수 있고 내가 기억해야 할 스마트 맞춤형과 조정이 더욱 적으며 참고할 수 있는 문서도 더욱 광범위하다.

    기타 소프트웨어


    지난 몇 년 동안 저는 Docker 용기에서 거의 모든 것을 운행하기 시작했기 때문에 yum install을 점점 적게 사용하고 있습니다.Docker Hub의 한 사진에서 거의 모든 물건을 사용할 수 있는데, 일단 뜯기면 시동이 매우 빠르다는 것은 매우 의미가 있다.서로 다른 버전의 노드, 루비, 파이톤을 나란히 실행하는 것은 훨씬 간단하다.
    나는 여전히 yum을 사용하여 유틸리티 패키지를 설치한다. 예를 들어 telnet이나 jq은 보통 Vagrantfile의 설정에 들어간다.

    이것은 나에게 일시적으로 효과가 있다


    이것이 바로 나의 기계의 현재 설치 방식이다. 그것은 나에게 매우 좋다.나는 OSX를 실행하는데 대부분의 시간을 터미널에서 보내고 가상 기기 연결에 사용할 옵션이 하나밖에 없다.OSX와 VM에서 모두 Vim을 사용하고 Git에서도 마찬가지입니다.
    그것은 일을 잘하지만, 나는 항상 변화를 하고 있다.Docker의 도입은 최근에 등장했고 점점 두드러졌다.1년 후의 상황을 봅시다.

    좋은 웹페이지 즐겨찾기