it-swarm-vi.tech

Tiết kiệm và khôi phục ngăn xếp hoàn tác - tốt hay xấu?

Trong một ứng dụng máy tính để bàn có chủ quyền với nhiều cấp độ hoàn tác/làm lại (ví dụ: Photoshop, Word, v.v.), liệu có thể lưu và khôi phục lịch sử hoàn tác của một tệp với chính tệp đó là một điều tốt hay xấu? Phản ứng ban đầu của tôi là "tốt", tuy nhiên tôi đã thấy tôi thỉnh thoảng giữ Control + Z cho đến khi nó ngừng hoạt động để trở lại phiên bản trước. Bất kỳ nghiên cứu hoặc kinh nghiệm với điều này?

12
Robert Fraser

Một ví dụ về một ứng dụng như vậy là IntelliJ IDEA (và một số môi trường lập trình khác). Ngoài phần bên ngoài dành riêng cho dự án thông thường kiểm soát sửa đổi , IDEA có một người dùng cụ thể lịch sử cục bộ giúp lưu bản sửa đổi của mỗi tệp trên mỗi lần lưu (lịch sử được lưu trong thư mục nhà của người dùng). Các bản sửa đổi cũ được lưu theo mặc định trong 3 ngày làm việc, sau đó các bản sửa đổi cũ bị xóa. Kết hợp với tính năng tự động lưu tất cả các tệp mỗi vài giây (của tôi Sở thích là sau khi không hoạt động trong 5 giây), điều này có nghĩa là bạn sẽ không bao giờ cần phải suy nghĩ về việc lưu tệp và bạn luôn có thể lấy lại dữ liệu cũ. Đó là một cứu cánh thực sự khi lập trình. (Đôi khi tôi cũng sử dụng nó để tìm hiểu làm thế nào nhiều giờ tôi đã làm việc trong một dự án, để ghi lại giờ làm việc của mình, vì lịch sử địa phương cho thấy ngày và giờ của mỗi thay đổi.)

Vẫn cần một kiểm soát sửa đổi bên ngoài, nhưng đối với các nhu cầu khác - ở đó bạn sẽ thực hiện các thay đổi thông thường khi bạn hoàn thành một số công việc nhất quán, ít nhất một lần trong 1-2 giờ và đó cũng là một cách để phân phối các thay đổi của bạn cho nhóm khác thành viên và để sao lưu. Mặt khác, lịch sử địa phương là để phục hồi sau những rủi ro vài giây hoặc vài phút sau khi nó xảy ra.

Tôi nghĩ rằng nhiều chương trình khác sẽ được hưởng lợi từ một lịch sử địa phương tương tự. Tôi rất thích nếu Office Suite của tôi có nó, bởi vì ngăn xếp hoàn tác/làm lại và lưu các tệp theo cách thủ công là những cách rất nguyên thủy để khôi phục dữ liệu bị mất (chúng không cho phép khôi phục có chọn lọc và chúng không tồn tại khi khởi động lại chương trình). Tôi cũng nhớ đã thấy một ứng dụng chỉnh sửa hình ảnh (tôi không nhớ tên - tôi nghĩ rằng nó chỉ dành cho Mac), trong đó tất cả các chỉnh sửa được thực hiện dưới dạng biến đổi của ảnh gốc và bất cứ lúc nào bạn cũng có thể quay lại để thay đổi bất kỳ các chỉnh sửa trước đó. Vì vậy, một lịch sử như vậy là có thể ngay cả với chỉnh sửa hình ảnh.

Tôi không nghĩ rằng tôi muốn lịch sử được lưu trữ bên trong tệp đang được chỉnh sửa - nếu không nó sẽ rất lớn (một bản sửa đổi cứ sau vài giây; lịch sử địa phương của tôi cho các dự án lập trình tôi đã làm trong vòng một năm là 370 MB) và nó có thể gây ra sự cố bảo mật bằng cách rò rỉ dữ liệu mà bạn nghĩ rằng bạn đã xóa - nhưng lịch sử trên mỗi người dùng sẽ rất tuyệt.

7
Esko Luontola

thỉnh thoảng tôi muốn photoshop hoặc Word có chức năng như vậy, mặt khác như bạn nói tôi thường nhấn control-z cho đến khi nó dừng lại.

Một vấn đề khác là hiệu suất. Hãy suy nghĩ một tài liệu Word dự thảo được thông qua và chỉnh sửa trong nhiều tuần. Nó sẽ rất lớn! và mất mãi mãi để tải.

Một vấn đề khác là sự riêng tư. Tôi không muốn mọi người thấy những bước tôi đã thực hiện để Vẽ bức tranh trong Photoshop, hoặc đề xuất trước đây của tôi với hội đồng quản trị là gì.

