Nó có trả lại tệp cho tôi không?
Tệp .fet của bạn là một thời khóa biểu hoàn chỉnh, vì vậy trước khi sử dụng bất kỳ công cụ nào, hãy thực hiện bài kiểm tra hai phút để đảm bảo mọi thứ đã sẵn sàng.

Một tệp .fet trông không có gì đặc biệt. Chỉ vài trăm kilobyte XML, nằm trong một thư mục bên cạnh tệp của năm ngoái.
Nhưng bạn biết những gì đã được đưa vào đó. Hai tuần trong tháng Tám dành ra để giải quyết việc khối khoa học không thể tổ chức hai tiết thực hành cùng lúc. Sự thỏa hiệp với trưởng bộ môn ngoại ngữ đã tốn ba cuộc trò chuyện. Mười một ràng buộc bạn đã thêm vào từng cái một, mỗi cái sau khi có điều gì đó sai sót xảy ra mà bạn không bao giờ muốn thấy lại nữa.
Không có điều nào trong số đó được viết ra ở bất kỳ nơi nào khác. Nó tồn tại dưới dạng các ràng buộc trong tệp đó, và nếu nó bị mất, bạn không chỉ mất một tài liệu — bạn mất đi cả lý lẽ, và bạn sẽ nhận ra điều đó vào tháng Chín khi Thời khóa biểu không còn hợp lý nữa.
Vì vậy, khi một công cụ web đề nghị mở tệp đó, câu hỏi không phải là liệu công cụ đó có hữu ích hay không. Mà là: nó có trả lại tệp cho tôi nguyên vẹn không?
Tại sao câu trả lời thường là "không hẳn"
Hầu hết các công cụ đọc tệp .fet đều thực hiện theo cách thông thường. Ai đó nghiên cứu định dạng này, viết mã cho các phần họ cần — giáo viên, môn học, phòng học, tiết giảng, các ràng buộc chung — rồi phát hành.
Cách đó hoạt động, nhưng nó thất bại một cách âm thầm. FET có một bộ từ vựng ràng buộc lớn và nó phát triển theo từng phiên bản. Bất cứ thứ gì tác giả của công cụ đó chưa triển khai đều đơn giản là không được đọc, và khi tệp được ghi ngược trở lại, những gì chưa bao giờ được đọc sẽ không được ghi vào. Tệp vẫn mở được. Nó vẫn hợp lệ. Chỉ là nó thiếu ba ràng buộc mà bạn quan tâm nhất, và không có nơi nào thông báo về điều đó cả.
Đó là sự thất bại đáng để thiết kế phòng tránh, bởi vì nó vô hình ngay tại thời điểm bạn muốn phát hiện ra nó.
Chúng tôi làm gì thay thế
FET Explorer không cố gắng hiểu mọi ràng buộc. Nó cố gắng để không cần phải làm vậy.
Khi một tệp được đọc, mọi ràng buộc trong đó đều được lưu trữ bằng tên riêng của nó, với nội dung được giữ nguyên — bất kể ứng dụng này có biết ràng buộc đó nghĩa là gì hay không. Khi bạn tải xuống, mỗi ràng buộc đều được ghi ngược trở lại dưới cùng tên đó, với cùng nội dung, theo cùng thứ tự.
Không có danh sách các loại ràng buộc được hỗ trợ, bởi vì không có gì cần phải hỗ trợ cả. Một loại ràng buộc được giới thiệu trong một phiên bản FET mà chúng tôi chưa từng nghe tới vẫn được truyền qua một cách nguyên vẹn, cũng giống như lý do một từ bạn không biết vẫn tồn tại khi được chép tay lại.
Trong các Thời khóa biểu hiện có trong cơ sở dữ liệu của chúng tôi ngày nay, đó là 2.987 ràng buộc thuộc 20 loại khác nhau, được xử lý trọn vẹn mà không cần bất kỳ trường hợp đặc biệt nào trong mã xuất tệp.
Trọng số được giữ nguyên. Một ràng buộc được đặt ở mức 80% vẫn là 80% — không làm tròn, không suy diễn lại, không bị nâng lên thành "bật". Một ràng buộc không hoạt động vẫn trở lại trạng thái không hoạt động. Các ghi chú của bạn vẫn được giữ lại.
Tệp được kiểm tra trước khi bạn nhận nó
Có một điều chúng tôi sẽ can thiệp.
Một tệp .fet mà FET từ chối mở còn tệ hơn là không có tệp nào: bạn chỉ phát hiện ra ở bước cuối cùng, mà không có manh mối nào về việc bản ghi nào trong số hàng nghìn bản ghi bị lỗi. Vì vậy, tệp được xây dựng và kiểm tra trước khi được bàn giao.

