Các cách thực hành tốt nhất để phát triển các trình cắm thêm Eclipse

Sử dụng các dấu hiệu, các chú thích, và các trình trang trí

Hướng dẫn này nêu bật các cách thực hành tốt nhất khi đánh dấu thông tin theo tài nguyên bằng cách sử dụng các dấu hiệu và sau đó giới thiệu các chú thích và các trình trang trí mà bạn sử dụng để làm nổi bật các dấu hiệu trong bàn làm việc. Bằng cách mở rộng các điểm mở rộng, bạn có thể tái sử dụng và thích ứng với các hàm dựng sẵn trong Eclipse và thực hiện đánh dấu tài nguyên cao cấp, ví du như di chuyển một dấu văn bản khi soạn thảo văn bản. Chúng ta thảo luận về các phương pháp lợi dụng mô hình trình cắm thêm, cho phép cho một trình cắm thêm hiệu quả, có hiệu năng cao và dáng vẻ và cảm nhận tích hợp.

Andy Flatt, Nhà phát triển phần mềm, IBM

Photo of Andy FlattAndy Flatt là một nhà phát triển tại Phòng thí nghiệm phát triển phần mềm Vương quốc Anh của IBM ở Hursley. Kiến thức của ông bao gồm Java, Hiệu năng Java, OSGi và thử nghiệm tích hợp. Trước khi phát triển phần mềm, Andy đã nghiên cứu tại trường Đại học Hertfordshire, nơi ông nhận bằng Cử nhân khoa học danh dự hạng nhất về Khoa học Máy tính. Có thể liên hệ với ông tại aflatt@uk.ibm.com.


Cấp độ đóng góp cho developerWorks của
        tác giả

Mickael Maison, Nhà phát triển phần mềm, IBM

Photo of Mickael MaisonKể từ khi gia nhập IBM vào giữa năm 2009, Mickael vẫn đang làm việc trong phòng Các phân phối thời gian chạy của Trung tâm Công nghệ Java của IBM. Sau khi làm việc trong nhóm Hỗ trợ L3 cho Java SDK của IBM, anh chuyển sang vai trò của nhà phát triển. Trong lúc rảnh rỗi, Mickael thích âm nhạc và đi du lịch.



05 01 2012

Giới thiệu

Khi phát triển một trình cắm thêm cho một môi trường Eclipse của IDE, bạn có nhận xét về một số thiết kế. Các nhận xét này đảm bảo rằng bạn:

  • Không khóa luồng giao diện người dùng.
  • Trang trí giao diện người dùng không làm ảnh hưởng đến hiệu năng.
  • Xử lý dữ liệu ở chế độ nền.

Hướng dẫn này thảo luận về cách xử lý và hiển thị dữ liệu gắn liền với các tài nguyên được lưu trữ trong vùng làm việc với các nhận xét thiết kế này. Chúng ta sẽ xem xét cách Eclipse cung cấp một giao diện dấu hiệu để lưu trữ và xử lý thông tin về một tài nguyên.

Chúng ta cung cấp cách thực hành tốt nhất để xử lý các dấu hiệu dữ liệu dựa vào tài nguyên. Trước tiên, chúng ta chỉ ra cách đánh dấu dữ liệu, sau đó xây dựng kiến thức để biểu diễn dấu hiệu trên giao diện người dùng, rồi cập nhật dấu hiệu này khi tài nguyên thay đổi. Trong ngữ cảnh này, các tài nguyên là các đối tượng Eclipse thực hiện giao diện IResource, như các dự án, các tệp, các thư mục và các đối tượng Java™ (bao gồm cả các gói, các lớp và nguồn).

Hướng dẫn này dành cho các nhà phát triển, những người có thể viết một trình cắm thêm cơ bản nhưng muốn tìm hiểu các cách thực hành tốt nhất khi xử lý các tài nguyên của Eclipse.

Eclipse.org cung cấp các giao diện và các điểm mở rộng riêng. Bài này giúp đỡ lựa chọn các cách thực hành tốt nhất về sử dụng chúng theo tổ hợp. Đọc thêm về tìm hiểu cách lợi dụng các hàm Eclipse hiện có để cung cấp các tính năng mới.