Tóm lại, tôi nghĩ nó có thể tốt nhưng bạn sẽ phải có cách để xóa lịch sử vì lợi ích hiệu suất và quyền riêng tư và có lẽ nếu một người nhấn ctrl-z, bạn nên dừng lại khi bạn nhấn vào trạng thái của tài liệu. được mở lần cuối và hỏi nếu anh ta chắc chắn muốn tiếp tục.

7
Sruly

Dường như với tôi rằng bạn không muốn hoàn tác/làm lại, nhưng phiên bản tệp hoặc kiểm soát sửa đổi . (Tôi không biết về Photoshop, nhưng Word có tính năng này, bị tắt theo mặc định).

7
peeles

Có lẽ thời gian chờ hoàn tác mặc định là 5 phút (và có thể hoặc không thể là thời gian chờ có thể chỉnh sửa)? Nó sẽ giải quyết các mối quan tâm rất hợp lệ mà mọi người có ở đây về giá trị của việc hoàn tác dữ liệu ngày/tuần/tháng sau đó. Và nó sẽ giải quyết vấn đề được đưa ra ở đây khi vô tình đóng một ứng dụng và mất dữ liệu hoàn tác. Và sẽ duy trì giá trị của việc giữ Ctrl + Z để xóa tất cả các thay đổi trong "phiên" (trong đó bây giờ "phiên" có nghĩa là bất kỳ việc sử dụng nào không hoạt động ít hơn 5 phút một lần)

2
Chris Ledwith

Tôi thích điều này rất nhiều, cho các dự án nhỏ và lớn hơn.

Google Chrome khi bạn khôi phục một tab mà bạn vô tình đóng, sẽ đi kèm với lịch sử quay lại đầy đủ - điều này thật tuyệt vời theo đúng nghĩa của nó.

Một số ứng dụng sản xuất xây dựng các tạo phẩm của chúng từ một chồng các hành động, như mô hình 3D trong đó bạn áp dụng các hoạt động trong một ngăn xếp vô tận và sau đó có thể đi vào và thay đổi các hoạt động trước đó và thay đổi đó truyền qua ngăn xếp sang công cụ sửa đổi hiện tại. Định dạng tệp sau đó dựa trên luồng hành động, không dựa trên kết quả cuối cùng.

Bất kỳ ứng dụng nào không rõ ràng để "xuất bản" phiên bản cuối cùng hoặc công khai của một vật phẩm tuy nhiên sẽ có rất nhiều rủi ro. Giống như nếu bạn gửi một tài liệu Word có lịch sử đầy đủ các thay đổi sẽ xúc phạm người nhận (như một đề nghị mà bạn đã thay đổi tên khách hàng từ một khách hàng khác hoặc không có gì).

1
Oskar Duveborn

Cá nhân tôi nghĩ nó là xấu. Một hệ thống kiểm soát phiên bản sẽ tốt hơn cho việc này. Tôi không nghĩ người dùng mong đợi hoàn tác để làm việc theo cách này. Tôi không thấy làm thế nào họ có thể nhớ những gì trong ngăn xếp hoàn tác của họ vài ngày. Và có khả năng điều này có thể ngốn rất nhiều dung lượng đĩa và bộ nhớ trong ứng dụng của bạn. Tôi có nghĩa là người dùng về cơ bản không bao giờ thoát khỏi dữ liệu. Làm thế nào để bạn đối phó với các trường hợp sử dụng mà người dùng muốn giải phóng không gian trên đĩa cứng của họ vì họ sắp hết?

1
Erik Engheim

Cảm giác của tôi là đây là công cụ sai cho công việc. Hoàn tác và Làm lại là về các hành động trong quy trình này, để tôi có thể hoàn tác/làm lại một hành động trước khi tôi lưu và tiếp tục. Tiết kiệm qua các phiên dường như là một yêu cầu khác, phiên bản là phong cách hơn. Tôi có thể thấy có một nơi để giữ ngăn xếp làm lại với phiên bản đã lưu của tệp/ứng dụng, nghĩa là bạn có thể mở một phiên bản và ngay lập tức hoàn tác các hành động trước đó, nhưng khi bạn bắt đầu thực hiện nhiều hành động hơn, bạn sẽ mất điều này - ngăn xếp được khởi động lại.

Tôi có thể thấy rằng nó sẽ hữu ích - tôi có thể thấy một số lần tôi muốn nó - nhưng tôi vẫn nghĩ rằng đó không phải là quyền sử dụng đúng đắn của cơ sở này.

0
Schroedingers Cat