Nếu thiếu thứ gì đó thực sự cần thiết — một tiết giảng không có môn học, một bài học trỏ đến một giáo viên không có trong danh sách giáo viên — bạn sẽ được thông báo, với các bản ghi cụ thể được nêu tên. Những thứ có thể được mặc định một cách an toàn sẽ được mặc định và không bao giờ trở thành vấn đề của bạn.
Nếu tệp hợp lệ nhưng trông có vẻ thiếu sót, bạn sẽ nhận được cảnh báo và nút Tải xuống dù sao đi nữa. Đó là lời khuyên, không phải là rào cản.
Và nếu bản thân quá trình kiểm tra không chạy được, việc tải xuống vẫn cứ tiếp tục. Một quá trình kiểm tra không đưa ra ý kiến không phải là lý do để ngăn cản bạn lấy tệp của chính mình.
Đừng chỉ nghe lời chúng tôi — hãy dành hai phút
Đây là phần đáng để thực hiện, vì nó gần như không tốn kém gì và nó giải quyết vấn đề một cách vĩnh viễn.
- Tải lên tệp
.fetcủa bạn. - Tải xuống lại ngay lập tức, trước khi thay đổi bất cứ điều gì.
- So sánh hai tệp.

Chúng chỉ nên khác nhau về định dạng — thụt lề, khoảng cách thuộc tính, thứ tự của một vài trường tùy chọn — và không có gì khác. Cùng các tiết giảng, cùng các ràng buộc, cùng trọng số, cùng ghi chú.
Nếu hai tệp khác nhau về nội dung, đó là một lỗi và chúng tôi muốn biết về nó. Không phải là thứ để tìm cách khắc phục tạm thời, và không phải là thứ bạn nên phát hiện ra vào tháng Chín.
Một ngoại lệ trung thực
Nếu Thời khóa biểu của bạn được xây dựng từ bảng tính thay vì từ tệp .fet, có một điểm cần lưu ý. Các hàng CSV không mang định danh tiết giảng của FET, và các ràng buộc vị trí cần các ID ổn định để trỏ đến từng bài học riêng lẻ.
Thay vì từ chối, chúng tôi gán các định danh đó trong khi xây dựng tệp — và lưu trữ chúng, để chúng không thay đổi. Lần tải xuống thứ hai sẽ khớp với lần đầu tiên. Bạn có thể xây dựng Thời khóa biểu từ bảng tính và vẫn nhận được một tệp .fet nhất quán ở đầu ra.
Đây không phải là gì
FET Explorer không tạo ra Thời khóa biểu. Nó không tối ưu hóa, giải lại hoặc cải thiện những gì FET đã tạo ra. FET thực hiện phần khó; công cụ này đọc, trình bày, chia sẻ và chỉnh sửa kết quả.
Đó chính là lý do tại sao việc xử lý trọn vẹn lại quan trọng. Một công cụ chỉ hiển thị Thời khóa biểu có thể chỉ cần hiểu một nửa tệp. Một công cụ mà bạn có thể chỉnh sửa thì phải trả lại toàn bộ tệp đó.