2009-09-12 42 views
19

Làm cách nào để tổ chức không gian làm việc cá nhân cho các dự án mã trong thư mục chính của bạn? Và làm thế nào để bạn giữ cho không gian làm việc hiệu quả để xử lý nhiều dự án cùng một lúc?Làm thế nào để bạn tổ chức không gian làm việc mã và thư mục chính?


Khía cạnh quan trọng nhất của câu hỏi của tôi ở trên. Bạn có thể ngừng đọc trừ khi bạn muốn giải quyết các phụ đề cụ thể của chủ đề. Dưới đây là các câu hỏi liên quan khác nhau về tổ chức không gian làm việc. Không cần phải giải quyết tất cả chúng. Quan tâm đến việc nghe ngay cả một phần câu trả lời cho một số câu hỏi liên quan sau đây.

Câu hỏi này chủ yếu nằm trong ngữ cảnh của UNIX và OS X. Người dùng Windows có thể đưa ra đề xuất nhưng tôi chủ yếu quan tâm đến thư mục chính và quy ước dòng lệnh thường thấy trong UNIX không cửa sổ (trừ khi bạn sử dụng Cygwin).

Cụ thể cấu trúc thư mục nào bạn thấy hữu ích khi duy trì nhiều dự án mã cùng một lúc? Và khi bạn đang tải xuống một loạt các dự án mã nguồn mở, làm thế nào để giữ tất cả các cây nguồn khác nhau được tổ chức mà không làm lộn xộn không gian làm việc của bạn quá nhiều?

Đặc biệt, tôi tự hỏi những thủ thuật hay mẹo nào có thể làm cho các dự án dễ truy cập thông qua dòng lệnh và dễ dàng duyệt qua trong khi thoát ra ngoài khi bạn cần tập trung vào một dự án cụ thể.

Có các quy ước hữu ích nào bạn thấy thuận tiện để giữ các kho lưu trữ nguồn khác nhau theo thứ tự không? Đặc biệt với git làm thế nào để bạn giữ cho các chi nhánh khác nhau và các kho có liên quan được tổ chức? Bạn có thường xuyên thổi đi các bản sao làm việc và thường xuyên làm mới hoàn toàn từ kiểm soát nguồn không? Bạn giữ gìn và tại sao? Và làm thế nào để bạn đối phó với các không gian tên và đường dẫn nếu một dự án cụ thể có nhiều phụ thuộc đường dẫn mà bạn phải ánh xạ tới cấu trúc thư mục chính của riêng bạn?

Còn thư mục bin và thư viện chung thì sao? Làm thế nào để bạn quản lý điều này nếu bạn cần tạo ra nhiều môi trường phát triển tiềm năng cho các dự án khác nhau (có lẽ các phiên bản khác nhau của PHP, Ruby, Perl, máy chủ web, trình biên dịch, v.v.).

Đối với quản trị viên sys dày dạn kinh nghiệm, những gì hiệu quả từ kinh nghiệm và những gì không hiệu quả?

Làm thế nào để bạn giữ nó đơn giản nhất có thể nhưng không quá đơn giản?

Và điều gì mang đến cho bạn sự linh hoạt nhất để làm việc trên nhiều dự án cùng một lúc?

Bạn có thường xuyên di chuyển các dự án ra khỏi vùng làm việc của bạn và nhập lại từ kiểm soát nguồn không. Làm thế nào để ngăn chặn sự tích tụ của cruft trong khi giảm sự cần thiết phải tái tạo các môi trường dự án quá thường xuyên?

Làm thế nào để bạn dọn sạch hoặc thổi đi toàn bộ không gian làm việc của mình để có thể bắt đầu với một phương tiện trống mà không mất quyền truy cập vào mã nguồn có giá trị và hiệu quả tổ chức thu được từ các dự án trước đây?

+1

Hầu hết mọi câu bạn đã viết đều kết thúc bằng dấu chấm hỏi. Tôi muốn đề nghị bạn ngưng bài viết của mình thành một câu hỏi có thể quản lý được) –

+2

Bài đăng này có thể là một ứng cử viên tốt cho cộng đồng wiki. – Amber

+0

câu hỏi trong phòng chat là "bạn đã bao giờ sử dụng git" và câu trả lời là không, vì vậy nếu như tôi, bạn nghĩ "thổi bay repo của bạn? Làm sạch cây xây dựng?" thì đó là lý do. Chỉ nghĩ rằng tôi sẽ làm rõ cho anh ta. – jcolebrand

Trả lời

12