Phần 1: Tạo dấu hiệu riêng của bạn

Các dấu hiệu là gì?

Các dấu hiệu được sử dụng để liên kết thông tin với một tài nguyên mà không cần phải thay đổi tài nguyên đó. Các ví dụ phổ biến về thông tin đánh dấu là các điểm ngắt, các đánh dấu trang và các lỗi biên dịch. Khi lấy ví dụ về lỗi biên dịch, mỗi khi thực hiện một công việc biên dịch, công việc đó sẽ xem kỹ nguồn và nêu bật các lỗi bằng cách tạo ra một dấu hiệu mới.

Mở rộng các dấu hiệu

Trong phần đầu của hướng dẫn này, chúng ta sẽ tạo ra kiểu dấu hiệu riêng của mình. Thực hiện điều này bằng cách sử dụng điểm mở rộng của dấu hiệu và chỉ viết một dòng mã.

Bạn có thể tạo các dấu hiệu riêng của mình bằng cách mở rộng điểm mở rộng của IMarker là org.eclipse.core.resources.markers. Bắt đầu bằng cách thêm đoạn mã trong Liệt kê 1 vào tệp plugin.xml của bạn. Điều này tức là bạn sẽ tạo một dấu hiệu gọi là My Marker với mã định danh là com.ibm.mymarkers.mymarker. Siêu kiểu của nó là org.eclipse.core.resources.marker. Đây là kiểu dấu hiệu cơ bản nhất. Bạn có thể mở rộng các siêu kiểu khác cung cấp các hàm cụ thể hơn một chút. Các siêu kiểu khác có sẵn là:

  • org.eclipse.core.resources.problemmarker
  • org.eclipse.core.resources.textmarker

Lưu ý: Bạn có thể sử dụng nhiều siêu kiểu cho phù hợp.

Liệt kê 1. Định nghĩa mở rộng dấu hiệu từ plugin.xml
<extension point="org.eclipse.core.resources.markers" id="com.ibm.mymarkers.mymarker"
  name="My Marker">
	<super type="org.eclipse.core.resources.marker"/>
	<persistent value="false"/><attribute name="description"/>
</extension>

Lưu ý hai phần tử persistentattribute trong Liệt kê 1. Đây là các đặc tính được cấp cho dấu hiệu mymarker. Sự tồn tại lâu bền (persistent) nói rõ có cần lưu trữ các dấu hiệu này trong vùng làm việc không. Ngoài ra còn có một thuộc tính (attribute) mới là description được cấp cho mymarker.

Sử dụng dấu hiệu mới

Bạn có thể tạo một dấu hiệu bằng cách gọi phương thức createMarker dựa trên tài nguyên mong muốn. Ngoài ra bạn có thể muốn thiết lập các thuộc tính của nó.

Có thể sử dụng phương thức được thể hiện trong Liệt kê 2 để tạo ra một dấu hiệu. Đầu vào cần thiết duy nhất của nó là IResource liên kết đến dấu hiệu. Sau khi đã tạo, bạn có thể thiết lập các thuộc tính của nó.

Liệt kê 2. Mã Java tạo kiểu dấu hiệu mới
public static IMarker createMarker(IResource res)
throws CoreException {
       IMarker marker = null;
       //note: you use the id that is defined in your plugin.xml
       marker = res.createMarker("com.ibm.mymarkers.mymarker");
       marker.setAttribute("description," "this is one of my markers");
       //note: you can also use attributes from your supertype
       marker.setAttribute(IMarker.MESSAGE, "My Marker");
       return marker;
}

Tìm dấu hiệu của bạn

Để tìm các dấu hiệu gắn liền với một IResource bạn có thể truy vấn đến một tài nguyên để lấy tất cả các dấu hiệu của một id cụ thể và chỉ rõ có tìm kiếm các tài nguyên liên quan không. Để tìm kiếm các dấu hiệu, gọi phương thức findMarkers dựa trên tài nguyên đó. Quy định các đối số ví dụ như các kiểu dấu hiệu và độ sâu (depth) tìm kiếm.

Đoạn mã trong Liệt kê 3 tìm các dấu hiệu có liên kết trực tiếp với tài nguyên đó bằng cách sử dụng đối số IResource.DEPTH_ZERO.

