text:
Trong bài viết tháng trước, tôi đã giới thiệu Java Reflection API (API phản chiếu Java) và đã trình bày qua một số khả năng cơ bản của nó. Tôi cũng xem xét kỹ hiệu năng phản chiếu và kết thúc bằng một số hướng dẫn khi nào cần hay không cần sử dụng sự phản chiếu trong một ứng dụng. Trong bài viết tháng này, tôi sẽ đi xa hơn bằng cách xem xét một ứng dụng dường như là một sự phối hợp tốt cho những điểm mạnh và điểm yếu của sự phản chiếu: một thư viện để xử lý đối số dòng lệnh.
Tôi sẽ bắt đầu bằng cách trước tiên xác định vấn đề cần giải quyết, sau đó thiết kế một giao diện cho thư viện đó trước khi thực sự đi vào đoạn mã thực hiện. Kinh nghiệm thực tế của tôi về phát triển thư viện chưa được cấu trúc như vậy -- tôi bắt đầu nỗ lực để làm đơn giản hóa mã hiện có trong một họ các ứng dụng dùng một cơ sở mã chung, sau đó tổng quát hóa từ đó. Tuy nhiên, trình tự theo đường thẳng "định nghĩa-thiết kế-xây dựng" trong bài viết này ngắn gọn hơn nhiều so với một mô tả đầy đủ quá trình phát triển và trong quá trình tổ chức nó theo cách này tôi đã sửa lại một số giả định ban đầu của tôi và xóa hết một vài khía cạnh của mã thư viện. Hy vọng rằng, bạn sẽ tìm thấy nó có ích như là một mô hình để phát triển các ứng dụng dựa trên sự phản chiếu của riêng bạn.
Xác định vấn đề
Tôi đã viết nhiều ứng dụng Java bằng cách sử dụng các đối số từ dòng lệnh. Hầu hết được bắt đầu thực sự nhỏ, nhưng một số đã kết thúc phát triển ngày càng xa kế hoạch ban đầu của tôi. Có một mô hình chuẩn mà tôi đã quan sát thấy theo cách quá trình này hoạt động với tôi:
- Bắt đầu với một hoặc hai đối số cần thiết theo một thứ tự cụ thể.
- Hãy suy nghĩ về nhiều thứ mà ứng dụng nên làm, sau đó thêm vào nhiều đối số nữa.
- Cảm thấy mệt mỏi về việc gõ tất cả các đối số mỗi lần, vì thế hãy tạo ra một số đối số tùy chọn, với các giá trị mặc định.
- Quên thứ tự của các đối số, do đó thay đổi mã để cho phép chúng theo thứ tự bất kỳ.
- Cung cấp ứng dụng cho những người khác đang quan tâm. Họ không biết những gì các đối số có nghĩa vụ phải làm, do đó, thêm phần kiểm tra lỗi tốt hơn và "trợ giúp" các mô tả cho các đối số.
Theo thời gian tôi đi đến bước 5 tôi thường thấy tiếc là tôi đã bắt đầu toàn bộ quá trình tại vị trí đầu tiên. May mắn thay, tôi có xu hướng quên các giai đoạn sau khá nhanh và trong vòng một hoặc hai tuần tôi sẽ nghĩ về một ứng dụng dòng lệnh khác đơn giản một chút mà tôi muốn có. Sau đó nó chỉ còn là một vấn đề thời gian trước khi lặp đi lặp lại toàn bộ chu kỳ khó chịu đó.
Có một số thư viện có sẵn để trợ giúp việc xử lý đối số dòng lệnh. Tuy nhiên, tôi sẽ bỏ qua chúng và đi theo cách riêng của mình trong bài viết này. Đây không phải (chỉ) vì tôi có một quan điểm "không sáng tác ở đây", mà là để sử dụng việc xử lý đối số như là một ví dụ. Khi điều đó xảy ra, các điểm mạnh và điểm yếu của sự phản chiếu là một sự phối hợp tốt với các yêu cầu cho một thư viện xử lý đối số. Cụ thể là, một thư viện xử lý đối số:
- Cần một giao diện linh hoạt để hỗ trợ một loạt các ứng dụng.
- Phải dễ dàng cấu hình cho mỗi ứng dụng.
- Không đòi hỏi hiệu năng cao nhất, vì các đối số chỉ được xử lý một lần.
- Không có vấn đề bảo mật truy cập, vì các ứng dụng dòng lệnh thường chạy mà không có một trình quản lý bảo mật.
Mã phản chiếu thực tế trong thư viện này trình bày chỉ một phần nhỏ việc của việc thực hiện đầy đủ, vì vậy tôi sẽ chủ yếu tập trung vào các khía cạnh hầu như có liên quan đến sự phản chiếu. Nếu bạn muốn tìm hiểu thêm về thư viện này (và có lẽ sử dụng nó cho các ứng dụng dòng lệnh đơn giản của riêng bạn), bạn sẽ tìm các liên kết tới các trang Web trong phần Tài nguyên.
Phác thảo một thiết kế
Có lẽ cách thuận tiện nhất để một ứng dụng truy cập dữ liệu đối số là thông
qua các trường của đối tượng chính của ứng dụng. Ví dụ, giả sử bạn đang
viết một ứng dụng tạo ra các kế hoạch kinh doanh. Bạn có thể muốn sử dụng
một cờ
boolean (toán tử boolean) để kiểm soát
xem kế hoạch kinh doanh có ngắn gọn hay dài dòng không, một
int cho doanh thu năm đầu tiên, một
float cho tỷ lệ tăng trưởng doanh thu hỗn hợp dự
kiến và một
String cho việc mô tả sản phẩm. Tôi
sẽ gọi các biến này, đó là các biến có ảnh hưởng đến hoạt động của các
tham số ứng dụng để phân biệt chúng với các đối số thực tế
(các giá trị cho các biến tham số) được cung cấp trên dòng lệnh. Việc sử
dụng các trường cho các tham số này sẽ làm cho chúng dễ dàng có sẵn tại
bất kỳ điểm nào trong mã ứng dụng mà ở đó cần chúng . Nó cũng dễ dàng để
thiết lập các giá trị mặc định cho bất kỳ các tham số nào ngay tại điểm
định nghĩa khi sử dụng các trường, như thể hiện trong Liệt kê 1:
Liệt kê 1. Trình tạo kế hoạch kinh doanh (liệt kê một phần)
public class PlanGen { private boolean m_isConcise; // rarely used, default false private int m_initialRevenue = 1000; // thousands, default is 1M private float m_growthRate = 1.5; // default is 50% growth rate private String m_productDescription = // McD look out, here I come "eFood - (Really) Fast Food Online"; ... private int revenueForYear(int year) { return (int)(m_initialRevenue * Math.pow(m_growthRate, year-1)); } ...
Sự phản chiếu sẽ cho truy cập trực tiếp đến các trường riêng, cho phép thư viện xử lý đối số thiết lập các giá trị mà không có bất kỳ kết nối đặc biệt nào vào mã ứng dụng. Tuy nhiên, tôi rất cần một số đường cho thư viện để liên kết các trường này tới các đối số dòng lệnh cụ thể. Trước khi tôi có thể định nghĩa cách liên kết này giữa một đối số và một trường được truyền dẫn đến thư viện, lần đầu tiên tôi cần phải quyết định cách tôi muốn định dạng các đối số dòng lệnh.
Đối với bài viết này, tôi sẽ xác định một định dạng dòng lệnh, đó là một phiên bản đơn giản hóa các quy tắc UNIX. Các giá trị đối số cho các tham số có thể được cung cấp theo thứ tự bất kỳ, với một gạch nối trên đầu để chỉ thị rằng một đối số cho một hoặc nhiều cờ tham số ký tự đơn (như trái ngược với các giá trị tham số thực tế). Đối với trình tạo kế hoạch kinh doanh (business plan generator), tôi sẽ chọn các ký tự cờ của các tham số này:
- c -- kế hoạch ngắn gọn.
- f -- doanh thu năm đầu tiên (hàng nghìn Đôla Mỹ-$).
- g -- tốc độ tăng trưởng (hệ số nhân hàng năm).
- n -- tên sản phẩm.
Các tham số
boolean chỉ cần chính ký tự cờ của
nó để thiết lập một giá trị, nhưng các kiểu khác của các tham số yêu cầu
một số sự phân loại thông tin đối số bổ sung. Tôi sẽ chỉ viết thêm vào một
giá trị của một đối số bằng số trực tiếp sau ký tự cờ tham số (có nghĩa là
không thể sử dụng các số làm các ký tự cờ), trong khi các tham số có giá
trị-
String mà tôi sẽ sử dụng đối số tiếp
theo ký tự cờ trên dòng lệnh như là giá trị thực tế. Cuối cùng, nếu có các
tham số cần thiết (như là một tên tệp kết quả cho trình tạo kế hoạch kinh
doanh), tôi sẽ giả định các giá trị đối số cho các tham số này theo sau
các giá trị tham số tùy chọn trên dòng lệnh. Căn cứ vào các quy tắc này,
một dòng lệnh cho trình tạo kế hoạch kinh doanh có thể trông như sau:
java PlanGen -c -f2500 -g2.5 -n "iSue4U - Litigation
at Internet Speed" plan.txt
Khi tất cả được đặt cùng nhau, ý nghĩa của từng đối số là:
-c-- tạo kế hoạch ngắn gọn.
-f2500-- doanh thu năm đầu tiên là 2.500.000 đô la Mỹ.
-g2.5-- tốc độ tăng trưởng là 250 phần trăm mỗi năm.
-n "iSue4U . . ."-- tên sản phẩm là "iSue4U . . ."
plan.txt--tên của tập tin kết quả cần thiết.
Vào lúc này, tôi đã có một đặc tả chức năng cơ bản cho thư viện xử lý đối số. Bước tiếp theo là xác định một giao diện cụ thể cho mã ứng dụng để sử dụng thư viện.
Chọn giao diện
Bạn có thể điều khiển việc xử lý thực tế các đối số dòng lệnh với một cuộc
gọi, nhưng trước tiên ứng dụng cần một cách để định nghĩa các tham số cụ
thể của nó cho thư viện. Các tham số này có thể có một số kiểu khác nhau
(trong trường hợp ví dụ trình tạo kế hoạch kinh doanh, chúng có thể là
boolean,
int,
float và
java.lang.String). Mỗi kiểu cũng có thể có một số yêu cầu đặc
biệt. Ví dụ, thật thú vị để cho phép các tham số
boolean được định nghĩa là
false
(sai) nếu có ký tự cờ này, thay vì luôn luôn
true (đúng) nếu có ký tự cờ này. Cũng sẽ rất có ích để xác
định một phạm vi hợp lệ cho một giá trị
int.
Tôi sẽ xử lý các yêu cầu khác nhau này bằng cách sử dụng một lớp cơ sở cho tất cả các định nghĩa tham số, phân lớp nó cho từng kiểu tham số cụ thể. Cách tiếp cận này cho phép ứng dụng cung cấp các định nghĩa tham số cho thư viện như là một mảng các cá thể của lớp định nghĩa tham số cơ bản, trong khi các định nghĩa thực tế có thể sử dụng lớp con cụ thể phối hợp với từng kiểu tham số. Với ví dụ về trình tạo kế hoạch kinh doanh, điều này có thể đưa ra dạng được hiển thị trong Liệt kê 2:
Liệt kê 2. Các định nghĩa tham số cho trình tạo kế hoạch kinh doanh
private static final ParameterDef[] PARM_DEFS = { new BoolDef('c', "m_isConcise"), new IntDef('f', "m_initialRevenue", 10, 10000), new FloatDef('g', "m_growthRate", 1.0, 100.0), new StringDef('n', "m_productDescription") }
Với các tham số được phép đã định nghĩa trong một mảng, cuộc gọi từ chương trình ứng dụng tới mã xử lý đối số có thể được duy trì càng đơn giản như một cuộc gọi duy nhất tới một phương thức tĩnh càng tốt. Để tính đến các đối số thêm vào ngoài những cái đã được xác định trong mảng tham số (hoặc các giá trị cần thiết hoặc các tập các giá trị chiều dài thay đổi), tôi sẽ có cuộc gọi trả về số lượng thực của các đối số được xử lý. Điều này cho phép kiểm tra ứng dụng cho các đối số bổ sung và sử dụng chúng một cách thích hợp. Kết quả cuối cùng trông như Liệt kê 3:
Liệt kê 3. Sử dụng thư viện
public class PlanGen { private static final ParameterDef[] PARM_DEFS = { ... }; public static void main(String[] args) { // if no arguments are supplied, assume help is needed if (args.length > 0) { // process arguments directly to instance PlanGen inst = new PlanGen(); int next = ArgumentProcessor.processArgs (args, PARM_DEFS, inst); // next unused argument is output file name if (next >= args.length) { System.err.println("Missing required output file name"); System.exit(1); } File outf = new File(args[next++]); ... } else { System.out.println("\nUsage: java PlanGen " + "[-options] file\nOptions are:\n c concise plan\n" + "f first year revenue (K$)\n g growth rate\n" + "n product description"); } } }
Phần duy nhất còn lại là việc xử lý tạo báo cáo lỗi (chẳng hạn như một ký
tự cờ tham số không rõ hoặc một giá trị số ngoài dải). Với mục đích này,
tôi sẽ xác định
ArgumentErrorException như là
một lỗi ngoại lệ không được kiểm tra được đưa ra nếu một trong các lỗi này
xảy ra. Nếu lỗi ngoại lệ này không được nhận ra, nó sẽ ngay lập tức làm
hỏng ứng dụng với một thông báo lỗi và vết tích ngăn xếp được kết xuất
trên bàn điều khiển. Như là một sự lựa chọn, bạn có thể nhận ra lỗi ngoại
lệ này trực tiếp trong mã của bạn và xử lý nó bằng một số cách khác (ví
dụ, có thể in ra các thông báo lỗi thực tế cùng với việc thông tin về cách
sử dụng).
Thực hiện thư viện
Đối với thư viện để sử dụng sự phản chiếu như đã lập kế hoạch, cần phải tìm kiếm các trường được xác định bằng mảng các định nghĩa tham số và sau đó lưu trữ các giá trị thích hợp tới các trường này từ các đối số dòng lệnh tương ứng. Nhiệm vụ này có thể được xử lý bằng cách tìm kiếm thông tin trường khi cần thiết cho các đối số dòng lệnh thực tế, nhưng thay vào đó tôi đã thực hiện một sự lựa chọn để tách việc tìm kiếm khỏi cách sử dụng. Tôi sẽ tìm thấy tất cả các trường trước, sau đó chỉ cần sử dụng thông tin đã được tìm thấy trong quá trình xử lý các đối số.
Tìm trước tất cả các trường là một bước lập trình an toàn để loại bỏ một
trong các vấn đề tiềm năng khi dùng phản chiếu. Nếu tôi chỉ tìm kiếm các
trường khi cần thiết, thật dễ dàng để phá vỡ một định nghĩa tham số (ví
dụ, bằng cách không gõ tên trường tương ứng) mà không nhận ra rằng có bất
cứ điều gì đã sai. Sẽ không có các lỗi thời gian-dịch nào vì tên trường
được chuyển qua như các
String, và thậm chí
chương trình sẽ thực hiện tốt miễn là không có đối số khớp với định nghĩa
tham số bị ngắt đã được xác định trên dòng lệnh. Kiểu lỗi có đánh dấu này
có thể dễ dàng làm cho việc chuyển dịch mã bị hỏng.
Dựa vào đó tôi muốn tìm thông tin trường trước khi xử lý các đối số trên
thực tế, Liệt kê 4 cho thấy việc thực hiện lớp cơ bản cho các định nghĩa
tham với một phương thức
bindToClass() để xử lý
tìm kiếm trường.
Liệt kê 4. Lớp cơ sở cho các định nghĩa tham số
public abstract class ParameterDef { protected char m_char; // argument flag character protected String m_name; // parameter field name protected Field m_field; // actual parameter field protected ParameterDef(char chr, String name) { m_char = chr; m_name = name; } public char getFlag() { return m_char; } protected void bindToClass(Class clas) { try { // handle the field look up and accessibility m_field = clas.getDeclaredField(m_name); m_field.setAccessible(true); } catch (NoSuchFieldException ex) { throw new IllegalArgumentException("Field '" + m_name + "' not found in " + clas.getName()); } } public abstract void handle(ArgumentProcessor proc); }
Việc thực hiện thư viện thực tế bao gồm một vài lớp ngoài những gì mà tôi
đã đề cập trong bài viết này. Tôi sẽ không duyệt toàn bộ danh sách ở đây,
vì hầu hết không liên quan đến khía cạnh phản chiếu của thư viện. Tôi sẽ
đề cập đến những gì mà tôi đã chọn để lưu trữ đối tượng đích như là một
trường của lớp
ArgumentProcessor và thực hiện
cài đặt thực tế một trường tham số trong lớp này. Cách tiếp cận này đưa ra
một mẫu đơn giản cho việc xử lý đối số: lớp
ArgumentProcessor quét các đối số để tìm các cờ tham số, tìm
kiếm định nghĩa tham số tương ứng cho mỗi cờ (mà cờ đó sẽ luôn là một lớp
con của
ParameterDef) và gọi phương thức
handle() của định nghĩa đó. Phương thức
handle() lần lượt gọi một phương thức
setValue() của
ArgumentProcessor sau khi giải thích giá trị đối số. Liệt kê 5
cho thấy một phiên bản một phần của lớp
ArgumentProcessor bao gồm các cuộc gọi liên kết tham số trong
hàm tạo và phương thức
setValue():
Liệt kê 5. Liệt kê một phần lớp thư viện chính
public class ArgumentProcessor { private Object m_targetObject; // parameter value object private int m_currentIndex; // current argument position ... public ArgumentProcessor(ParameterDef[] parms, Object target) { // bind all parameters to target class for (int i = 0; i < parms.length; i++) { parms[i].bindToClass(target.getClass()); } // save target object for later use m_targetObject = target; } public void setValue(Object value, Field field) { try { // set parameter field value using reflection field.set(m_targetObject, value); } catch (IllegalAccessException ex) { throw new IllegalArgumentException("Field " + field.getName() + " is not accessible in object of class " + m_targetObject.getClass().getName()); } } public void reportArgumentError(char flag, String text) { throw new ArgumentErrorException(text + " for argument '" + flag + "' in argument " + m_currentIndex); } public static int processArgs(String[] args, ParameterDef[] parms, Object target) { ArgumentProcessor inst = new ArgumentProcessor(parms, target); ... } }
Cuối cùng, Liệt kê 6 cho thấy việc thực hiện một phần của lớp con định
nghĩa tham số cho các giá trị tham số
int. Điều
này có cả việc ghi đè của phương thức
bindToClass() lớp cơ sở (từ Liệt kê 4)
phương thức này trước tiên gọi thực hiện lớp cơ sở và sau đó kiểm tra xem
trường đã tìm thấy có ăn khớp với kiểu dự kiến không. Các lớp con cho các
kiểu tham số cụ thể khác (
boolean,
float,
String, v.v) là
rất giống nhau.
Liệt kê 6.Lớp định nghĩa tham số int
public class IntDef extends ParameterDef { private int m_min; // minimum allowed value private int m_max; // maximum allowed value public IntDef(char chr, String name, int min, int max) { super(chr, name); m_min = min; m_max = max; } protected void bindToClass(Class clas) { super.bindToClass(clas); Class type = m_field.getType(); if (type != Integer.class && type != Integer.TYPE) { throw new IllegalArgumentException("Field '" + m_name + "'in " + clas.getName() + " is not of type int"); } } public void handle(ArgumentProcessor proc) { // set up for validating boolean minus = false; boolean digits = false; int value = 0; // convert number supplied in argument list to 'value' ... // make sure we have a valid value value = minus ? -value : value; if (!digits) { proc.reportArgumentError(m_char, "Missing value"); } else if (value < m_min || value > m_max) { proc.reportArgumentError(m_char, "Value out of range"); } else { proc.setValue(new Integer(value), m_field); } } }
Đóng lại thư viện
Trong bài viết này, tôi đã duyệt qua việc thiết kế một thư viện để xử lý các đối số dòng lệnh như một ví dụ về sự phản chiếu đang hoạt động. Thư viện này tạo ra một sự minh hoạ tốt về cách sử dụng sự phản chiếu có hiệu quả -- nó làm đơn giản mã ứng dụng mà không phải hy sinh hiệu năng đáng kể. Phải từ bỏ bao nhiêu hiệu năng? Trong một số phép thử nghiệm nhanh trên hệ thống phát triển của tôi, một chương trình thử nghiệm đơn giản đã lấy trung bình dài hơn khoảng 40 giây để thực hiện việc xử lý đối số khi sử dụng thư viện đầy đủ, như được so sánh với việc xử lý không có đối số nào. Phần lớn thời gian đó biểu diễn việc nạp các lớp thư viện và các lớp khác được mã thư viện sử dụng, vì vậy ngay cả với các ứng dụng có nhiều tham số dòng lệnh được định nghĩa và nhiều giá trị đối số, nó không thể xấu hơn điều này. Đối với các ứng dụng dòng lệnh của tôi, 40 giây thêm vào không phải là một cái gì đó mà tôi sắp thông báo.
Mã thư viện đầy đủ có sẵn từ đường liên kết trong phần Tài nguyên. Nó bao gồm một số tính năng mà tôi đã để ngoài bài viết này, bao gồm nhiều điều thú vị như là kết nối để dễ dàng tạo ra một danh sách có định dạng của cờ và các mô tả tham số để giúp cung cấp các hướng dẫn cách sử dụng cho một ứng dụng. Bạn cứ việc sử dụng thư viện đó trong các chương trình của riêng bạn và mở rộng nó theo bất kỳ cách nào mà bạn thấy có ích.
Bây giờ tôi đã trình bày các điều cơ bản của các lớp Java trong Phần 1 và các nguyên tắc Java Reflection API trong Phần 2 và Phần 3, phần còn lại của loạt bài này sẽ tránh đi theo con đường ít người qua lại về thao tác bytecode. Tôi sẽ bắt đầu dễ dàng trong Phần 4 với việc xem xét về thư viện Javassist thân thiện với người dùng để làm việc với các lớp nhị phân. Bạn có muốn thử các phương thức chuyển đổi không, chỉ là miễn cưỡng để bắt đầu lập trình theo bytecode? Javassist có thể chỉ là công cụ phù hợp với các nhu cầu của bạn. Hãy tìm hiểu Javassist là như thế nào vào tháng tới.
Tài nguyên
- Tải về thư viện xử lý đối số đầy đủ (được gọi JArgp) từ trang dự án Sourceforge.
- Việc sử dụng rộng rãi sự phản chiếu có thể gây tác hại cho hiệu năng của khung công tác. Với một ví dụ đồ họa và một số cuộc thảo luận liên quan, xem các bài viết liên kết dữ liệu (data binding) XML của tác giả "Liên kết dữ liệu, Phần 2: Hiệu năng" (developerWorks, 01.2003) và "Liên kết dữ liệu, Phần 3: kiến trúc JiBX" (developerWorks, 04.2003).
- Để có hướng dẫn sâu về cách sử dụng sự phản chiếu, hãy thử làm theo API phản chiếu của Dale Green trong Hướng dẫn Java của Sun.
- Tìm thêm hàng trăm tài nguyên công nghệ Java trên vùng công nghệ Java của developerWorks.
Bình luận
-
Vùng dữ liệu trên developerWorks
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
-
Vùng mã nguồn mở trên developerWorks
Xem các bài viết về HTML, CSS, JavaScript,...
-
Điện toán đám mây
Tìm hiểu về điện toán đám mây

markdown:
Trong
[bài
viết tháng trước](http://www.ibm.com/developerworks/vn/library/j-dyn0603/), tôi đã giới thiệu Java Reflection API (API phản
chiếu Java) và đã trình bày qua một số khả năng cơ bản của nó. Tôi cũng
xem xét kỹ hiệu năng phản chiếu và kết thúc bằng một số hướng dẫn khi nào
cần hay không cần sử dụng sự phản chiếu trong một ứng dụng. Trong bài viết
tháng này, tôi sẽ đi xa hơn bằng cách xem xét một ứng dụng dường như là
một sự phối hợp tốt cho những điểm mạnh và điểm yếu của sự phản chiếu: một
thư viện để xử lý đối số dòng lệnh.
Tôi sẽ bắt đầu bằng cách trước tiên xác định vấn đề cần giải quyết, sau đó thiết kế một giao diện cho thư viện đó trước khi thực sự đi vào đoạn mã thực hiện. Kinh nghiệm thực tế của tôi về phát triển thư viện chưa được cấu trúc như vậy -- tôi bắt đầu nỗ lực để làm đơn giản hóa mã hiện có trong một họ các ứng dụng dùng một cơ sở mã chung, sau đó tổng quát hóa từ đó. Tuy nhiên, trình tự theo đường thẳng "định nghĩa-thiết kế-xây dựng" trong bài viết này ngắn gọn hơn nhiều so với một mô tả đầy đủ quá trình phát triển và trong quá trình tổ chức nó theo cách này tôi đã sửa lại một số giả định ban đầu của tôi và xóa hết một vài khía cạnh của mã thư viện. Hy vọng rằng, bạn sẽ tìm thấy nó có ích như là một mô hình để phát triển các ứng dụng dựa trên sự phản chiếu của riêng bạn.
## Xác định vấn đề
Tôi đã viết nhiều ứng dụng Java bằng cách sử dụng các đối số từ dòng lệnh. Hầu hết được bắt đầu thực sự nhỏ, nhưng một số đã kết thúc phát triển ngày càng xa kế hoạch ban đầu của tôi. Có một mô hình chuẩn mà tôi đã quan sát thấy theo cách quá trình này hoạt động với tôi:
- Bắt đầu với một hoặc hai đối số cần thiết theo một thứ tự cụ thể.
- Hãy suy nghĩ về nhiều thứ mà ứng dụng nên làm, sau đó thêm vào nhiều đối số nữa.
- Cảm thấy mệt mỏi về việc gõ tất cả các đối số mỗi lần, vì thế hãy tạo ra một số đối số tùy chọn, với các giá trị mặc định.
- Quên thứ tự của các đối số, do đó thay đổi mã để cho phép chúng theo thứ tự bất kỳ.
- Cung cấp ứng dụng cho những người khác đang quan tâm. Họ không biết những gì các đối số có nghĩa vụ phải làm, do đó, thêm phần kiểm tra lỗi tốt hơn và "trợ giúp" các mô tả cho các đối số.
Theo thời gian tôi đi đến bước 5 tôi thường thấy tiếc là tôi đã bắt đầu toàn bộ quá trình tại vị trí đầu tiên. May mắn thay, tôi có xu hướng quên các giai đoạn sau khá nhanh và trong vòng một hoặc hai tuần tôi sẽ nghĩ về một ứng dụng dòng lệnh khác đơn giản một chút mà tôi muốn có. Sau đó nó chỉ còn là một vấn đề thời gian trước khi lặp đi lặp lại toàn bộ chu kỳ khó chịu đó.
Có một số thư viện có sẵn để trợ giúp việc xử lý đối số dòng lệnh. Tuy nhiên, tôi sẽ bỏ qua chúng và đi theo cách riêng của mình trong bài viết này. Đây không phải (chỉ) vì tôi có một quan điểm "không sáng tác ở đây", mà là để sử dụng việc xử lý đối số như là một ví dụ. Khi điều đó xảy ra, các điểm mạnh và điểm yếu của sự phản chiếu là một sự phối hợp tốt với các yêu cầu cho một thư viện xử lý đối số. Cụ thể là, một thư viện xử lý đối số:
- Cần một giao diện linh hoạt để hỗ trợ một loạt các ứng dụng.
- Phải dễ dàng cấu hình cho mỗi ứng dụng.
- Không đòi hỏi hiệu năng cao nhất, vì các đối số chỉ được xử lý một lần.
- Không có vấn đề bảo mật truy cập, vì các ứng dụng dòng lệnh thường chạy mà không có một trình quản lý bảo mật.
Mã phản chiếu thực tế trong thư viện này trình bày chỉ một phần nhỏ việc
của việc thực hiện đầy đủ, vì vậy tôi sẽ chủ yếu tập trung vào các khía
cạnh hầu như có liên quan đến sự phản chiếu. Nếu bạn muốn tìm hiểu thêm về
thư viện này (và có lẽ sử dụng nó cho các ứng dụng dòng lệnh đơn giản của
riêng bạn), bạn sẽ tìm các liên kết tới các trang Web trong phần
[Tài nguyên](#resources).
### Phác thảo một thiết kế
Có lẽ cách thuận tiện nhất để một ứng dụng truy cập dữ liệu đối số là thông
qua các trường của đối tượng chính của ứng dụng. Ví dụ, giả sử bạn đang
viết một ứng dụng tạo ra các kế hoạch kinh doanh. Bạn có thể muốn sử dụng
một cờ
boolean (toán tử boolean) để kiểm soát
xem kế hoạch kinh doanh có ngắn gọn hay dài dòng không, một
int cho doanh thu năm đầu tiên, một
float cho tỷ lệ tăng trưởng doanh thu hỗn hợp dự
kiến và một
String cho việc mô tả sản phẩm. Tôi
sẽ gọi các biến này, đó là các biến có ảnh hưởng đến hoạt động của
*các
tham số ứng dụng* để phân biệt chúng với *các đối số* thực tế
(các giá trị cho các biến tham số) được cung cấp trên dòng lệnh. Việc sử
dụng các trường cho các tham số này sẽ làm cho chúng dễ dàng có sẵn tại
bất kỳ điểm nào trong mã ứng dụng mà ở đó cần chúng . Nó cũng dễ dàng để
thiết lập các giá trị mặc định cho bất kỳ các tham số nào ngay tại điểm
định nghĩa khi sử dụng các trường, như thể hiện trong Liệt kê 1:
##### Liệt kê 1. Trình tạo kế hoạch kinh doanh (liệt kê một phần)
public class PlanGen { private boolean m_isConcise; // rarely used, default false private int m_initialRevenue = 1000; // thousands, default is 1M private float m_growthRate = 1.5; // default is 50% growth rate private String m_productDescription = // McD look out, here I come "eFood - (Really) Fast Food Online"; ... private int revenueForYear(int year) { return (int)(m_initialRevenue * Math.pow(m_growthRate, year-1)); } ...
Sự phản chiếu sẽ cho truy cập trực tiếp đến các trường riêng, cho phép thư
viện xử lý đối số thiết lập các giá trị mà không có bất kỳ kết nối đặc
biệt nào vào mã ứng dụng. Tuy nhiên, tôi
*rất* cần một số đường cho
thư viện để liên kết các trường này tới các đối số dòng lệnh cụ thể. Trước
khi tôi có thể định nghĩa cách liên kết này giữa một đối số và một trường
được truyền dẫn đến thư viện, lần đầu tiên tôi cần phải quyết định cách
tôi muốn định dạng các đối số dòng lệnh.
Đối với bài viết này, tôi sẽ xác định một định dạng dòng lệnh, đó là một phiên bản đơn giản hóa các quy tắc UNIX. Các giá trị đối số cho các tham số có thể được cung cấp theo thứ tự bất kỳ, với một gạch nối trên đầu để chỉ thị rằng một đối số cho một hoặc nhiều cờ tham số ký tự đơn (như trái ngược với các giá trị tham số thực tế). Đối với trình tạo kế hoạch kinh doanh (business plan generator), tôi sẽ chọn các ký tự cờ của các tham số này:
- c -- kế hoạch ngắn gọn.
- f -- doanh thu năm đầu tiên (hàng nghìn Đôla Mỹ-$).
- g -- tốc độ tăng trưởng (hệ số nhân hàng năm).
- n -- tên sản phẩm.
Các tham số
boolean chỉ cần chính ký tự cờ của
nó để thiết lập một giá trị, nhưng các kiểu khác của các tham số yêu cầu
một số sự phân loại thông tin đối số bổ sung. Tôi sẽ chỉ viết thêm vào một
giá trị của một đối số bằng số trực tiếp sau ký tự cờ tham số (có nghĩa là
không thể sử dụng các số làm các ký tự cờ), trong khi các tham số có giá
trị-
String mà tôi sẽ sử dụng đối số tiếp
theo ký tự cờ trên dòng lệnh như là giá trị thực tế. Cuối cùng, nếu có các
tham số cần thiết (như là một tên tệp kết quả cho trình tạo kế hoạch kinh
doanh), tôi sẽ giả định các giá trị đối số cho các tham số này theo sau
các giá trị tham số tùy chọn trên dòng lệnh. Căn cứ vào các quy tắc này,
một dòng lệnh cho trình tạo kế hoạch kinh doanh có thể trông như sau:
java PlanGen -c -f2500 -g2.5 -n "iSue4U - Litigation
at Internet Speed" plan.txt
Khi tất cả được đặt cùng nhau, ý nghĩa của từng đối số là:
-c-- tạo kế hoạch ngắn gọn.
-f2500-- doanh thu năm đầu tiên là 2.500.000 đô la Mỹ.
-g2.5-- tốc độ tăng trưởng là 250 phần trăm mỗi năm.
-n "iSue4U . . ."-- tên sản phẩm là "iSue4U . . ."
plan.txt--tên của tập tin kết quả cần thiết.
Vào lúc này, tôi đã có một đặc tả chức năng cơ bản cho thư viện xử lý đối số. Bước tiếp theo là xác định một giao diện cụ thể cho mã ứng dụng để sử dụng thư viện.
## Chọn giao diện
Bạn có thể điều khiển việc xử lý thực tế các đối số dòng lệnh với một cuộc
gọi, nhưng trước tiên ứng dụng cần một cách để định nghĩa các tham số cụ
thể của nó cho thư viện. Các tham số này có thể có một số kiểu khác nhau
(trong trường hợp ví dụ trình tạo kế hoạch kinh doanh, chúng có thể là
boolean,
int,
float và
java.lang.String). Mỗi kiểu cũng có thể có một số yêu cầu đặc
biệt. Ví dụ, thật thú vị để cho phép các tham số
boolean được định nghĩa là
false
(sai) nếu có ký tự cờ này, thay vì luôn luôn
true (đúng) nếu có ký tự cờ này. Cũng sẽ rất có ích để xác
định một phạm vi hợp lệ cho một giá trị
int.
Tôi sẽ xử lý các yêu cầu khác nhau này bằng cách sử dụng một lớp cơ sở cho tất cả các định nghĩa tham số, phân lớp nó cho từng kiểu tham số cụ thể. Cách tiếp cận này cho phép ứng dụng cung cấp các định nghĩa tham số cho thư viện như là một mảng các cá thể của lớp định nghĩa tham số cơ bản, trong khi các định nghĩa thực tế có thể sử dụng lớp con cụ thể phối hợp với từng kiểu tham số. Với ví dụ về trình tạo kế hoạch kinh doanh, điều này có thể đưa ra dạng được hiển thị trong Liệt kê 2:
##### Liệt kê 2. Các định nghĩa tham số cho trình tạo kế hoạch kinh doanh
private static final ParameterDef[] PARM_DEFS = { new BoolDef('c', "m_isConcise"), new IntDef('f', "m_initialRevenue", 10, 10000), new FloatDef('g', "m_growthRate", 1.0, 100.0), new StringDef('n', "m_productDescription") }
Với các tham số được phép đã định nghĩa trong một mảng, cuộc gọi từ chương trình ứng dụng tới mã xử lý đối số có thể được duy trì càng đơn giản như một cuộc gọi duy nhất tới một phương thức tĩnh càng tốt. Để tính đến các đối số thêm vào ngoài những cái đã được xác định trong mảng tham số (hoặc các giá trị cần thiết hoặc các tập các giá trị chiều dài thay đổi), tôi sẽ có cuộc gọi trả về số lượng thực của các đối số được xử lý. Điều này cho phép kiểm tra ứng dụng cho các đối số bổ sung và sử dụng chúng một cách thích hợp. Kết quả cuối cùng trông như Liệt kê 3:
##### Liệt kê 3. Sử dụng thư viện
public class PlanGen { private static final ParameterDef[] PARM_DEFS = { ... }; public static void main(String[] args) { // if no arguments are supplied, assume help is needed if (args.length > 0) { // process arguments directly to instance PlanGen inst = new PlanGen(); int next = ArgumentProcessor.processArgs (args, PARM_DEFS, inst); // next unused argument is output file name if (next >= args.length) { System.err.println("Missing required output file name"); System.exit(1); } File outf = new File(args[next++]); ... } else { System.out.println("\nUsage: java PlanGen " + "[-options] file\nOptions are:\n c concise plan\n" + "f first year revenue (K$)\n g growth rate\n" + "n product description"); } } }
Phần duy nhất còn lại là việc xử lý tạo báo cáo lỗi (chẳng hạn như một ký
tự cờ tham số không rõ hoặc một giá trị số ngoài dải). Với mục đích này,
tôi sẽ xác định
ArgumentErrorException như là
một lỗi ngoại lệ không được kiểm tra được đưa ra nếu một trong các lỗi này
xảy ra. Nếu lỗi ngoại lệ này không được nhận ra, nó sẽ ngay lập tức làm
hỏng ứng dụng với một thông báo lỗi và vết tích ngăn xếp được kết xuất
trên bàn điều khiển. Như là một sự lựa chọn, bạn có thể nhận ra lỗi ngoại
lệ này trực tiếp trong mã của bạn và xử lý nó bằng một số cách khác (ví
dụ, có thể in ra các thông báo lỗi thực tế cùng với việc thông tin về cách
sử dụng).
## Thực hiện thư viện
Đối với thư viện để sử dụng sự phản chiếu như đã lập kế hoạch, cần phải tìm kiếm các trường được xác định bằng mảng các định nghĩa tham số và sau đó lưu trữ các giá trị thích hợp tới các trường này từ các đối số dòng lệnh tương ứng. Nhiệm vụ này có thể được xử lý bằng cách tìm kiếm thông tin trường khi cần thiết cho các đối số dòng lệnh thực tế, nhưng thay vào đó tôi đã thực hiện một sự lựa chọn để tách việc tìm kiếm khỏi cách sử dụng. Tôi sẽ tìm thấy tất cả các trường trước, sau đó chỉ cần sử dụng thông tin đã được tìm thấy trong quá trình xử lý các đối số.
Tìm trước tất cả các trường là một bước lập trình an toàn để loại bỏ một
trong các vấn đề tiềm năng khi dùng phản chiếu. Nếu tôi chỉ tìm kiếm các
trường khi cần thiết, thật dễ dàng để phá vỡ một định nghĩa tham số (ví
dụ, bằng cách không gõ tên trường tương ứng) mà không nhận ra rằng có bất
cứ điều gì đã sai. Sẽ không có các lỗi thời gian-dịch nào vì tên trường
được chuyển qua như các
String, và thậm chí
chương trình sẽ thực hiện tốt miễn là không có đối số khớp với định nghĩa
tham số bị ngắt đã được xác định trên dòng lệnh. Kiểu lỗi có đánh dấu này
có thể dễ dàng làm cho việc chuyển dịch mã bị hỏng.
Dựa vào đó tôi muốn tìm thông tin trường trước khi xử lý các đối số trên
thực tế, Liệt kê 4 cho thấy việc thực hiện lớp cơ bản cho các định nghĩa
tham với một phương thức
bindToClass() để xử lý
tìm kiếm trường.
##### Liệt kê 4. Lớp cơ sở cho các định nghĩa tham số
public abstract class ParameterDef { protected char m_char; // argument flag character protected String m_name; // parameter field name protected Field m_field; // actual parameter field protected ParameterDef(char chr, String name) { m_char = chr; m_name = name; } public char getFlag() { return m_char; } protected void bindToClass(Class clas) { try { // handle the field look up and accessibility m_field = clas.getDeclaredField(m_name); m_field.setAccessible(true); } catch (NoSuchFieldException ex) { throw new IllegalArgumentException("Field '" + m_name + "' not found in " + clas.getName()); } } public abstract void handle(ArgumentProcessor proc); }
Việc thực hiện thư viện thực tế bao gồm một vài lớp ngoài những gì mà tôi
đã đề cập trong bài viết này. Tôi sẽ không duyệt toàn bộ danh sách ở đây,
vì hầu hết không liên quan đến khía cạnh phản chiếu của thư viện. Tôi sẽ
đề cập đến những gì mà tôi đã chọn để lưu trữ đối tượng đích như là một
trường của lớp
ArgumentProcessor và thực hiện
cài đặt thực tế một trường tham số trong lớp này. Cách tiếp cận này đưa ra
một mẫu đơn giản cho việc xử lý đối số: lớp
ArgumentProcessor quét các đối số để tìm các cờ tham số, tìm
kiếm định nghĩa tham số tương ứng cho mỗi cờ (mà cờ đó sẽ luôn là một lớp
con của
ParameterDef) và gọi phương thức
handle() của định nghĩa đó. Phương thức
handle() lần lượt gọi một phương thức
setValue() của
ArgumentProcessor sau khi giải thích giá trị đối số. Liệt kê 5
cho thấy một phiên bản một phần của lớp
ArgumentProcessor bao gồm các cuộc gọi liên kết tham số trong
hàm tạo và phương thức
setValue():
##### Liệt kê 5. Liệt kê một phần lớp thư viện chính
public class ArgumentProcessor { private Object m_targetObject; // parameter value object private int m_currentIndex; // current argument position ... public ArgumentProcessor(ParameterDef[] parms, Object target) { // bind all parameters to target class for (int i = 0; i < parms.length; i++) { parms[i].bindToClass(target.getClass()); } // save target object for later use m_targetObject = target; } public void setValue(Object value, Field field) { try { // set parameter field value using reflection field.set(m_targetObject, value); } catch (IllegalAccessException ex) { throw new IllegalArgumentException("Field " + field.getName() + " is not accessible in object of class " + m_targetObject.getClass().getName()); } } public void reportArgumentError(char flag, String text) { throw new ArgumentErrorException(text + " for argument '" + flag + "' in argument " + m_currentIndex); } public static int processArgs(String[] args, ParameterDef[] parms, Object target) { ArgumentProcessor inst = new ArgumentProcessor(parms, target); ... } }
Cuối cùng, Liệt kê 6 cho thấy việc thực hiện một phần của lớp con định
nghĩa tham số cho các giá trị tham số
int. Điều
này có cả việc ghi đè của phương thức
bindToClass() lớp cơ sở (từ
[Liệt kê 4](#code4))
phương thức này trước tiên gọi thực hiện lớp cơ sở và sau đó kiểm tra xem
trường đã tìm thấy có ăn khớp với kiểu dự kiến không. Các lớp con cho các
kiểu tham số cụ thể khác (
boolean,
float,
String, v.v) là
rất giống nhau.
##### Liệt kê 6.Lớp định nghĩa tham số int
public class IntDef extends ParameterDef { private int m_min; // minimum allowed value private int m_max; // maximum allowed value public IntDef(char chr, String name, int min, int max) { super(chr, name); m_min = min; m_max = max; } protected void bindToClass(Class clas) { super.bindToClass(clas); Class type = m_field.getType(); if (type != Integer.class && type != Integer.TYPE) { throw new IllegalArgumentException("Field '" + m_name + "'in " + clas.getName() + " is not of type int"); } } public void handle(ArgumentProcessor proc) { // set up for validating boolean minus = false; boolean digits = false; int value = 0; // convert number supplied in argument list to 'value' ... // make sure we have a valid value value = minus ? -value : value; if (!digits) { proc.reportArgumentError(m_char, "Missing value"); } else if (value < m_min || value > m_max) { proc.reportArgumentError(m_char, "Value out of range"); } else { proc.setValue(new Integer(value), m_field); } } }
## Đóng lại thư viện
Trong bài viết này, tôi đã duyệt qua việc thiết kế một thư viện để xử lý các đối số dòng lệnh như một ví dụ về sự phản chiếu đang hoạt động. Thư viện này tạo ra một sự minh hoạ tốt về cách sử dụng sự phản chiếu có hiệu quả -- nó làm đơn giản mã ứng dụng mà không phải hy sinh hiệu năng đáng kể. Phải từ bỏ bao nhiêu hiệu năng? Trong một số phép thử nghiệm nhanh trên hệ thống phát triển của tôi, một chương trình thử nghiệm đơn giản đã lấy trung bình dài hơn khoảng 40 giây để thực hiện việc xử lý đối số khi sử dụng thư viện đầy đủ, như được so sánh với việc xử lý không có đối số nào. Phần lớn thời gian đó biểu diễn việc nạp các lớp thư viện và các lớp khác được mã thư viện sử dụng, vì vậy ngay cả với các ứng dụng có nhiều tham số dòng lệnh được định nghĩa và nhiều giá trị đối số, nó không thể xấu hơn điều này. Đối với các ứng dụng dòng lệnh của tôi, 40 giây thêm vào không phải là một cái gì đó mà tôi sắp thông báo.
Mã thư viện đầy đủ có sẵn từ đường liên kết trong phần
[Tài nguyên](#resources). Nó bao gồm một số tính năng mà tôi đã để ngoài bài
viết này, bao gồm nhiều điều thú vị như là kết nối để dễ dàng tạo ra một
danh sách có định dạng của cờ và các mô tả tham số để giúp cung cấp các
hướng dẫn cách sử dụng cho một ứng dụng. Bạn cứ việc sử dụng thư viện đó
trong các chương trình của riêng bạn và mở rộng nó theo bất kỳ cách nào mà
bạn thấy có ích.
Bây giờ tôi đã trình bày các điều cơ bản của các lớp Java trong
[Phần
1](http://www.ibm.com/developerworks/vn/library/j-dyn0429/) và các nguyên tắc Java Reflection API trong [Phần
2](http://www.ibm.com/developerworks/vn/library/j-dyn0603/) và Phần 3, phần còn lại của loạt bài này sẽ tránh đi theo con
đường ít người qua lại về thao tác bytecode. Tôi sẽ bắt đầu dễ dàng trong
Phần 4 với việc xem xét về thư viện Javassist thân thiện với người dùng để
làm việc với các lớp nhị phân. Bạn có muốn thử các phương thức chuyển đổi
không, chỉ là miễn cưỡng để bắt đầu lập trình theo bytecode? Javassist có
thể chỉ là công cụ phù hợp với các nhu cầu của bạn. Hãy tìm hiểu Javassist
là như thế nào vào tháng tới.
## Tài nguyên
- Tải về thư viện xử lý đối số đầy đủ (được gọi
*JArgp*) từ [trang dự án Sourceforge](http://sourceforge.net/projects/jargp/).
- Việc sử dụng rộng rãi sự phản chiếu có thể gây tác hại cho hiệu năng
của khung công tác. Với một ví dụ đồ họa và một số cuộc thảo luận liên
quan, xem các bài viết liên kết dữ liệu (data binding) XML của tác giả
"
[Liên kết dữ liệu, Phần 2: Hiệu năng](http://www.ibm.com/developerworks/java/library/x-databdopt2/index.html?S_TACT=105AGY75)" ( *developerWorks*, 01.2003) và " [Liên kết dữ liệu, Phần 3: kiến trúc JiBX](http://www.ibm.com/developerworks/java/library/x-databd3/?S_TACT=105AGY75)" ( *developerWorks*, 04.2003).
- Để có hướng dẫn sâu về cách sử dụng sự phản chiếu, hãy thử làm theo
[API phản chiếu](http://java.sun.com/docs/books/tutorial/reflect/index.html)của Dale Green trong Hướng dẫn Java của Sun.
- Tìm thêm hàng trăm tài nguyên công nghệ Java trên
[vùng công nghệ Java](http://www.ibm.com/developerworks/java/?S_TACT=105AGY75)của [developerWorks](http://www.ibm.com/developerworks/java/?S_TACT=105AGY75).
## Bình luận
[Vùng dữ liệu trên developerWorks](http://www.ibm.com/developerworks/vn/views/data/libraryview.jsp)
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
[Vùng mã nguồn mở trên developerWorks](http://www.ibm.com/developerworks/vn/views/opensource/libraryview.jsp)
Xem các bài viết về HTML, CSS, JavaScript,...
[Điện toán đám mây](http://www.ibm.com/developerworks/vn/views/cloud/libraryview.jsp)
Tìm hiểu về điện toán đám mây

Content-Language: en-US


text:
Trang chủ » 6. Bất Động Sản » Bất động sản khác
Đang xem chuyên mục này: Không có thành viên nào đang trực tuyến và 0 khách

markdown:
|
|![]()
|
|
|Người gửi||Nội dung|
|
|
![]()
|
|
|
|Bài viết: 754 Ngày tham gia: 03/02/12 15:05 Giới tính: Chưa nhập Tuổi: 29
Cám ơn: 0 lần Được cám ơn: 0 lần / 0 bài
|
|
|
|
|
|![]()
|
|![]()
|
|![]()
|
|
## Ai đang trực tuyến?
|
|
Đang xem chuyên mục này:
|
|
|Trung tâm Mua Bán hàng hóa Qua Mạng
|

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

Cache-Control: private, no-cache="set-cookie"

Pragma: no-cache

Content-Encoding: gzip

Vary: Accept-Encoding,User-Agent

Set-Cookie: _sid=e484421f79f97c54e5454899bcb8fa27; expires=Sat, 27-Aug-2016 01:38:10 GMT; path=/; domain=www.muabanquamang.com; HttpOnly

Connection: close

Content-Type: text/html; charset=UTF-8


text:
Ngô Ðồng
Xã hội Hoa Kỳ càng ngày có vẻ đang hướng về lối sống của gia đình Ðông phương. Cũng có thể hoàn cảnh kinh tế thay đổi khiến người ta đổi lối sống. Ðiều này thúc đẩy các chuyên gia kiến trúc và thiết kế nội thất nghĩ cách làm sao thích ứng với nhu cầu.
Hai mươi năm trước, theo các dữ liệu của Tổng Cục Thống Kê Hoa Kỳ, người dân đất nước này cứ 6 người thì có một người dọn nhà mỗi năm. Trung bình, người Mỹ dọn nhà 11 lần trong đời.
Những năm gần đây, sau sự suy thoái kinh tế và cuộc khủng hoảng địa ốc, rất nhiều thanh niên nam nữ thay vì thuê nhà sống riêng biệt đã dọn về ở với cha mẹ.
Tổng Cục Thống Kê nói, dựa theo thống kê năm 2010, khoảng 4.4 triệu căn nhà trên cả nước có tới 3 thế hệ cùng chung sống trong một mái nhà.
Ba thế hệ quây quần quanh bàn ăn buổi tối đối với người Việt Nam ở Mỹ không phải là chuyện lạ và cũng không phải chuyện hiếm hoi. Sự tiết kiệm tiền bạc, nâng đỡ nhau, chia sẻ với nhau mọi thứ đã đành, mối quan hệ thân tộc theo phong tục không mấy người muốn tách rời với con cái, cháu chắt. Dù là một ngày.
Khi mẹ tôi còn sống, tôi từng bồi hồi xúc động khi nghe bà cụ ru cháu ngủ trong nôi:
“Cái cò lặn lội bờ sông,
“Gánh gạo nuôi chồng tiếng khóc nỉ non”
Hoặc
“Bầu ơi thương lấy bí cùng,
“Tuy rằng khác giống, nhưng chung một giàn...”
Nhưng với người Mỹ vốn quen sống độc lập, tập đời sống tự lập từ khi còn đi học đại học, thống kê nói trên là chiều hướng rất đáng để ý.
Theo cuộc khảo cứu của The Pew Research Center, tỉ lệ nghèo khó trong số nhiều gia đình nhiều thế hệ ở chung chỉ có 11.5% trong năm 2009 so với tỉ lệ 14.6% của những gia đình ở độc lập. Nhiều thế hệ ở chung trong một nhà, không những tiết kiệm được tiền bạc, mà chẳng may khi gặp khó khăn, ảnh hưởng cũng được giảm thiểu rất nhiều.
Một bản tin của CNNMoney hồi Tháng Tư vừa qua cho hay một số công ty xây nhà mới, trong đó có công ty Toll Brothers đã bắt đầu vẽ những kiểu nhà với ý tưởng thích hợp cho nhiều thế hệ cùng chung sống. Thí dụ, một phía nhà dành cho cha mẹ già muốn đôi chút riêng tư, có thể có cả cái bếp nhỏ riêng biệt, chỗ xem tivi hay tiếp khách riêng.
Dĩ nhiên, kiến trúc sư vẽ kiểu chỉ thêm những phần này nếu có sự yêu cầu của khách hàng.
Bây giờ, theo Hiệp Hội Người Mỹ Nghỉ Hưu (American Association of Retired Persons) phần lớn những người chủ nhà không muốn bán nhà dọn nhà đi đâu nữa, mà muốn sống luôn trong đó cho tới mãn đời. Họ không muốn bán nhà, dọn vào ở trong nhà dưỡng lão.
Từ chiều hướng xã hội thay đổi lối sống, các nhà vẽ kiểu nhà lại phải chạy theo thời thế, đưa ra các mẫu nhà “Forever Homes.” Tức là kiểu nhà người ta có thể cảm thấy thoải mái sống từ khi mua lúc còn sung sức đi làm, cho tới khi nghỉ hưu ở luôn. Không ít những căn nhà mới bây giờ, dù là nhà lầu, có phòng ngủ chính (master bedroom) của chủ nhà ở tầng trệt. Lớn tuổi, ai cũng ngại leo lên lầu.
Hoặc, tới một lúc nào đó, người chủ nhà có thể sửa lại căn nhà theo nhu cầu chỗ ở lúc tuổi già. Các chuyên viên kiến trúc, các nhà thầu xây dựng có thể, tùy theo nhu cầu và ý muốn của chủ nhà mà thay đổi từng phần của căn nhà.
Nới rộng hành lang trong nhà, bậc cửa lên xuống thích hợp cho cả xe lăn. Thí dụ như vậy. Ngay cả chuyện làm thêm một cái thang máy trong căn nhà lầu cũng là chuyện không phải không làm được. Chỉ là vấn đề tiền bạc mà thôi.
Ông bà cụ Raul và Mary Ann ở bên cạnh nhà tôi suốt gần 30 chục năm qua. Từ khi ông ấy còn khỏe, ngày cuối tuần, ông ấy cắt thảm cỏ nhà ông ấy đã đành. Ông còn “tiện tay” cắt luôn thảm còn bên cạnh là nhà tôi. Trả tiền nhất định không lấy. Bây giờ, ở tuổi 90, ông bà cụ ấy vẫn nhất định “cố thủ” trong căn nhà hai tầng lầu. Cậu con trai duy nhất nhiều lần càm ràm với tôi là muốn ông bà ấy dọn về ở với con, nhưng cả hai nhất định không chịu.
Có lẽ ông bà cụ này đã đi trước trào lưu xã hội.
« Trở về trang trước
NGƯỜI VIỆT TV »

markdown:
|
|
CÁC TIN KHÁC »
ĐỌC NHIỀU NHẤT»
|
| Người mua nhà bây giờ phần đông muốn ở lâu năm
Wednesday, November 21, 2012 2:00:31 PM
Hai mươi năm trước, theo các dữ liệu của Tổng Cục Thống Kê Hoa Kỳ, người dân đất nước này cứ 6 người thì có một người dọn nhà mỗi năm. Trung bình, người Mỹ dọn nhà 11 lần trong đời.
Những năm gần đây, sau sự suy thoái kinh tế và cuộc khủng hoảng địa ốc, rất nhiều thanh niên nam nữ thay vì thuê nhà sống riêng biệt đã dọn về ở với cha mẹ.
Tổng Cục Thống Kê nói, dựa theo thống kê năm 2010, khoảng 4.4 triệu căn nhà trên cả nước có tới 3 thế hệ cùng chung sống trong một mái nhà.
Ba thế hệ quây quần quanh bàn ăn buổi tối đối với người Việt Nam ở Mỹ không phải là chuyện lạ và cũng không phải chuyện hiếm hoi. Sự tiết kiệm tiền bạc, nâng đỡ nhau, chia sẻ với nhau mọi thứ đã đành, mối quan hệ thân tộc theo phong tục không mấy người muốn tách rời với con cái, cháu chắt. Dù là một ngày.
Khi mẹ tôi còn sống, tôi từng bồi hồi xúc động khi nghe bà cụ ru cháu ngủ trong nôi:
“Cái cò lặn lội bờ sông,
“Gánh gạo nuôi chồng tiếng khóc nỉ non”
Hoặc
“Bầu ơi thương lấy bí cùng,
“Tuy rằng khác giống, nhưng chung một giàn...”
Nhưng với người Mỹ vốn quen sống độc lập, tập đời sống tự lập từ khi còn đi học đại học, thống kê nói trên là chiều hướng rất đáng để ý.
Theo cuộc khảo cứu của The Pew Research Center, tỉ lệ nghèo khó trong số nhiều gia đình nhiều thế hệ ở chung chỉ có 11.5% trong năm 2009 so với tỉ lệ 14.6% của những gia đình ở độc lập. Nhiều thế hệ ở chung trong một nhà, không những tiết kiệm được tiền bạc, mà chẳng may khi gặp khó khăn, ảnh hưởng cũng được giảm thiểu rất nhiều.
Một bản tin của CNNMoney hồi Tháng Tư vừa qua cho hay một số công ty xây nhà mới, trong đó có công ty Toll Brothers đã bắt đầu vẽ những kiểu nhà với ý tưởng thích hợp cho nhiều thế hệ cùng chung sống. Thí dụ, một phía nhà dành cho cha mẹ già muốn đôi chút riêng tư, có thể có cả cái bếp nhỏ riêng biệt, chỗ xem tivi hay tiếp khách riêng.
Dĩ nhiên, kiến trúc sư vẽ kiểu chỉ thêm những phần này nếu có sự yêu cầu của khách hàng.
Bây giờ, theo Hiệp Hội Người Mỹ Nghỉ Hưu (American Association of Retired Persons) phần lớn những người chủ nhà không muốn bán nhà dọn nhà đi đâu nữa, mà muốn sống luôn trong đó cho tới mãn đời. Họ không muốn bán nhà, dọn vào ở trong nhà dưỡng lão.
Từ chiều hướng xã hội thay đổi lối sống, các nhà vẽ kiểu nhà lại phải chạy theo thời thế, đưa ra các mẫu nhà “Forever Homes.” Tức là kiểu nhà người ta có thể cảm thấy thoải mái sống từ khi mua lúc còn sung sức đi làm, cho tới khi nghỉ hưu ở luôn. Không ít những căn nhà mới bây giờ, dù là nhà lầu, có phòng ngủ chính (master bedroom) của chủ nhà ở tầng trệt. Lớn tuổi, ai cũng ngại leo lên lầu.
Hoặc, tới một lúc nào đó, người chủ nhà có thể sửa lại căn nhà theo nhu cầu chỗ ở lúc tuổi già. Các chuyên viên kiến trúc, các nhà thầu xây dựng có thể, tùy theo nhu cầu và ý muốn của chủ nhà mà thay đổi từng phần của căn nhà.
Nới rộng hành lang trong nhà, bậc cửa lên xuống thích hợp cho cả xe lăn. Thí dụ như vậy. Ngay cả chuyện làm thêm một cái thang máy trong căn nhà lầu cũng là chuyện không phải không làm được. Chỉ là vấn đề tiền bạc mà thôi.
Ông bà cụ Raul và Mary Ann ở bên cạnh nhà tôi suốt gần 30 chục năm qua. Từ khi ông ấy còn khỏe, ngày cuối tuần, ông ấy cắt thảm cỏ nhà ông ấy đã đành. Ông còn “tiện tay” cắt luôn thảm còn bên cạnh là nhà tôi. Trả tiền nhất định không lấy. Bây giờ, ở tuổi 90, ông bà cụ ấy vẫn nhất định “cố thủ” trong căn nhà hai tầng lầu. Cậu con trai duy nhất nhiều lần càm ràm với tôi là muốn ông bà ấy dọn về ở với con, nhưng cả hai nhất định không chịu.
Có lẽ ông bà cụ này đã đi trước trào lưu xã hội.
BÀI ĐỌC THÊM
|
|

Cache-Control: private

Content-Type: text/html; charset=utf-8

Set-Cookie: ___utmvbaFufYy=TZA   XxkOJalW: htS; path=/; Max-Age=900

X-CDN: Incapsula


text:
RSS
Đăng nhập
Báo cáoMôi trườngBáo cáo môi trường địa phương
03/03/2011 8:42:20 SA
DANH MỤC BÁO CÁO HIỆN TRẠNG MÔI TRƯỜNG ĐỊA PHƯƠNG
STT
TÊN TỈNH
TÊN TÀI LIỆU
Năm báo cáo
1
An Giang
Báo cáo hiẹn trạng môi trường 05 năm tỉnh An Giang (giai đoạn 2005 -2009)
2010
2
BẮC GIANG
Báo cáo hiện trạng môi trường tỉnh Bắc Giang năm 2005
2005
Báo cáo Hiện trạng môi trường tỉnh Bắc Giang năm 2010```
3
BẠC LIÊU
Báo cáo Hiện trạng môi trường Bạc Liêu giai đoạn 2006- 2010```
4
BẮC NINH
Báo cáo hiện trạng môi trường tỉnh Bắc Ninh năm 1996 - 1997
1996-1997
Báo cáo Hiện trạng môi trường 5 năm tỉnh Bắc Ninh giai đoạn 2006- 2010```
5
BẾN TRE
Báo cáo hiện trạng môi trường tỉnh Bến Tre năm 2005
6
BÌNH ĐỊNH
Báo cáo Hiện trạng môi trường 5 năm tỉnh Bình Định năm 2010
7
BÌNH DƯƠNG
Báo cáo hiện trạng môi trường tỉnh Bình Dương năm 2005
Báo cáo Hiện trạng môi trường 5 năm tỉnh Bình Dương giai đoạn 2005- 2010
8
BÌNH PHƯỚC
Báo cáo hiện trạng môi trường tỉnh Bình Phước năm 2005
9
BÌNH THUẬN
Báo cáo hiện trạng môi trường tỉnh Bình Thuận năm 2006-2010
10
CÀ MAU
Báo cáo hiện trạng môi trường tỉnh Cà Mau năm 2005
Báo cáo hiện trạng môi trường Cà Mau + báo cáo tổng hợp
11
CẦN THƠ
Báo cáo hiện trạng môi trường tỉnh Cần Thơ năm 2003. Tập 1: Báo cáo chính
2003
Báo cáo hiện trạng môi trường Thành phố Cần Thơ năm 2005. Tập 1: Báo cáo
chính
Báo cáo hiện trạng môi trường Thành phố Cần Thơ năm 2005. Tập 2: Phụ lục
và bảng số liệu
Báo cáo diễn biến chất lượng môi trường Thành phố Cần Thơ trong 10 năm
(1998 - 2008)
1998-2008
Báo cáo hiện trạng môi trường Thành phố Cần Thơ năm 2008
2008
Báo cáo diễn biến hiện trạng môi trường thành phố Cần Thơ (5 năm 2005- 2009)
12
CAO BẰNG
Báo cáo hiện trạng môi trường tỉnh Cao Bằng năm 2005
Báo cáo hiện trạng môi trường Cao Bằng giai đoạn 2005-2010
13
ĐÀ NẴNG
Báo cáo hiện trạng môi trường Thành phố Đà Nẵng năm 2005
Báo cáo hiện trạng môi trường Thành phố Đà Nẵng giai đoạn 2006-2010 và định hướng đến năm 2015
14
ĐĂLĂK
Báo cáo hiện trạng môi trường tỉnh Đălăk năm 2005
Báo cáo Hiện trạng môi trường tỉnh Đắklắc 5 năm 2006- 2010
15
ĐĂKNÔNG
Báo cáo hiện trạng môi trường tỉnh Đăknông năm 2005
Báo cáo hiện trạng môi trường tỉnh Đăknông năm 2006
2006
16
ĐIỆN BIÊN
Báo cáo kết quả quan trắc và phân tích môi trường tỉnh Điện Biên năm 2006
Báo cáo kết quả quan trắc và phân tích môi trường tỉnh Điện Biên năm 2005-2010
17
ĐỒNG NAI
Báo cáo hiện trạng môi trường tỉnh Đồng Nai năm 2003
Báo cáo hiện trạng môi trường tỉnh Đồng Nai năm 2004
2004
Báo cáo tóm tắt Hiện trạng môi trường tỉnh Đồng Nai giai đoạn 2001 - 2005
2001-2005
Báo cáo trình Bộ Tài Nguyên môi trường và NEDO về hiện trạng chất thải
rắn công nghiệp tỉnh Đồng Nai năm 2001
2001
Báo cáo HTMT tỉnh Đồng Nai 05 năm (2006-2010) - Dự thảo
18
ĐỒNG THÁP
Báo cáo Hiện trang môi trường tỉnh Đồng Tháp 5 năm 2005 - 2009
19
GIA LAI
Báo cáo hiện trạng môi trường tỉnh Gia Lai năm 2005
Báo cáo tóm tắt HTMT tỉnh Gia Lai năm 2010
20
HÀ GIANG
Báo cáo hiện trạng môi trường tỉnh Hà Giang năm 2005
Báo cáo hiện trạng môi trường tỉnh Hà Giang năm 2010
21
HẠ LONG
Báo cáo hiện trạng môi trường không khí Thành phố Hạ Long 2002 - 2006
2002-2006
22
HÀ NAM
Báo cáo hiện trạng môi trường tỉnh Hà Nam năm 2004
Báo cáo hiện trạng môi trường tỉnh Hà Nam năm 2005
Báo cáo hiện trạng môi trường tỉnh Hà Nam năm 1999
1999
Báo cáo môi trường Tỉnh Hà Nam năm 2010
23
HÀ NỘI
Báo cáo hiện trạng môi trường Thành phố Hà Nội 2003
Báo cáo hiện trạng môi trường Thành phố Hà Nội năm 2005
Báo cáo hiện trạng môi trường Thành phố Hà Nội năm 2006
Báo cáo hiện trạng môi trường Thành phố Hà Nội giai đoạn 2006-2010 (b/c tóm tắt)
24
HÀ TÂY
Báo cáo hiện trạng môi trường tỉnh Hà Tây năm 2005
25
HẢI DƯƠNG
Báo cáo hiện trạng môi trường tỉnh Hải Dương năm 2004
Đánh giá hiện trạng môi trường tiểu Dự án xã Đồng Gia - Hải Dương năm 2004
Báo cáo môi trường Tỉnh Hải Dương năm 2010
26
HẬU GIANG
Báo cáo hiện trạng môi trường tỉnh Hậu Giang năm 2005. Tập 1. Báo cáo
chính
Báo cáo hiện trạng môi trường tỉnh Hậu Giang năm 2005. Tập 2. Phần phụ lục
27
HOÀ BÌNH
Báo cáo hiện trạng môi trường tỉnh Hòa Bình năm 2005
28
HUẾ
Báo cáo hiện trạng môi trường không khí Thành phố Huế 2002 - 2006
29
HƯNG YÊN
Báo cáo hiện trạng môi trường tỉnh Hưng Yên năm 2004
Đã báo cáo - Chua nộp
30
KHÁNH HOÀ
Báo cáo hiện trạng môi trường tỉnh Khánh Hòa năm 1998
1998
Báo cáo hiện trạng môi trường tỉnh Khánh Hòa năm 2004
Báo cáo HTMT tỉnh Khánh Hòa 5 năm (2006- 2010) + 02 Báo cáo tóm tắt
31
KIÊN GIANG
32
KONTUM
Báo cáo Diễn biến hiện trạng môi trường tỉnh KonTum qua các năm
33
LAI CHÂU
Báo cáo kết quả phân tích chất lượng môi trường tại tỉnh Lai Châu năm 2005
Báo cáo hiện trạng môi trường tỉnh Lai Châu năm 2005
Báo cáo kết quả phân tích chất lượng môi trường tại các Huyện - Thị tỉnh
Lai Châu năm 2006
Báo cáo hiện trạng môi trường tỉnh Lai Châu năm 2006
Báo cáo hiện trạng môi trường tổng thể tỉnh lai Châu 2010
34
LÂM ĐỒNG
Báo cáo hiện trạng môi trường tỉnh Lâm Đồng năm 2005
Báo cáo hiện trạng môi trường tỉnh Lâm Đồng giai đoạn 2006-2010
35
LẠNG SƠN
Báo cáo hiện trạng môi trường tỉnh Lạng Sơn năm 2005
36
LONG AN
Báo cáo hiện trạng môi trường tỉnh Long An năm 2001 - 2005
37
NAM ĐỊNH
Đánh giá môi trường tiểu Dự án xã Đại Thắng và xã Xuân Phú - Nam Định
năm 2001
Đánh giá môi trường tiểu Dự án xã Xuân Phú - Nam Định năm 2001
Báo cáo hiện trạng môi trường tỉnh Nam Định năm 2005
Báo cáo hiện trạng môi trường Nam Định
38
NGHỆ AN
Báo cáo hiện trạng môi trường tỉnh Nghệ An năm 2005
Báo cáo hiện trạng môi trường Nghệ An giai đoạn 2005-2010
39
NINH BÌNH
Đánh giá môi trường tiểu Dự án xã Bình Minh - Ninh Bình năm 2004
Báo cáo hiện trạng môi trường tỉnh Ninh Bình năm 2005
40
NINH THUẬN
Báo cáo hiện trạng môi trường tỉnh Ninh Thuận năm 2005
41
PHÚ THỌ
Báo cáo hiện trạng môi trường tỉnh Phú Thọ năm 2005
Báo cáo hiện trạng môi trường tỉnh Phú Thọ
42
PHÚ YÊN
Báo cáo hiện trạng môi trường tỉnh Phú Yên năm 2005
43
Quảng Bình
Báo cáo hiện trạng môi trường tỉnh Quảng Bình
44
QUẢNG NAM
Báo cáo hiện trạng môi trường tỉnh Quảng Nam năm 2004
Báo cáo hiện trạng môi trường tỉnh Quảng Nam năm 2005
Báo cáo hiện trạng môi trường tỉnh Quảng Nam giai đoạn 2006 - 2010
45
Quảng Ngãi
Báo cáo hiện trạng môi trường tỉnh Quảng Ngãi năm 2011
Quảng Trị
Báo cáo hiện trạng môi trường tỉnh Quảng Trị năm 2010
46
Sóc Trăng
Báo cáo tóm tắt HTMT tỉnh Sóc Trăng giai đoạn 2006- 2010
47
SƠN LA
Báo cáo hiện trạng môi trường tỉnh Sơn La năm 2005
Báo cáo hiện trạng môi trường tỉnh Sơn La năm 2006
Báo cáo hiện trạng môi trường tỉnh Sơn La 05 năm 2005- 2010
48
TÂY NINH
Báo cáo hiện trạng môi trường tỉnh Tây Ninh năm 2005
49
THÁI BÌNH
Đánh giá môi trường tiểu Dự án xã Việt Hùng - Thái Bình
Environment assessment subproject: In Viet Hung - Thai Binh
Đánh giá môi trường tiểu Dự án xă Minh Tân - Thái Bình
Environment assessment subproject: In Minh Tan - Thai Binh
Báo cáo hiện trạng môi trường tỉnh Thái Bình năm 2005
Báo cáo hiện trạng môi trường Thái Bình
50
THÁI NGUYÊN
Báo cáo tổng quan hiện trạng môi trường tỉnh Thái Nguyên 2 năm 1999 - 2000
1999-2000
Báo cáo hiện trạng môi trường tỉnh Thái Nguyên năm 2000 - 2001
2000-2001
Báo cáo hiện trạng môi trường tỉnh Thái Nguyên năm 2002 - 2003
2002-2003
Báo cáo hiện trạng môi trường tỉnh Thái Nguyên năm 2003 - 2004
2003-2004
Báo cáo hiện trạng môi trường tỉnh Thái Nguyên năm 2004 - 2005
2004-2005
Báo cáo hiện trạng môi trường tỉnh Thái Nguyên
51
THANH HÓA
Báo cáo hiện trạng môi trường tỉnh Thanh Hóa năm 2005
Báo cáo hiện trạng môi trường Thanh Hóa 05 năm (2006- 2010)
52
TIỀN GIANG
Báo cáo hiện trạng môi trường tỉnh Tiền Giang năm 2005
Báo cáo tổng hợp Hiện trạng môi trường tỉnh Tiền Giang giai đoạn 2006- 2010
53
TP. HCM
Báo cáo hiện trạng môi trường Tp. Hồ Chí Minh năm 2004 - 2005
Báo cáo hiện trạng môi trường Tp. Hồ Chí Minh năm 2004
Báo cáo hiện trạng môi trường Tp. Hồ Chí Minh năm 2006
Báo cáo hiện trạng môi trường Tp. Hồ Chí Minh năm 2007
2007
Báo cáo hiện trạng môi trường Tp Hồ Chí Minh 5 năm 2005- 2009
54
Trà Vinh
Báo cáo hiện trạng môi trường tổng thể tỉnh Trà Vinh từ năm 2006 - 2010
55
TUYÊN QUANG
Báo cáo hiện trạng môi trường tỉnh Tuyên Quang năm 2006
Báo cáo hiện trạng môi trường tỉnh Tuyên Quang năm 2005
Báo cáo hiện trạng 5 năm tỉnh Tuyên Quang giai đoạn 2002 - 2007
2002-2007
Báo cáo hiện trạng môi trường tỉnh Tuyên Quang
2009
56
VĨNH LONG
Báo cáo hiện trạng môi trường tỉnh Vĩnh Long (2001 - 2005)
Báo cáo hiện trạng môi trường tỉnh Vĩnh Long 2010
57
VĨNH PHÚC
Báo cáo hiện trạng môi trường Vĩnh Phúc năm 2005
Báo cáo hiện trạng môi trường Vĩnh Phúc năm 2010
58
YÊN BÁI
Báo cáo hiện trạng môi trường tỉnh Yên Bái năm 2005
Báo cáo hiện trạng môi trường tỉnh Yên Bái giai đoạn 2006- 2010

Set-Cookie: language=vi-VN; path=/; HttpOnly


text:
Phân mục chính
- Giá vàng, ngoại tệ
- Xe hơi - ôtô
- Nhà đất
- Xây dựng, nội ngoại thất
- Du lịch
- Thời trang
- Công nghiệp
- Nông nghiệp
- Ăn uống
- Sinh vật cảnh
- Nhạc họa
- Sách, truyện
- Việc làm
- Học hành, tuyển sinh, đào tạo
- Dịch vụ
- Làm Thế Nào
- Mẹ và bé
- Web, phần mềm
- Thể thao
- Khách sạn
- Rao vặt
- Điện thoại - mobile
- Máy tính
- Điện tử gia dụng
- Máy ảnh, máy quay phim
- Xe máy
- Xe đạp, xe thô sơ

markdown:
Phân mục chính
[Giá vàng, ngoại tệ](http://giavangngoaite.raovat.mobi/search/apachesolr_search?filters=type:giavangngoaite) [Xe hơi - ôtô](http://xehoioto.raovat.mobi/search/apachesolr_search?filters=type:xehoioto) [Nhà đất](http://nhadat.raovat.mobi/search/apachesolr_search?filters=type:nhadat) [Xây dựng, nội ngoại thất](http://xaydung.raovat.mobi/search/apachesolr_search?filters=type:xaydung) [Du lịch](http://dulich.raovat.mobi/search/apachesolr_search?filters=type:dulich) [Thời trang](http://thoitrang.raovat.mobi/search/apachesolr_search?filters=type:thoitrang) [Công nghiệp](http://congnghiep.raovat.mobi/search/apachesolr_search?filters=type:congnghiep) [Nông nghiệp](http://nongnghiep.raovat.mobi/search/apachesolr_search?filters=type:nongnghiep) [Ăn uống](http://anuong.raovat.mobi/search/apachesolr_search?filters=type:anuong) [Sinh vật cảnh](http://sinhvatcanh.raovat.mobi/search/apachesolr_search?filters=type:sinhvatcanh) [Nhạc họa](http://nhachoa.raovat.mobi/search/apachesolr_search?filters=type:nhachoa) [Sách, truyện](http://sachtruyen.raovat.mobi/search/apachesolr_search?filters=type:sachtruyen) [Việc làm](http://vieclam.raovat.mobi/search/apachesolr_search?filters=type:vieclam) [Học hành, tuyển sinh, đào tạo](http://tuyensinh.raovat.mobi/search/apachesolr_search?filters=type:tuyensinh) [Dịch vụ](http://dichvu.raovat.mobi/search/apachesolr_search?filters=type:dichvu) [Làm Thế Nào](http://lamthenao.raovat.mobi/search/apachesolr_search?filters=type:lamthenao) [Mẹ và bé](http://mevabe.raovat.mobi/search/apachesolr_search?filters=type:mevabe) [Web, phần mềm](http://webphanmem.raovat.mobi/search/apachesolr_search?filters=type:webphanmem) [Thể thao](http://thethao.raovat.mobi/search/apachesolr_search?filters=type:thethao) [Khách sạn](http://khachsan.raovat.mobi/search/apachesolr_search?filters=type:khachsan) [Rao vặt](http://raovat.raovat.mobi/search/apachesolr_search?filters=type:raovat) [Điện thoại - mobile](http://dienthoai.raovat.mobi/search/apachesolr_search?filters=type:dienthoai) [Máy tính](http://maytinh.raovat.mobi/search/apachesolr_search?filters=type:maytinh) [Điện tử gia dụng](http://dientugiadung.raovat.mobi/search/apachesolr_search?filters=type:dientugiadung) [Máy ảnh, máy quay phim](http://mayanhquayphim.raovat.mobi/search/apachesolr_search?filters=type:mayanhquayphim) [Xe máy](http://xemay.raovat.mobi/search/apachesolr_search?filters=type:xemay) [Xe đạp, xe thô sơ](http://xedap.raovat.mobi/search/apachesolr_search?filters=type:xedap)

Server: Apache

Set-Cookie: SESS862f9993e46f5e3dfc3a2a80fd3055d4=v2tj4obacou65oasuf3i3iha74; expires=Sun, 20-Sep-2015 06:40:15 GMT; path=/; domain=.raovat.mobi

Cache-Control: post-check=0, pre-check=0

Vary: Accept-Encoding


markdown:
## Giới thiệu Moto GP 2 (Portable)
Tiếng vang lớn do Moto GP (được phát hành cuối năm ngoái) tạo ra chưa lắng dịu thì nhà phát hành THQ lại tiếp tục tung ra phiên bản mới Moto GP 2 với những cải tiến lớn, dựa trên bối cảnh về những con người thật và đường đua thật. Do đó, game có tính thực tế rất cao.
Ở tùy chọn một người chơi (single player), bạn có 6 chế độ khác nhau. Chế độ Quick Race tiêu chuẩn cho phép bạn chọn 3 vòng đua đầu tiên của cuộc đua Champion và những đường đua bạn mở khóa được trong Stunt và Champion mode. Nếu muốn kiếm điểm trong những vòng đua biểu diễn trong thời gian định sẵn, bạn có thể chọn chế độ Stunt. Khi đạt được một số điểm nhất định, bạn sẽ mở ra được những đường đua mới cùng những đoạn phim từ Moto GP. Chế độ Time trial là nơi bạn cố gắng phá kỷ lục của chính mình mà không phải bận tâm về các tay lái khác. Career là chế độ cuối cùng của tùy chọn một người chơi và là phần mang tính thủ vai nhiều nhất .
Moto GP 2 nghiêng nhiều về tính chất nhập vai. Do đó, hệ thống điều khiển xe mang tính thực tế cao và đòi hỏi người chơi phải xử lý chuẩn xác. Đặc biệt, việc game sử dụng chế độ phanh kép (1 phanh trước và 1 phanh sau) càng nâng cao ý nghĩa của kỹ năng điều khiển xe. Bạn cần sử dụng nhuần nhuyễn tất cả các lệnh trên từng đầu ngón tay nếu muốn thực hiện đi một bánh, chạy xe nghiêng hoặc quẹo cua một cách hiệu quả. Nên tính đến việc mua một bộ gamepad vì bàn phím máy tính không tiện dụng trong trò chơi này.
Việc điều khiển xe còn chịu ảnh hưởng của yếu tố thời tiết. Khi đường đua đầy nước mưa, việc lái và quẹo cua sẽ dễ hơn nhưng nó cũng khiến bạn dễ trượt ngã hơn.
Về mặt đồ họa, Moto GP 2 tạo ra ấn tượng rất tốt. Những chiếc xe và người điều khiển chúng đều là những thiết kế đẹp mắt, sống động, đem lại cho người chơi cảm giác đua xe thực sự. Tay đua của bạn sẽ trượt trên ghế ngồi khi vào khúc quanh và chúi về trước khi phanh gấp. Nếu bạn va chạm với một chiếc xe khác, người chủ của nó sẽ dứ nắm đấm giận dữ về phía bạn. Cảnh nền game cũng rất thực tế và có hồn. Mọi thứ, từ mây trên trời đến những vết bánh xe trên mặt đường, tất cả tạo ra ảo giác như bạn đang trên một đường đua thực sự. Ảo giác này còn sống động hơn khi bánh xe của bạn để lại vết đen trên mặt đường khi bạn cua gấp qua một khúc quanh và dấu vết đó sẽ còn đó cho tới hết vòng đua. Lúc bạn tăng tốc tiến lên, bánh xe sẽ cắt một đường trên cỏ hoặc hất tung lên không một đám bụi mịt mù.
Với tất cả các cố gắng dồn vào gameplay và đồ họa, hiệu ứng âm thanh trở thành phần kém nhất trong Moto GP 2. Mặc dù vẫn có tiếng rồ ga của xe phân khối lớn, tiếng sang số, tiếng bánh xe lết trên đường, tiếng va chạm, tiếng khán giả reo hò và bình luận viên… nhưng nhìn chung phần âm thanh vẫn chưa đạt được tầm vóc tương xứng với các phần khác của trò chơi. Phần nhạc nền (Rock) không giúp được gì nhiều cho bầu không khí trường đua. May thay, Moto GP 2 hỗ trợ chức năng lựa chọn soundtrack nên ít nhất thì bạn cũng có thể chọn nghe bản nhạc mình thích nhất.
Thông tin:
Thể loại: Driving
Hãng phát triển: Climax
Hãng phát hành: THQ
Bộ điều khiển: PC, Playstation 2
Phát hành: 21/5/2003
Dung lượng: 209.83 MB
Link:
http://s16.galaxyz.net/fi.html?s=bVNCJQwhQiMEPQp8GSYGMgN8QwM4ESEaLnwePAsnGjIfNkIDAiEZMg8/CHMgPBk8TRQ9c199HzIf
Password: congdongcntt.com

Server: nginx/1.6.2 (Ubuntu)


text:
Chiếc ao nhỏ như một thứ trang sức tô thêm cho khu vườn nét nghệ thuật và quyến rũ riêng của nó. Một chiếc ao, một khe nước nhỏ trong sân vườn còn có thể mang đến những điều tốt đẹp và sự an lành cho mái ấm của bạn.
Bạn hãy dành một chút sự sáng tạo để chăm chút cho khu vườn, đó cũng là một thú vui giúp bạn thêm yêu và trân trọng cuộc sống của mình. Trang trí và thiết kế chiếc ao nhỏ cũng tạo nên niềm hạnh phúc cho những thành viên đang sống và tận hưởng những giây phút thoải mái bên cạnh thiên nhiên.
Để không gian thêm phần thơ mộng, bạn có thể trang trí những phiến đá bên cạnh ao, những đường mòn viền theo bờ ao, hoặc một chiếc cầu gỗ cho thú vui câu cá mỗi khi chiều xuống....Theo quan niệm dân gian, một khu vườn đẹp luôn cần có sự cân bằng âm dương, tức là cần có nước trong vườn để điều hòa không khí và mang nhiều vận may đến cho gia đình.
Vẻ đẹp nhẹ nhàng, bình yên và căng tràn nhựa sống của khu vườn bắt đầu từ những hàng cỏ rung rinh theo gió nơi bờ ao, từng cây cầu gỗ hay những viên sỏi được bày trí một cách ngẫu hứng...
Tiếng đớp bóng bâng quơ của những chú cá vàng cũng đủ tạo nên một không gian thư thái, bình yên cho nhà vườn.
Những ánh nến lung linh sẽ làm không gian trở nên tĩnh lặng và lãng mạn hơn cho khu vườn mỗi khi chiều buông.
Tuy chỉ là chiếc ao nhỏ, một vách đá, một lối mòn, một cây cầu gỗ nhưng tất cả hòa quyện vào nhau, đan xen nhau tạo nên những cảm xúc nhẹ nhàng cho mỗi người khi dạo quanh vườn.
Thêm một chút hương sắc rực rỡ của hoa, một chút lay động, mơn man của gió cũng tạo nên nét đẹp yên ả, trầm lắng của quê hương Việt, thu gọn vào một chiếc ao trong vườn nhà.
Theo: archi
Tin mới hơn:
- Ban công - điểm nhấn tinh tế
- Thiết kế hàng hiên cho mùa hè
- Ngoại thất theo phong cách Tối giản
- Non bộ trong vườn
- Đá trong nhà vườn
- Bể bơi trong khuôn viên nhà
- Bàn ghế giả mây cho không gian ngoài trời
- Hàng rào tô điểm nhà vườn
Tin cũ hơn:
- Nhà tắm ngoài trời cho nhà vườn
- Ghế nghỉ trong nhà vườn
- Thư giãn với góc cafe tại nhà
- Những góc nhỏ trên ban công
- Tạo không gian giao hòa với thiên nhiên
- Những góc lãng mạn bên ngoài ngôi nhà
- Đèn cho vườn yêu
- Thêm nét lãng mạn cho vườn nhà

markdown:
![ ao1](/images/plg_imagesized/169-ao1.jpg)
![ ao1](/images/plg_imagesized/169-ao1.jpg)
Chiếc ao nhỏ như một thứ trang sức tô thêm cho khu vườn nét nghệ thuật và quyến rũ riêng của nó. Một chiếc ao, một khe nước nhỏ trong sân vườn còn có thể mang đến những điều tốt đẹp và sự an lành cho mái ấm của bạn.
![ ao2](/images/plg_imagesized/169-ao2.jpg)
![ ao2](/images/plg_imagesized/169-ao2.jpg)
Bạn hãy dành một chút sự sáng tạo để chăm chút cho khu vườn, đó cũng là một thú vui giúp bạn thêm yêu và trân trọng cuộc sống của mình. Trang trí và thiết kế chiếc ao nhỏ cũng tạo nên niềm hạnh phúc cho những thành viên đang sống và tận hưởng những giây phút thoải mái bên cạnh thiên nhiên.
![ ao3](/images/plg_imagesized/169-ao3.jpg)
![ ao3](/images/plg_imagesized/169-ao3.jpg)
Để không gian thêm phần thơ mộng, bạn có thể trang trí những phiến đá bên cạnh ao, những đường mòn viền theo bờ ao, hoặc một chiếc cầu gỗ cho thú vui câu cá mỗi khi chiều xuống....Theo quan niệm dân gian, một khu vườn đẹp luôn cần có sự cân bằng âm dương, tức là cần có nước trong vườn để điều hòa không khí và mang nhiều vận may đến cho gia đình.
![ ao4](/images/plg_imagesized/169-ao4.jpg)
![ ao4](/images/plg_imagesized/169-ao4.jpg)
Vẻ đẹp nhẹ nhàng, bình yên và căng tràn nhựa sống của khu vườn bắt đầu từ những hàng cỏ rung rinh theo gió nơi bờ ao, từng cây cầu gỗ hay những viên sỏi được bày trí một cách ngẫu hứng...
![ ao5](/images/plg_imagesized/169-ao5.jpg)
![ ao5](/images/plg_imagesized/169-ao5.jpg)
Tiếng đớp bóng bâng quơ của những chú cá vàng cũng đủ tạo nên một không gian thư thái, bình yên cho nhà vườn.
![ ao6](/images/plg_imagesized/169-ao6.jpg)
![ ao6](/images/plg_imagesized/169-ao6.jpg)
Những ánh nến lung linh sẽ làm không gian trở nên tĩnh lặng và lãng mạn hơn cho khu vườn mỗi khi chiều buông.
![ ao7](/images/plg_imagesized/169-ao7.jpg)
![ ao7](/images/plg_imagesized/169-ao7.jpg)
Tuy chỉ là chiếc ao nhỏ, một vách đá, một lối mòn, một cây cầu gỗ nhưng tất cả hòa quyện vào nhau, đan xen nhau tạo nên những cảm xúc nhẹ nhàng cho mỗi người khi dạo quanh vườn.
![ ao8](/images/plg_imagesized/169-ao8.jpg)
![ ao8](/images/plg_imagesized/169-ao8.jpg)
Thêm một chút hương sắc rực rỡ của hoa, một chút lay động, mơn man của gió cũng tạo nên nét đẹp yên ả, trầm lắng của quê hương Việt, thu gọn vào một chiếc ao trong vườn nhà.
Theo: archi
Tin mới hơn:
[Ban công - điểm nhấn tinh tế](/thiet-ke-nha-o/thiet-ke-ngoai-that/177-ban-cong-diem-nhan-tinh-te.html) [Thiết kế hàng hiên cho mùa hè](/thiet-ke-nha-o/thiet-ke-ngoai-that/176-thiet-ke-hang-hien-cho-mua-he.html) [Ngoại thất theo phong cách Tối giản](/thiet-ke-nha-o/thiet-ke-ngoai-that/175-ngoai-that-theo-phong-cach-toi-gian.html) [Non bộ trong vườn](/thiet-ke-nha-o/thiet-ke-ngoai-that/174-non-bo-trong-vuon.html) [Đá trong nhà vườn](/thiet-ke-nha-o/thiet-ke-ngoai-that/173-da-trong-nha-vuon.html) [Bể bơi trong khuôn viên nhà](/thiet-ke-nha-o/thiet-ke-ngoai-that/172-be-boi-trong-khuon-vien-nha.html) [Bàn ghế giả mây cho không gian ngoài trời](/thiet-ke-nha-o/thiet-ke-ngoai-that/171-ban-ghe-gia-may-cho-khong-gian-ngoai-troi.html) [Hàng rào tô điểm nhà vườn](/thiet-ke-nha-o/thiet-ke-ngoai-that/170-hang-rao-to-diem-nha-vuon.html)
Tin cũ hơn:
[Nhà tắm ngoài trời cho nhà vườn](/thiet-ke-nha-o/thiet-ke-ngoai-that/168-nha-tam-ngoai-troi-cho-nha-vuon.html) [Ghế nghỉ trong nhà vườn](/thiet-ke-nha-o/thiet-ke-ngoai-that/167-ghe-nghi-trong-nha-vuon.html) [Thư giãn với góc cafe tại nhà](/thiet-ke-nha-o/thiet-ke-ngoai-that/166-thu-gian-voi-goc-cafe-tai-nha.html) [Những góc nhỏ trên ban công](/thiet-ke-nha-o/thiet-ke-ngoai-that/165-nhung-goc-nho-tren-ban-cong.html) [Tạo không gian giao hòa với thiên nhiên](/thiet-ke-nha-o/thiet-ke-ngoai-that/164-tao-khong-gian-giao-hoa-voi-thien-nhien.html) [Những góc lãng mạn bên ngoài ngôi nhà](/thiet-ke-nha-o/thiet-ke-ngoai-that/163-nhung-goc-lang-man-ben-ngoai-ngoi-nha-.html) [Đèn cho vườn yêu](/thiet-ke-nha-o/thiet-ke-ngoai-that/162-den-cho-vuon-yeu.html) [Thêm nét lãng mạn cho vườn nhà](/thiet-ke-nha-o/thiet-ke-ngoai-that/161-them-net-lang-man-cho-vuon-nha.html)

Server: nginx

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Content-Encoding: x-gzip

X-Content-Encoded-By: Joomla! 1.5

Set-Cookie: ja_sanidineii_light_tpl=ja_sanidineii_light; expires=Wed, 17-Aug-2016 01:58:11 GMT; Max-Age=30672000; path=/

Vary: User-Agent


text:
Trở thành fan của Báo điện tử Tiền Phong trên Facebook để nhận tin hot nhất từ tienphong.vn
Báo điện tử Tiền Phong luôn mong muốn được nhận phản hồi từ bạn đọc! Mọi ý kiến hoặc bài vở đóng góp, xin vui lòng gửi về địa chỉ email:
Nếu bạn có tin tức thời sự nóng cần phản ánh trực tiếp, vui lòng liên lạc qua số điện thoại nóng sau:
01274.91.91.91

Set-Cookie: .ASPXANONYMOUS=BGQzLX8jxVx5nvGDeouHijnnlZR6_DO9NyWZKscOjv71P_kVqVWFvZBx2BmVj7jdrOCmQgmkQDFLTr-ORIn6k9HLF6oUSc8Ney2hf49NXBog7ZgZopM4kJrdN0jKglPNeF0EeR_LwBXLinAClyJTAQ2; domain=kienthuc.net.vn; expires=Thu, 05-Nov-2015 12:53:08 GMT; path=/; HttpOnly


text:
Gian hàng bán
Rao vặt
Hỏi đáp
Thêm
Danh sách gian hàng
Tin tức từ Vatgia.com
Để kinh doanh Online thành công
Đánh giá sản phẩm
BaoKim.vn
MyTour.vn
Nhanh.vn
WebBNC.net
Ứng dụng
Thông báo
Hỗ trợ
Đăng ký
Đăng ký thành viên
Đăng ký gian hàng
Đăng nhập
Hoặc đăng nhập bằng
Nhớ mật khẩu
Quên mật khẩu?
Sản phẩm
Sản phẩm
Rao vặt
Hỏi đáp
Cửa hàng
Tìm trong danh mục
Bếp cồn
Bếp Domino
Bếp ga du lịch
Bếp gas
Bếp gas âm
Bếp hồng ngoại
Bếp nướng
Bếp nướng thịt Doner
Bếp nướng xúc xích
Bếp từ
Bếp tủ liền lò
Bếp đa năng
Bếp điện
Bình giữ nóng trà, cafe
Lò nướng
Lò vi sóng
Máy ép trái cây
Máy hút mùi
Máy hủy rác thực phẩm
Máy lắc trà sữa
Máy làm bánh mỳ
Máy làm lạnh nước hoa quả
Máy làm mì nui
Máy làm sữa đậu nành
Máy làm sushi
Máy làm đá siêu tốc
Máy luộc trứng
Máy mài dao kéo
Máy nạo dừa
Máy nướng bánh mỳ
Máy pha cafe
Máy phun socola
Máy rang cà phê
Máy rửa bát
Máy sấy khô bát
Máy sấy thực phẩm
Máy tạo Ozone
Máy trộn đồ uống
Máy trồng rau
Máy vắt cam
Máy xay cà phê
Máy xay hạt
Máy xay sinh tố
Máy xay thực phẩm
Máy xay đá
Máy đánh trứng
Máy đo an toàn thực phẩm
Nhà bếp công nghiệp
Nồi áp suất
Nồi áp suất điện
Nồi chiên đa năng
Nồi cơm điện
Nồi hầm, nồi ủ nhiệt
Nồi hấp
Nồi lẩu điện
Nồi nấu cơm dùng gas
Nồi nướng
Tủ tiệt trùng
Đồ dùng Buffet
Linh kiện bếp ga
Máy khác
Trang chủ
>
Hàng công nghệ
>
Điện tử, điện máy
>
Đồ dùng trong bếp
>
Nồi nướng
>
Gali JE-2F
Gali JE-2F
0 đánh giá
Đánh giá
Lịch sử giá
6 sản phẩm mới từ
960.000₫
Hãng sản xuất:
GALI
Dung tích (lít):
17 lít
Công suất (W):
1300
Sản phẩm cùng mức giá
Sanaky VH-188T
898.000₫
Osaka CO12N
920.000₫
Tiross TS-967
979.000₫
Homemax HMLN-HM-12F
950.000₫
Gali GL-1100
870.000₫
Gali CO-130D
880.000₫
Gali CO-130F
1.020.000₫
Hasuka HSK-LN408
900.000₫
Sunhouse SHD4118
887.000₫
KoreaKing KOV-801A
895.000₫
Sanaky VH-189T
870.000₫
Nồi nướng siêu tốc GT Xpress 101
950.000₫
Gian hàng bán
Thông số kỹ thuật
Nhận xét
Đánh giá
Hỏi đáp
Hình ảnh
Giá tăng dần
Tình trạng
Xuất xứ
Thuế
Bảo hành
Nơi bán:
HN (4)
HCM (3)
Khác
Toàn quốc (12)
Hà Nội (4)
Hồ Chí Minh (3)
Hà Nội 2 (2)
Đà Nẵng (1)
Quảng Trị (1)
Đồng Nai (1)
Gian hàng đảm bảo tích cực
Đấu giá click sản phẩm
960.000₫
Mới - Có VAT
BH: 12 tháng
HCM
:
Cửa Hàng Điện Lạnh 50 (dienlanh50)
Xem chi tiết
Gian hàng đảm bảo
975.000₫
Mới - Chưa VAT
BH: 24 tháng
HN
:
giadungviet
73%
đánh giá tốt (trong tổng số
44
đánh giá)
Xem chi tiết
975.000₫
Mới - Chưa VAT
BH: 12 tháng
HN
,
HN2
:
Siêu Thị Thiên Thanh (SieuthiThienThanh)
Miễn phí vận chuyển quận đống đa
86%
đánh giá tốt (trong tổng số
35
đánh giá)
Xem chi tiết
975.000₫
Mới - Có VAT
BH: Không có
HN
,
HN2
:
Tre Vàng Mart (trevangmart)
trevang.vn
86%
đánh giá tốt (trong tổng số
42
đánh giá)
Xem chi tiết
975.000₫
Mới - Có VAT
BH: 1 tháng
HCM
:
Công Ty TNHH MTV Điện Máy Tân Tiến (dienmaytantien)
100%
đánh giá tốt (trong tổng số
4
đánh giá)
Xem chi tiết
Liên hệ gian hàng...
Mới - Có VAT
BH: Không có
HN
,
HCM
,
ĐNai
,
Quảng Trị
,
ĐN
:
Sieu thi (maycongnghiep_online)
75%
đánh giá tốt (trong tổng số
4
đánh giá)
Xem chi tiết
Các sản phẩm khác
Sanaky VH-188T
898.000₫
30 gian hàng bán
Comet CM8615
695.000₫
10 gian hàng bán
Comet CM8612
550.000₫
12 gian hàng bán
Philiger CKY-5F
790.000₫
9 gian hàng bán
DuraStar CKY-2F
710.000₫
5 gian hàng bán
Legend LO-172
699.000₫
17 gian hàng bán
Nồi nướng Sanaky VH-148T/D 14 lít công suất 1000W
750.000₫
26 gian hàng bán
Osaka CO12N
920.000₫
15 gian hàng bán
Tiross TS-967
979.000₫
18 gian hàng bán
Homepro HP555
720.000₫
13 gian hàng bán
Lò quay Saiko CO-512H
720.000₫
22 gian hàng bán
Sanaky VH 148T
798.000₫
9 gian hàng bán
Có 194 sản phẩm cùng danh mục với “Gali JE-2F”
Tỉnh/ Thành phố
Hà Nội
(167)
Hồ Chí Minh
(135)
Đà Nẵng
(98)
Bà Rịa - Vũng Tàu
(6)
Bình Dương
(18)
Cần Thơ
(5)
Gia Lai
(32)
Hà Nội 2
(92)
Khánh Hòa
(13)
Kon Tum
(1)
Lâm Đồng
(2)
Long An
(19)
Quảng Trị
(91)
Đắc Lắc
(1)
Đồng Nai
(102)
Hãng sản xuất
ASANZO
(1)
AIRLUX
(2)
AVA
(1)
BESUTO
(2)
BIGSUN
(1)
BOMANN
(1)
CARIBBEAN
(2)
DAIICHI
(5)
DAIWA
(1)
DENI
(1)
DONLIM
(6)
DURASTAR
(10)
EDEN
(1)
FACARE
(1)
GALI
(13)
GEORGE FOREMAN
(4)
GOLDSUN
(1)
GOWELL
(2)
HAMILTON BEACH
(9)
HAPPY CALL
(2)
HASUKA
(1)
HOMEMAX
(1)
HOMEPRO
(3)
HOMESUN
(1)
HOUSEWARE
(3)
IMARFLEX
(4)
KATOMO
(2)
KHALUCK
(5)
KHALUX
(4)
KOHO
(2)
KOREAKING
(2)
KYMITO
(1)
LEGEND
(2)
LEGI
(4)
LEKHOE
(1)
LUCKY HOME
(2)
MAKXIM
(2)
MIKOSHI
(1)
OHI@MA
(1)
OSAKA
(2)
PENSONIC
(5)
PHILIGER
(4)
PROCTOR SILEX
(2)
ROTISSERIE
(1)
SAIKO
(6)
SANAKY
(13)
SOWUN
(2)
SUNHOME
(2)
SUNHOUSE
(4)
TIGER QUEEN
(4)
TIROSS
(1)
WATERFALL
(1)
WESTPOOL
(1)
YOUMI
(1)
Xuất xứ
Hàn Quốc
(5)
Malaysia
(1)
Thái Lan
(3)
Trung Quốc
(60)
Việt Nam
(10)
Đài Loan
(5)
Các từ khóa liên quan
matrix 905
,
lò nướng 80 lít
,
gl-gl-1300
,
nồi nướng saiko
,
imarflex
,
phi thuy
,
lo thuy tinh
,
lo nướng gali
,
sacza
,
ahc11
,
co 512h
,
loa thuy tinh
,
noi khalux
,
khuôn nướng
,
katomo ka-6109
,
noi thuy tinh
,
mo ha noi
,
lò homepro
,
nuong halogen
,
lò nướng 1000w
quan jean
,
quan jean nam
,
quần jeans
,
quần jean nam
,
quan jean nu
,
áo jeans nam
,
quan jean levis
,
quần jean nam ống côn
,
thoi trang quan jean
,
quần jean trắng nam
,
kiểu quần jean nam
,
quần jeans nam hang hieu
,
quần jean kiểu nam
,
samsung jet
,
quần jean đẹp
,
quần jean nam hàn quốc
,
gali je-2f
,
je-2f
,
je 2f
,
gali je-2w
,
je-2f
Rao vặt liên quan
Xem tất cả
Lò nướng đối lưu
Đăng bởi:
HoaNamVN
Cập nhật:
20/07/2015 - 09:11
Lò xoay, Lò nướng Southstar
Đăng bởi:
HoaNamVN
Cập nhật:
18/07/2015 - 15:10
Bếp nướng magic bullet gt-05, bếp nướng, vỉ nướng giá rẻ
-
590.000 ₫/ chiếc
Đăng bởi:
giadungviet
Cập nhật:
30/01/2015 - 16:56
Lò nướng Sunhouse, Nồi nướng đa năng Sunhouse
-
850.000 ₫/ chiếc
Đăng bởi:
giadungviet
Cập nhật:
29/01/2015 - 16:44
Lò nướng Sanaky, lò nướng Homepro, lò nướng saiko, lò nướng durastar
-
650.000 ₫
Đăng bởi:
sale_giadunghathanh
Cập nhật:
28/01/2015 - 17:50
Mâm nướng, Vỉ nướng, Bếp nướng Shachu, Magic Bullet hàng chính hãng, bảo hành 12 tháng
-
690.000 ₫/ chiếc
Đăng bởi:
giadungviet
Cập nhật:
14/01/2015 - 15:53
Thanh lý giá gốc lò nướng Penny
-
520.000 ₫
Đăng bởi:
saigonshoping
Cập nhật:
19/10/2014 - 21:00
Lò nướng Sanaky chính hãng, giá rẻ..
-
750.000 ₫
Đăng bởi:
sanakymienbac
Cập nhật:
26/04/2014 - 16:59
Bếp nướng, Vỉ nướng, Bếp nướng giá rẻ giảm giá toàn bộ
-
320.000 ₫/ chiếc
Đăng bởi:
giadungviet
Cập nhật:
14/12/2013 - 09:37
Bếp điện từ, Bếp từ nhập khẩu chính hãng, Bếp từ an toàn, chất lượng tốt, Giá rẻ
-
790.000 ₫/ chiếc
Đăng bởi:
giadungviet
Cập nhật:
14/12/2013 - 09:36
Hỏi đáp liên quan
Xem tất cả
cách sử dụng của nồi hấp tiệt trùng galy
Đăng bởi:
tuyetanhyte
Cập nhật:
24/08/2015 - 15:08
Xửng hấp dimsum bằng tre mua ở đâu tại SG?
Đăng bởi:
chuot71084
Cập nhật:
21/08/2015 - 14:59
Mua bộ xoong nồi inox loại nào tốt?
Đăng bởi:
chuot71084
Cập nhật:
21/08/2015 - 14:58
Chảo chống dính loại nào tốt?
Đăng bởi:
alanvu1102
Cập nhật:
21/08/2015 - 14:56
Mua máy ép hoa quả ở đâu?
Đăng bởi:
alanvu1102
Cập nhật:
21/08/2015 - 14:55
Máy hút mùi hãng nào tốt?
Đăng bởi:
baobinh91
Cập nhật:
18/08/2015 - 13:42
Máy hút mùi cổ điển Faster FS 0470 dùng có tốt không? Có phải là hãng Malaysia không?
Đăng bởi:
bokubon178
Cập nhật:
18/08/2015 - 13:41
Đã ai dùng Hút mùi của Giovani chưa? có hút khỏe và êm không
Đăng bởi:
s2hasu
Cập nhật:
18/08/2015 - 13:38
Máy hút mùi của hãng nào tốt nhất ?
Đăng bởi:
minhphuong210287
Cập nhật:
18/08/2015 - 13:25
Bếp từ có thực sự tiết kiệm điện và an toàn không?
Đăng bởi:
shopbeptuduc
Cập nhật:
16/08/2015 - 11:02
Sản phẩm mới.
Lò nướng thủy tinh Asanzo OB-79
Sản phẩm nổi bật.
Makxim STAR MKS-902
Bigsun BO-12CGH
Saiko CO-514R
Durastar CKY-6F
Sanaky VH-188T
Nồi nướng đa năng Halogen FlavorWave Turbo
Nồi nướng Sunhouse SH-412
Nồi nướng thủy tinh Halogen Caribbean
DuraStar CKY686N
Lò nướng thủy tinh Gowell LR-812Y
Sản phẩm xem nhiều.
Matrix HC-905
Khuôn nướng Hamburger Gali SW-15
Sikma Halogen Oven CKY-686M
Nồi nướng Halogen Lekhoe
DuraStar CKY-5F
Khalux KL-658H
DuraStar CKY686N
Nồi nướng Sunhouse SH-410 12 lít
Tiger Queen AX-737M
Khaluck KL-658H
Nhiều gian hàng bán.
Gali GL-1100
Nồi nướng Sunhouse SH-412
Nồi nướng Sunhouse SH-410 12 lít
Daiwa TXG-A11
Gali CO-130D
Nồi nướng Sanaky VH-158T/D công suất 1300W
Nồi nướng đa năng Halogen FlavorWave Turbo
Khalux KL-658H
Sanaky VH-188D
Lò nướng Halogen Flavor Wave
Hàng công nghệ
>
Điện tử, điện máy
>
Đồ dùng trong bếp
>
Nồi nướng
(
Lò nướng giảm mỡ
,
khuân nướng giảm mỡ
,
nồi nướng đa năng
,
lo nuong giam mo
)
Trang thông tin, giá cả, cửa hàng bán, bình chọn, hỏi đáp về
Gali JE-2F
trong mục
Nồi nướng
Hỗ trợ vận chuyển
Hỗ trợ thanh toán online
Chấp nhận thanh toán
Điện thoại, viễn thông
Phụ kiện,thiết bị sửa chữa,...
Mobile
Thiết bị viễn thông
Dịch vụ viễn thông
Máy tính, linh kiện
Máy vi tính
Thiết bị cho máy tính
Máy văn phòng
Linh kiện, phụ kiện Laptop
Điện tử, điện máy
Thiết bị an ninh
Âm thanh
Đồ dùng trong bếp
Hình ảnh
Máy ảnh, máy quay
Thiết bị liên quan
Máy ảnh, máy quay
Dịch vụ chụp, rửa ảnh
Dịch vụ sửa chữa, thẩm định
Ô tô, xe máy, xe đạp
Ô tô (Xe hơi)
Xe máy, phụ tùng xe máy
Phụ tùng ô tô
Đồ chơi ô tô
Công nghiệp, Xây dựng
Thiết bị điện, nước
Xây dựng
Vật tư, thiết bị công nghiệp
Cơ khí chế tạo
Thời trang, phụ kiện
Thời trang nữ
Thời trang nam
Đồ trang sức
Đồng hồ đeo tay
Mẹ & Bé
Đồ dùng cho trẻ
Tắm gội, vệ sinh an toàn
Đồ cho bé khi ra ngoài
Đồ cho mẹ
Sức khỏe, sắc đẹp
Y tế, sức khỏe
Nước hoa - Mỹ phẩm khác
Chăm sóc da mặt
Đồ trang điểm
Đồ dùng sinh hoạt
Đồ dùng nhà bếp, phòng ăn
Các loại đồ khác
Đồ dùng cá nhân
Đồ điện gia dụng
Nội thất, ngoại thất
Nội thất không gian, tổng hợp
Nội thất phòng ngủ
Nội thất phòng khách
Đèn trang trí, chiếu sáng
Sách, văn phòng, quà tặng
Hoa, quà tặng, đồ chơi
Sách
Thiết bị văn phòng
Văn phòng phẩm
Thể thao
Bóng đá
Golf (gôn)
Tennis
Đồ lưu niệm
Dịch vụ, giải trí, du lịch
Du lịch
Dịch vụ vận tải, vận chuyển
In ấn
Game, đồ chơi
Thực phẩm, đồ uống
Đồ uống
Bánh kẹo, mứt
Thực phẩm tươi sống
Thực phẩm chín, qua chế biến
Vatgia.com - Sàn giao dịch thương mại điện tử hàng đầu Việt Nam
Mua hàng trực tuyến mang lại sự tiện lợi, chủ động, lựa chọn đa dạng, với các dịch vụ hỗ trợ mua hàng, bán hàng, thanh toán an toàn, giao hàng chuyên nghiệp.
Với phương châm “Luôn đặt mình vào địa vị khách hàng và đối xử trên mong đợi của họ”, Vatgia.com không ngừng nỗ lực, cải tiến đáp ứng nhu cầu mua sắm cho người tiêu dùng.
Vatgia đảm bảo cung cấp đúng thông tin cho đúng người, đúng lúc, đảm bảo thanh toán trực tuyến bảo mật an toàn, áp dụng hình thức vận chuyển nhanh phù hợp.
Rao vặt
|
Hỏi đáp
|
Review - Đánh giá
|
Lưu trữ rao vặt
|
Quà tết
|
Việc làm
|
Exciter 150
|
Dien thoai
|
Laptop
|
Mua ban oto
|
Xe may
|
iPhone 5
|
iPhone 5s
|
iPhone 6
|
iPhone 6 Plus
|
iPhone 4
|
iPhone 4s
|
Điện thoại iphone
|
Galaxy s5
|
Điện thoại samsung
|
HTC One
|
Điện thoại HTC
|
Nokia
|
Nokia lumia 625
|
Nokia lumia 520
|
Sony xperia z3
|
Sony xperia m
|
Sony xperia z1
|
Áo khoác đẹp
|
Áo khoác da
|
Áo khoác nam
|
Giày nam
|
Vest nam
|
Đầm công sở
|
Áo khoác nữ
|
Giày cao gót
|
Điện thoại sony
|
Bất động sản
|
Cho thue nha
|
Tìm việc
|
Máy lọc nước
|
Cách làm trắng da
|
Sim số đẹp
|
Lều, bạt
|
Tủ bếp
|
Món thịt Ếch
|
Đồ chơi laptop
|
Ghế phòng chờ
|
Cầu trục
|
Khách sạn Quảng Trị
|
Mainboard
|
Ngói
|
Nước ngọt, nước trái cây, đóng lon
|
Máy kiểm tra dây hàn
Giới thiệu
|
Hướng dẫn
|
Quy chế hoạt động
|
Chính sách bảo mật thông tin
Công ty Cổ phần Vật Giá Việt Nam. Số GCNDT: 011032001615, cấp ngày 21/06/2012, nơi cấp: UBND thành phố Hà Nội
Trụ sở chính: Lê Đại Hành, Hai Bà Trưng, Hà Nội - Chi nhánh Hồ Chí Minh: Đường Lữ Gia, Phường 15, Quận 11, Hồ Chí Minh
Tài khoản
Giỏ hàng
Đã xem
Ứng dụng

Set-Cookie: history_product=1853425%7C0; path=/

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0


text:
THỰC MỤC SỞ THỊ MAC OS NGAY TRÊN WINDOWS
Hẳn các bạn đã từng được nghe, được biết, được sử dụng hệ điều hành Mac chuyên dành cho các máy Mac của Apple, tuy nhiên để vọc hệ điều hành này trên máy sử dụng chip của Intel hoặc AMD là một điều dường như rất khó khăn, bài viết sau đây sẽ hướng dẫn các bạn cách cài đặt, sử dụng hệ điều hành này trên máy ảo VMWare, khi đã cài đặt, sử dụng thành thạo trên máy ảo, các bạn có thể tự tin làm trên máy thật
Đầu tiên chúng ta cần có hệ điều hành (HĐH) Mac OS iDeneb version 1.3 (10.5.5) dành cho chip Intel, AMD. Các bạn tải về theo địa chỉ. Hoặc download bằng file torrent tại địa chỉ: Dung lượng 4,37GB. Phần mềm tạo máy ảo VMWare 7.0 các bạn download tại địa chỉ: . Phần mềm này đã được giới thiệu trên echip rồi, các bạn có thể tham khảo cách cài đặt và hướng dẫn sử dụng tại
Sau khi tải HĐH Mac OS về và cài VMWare lên, các bạn tiến hành cài đặt, các bạn mở VMWare lên rồi tạo một máy ảo mới chọn đường dẫn đến file iso HĐH Mac mà chúng ta đã tải về, mục Guest operating system các bạn chọn Other mục Version cũng chọn là Other Sau đó nhấn Next và cài đặt như bình thường, sau khi bật máy ảo Mac đã tạo ở bước trên chúng ta tiến hành cài đặt, ở đây chỉ lưu ý là khi vào đến trình cài đặt các bạn phải format ổ cứng ảo về định dạng của Mac thì mới có thể cài đặt được, sau khi vào trình cài đặt bạn chọn Menu Utility rồi chọn Disk Utility để tiến hành định dạng ổ cứng ảo. Các bạn chọn Erase rồi chọn Mac OS Extended (Journaled) ở mục Volume Format để định dạng ổ cứng ảo, sau đó các bạn chọn Continue để tiếp tục cài đặt.
Nếu như các bạn cài trên máy thật thì các bạn phải xem xét thật kỹ cấu hình máy của mình rồi tích chọn vào các mục ở Patchers 10.5.5 Ready trong mục này các bạn sẽ thấy các mục con như Audio, Chipset, Network… Dựa vào cấu hình máy của mình để các bạn tích chọn, bước này rất quan trọng, tốt nhất các bạn làm nhiều lần trên máy ảo trước rồi hãy làm trên máy thật, và nếu làm trên máy thật lần thứ nhất không được thì làm lại lần tiếp thứ hai cho đến khi được thì thôi. Sau đó mới nhấn Install để cài đặt còn cài trên máy ảo thì các bạn có thể tích vào hết các mục trên là được, ở bước Cheking DVD các bạn có thể nhấn Skip để bỏ qua bước này, chờ quá trình cài đặt kết thúc
khi nào các bạn thấy dòng Install Succeeded thì có nghĩa là bạn đã cài đặt thành công. Tuy nhiên đến đây chưa phải là đã xong, sau khi cài đặt thành công đến bước cấu hình tài khoản và password các bạn phải khai báo chính xác, nhất là phần khai báo mạng các bạn chọn Using DHCP để máy tự nhận địa chỉ IP từ modem, sau khi cấu hình xong tài khoản các bạn mới có thể vọc được hệ điều hành đầy quyến rủ và mạnh mẽ này. Nào chúng ta cùng vọc thôi. Đây là hình ảnh của HĐH này trên máy ảo của tôi khi mới cài xong hệ điều hành, chưa có gì cả
Lưu ý: Bài viết trên đây của tôi không không phải là một bài viết chi tiết từng bước, không hướng dẫn các bạn từng bước cụ thể mà chỉ nhấn mạnh những điểm quan trọng cốt yếu mà thôi, còn lại tất cả các bạn phải tìm hiểu thêm tự mày mò thế mới đúng nghĩa là “Vọc” và các bạn sẽ thấy được niềm vui, niềm hạnh phúc khi tự mình làm được, còn vấn đề gì cần thắc mắc hoặc giúp đỡ các bạn có thể post trực tiếp lên đây để mọi người cùng ngâm cứu và giải đáp. Xin cảm ơn các bạn!!!
Thay đổi nội dung bởi nvv0003nm; 04-01-2011 lúc 00:52.
dinhngoan_itnn (08-08-2012),
dsl5044t (20-01-2012),
DUNG_CHUN (23-04-2012),
envicool (06-09-2011),
hoangnam_tr8 (26-06-2012),
lfork (09-05-2012)
mình thử rồi nhưng không boot được.
Còn mình thì vào cái màn hình tải con chuột hóa thành cái vòng đủ màu xoay xoay rồi chả thấy gì luôn cứ thế xoay mãi.
Chài, sao thế nhỉ? Mình làm ngon lành từ đầu đến đuôi mà, có vấn đề gì đâu nhỉ,
tviet quan Còn mình thì vào cái màn hình tải con chuột hóa thành cái vòng đủ màu xoay xoay rồi chả thấy gì luôn cứ thế xoay mãi. quay chán rồi cũng install được mà. phải công nhận là cài trên vmware mac os chạy chậm ko chịu được.chờ vào mac thoi mà đã mất hơn chục phút rồi, mặc dù đã setting lên 2/4gbram và tăng lên 2 core.ko biết các bạn khác mac chạy có nhanh ko vậy? ---------- Bài thêm lúc 19:57 ---------- Bài trước là lúc 19:51 ---------- pgtmxvc mình thử rồi nhưng không boot được. muốn boot được bạn phải chại file iso darwin trước.file iso đó là bootloader,sau đó vào bios ảo của vmware chỉnh lại physical dvd, đặt đĩa mac vào rồi mới cài. trong trường hợp báo lỗi ảo hóa, bạn phải vào bios máy thật,chỉnh enable chức năng ảo hóa.
lắm chuyện mac os có đẹp đâu.giao diện thì trắng bệch.thao tác chuột khó khăn(nút quá nhỏ),dùng không xem được phim trên mạng-không nghe được nhạc_(thiếu flash).máy thì chậm hơn cả win,động được bàn phím chờ gần chục phút.tóm lại mac không dùng cho phổ thông và cao cấp,chỉ có những thằng chập mới dùng mac os!
taihvtna lắm chuyện mac os có đẹp đâu.giao diện thì trắng bệch.thao tác chuột khó khăn(nút quá nhỏ),dùng không xem được phim trên mạng-không nghe được nhạc_(thiếu flash).máy thì chậm hơn cả win,động được bàn phím chờ gần chục phút.tóm lại mac không dùng cho phổ thông và cao cấp,chỉ có những thằng chập mới dùng mac os! Hì, vậy là 6,25% những người sử dụng máy tính đều bị chập roài, tất cả những lý do ông đưa ra đều sai toét. Vì chắc là ông dùng Mac trên máy có nền tảng dành cho Windows. Với lại bài này chỉ là "Vọc" thôi mà, hờ. Ông có hiểu từ "Vọc" nó có nghĩa thế nào không? Cái này người ta gọi là NCTRNH
@nvv0003mm ơi,ông hd giùm tui với,
yahoo: roundroyal
mail:
thank trc nhé :d
cấu hình máy mình core 2 dua 2.60GHz, ram 2GB, ổ cứng 500Gb, vga rời 512MB chạy nổi ko bạn, nếu chạy ko đc thì mình khỏi vọc
không boot được bạn ơi
Các bạn cho mình hỏi , máy của minh cấu hình như sau : Main G41 , Ram 2GB, E 6600, HDD 500GB , mình đã cài một máy ảo Linux, WinXP2, Win sever2003, chạy ngon lành , bây giờ mình muốn cài thêm hệ đề hành max-os nữa không biết có chạy nổi không ? Vì mình đang học mạng máy tính nên muốn khám phá các HDH,
Có bạn nào Pro thì chỉ giúp mình với
Thank trước nha
Đang thử nè, máy mình chạy 2 cái windows ảo 1 lúc còn được nữa là. 1 cái sử dụng VitualBox để chay Windows XP SP3, 1 cái VMware 7 để chạy Ubuntu 11.04, 2 cái đều chạy 1 lúc, có sao đâu mà các bác cứ kêu giật.
My PC:Main Foxconn 45GMX --- Intel Dual Core E2180 2.2Ghz(OC) --- Ram: DDR2 1x2 = 2Gb Bus 740Mhz(OC) --- Card: Intel GMA 950 224Mb - 64-bit(OC) NovaBench: Cùi wá các bác ạ
Máy mình ko thể dùng 2 core cho máy ảo, VNưảe chỉ chấp nhận 1 core thôi, nên mình thấy dùng chậm lắm (cài vào máy ảo mất 1 tiếng lận), lúc nào cpu cũng báo 100%, ko biết cài lên máy thật thì thế nào nhỉ? Chắc là nhẹ hơn vì ko phải chạy win 7- mình nghĩ thế, pro nào giúp vs
chào bạn mình đã cài Mac vào được trong máy ảo, nhưng bị hạn chế một vài thứ như sau: Máy ảo ko cài được vmware tool nên resolution máy Mac là 1280 x 1024 , không kết nối mạng được, ko share ổ đỉa với ổ đĩa thật được.
bạn có cách nào khác phục được tình trạng trên không, giúp đỡ giùm mình
Thanks bạn nhìu!!!
Thay đổi nội dung bởi hotunglam; 06-09-2011 lúc 17:22.
oh! hay ghê đó bạn ơi
giao diện trông thật tuyệt
Quy định và Điều khoản [V-Z]
Diễn Đàn Con

markdown:
THỰC MỤC SỞ THỊ MAC OS NGAY TRÊN WINDOWS
Hẳn các bạn đã từng được nghe, được biết, được sử dụng hệ điều hành Mac chuyên dành cho các máy Mac của Apple, tuy nhiên để vọc hệ điều hành này trên máy sử dụng chip của Intel hoặc AMD là một điều dường như rất khó khăn, bài viết sau đây sẽ hướng dẫn các bạn cách cài đặt, sử dụng hệ điều hành này trên máy ảo VMWare, khi đã cài đặt, sử dụng thành thạo trên máy ảo, các bạn có thể tự tin làm trên máy thật
Đầu tiên chúng ta cần có hệ điều hành (HĐH) Mac OS iDeneb version 1.3 (10.5.5) dành cho chip Intel, AMD. Các bạn tải về theo địa chỉ
[. Hoặc download bằng file torrent tại địa chỉ:] [Dung lượng 4,37GB. Phần mềm tạo máy ảo VMWare 7.0 các bạn download tại địa chỉ:] [. Phần mềm này đã được giới thiệu trên echip rồi, các bạn có thể tham khảo cách cài đặt và hướng dẫn sử dụng tại]
Sau khi tải HĐH Mac OS về và cài VMWare lên, các bạn tiến hành cài đặt, các bạn mở VMWare lên rồi tạo một máy ảo mới chọn đường dẫn đến file iso HĐH Mac mà chúng ta đã tải về, mục Guest operating system các bạn chọn Other mục Version cũng chọn là Other Sau đó nhấn Next và cài đặt như bình thường, sau khi bật máy ảo Mac đã tạo ở bước trên chúng ta tiến hành cài đặt, ở đây chỉ lưu ý là khi vào đến trình cài đặt các bạn phải format ổ cứng ảo về định dạng của Mac thì mới có thể cài đặt được, sau khi vào trình cài đặt bạn chọn Menu Utility rồi chọn Disk Utility để tiến hành định dạng ổ cứng ảo. Các bạn chọn Erase rồi chọn Mac OS Extended (Journaled) ở mục Volume Format để định dạng ổ cứng ảo, sau đó các bạn chọn Continue để tiếp tục cài đặt.
Nếu như các bạn cài trên máy thật thì các bạn phải xem xét thật kỹ cấu hình máy của mình rồi tích chọn vào các mục ở Patchers 10.5.5 Ready trong mục này các bạn sẽ thấy các mục con như Audio, Chipset, Network… Dựa vào cấu hình máy của mình để các bạn tích chọn, bước này rất quan trọng, tốt nhất các bạn làm nhiều lần trên máy ảo trước rồi hãy làm trên máy thật, và nếu làm trên máy thật lần thứ nhất không được thì làm lại lần tiếp thứ hai cho đến khi được thì thôi. Sau đó mới nhấn Install để cài đặt còn cài trên máy ảo thì các bạn có thể tích vào hết các mục trên là được, ở bước Cheking DVD các bạn có thể nhấn Skip để bỏ qua bước này, chờ quá trình cài đặt kết thúc
khi nào các bạn thấy dòng Install Succeeded thì có nghĩa là bạn đã cài đặt thành công. Tuy nhiên đến đây chưa phải là đã xong, sau khi cài đặt thành công đến bước cấu hình tài khoản và password các bạn phải khai báo chính xác, nhất là phần khai báo mạng các bạn chọn Using DHCP để máy tự nhận địa chỉ IP từ modem, sau khi cấu hình xong tài khoản các bạn mới có thể vọc được hệ điều hành đầy quyến rủ và mạnh mẽ này. Nào chúng ta cùng vọc thôi. Đây là hình ảnh của HĐH này trên máy ảo của tôi khi mới cài xong hệ điều hành, chưa có gì cả
Lưu ý: Bài viết trên đây của tôi không không phải là một bài viết chi tiết từng bước, không hướng dẫn các bạn từng bước cụ thể mà chỉ nhấn mạnh những điểm quan trọng cốt yếu mà thôi, còn lại tất cả các bạn phải tìm hiểu thêm tự mày mò thế mới đúng nghĩa là “Vọc” và các bạn sẽ thấy được niềm vui, niềm hạnh phúc khi tự mình làm được, còn vấn đề gì cần thắc mắc hoặc giúp đỡ các bạn có thể post trực tiếp lên đây để mọi người cùng ngâm cứu và giải đáp. Xin cảm ơn các bạn!!!

Set-Cookie: vbseo_loggedin=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/

Pragma: private