Tôi giữ phần mềm tôi đã tự viết trong một thư mục đặc biệt, được đặt tên theo trang web chính của tôi - hãy gọi nó là 'tung hứng' để tranh luận. Tôi có ~/juggle/software/bên trong là thư mục con cho mỗi dự án tôi viết (thường được quản lý bằng git) và ~/juggle/websites/theo đó tôi có thư mục con cho mỗi miền trang web, cho dù html thô hay gì đó như webgen hoặc staticmatic.

Để giúp tôi chuyển đổi giữa chúng, tôi sử dụng 'dấu ấn' có liên quan đến bash khá độc đáo.

$ cd ~/juggle/software/wolfsbaen 
$ bm # bookmarks this with apparix 

Vì vậy, bây giờ từ bất cứ nơi nào tôi có thể làm điều này

$ to wolfsbaen 

Đối với phần mềm tôi đã tải về, tôi có ~/phần mềm/và bên trong đó:

  • tài liệu lưu trữ - để tiếp tục tải về nguồn tarballs
  • tài liệu - cho tài liệu HTML đã tải xuống và sách PDF
  • hack - f hoặc dự án throwaway thử những ý tưởng hoặc các thư viện phần mềm mới
  • dự án - cho các dự án tôi cộng tác, nhưng đã không bắt đầu bản thân mình
  • đơn giản - cho các chương trình bash/python/ruby ​​có thể chạy bên trong thư mục giải nén của họ
  • subversions - Thanh toán cho tất cả các phiên bản kiểm soát: cvs, svn, git, hg, vv
  • giải nén - cho tarball giải nén trước khi tôi biên dịch chúng

tôi cũng có ~/bin cho các kịch bản hữu ích tôi viết và thấy mình sử dụng mọi lúc. Tôi thêm phần này vào PATH trong ~/.bashrc

Tôi không nghĩ rằng phần còn lại của câu hỏi của bạn thực sự áp dụng rất tốt với tôi; ngoại trừ với git tôi khá nhiều không bao giờ phải blitz bất kỳ không gian làm việc của tôi.Tôi tạo ra các nhánh mới trong khi làm việc trong thư mục, và stash những thay đổi gần đây nếu tôi phải chuyển nhánh đột ngột. Tôi cũng giữ một bản sao kho trần của tất cả các phần mềm và trang web riêng nguồn của tôi:

$ git clone --bare . /srv/git/wolfsbaen.git 

tôi 'git push' này ở cuối mỗi giai đoạn làm việc. Điều này làm cho/srv/git là một lựa chọn hiển nhiên cho việc sao lưu.

+0

Cảm ơn Cathal. Tôi đang đào git. Và quy trình làm việc của bạn ở đây rất có ý nghĩa đối với tôi. Và cảm ơn cho mẹo "apparix". Tôi đã tự hỏi làm thế nào để làm bookmark trong dòng lệnh. Điều đó trả lời một câu hỏi tôi đã có ý nghĩa để hỏi bạn bè quản trị sys của tôi. –

+0

Cathal, tôi đã gặp sự cố khi thiết lập Apparix trên OS X. Googling đưa tôi đến câu trả lời của bạn. Bạn có nhớ viết một hướng dẫn nhanh không? –

3

Tôi sẽ không trả lời tất cả các câu hỏi của bạn; Tuy nhiên, tôi sẽ nói rằng tôi sử dụng SVN, và tôi tuân theo các quy ước của họ cho các dự án. Vì vậy, tôi có một thư mục có tên:

d:\development 

Và bên trong đó, tất cả các dự án của tôi là thư mục con (có thể 20 hoặc hơn). Trong mỗi người trong số họ, là

\trunk 
\branches 
\tags 

Và đó là nó.Tôi có một máy thứ hai ở đây tại nhà là máy chủ của tôi (và cũng là trung tâm truyền thông: P), và trên đó tôi có SVN chạy theo apache, và cũng trac, để quản lý các nhiệm vụ và lỗi trong mỗi một. Ngoài ra tôi có CC.net, để xây dựng.

3

Làm cách nào để tổ chức cá nhân của bạn không gian làm việc cho các dự án mã của bạn trong thư mục chính?

Theo như công cụ UNIXy, tôi đặt thư mục dự án trong ~/dev. Tôi thường sẽ kết thúc kiểm tra một cái gì đó từ Subversion vào những thư mục dự án.

Và điều gì mang lại cho bạn linh hoạt nhất để làm việc trên nhiều dự án cùng một lúc?

Đối với các dự án Web, duy trì một bộ Apache name-based virtual hosts cực kỳ tiện lợi để làm việc trên nhiều dự án cùng một lúc. http://foo.localhost/ có thể trỏ tới ~/dev/foo/public, http://bar.localhost/ -> ~/dev/bar/public, v.v.