Liệt kê 3. Mã Java tìm kiểu dấu hiệu mới
public static final String MARKER = "com.ibm.mymarkers.mymarker";

public static List<IMarker> findMarkers(IResource resource) {
        try {
               return Arrays.asList(resource.findMarkers(MARKER, true, 
	IResource.DEPTH_ZERO));
        } catch (CoreException e) {
               return new ArrayList<IMarker>();
        }
    }

Việc thay đổi độ sâu tài nguyên cho IResource.DEPTH_INFINITE sẽ trả về tất cả các dấu hiệu có liên quan đến tài nguyên này hoặc bất kỳ các tài nguyên con nào. Ví dụ, bạn có thể chuyển giao một gói và lấy tất cả các dấu hiệu có liên kết với các tài nguyên từ gói đó.


Phần 2: Hiển thị và cập nhật các dấu hiệu bằng cách sử dụng các chú thích

Chú thích là gì?

Các chú thích được sử dụng để đánh dấu một vùng văn bản trong một trình soạn thảo. Chúng được sử dụng rộng rãi trong Eclipse để hiển thị thông tin như các lỗi, các cảnh báo, các vấn đề xây dựng, các nhiệm vụ hoặc các điểm ngắt. Các chú thích có thể nhìn thấy trên các thước thẳng của trình soạn thảo và các văn bản. Hình 1 cho thấy một chú thích hiển thị một lỗi cú pháp.

Hình 1. Ví dụ về một chú thích
Ảnh chụp màn hình hiển thị một tam giác màu xanh lá cây và một vòng tròn màu đỏ có chữ X trắng X trong thanh ghi chú đến bên trái của một vài đoạn mã Java trong cửa sổ chỉnh sửa

Các công cụ phổ biến của các chú thích tạo ra các dấu chữ thập trong khi phân tích cú pháp tệp và chọn ra những thứ như các lỗi và các thẻ "cần làm". Việc này thường được hoàn thành trong lúc xây dựng. Các chú thích khác được liên kết đến các dấu hiệu tồn tại lâu bền như các điểm ngắt. Ví dụ này sử dụng một dấu hiệu tồn tại lâu bền.

Cách mà người sử dụng xem các chú thích có thể được tùy chỉnh trong ô preferences (các sở thích) trong General > Editors > Text Editors > Annotations. Điều này có nghĩa là không cần công việc bổ sung nào để cho phép tùy chỉnh về các chú thích của người dùng.

Hình 2. Một ảnh chụp màn hình của ô các sở thích của chú thích
Ảnh chụp màn hình hiển thị các sở thích ghi chú với một danh sách các ký hiệu và các ý nghĩa của chúng

Xem ảnh Hình 2 lớn hơn.

Các đặc tính của điểm mở rộng của dấu hiệu

Trong phần 1 của hướng dẫn này, dấu hiệu này chỉ mới mở rộng kiểu dấu hiệu mặc định. Trong Phần 2, chúng ta sẽ mở rộng kiểu dấu hiệu văn bản sao cho chúng ta có thể đánh dấu một vị trí văn bản. Kiểu này định nghĩa hai thuộc tính quan trọng: charStartcharEnd. Chúng ta cũng muốn dấu hiệu tồn tại lâu bền giữa các phiên làm việc, vì vậy chúng ta thay đổi giá trị tồn tại lâu bền là true (đúng). Để làm điều này, chúng ta cần phải cập nhật dấu hiệu như đã định nghĩa trong Liệt kê 4.

Liệt kê 4. Định nghĩa mở rộng dấu hiệu từ plugin.xml
<extension point="org.eclipse.core.resources.markers" id="com.ibm.mymarkers.mymarker"
  name="My Marker">
	<super type="org.eclipse.core.resources.textmarker"/>
	<super type="org.eclipse.core.resources.marker"/>
	<persistent value="true"/>
</extension>

Định nghĩa mở rộng đặc tả chú thích của bạn

Để tạo ra các chú thích riêng của bạn, hãy sử dụng điểm mở rộng org.eclipse.ui.editors.markerAnnotationSpecification (Xem Liệt kê 5.) Điều này định nghĩa các đặc tính của chú thích và các tùy chọn hiển thị mặc định của nó.

