BÁOCÁOVỀSVNVÀGOOD CODE
I. Tìm hiểu về Subversion (SVN)
1.Subversion là gì?
Subversion (viết tắt là SVN) là một hệ thống quản lí version được giới thiệu vào năm 2000 bởi công ty CollabNet.
Đây là hệ thống hỗ trợ làm việc theo nhóm rất hiệu quả. Khi một nhóm làm việc cùng trên một project, việc nhiều
người cùng chỉnh sửa nội dung của một file là điều không thể tránh khỏi. SVN cung cấp các chức năng để có thể thực
hiện việc này một cách đơn giản và an toàn.
2. Phân loại và phần mềm quản lí subversion?
Subversion hoạt động dựa trên mô hình quản lí tập trung kiểu client/server. Mô hình này có hai khái niệm cơ bản:
Repository đặt ở server là nơi tập trung quản lí các phiên bản của các tập tin. Working Copies đặt ở client là các phiên
bản làm việc của các tập tin trong repository.
Vì vậy, bạn cần phải có một phần mềm server và một phần mềm client. Ở đây chúng ta sẽ nói nhiều về phần mềm
SVN client, có thể chia làm ba loại chính:
• Stand-alone clients: đứng như một ứng dụng độc lập, không phụ thuộc vào các phần mềm khác
• Desktop-integrated client: loại được tích hợp vào các phần mềm desktop (ví dụ như TortoiseSVN) , mỗi khi
bạn click phải chuột vào màn hình destop sẽ thấy các chức năng của SVN client
• IDE plug-in clients: loại tích hợp thêm các công cụ lập trình (IDE), ví dụ Subclipse được tích hợp vào Eclipse
3. Ưu điểm và khuyết điểm của TortoiseSVN
Ưu điểm: commit nhanh chóng, GUI dễ xài, là open source
Khuyết điểm: tính năng lock không hoạt động ở google host
4. Những thao tác cơ bản trong TortoiseSVN
3.1. Tạo thư mục Repository (thư mục để chứa các file trên server)
Chức năng: Tạo một thư mục tên bất kì tại nơi bạn muốn đặt server.
Cấu trúc bên trong thư mục Repository
Thao tác: Tạo một thư mục trống, ví dụ: D:/Subversion/MyRepository. Click vào thư mục vừa tạo và click chuột phải,
chọn TortoiseSVN→Create Repository.
Chú ý: không nên thay đổi các file trong thư mục Repository
3.2. Import
Chức năng: import dữ liệu cho Repository
Thao tác:
• Right-Click trên thư mục chứa dữ liệu muốn import, chọn TortoiseSVN→Import
• Chọn đường dẫn đến Repository, click OK
3.3. SVN Checkout
Chức năng: update những thay đổi trên Repository về máy
Thao tác:
• Tạo một thư mục lưu trữ và di chuyển vào đó(ví dụ D:\Client1), click chuột phải, chọn SVN Checkout…
• Nhập URL repository trên server. Trong Box Checkout Depth gồm 4 lựa chọn:
Fully recursive: checkout toàn bộ cấu trúc thư mục, các file dữ liệu trên Repository
Immediate children, including folders: Chỉ checkout cấu trúc thư mục và các file bên ngoài
Only file children: chỉ checkout các file bên ngoài
Only this item: chỉ checkout được thư mục Repository mà không có cấu trúc hay dử liệu
Sau đó nhấn OK để tiếp tục.
• Nếu check out thành công, bạn sẽ thấy trong thư mục xuất hiện thư mục .svn(thư mục ẩn) cùng tất cả các file
có trên server. Bạn có thể chỉnh sửa cũng như tạo mới, xóa bớt các file trong đó.
3.4. Update dữ liệu
Chức năng: Update toàn bộ những cái khác nhau giữa Repository và Folder Update
Thao tác:
Cách 1:
• Right-Click trên Folder đã được checkout, chọn “SVN Update”.
Cách 2:
• Right-Click trên Folder đã được checkout, chọn TortoiseSVN→Check for modifications.
• Click chọn Check repository
• Right-Click trên file cần update, chọn “Update”
• Tùy chỉnh các thông số rồi chọn OK để update
3.5
3.5. Repository Browser
Chức năng: làm việc trực tiếp trên repository, cho phép bạn xem các cấu trúc và trạng thái của repository
Thao tác:
• Right-Click trên một thư mục, chọn TortoiseSVN→ Repo-browser.
• Nếu Right-Click trên thư mục chưa được checkout thì sẽ phải truyền thêm đường dẫn đến Repository
3.6. SVN Commit và những điều cần lưu ý khi submit code
Chức năng: upload file chỉnh sửa lên trên server
Thao tác và chú ý:
• Copy file đã chỉnh sửa vào thư mục ban đầu checkout
• Click chuột phải vào thư mục đó, chọn lênh SVN Commit
• Sau đó, một window sẽ hiện ra, box message cho phép bạn viết thêm ghi chú về thay đổi, box Changes Made,
cho phép bạn kiểm tra lại các file cần submit, nên đánh dấu vào tất cả các checkbox chưa được đánh, sau đó
click OK
• Một window mới hiện ra, yêu cầu bạn nhập username và password. Mỗi người đều có một Username và
Password của riêng mình, lưu ý ở Username và Password ở đây không phải là ID và Pass của Gmail mà là ID
và Pass của Project. Click vào google.com password để lấy password. Nhấn OK (Những lần sau sẽ không hiện
ra khung Username và password nữa)
• Chờ chương trình xử lí rồi nhấn OK để kết thúc
Chú ý: chỉ nên commit những file chung cho project, những file chỉ sử dụng cho riêng mình (ví dụ các file test,
backup…) các bạn không nên commit.
3.7. Xử lí khi bị conflict
Conflict xảy ra khi 2 client đồng thời thay đổi nội dung của của 1 file.
Ví dụ:
Động tác 1: Trong thư mục client1, check out, sau đó tạo file bất kì (ví dụ main.cpp), commit file main.cpp, edit file
main.c, thêm vào dòng “I am client1” rồi save file. (chưa commit)
Động tác 2: Ra khỏi thư mục client1, tạo thư mục client2 (đóng vai trò như một client khác đang cùng tham gia
project với client1). Checkout như client1, edit file main.c, thêm vào dòng “I am client2”. Commit file main.c
Trở lại thư mục client1. Commit file main.c. Bảng hiển thị lỗi sẽ hiện ra và bạn sẽ không thể commit lên server.
Cách khắc phục:
Trước tiên bạn phải update. Click chuột phải, chọn SVN update. File main.c của bạn sẽ được copy qua
main.cpp.mine, còn file main.cpp sẽ có nội dung mà cả 2 client đã thay đổi. Xem file main.cpp để “đoán” xem chuyện
gì đã xảy ra và chỉnh sửa lại. Hoặc bạn có thể dùng check modification tool(click chuột phải, chọn
TortoiseSVN→Check for modification). Sau khi đã chỉnh sửa xong file main.cpp, bạn phải thông báo cho SVN rằng
conflict đã được fix bằng cách click chuột phải, chọn TortoiseSVN→Resolved… Sau đó mới có thể commit được.
II. Chuẩn đặt tên trong Ruby
Trong Ruby, chúng ta không cần khai báo biến, vì vậy việc đặt tên trong Ruby là vô cùng quan trọng nó giúp chương
trình nhận biết phạm vi (scope) của biến.
• Tên biến địa phương: bắt đầu với một kí tự viết thường (a→z) và kí tự underscore ‘_’
• Tên biến Instance (còn gọi là non-static field’s name): bắt đầu với kí tự ‘@’
• Tên biến Class( còn gọi là static field’s name): bắt đầu với “@@”
• Tên biến toàn cục: bắt đầu với kí tự ‘$’
• Tên hằng: bắt đầu với một kí tự viết hoa (A →Z), tất cả mọi lớp đều là hằng.
Chú ý: Trong Ruby có thể gán giá trị mới cho hằng tuy nhiên chương trình sẽ đưa ra cảnh báo
• Tên biến Pseudo: mặc định là self,nil,true,false
Các chuẩn đặt tên còn lại đều tương tự những ngôn ngữ khác
• Kí tự đầu trong tên bất kì không được phép là con số.
• Tên không được phép chứa dấu $,%,&,*.
• Keyword không được phép dùng làm tên(if,else, for, do, …)
III. Thế nào là source code tốt
Một source code tốt là một source code dễ bảo trì, nâng cấp và sửa chữa, một vài kĩ thuật sau sẽ giúp code của bạn
trong sáng hơn
• Hạn chế tối đa dùng biến toàn cục
• Tên hàm và tên phương thức nên dùng các kí tự viết hoa và viết thường, tránh viết tắt
• Block code của hàm và phương thức nên tối thiểu, ít hơn 100 hàng là code tốt.
• Nên thêm đặc tả chức năng hàm trong chú thích (comment) gần khai báo hàm.
• Viết code một cách hấp dẫn (cho người ngoài nhìn vào dễ nắm bắt)
• Dùng khoảng trắng rộng (indentation) ở những cấu trúc bên trong được lồng bởi cấu trúc bên ngoài để code
trong sáng hơn
• Mỗi hàng chứa tối đa 70 kí tự là phù hợp, mỗi hàng viết 1 lệnh là hay nhất
Nguồn:
[1] Blog cộng đồng về IT: http://cntt.tv/nodes/show/256
[2] Trang MyTechNote: http://mytechnote.tk/
[3] Ruby Learner: http://rubylearning.com/satishtalim/ruby_names.html
. BÁO CÁO VỀ SVN VÀ GOOD CODE
I. Tìm hiểu về Subversion (SVN)
1.Subversion là gì?
Subversion (viết tắt là SVN) là một hệ thống quản.
III. Thế nào là source code tốt
Một source code tốt là một source code dễ bảo trì, nâng cấp và sửa chữa, một vài kĩ thuật sau sẽ giúp code của bạn
trong