GNU Screen cũng là chìa khóa cho quy trình phát triển địa phương của tôi. Nếu tôi cần chuyển các bánh răng sang một dự án khác, tôi sẽ chỉ Ctrl-a, c và có một thiết bị đầu cuối mới được cô lập để sử dụng.

+0

Tôi đã sử dụng MAMP chủ yếu trên OS X. Nhưng mẹo của bạn về máy chủ ảo tên có nhiều ý nghĩa. –

1

tôi muốn chia sẻ kinh nghiệm của riêng tôi trong hệ thống tổ chức (Mặc dù câu hỏi là quá già, tôi hy vọng điều này có thể giúp đỡ một ai đó hoặc tôi có thể nhận được lời đề nghị tốt hơn)

tôi tiếp tục thay đổi distro Linux và đôi khi sử dụng cửa sổ cho công việc. Vì vậy, tôi đã phân vùng ổ cứng trong 4 ổ đĩa.

  1. cửa sổ
  2. linux
  3. chính
  4. thêm một


Tất cả các công việc của tôi đi trong ổ thứ 3 đó là NTFS, vì vậy nó có thể được truy cập trong cả hai cửa sổ cũng như linux. (Bạn có thể cần một số cấu hình fstab để không gây rối với quyền của tệp khi gắn ổ đĩa này trong linux). Bây giờ trong ổ đĩa này, tôi đặt các thư mục sau đây.

  • Documents
    • tất cả các tài liệu tôi được lưu trữ (ví dụsách vở, giấy tờ trắng vv)
  • Hình
  • Âm nhạc
    • bài hát
    • danh sách nhạc (Hiện đang sử dụng banshee)
  • Phim
  • làm việc
    • Offic e
      • dự án văn phòng 1
      • dự án văn phòng 2
    • cá nhân
      • công cộng (chủ yếu là các dự án tôi công bố trên github)
        • dự án cá nhân 1
        • dự án cá nhân 2
      • tin
        • dự án cá nhân 3
        • dự án cá nhân 4
    • nguồn
      • chủ yếu Repos tải về từ github hoặc bất kỳ mã nguồn nào khác hoặc liên quan đến những thứ
  • Cào
    • Về cơ bản mọi thứ diễn ra ở đây đầu tiên trong trường hợp tôi không biết nơi để đặt hoặc tôi vội vàng. Sau đó, tôi sắp xếp chúng theo nhu cầu cần thiết
    • Ngoài ra tôi đặt liên kết mềm trong thư mục này với nhiều thư mục khác mà tôi truy cập thường xuyên. Lý do của việc này là, tôi đặt scratch thư mục như Desktop
  • Dump
    • Những điều mà tôi đã giải quyết nhưng hav để giữ khoảng đôi khi sau đó loại bỏ
    • tôi tiếp tục làm sạch thư mục này trong thời gian rảnh rỗi
  • Dropbox
    • vài điều mà tôi truy cập từ đa thiết bị ple được lưu trữ trong dropbox. Nhưng vì vấn đề bảo mật dropbox, tôi không thể lưu trữ mọi thứ trong đó. Và tôi vẫn đang tìm ra giải pháp lý tưởng cho việc này. Tôi đã cố gắng chạy các lựa chọn thay thế dropbox mở trên máy chủ của riêng tôi nhưng vẫn duy trì chúng trong hassel.(Cũng như tôi đến từ một trong những nước thế giới thứ 3, phải rời khỏi lưới nhiều lần)
    • Hiện tại tôi đang triển khai một ứng dụng web đơn giản để lưu trữ những thứ như báo giá/sách tôi thích. Ngoài ra tôi có rất nhiều ghi chú khi làm việc. Hiện tại tôi đang lưu trữ chúng trong tài khoản đăng, nhưng chẳng bao lâu nữa tôi sẽ chuyển chúng vào ứng dụng của tôi.

Khi tôi cài đặt os mới, đầu tiên tôi thay đổi thư mục mặc định và địa điểm được đánh dấu như Desktop, Music, Documents vv đến các thư mục ổ đĩa chính và thiết lập dropbox. Tôi đặt thư mục đầu làm máy tính để bàn
Đối với các tệp cấu hình (trình soạn thảo/shell, v.v.), bạn có thể sử dụng ổ đĩa/dropbox/dotfiles chính.
Ngoài ra trên mặt lưu ý, tôi sử dụng zsh/vim/emacs với vài plugin thú vị để làm cho tôi hiệu quả hơn.

Các vấn đề liên quan