Liệt kê 5. Định nghĩa mở rộng chú thích từ plugin.xml
<extension point="org.eclipse.ui.editors.markerAnnotationSpecification"
		id="myannotationspecification" name="MyAnnotation">
	<specification annotationType="com.ibm.example.myannotation"
			label="MyAnnotation"
			icon="icons/sample.gif"
			overviewRulerPreferenceKey="clruler"
			overviewRulerPreferenceValue="true"
			colorPreferenceKey="clcolor"
			colorPreferenceValue="255,255,0"
			textPreferenceKey="cltext"
			textPreferenceValue="true"
			verticalRulerPreferenceKey="clvertical"
			verticalRulerPreferenceValue="true"
			textStylePreferenceKey="clstyle"
			textStylePreferenceValue="BOX">
	</specification>
</extension>

Các phần của XML, mà chúng ta sẽ sử dụng để liên kết đến đặc tả này, là các thuộc tính idannotationType. Eclipse.org cung cấp các thuộc tính khác được sử dụng cho tùy chỉnh (xem phần Tài nguyên).

Bước tiếp theo là liên kết dấu hiệu hiện có với đặc tả chú thích mới bằng cách sử dụng điểm mở rộng org.eclipse.ui.editors.annotationTypes. Chúng ta liên kết đặc tả này bằng cách sử dụng kiểu chú thích từ đặc tả này và id từ định nghĩa dấu hiệu.

Liệt kê 6. Định nghĩa kiểu chú thích từ plugin.xml

Nhấp vào để xem mã nguồn

Liệt kê 6. Định nghĩa kiểu chú thích từ plugin.xml

<extension point="org.eclipse.ui.editors.annotationTypes">
                <type markerSeverity="0"
                                        super="org.eclipse.ui.workbench.texteditor.info"
                                        name="com.ibm.example.myannotation"markerType="com.ibm.mymarkers.mymarker"/>
</extension>

Xem phần Tài nguyên để tìm thêm thông tin về điểm mở rộng này từ Eclipse.org.

Tạo và thêm một chú thích vào trình soạn thảo

Đoạn mã trong Liệt kê 7 được sử dụng để tạo và thêm chú thích vào một trình soạn thảo.

Liệt kê 7. Thêm một chú thích mới vào trình soạn thảo
public static void addAnnotation(IMarker marker, ITextSelection selection, 
							ITextEditor editor) {
      //The DocumentProvider enables to get the document currently loaded in the editor
      IDocumentProvider idp = editor.getDocumentProvider();

      //This is the document we want to connect to. This is taken from 
      //the current editor input.
      IDocument document = idp.getDocument(editor.getEditorInput());

      //The IannotationModel enables to add/remove/change annotation to a Document 
      //loaded in an Editor
      IAnnotationModel iamf = idp.getAnnotationModel(editor.getEditorInput());

      //Note: The annotation type id specify that you want to create one of your 
      //annotations
      SimpleMarkerAnnotation ma = new SimpleMarkerAnnotation(
				“com.ibm.example.myannotation”,marker);

      //Finally add the new annotation to the model
      iamf.connect(document);
      iamf.addAnnotation(ma,newPosition(selection.getOffset(),selection.getLength()));
      iamf.disconnect(document);
}

Giữ dấu hiệu và chú thích đồng bộ với nhau

Mô hình chú thích giải quyết việc di chuyển chú thích khi chỉnh sửa tài liệu. Tuy nhiên, mô hình này không cập nhật các thuộc tính của dấu hiệu khi di chuyển các chú thích. Trong trường hợp này, chúng ta muốn cập nhật các thuộc tính charStartcharEnd của dấu hiệu. Điểm mở rộng cuối cùng này là trình cập nhật dấu hiệu. Trình này định nghĩa một lớp được sử dụng để cập nhật các dấu hiệu khi di chuyển một chú thích.

Liệt kê 8. Định nghĩa trình cập nhật dấu hiệu từ plugin.xml
<extension point="org.eclipse.ui.editors.markerUpdaters"> 
               <updater
                       id="com.ibm.example.MarkerUpdater"
                       class="com.ibm.example.mymarker.MarkerUpdater"
                       markerType="com.ibm.mymarkers.mymarker">
               </updater>
</extension>:

Chúng ta sử dụng giao diện IMarkerUpdater để cung cấp đoạn mã mà chúng ta muốn thực hiện khi di chuyển chú thích của chúng ta. Lớp được hiển thị trong Liệt kê 9 là trình cập nhật dấu hiệu của chúng ta. Mã mà chúng ta quan tâm là phương thức updateMarker. Ở đây chúng ta đang sử dụng nó để cập nhật các thuộc tính charStartcharEnd của dấu hiệu.

Liệt kê 9. Mã của trình cập nhật dấu hiệu
public class MarkerUpdater implements IMarkerUpdater {
       /*
       *Returns the attributes for which this updater is responsible.
       *If the result is null, the updater assumes responsibility for any attributes.
       */
       @Override
       public String[] getAttribute() {
            return null;
       }

       @Override
       public String getMarkerType() {
             //returns the marker type that we are interested in updating
            return "com.ibm.mymarkers.mymarker";
       }

       @Override
       public boolean updateMarker(IMarker marker, IDocument doc, Position position) {
             try {
                 int start = position.getOffset();
                   int end = position.getOffset() + position.getLength();
                   marker.setAttribute(IMarker.CHAR_START, start);
                   marker.setAttribute(IMarker.CHAR_END, end);
                   return true;
             } catch (CoreException e) {
                   return false;
             }
       }
}

Trình trang trí là gì?

Trong Eclipse, các trình trang trí được sử dụng để thêm thông tin trực quan cho các đối tượng trong bàn làm việc. Thông thường, chúng hiển thị kiểu đối tượng và bất kỳ các đặc tính chủ chốt nào hiện đang liên kết với đối tượng đó. Hình 3 cho thấy cách hiển thị các trình trang trí trong trình thám hiểm gói cho người dùng. Các trình trang trí cho thấy các mục nào là các tệp nguồn hay các gói Java và cho thấy các biểu tượng của dấu hiệu cho nguồn và các gói có chứa các cảnh báo hoặc các lỗi. Ở đây các trình trang trí cũng được sử dụng để thêm các thông tin chi tiết về nhóm, ví dụ như liệu các tệp có đồng bộ hay không đồng bộ với kho lưu trữ không.

Hình 3. Các gói và nguồn được trang trí bằng các biểu tượng ký hiệu
Ảnh chụp màn hình hiển thị các ký hiệu nhỏ ví dụ như các vòng tròn màu vàng và các mũi tên màu đỏ được thêm vào biểu tượng tệp

Định nghĩa trình trang trí riêng của bạn

Bước đầu tiên để thêm trình trang trí của chúng ta là mở rộng điểm mở rộng org.eclipse.ui.decorators. Nó cho phép định nghĩa một trình trang trí mới và chọn sẽ trang trí loại đối tượng nào.

Các trường quan trọng ở đây là:

  • class (lớp), — phải là tên đủ điều kiện đầy đủ của một lớp thực hiện ILightweightLabelDecorator (khi lightweight (trọng số nhẹ) được thiết lập là true).
  • enablement (hỗ trợ), — chứa danh sách của các đối tượng Eclipse được trình trang trí áp dụng.
Liệt kê 10. Định nghĩa trình trang trí từ plugin.xml
<extension point="org.eclipse.ui.decorators">  
	<decorator   id="com.ibm.example.filedecorator"   
			label="MyMarker Decorator"   
			state="true"   
			class= "com.ibm.example.mymarker.FileDecorator"   
			adaptable="true"   
			lightweight="true">   
		<enablement>
			<objectClass name="org.eclipse.core.resources.IResource"/>   
		</enablement>  
	</decorator>
</extension>

Xem Tài nguyên để biết thêm tài liệu hướng dẫn về điểm mở rộng từ Eclipse.org.

Lưu ý: Trọng số nhẹ so với trọng số nặng hơn (Non-Lightweight): Theo API, các trình trang trí có trọng số nặng hơn có thể không được tán thành trong các phiên bản tương lai của Eclipse.

Lớp của trình trang trí tệp của chúng ta

Chúng ta cần thực hiện lớp FileDecorator để xác định hành vi của trình trang trí của chúng ta. Lớp này phải thực hiện ILightweightLabelDecorator. Đó là ý tưởng tốt để dùng nó mở rộng LabelProvider vì điều này sẽ cho phép chúng ta chỉ ghi đè lên phương thức mà chúng ta quan tâm, đó là decorate().

Việc thực hiện cơ bản của decorate() được hiển thị trong Liệt kê 11.

Liệt kê 11. Việc thực hiện cơ bản của decorate()
public void decorate(Object resource, IDecoration decoration)  {
	decoration.addOverlay(ImageDescriptor.createFromFile(FileDecorator.class, 
					"/icons/sample.gif"), IDecoration.TOP_RIGHT);
	decoration.addPrefix("My Prefix ");
	decoration.addSuffix(" My Suffix");
}

Đối tượng IDecoration cũng cho phép tùy chỉnh phông chữ và màu văn bản/nền.

Hình 4. Một ảnh chụp màn hình của đoạn mã trong IResources trang trí của Liệt kê 11
Ảnh chụp màn hình hiển thị các kết quả về mã đã thực hiện, đặt các trang trí trên các biểu tượng tệp

Có thể sử dụng đối số đầu tiên của decorate() để lọc các tài nguyên mà chúng ta muốn trang trí. Nếu chúng ta chỉ muốn trang trí các tài nguyên có chứa các dấu hiệu cụ thể, thì chúng ta sử dụng mã được ví dụ trong Liệt kê 12.

Liệt kê 12. Trang trí các tài nguyên với các dấu hiệu cụ thể
public void decorate(Object resource, IDecoration decoration) {
	if(resource instanceof IResource){
		List<IMarker> markers = MyMarkerFactory.findMarkers((IResource) resource);
		if (markers.size() > 0) {
			decoration.addSuffix("  Marker !!");
		}
	}
}

Bạn đã làm theo hướng dẫn này, tiếp theo là gì?

Các cải tiến nâng cao có thể bao gồm:

  • Thêm các đặc tính có thể chỉnh sửa được cho các dấu hiệu. Cho phép người dùng thay đổi trạng thái của các dấu hiệu.
  • Tự động hóa việc tạo và xóa các dấu hiệu. Sử dụng các công việc xử lý nền để tạo, cập nhật, và xóa các dấu hiệu tự động.
  • Tùy chỉnh các cách di chuột của dấu hiệu. Sử dụng các cách di chuột của dấu hiệu trước để hỗ trợ nội dung đa phương tiện hoặc HTML.

Trong hướng dẫn này, chúng ta đã sử dụng Eclipse để dễ dàng tạo và tùy chỉnh các dấu hiệu và thực hiện đánh dấu tài nguyên cao cấp. Các nhà phát triển được khuyến khích sử dụng công cụ đơn giản, nhưng mạnh mẽ này để tích hợp hoàn hảo các trình cắm thêm của họ vào IDE của Eclipse. Tuy nhiên, hãy nhớ rằng tính năng này có thể trở nên gây khó khăn cho người dùng nếu được thực hiện quá rộng rãi. Hơn nữa, để duy trì dáng vẻ và cảm nhận của Eclipse bằng cách lưu tâm đến Các hướng dẫn Giao diện người dùng của Eclipse là trách nhiệm của nhà phát triển, xem phần Tài nguyên.


Các tải về

Mô tảTênKích thước
Code from Part 1Marker.zip13KB
Code from Part 2Annotation.zip16.3KB
Code from Part 3Decorator.zip18.2KB

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

  • Chợ Eclipse là một cổng thông tin thuận tiện, nơi bạn có thể tìm thấy mã nguồn mở và các dịch vụ thương mại liên quan đến Eclipse. Nếu bạn đã tải về Indigo thông qua một gói, bạn sẽ có quyền truy cập vào Máy khách của chợ Eclipse.

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Nguồn mở, Công nghệ Java
ArticleID=783948
ArticleTitle=Các cách thực hành tốt nhất để phát triển các trình cắm thêm Eclipse
publish-date=01052012