Thứ Năm, 4 tháng 9, 2014

Một số phím tắt thông dụng trong Eclipse

Ctrl + B : build project 
Ctrl + D : xóa dòng tại chứa con trỏ
Alt + mũi tên lên/xuống : di chuyển dòng hiện tại lên/xuống 
Ctrl + F : tìm chuỗi trong class 
Ctrl + H : mở nhanh màn hình search 
Ctrl + O : nhảy nhanh tới 1 hàm trong class 
Ctrl + E : nhảy nhanh tới 1 tab trong các tất cả các tab đang mở
Ctrl + W : đóng tab hiện tại
Ctrl + Shift + W : đóng toàn bộ các tab đang mở
Alt + mũi tên trái/phải : nhảy qua tab bên trái/phải 
Shift + Tab : tác dụng ngược lại với phím Tab
Ctrl + Shift + O : tự động import các gói còn thiếu, hoặc tự xóa các gói không dùng tới
Ctrl + Shift + C : comment, uncomment một đoạn code 
Ctrl + Shift + F : định dạng lại đoạn code theo chuẩn 
Alt + Shift + S, V : override hoặc implement một hàm
Alt + Shift + S, V : override hoặc implement một hàm
Alt + Shift + S, R : tạo hàm getter, setter cho field trong class
Alt + Shift + S, C : tạo hàm khởi tạo bằng cách override hàm khởi tạo lớp cha 
Alt + Shift + S, O : tạo hàm khởi tạo bằng các field trong class 
Ctrl+Shift+T : similar to Ctrl+Shift+R but less options (only classes or interfaces)
Ctrl+T : better than F3
Ctrl+E : listing hidden editor tabs
Ctrl + Shift + R Mở nhanh 1 file (Hiện ra bảng và ta nhập vào tên file cần mở, có thể sử dụng wildcard)
Ctrl + Shift + X CHUYỂN ĐOẠN ĐƯỢC CHỌN SANG CHỮ HOA
Ctrl + Shift + Y chuyển đoạn được chọn sang chữ thường

Java developers' skills

Domain

Java Technologies

Java EE TechnologiesEJB, Servlets, JSP, JDBC, JNDI, RMI/IIOP, JTA/JTS, Java Persistence API, JMS, JavaMail, JSF, JCA
Client/Desktop ApplicationsHTML/ XHTML, JavaScript, Applet, Java ME, Java SE, SWING, SWT, Eclipse RCP, Adobe Flex, ActiveX, FreeMarker, WebWork, JasperReport, Wicket, Tapestry
Rich Internet Applications (RIA)Google Web Toolkit (GWT), Adobe Flex/AIR, OpenLaszlo, Eclipse RAP, Dojo, JQuery, JavaFX, Ajax
Web Servers & Application ServersApache Tomcat, JBoss, Geronimo, IBM WebSphere, Oracle AS
Integration & Collaboration ToolsSpring Framework, JMS, JCA connectors, JDBC, IBM WebSphere MQ, IBM WebSphere Portal, IBM Workplace, Oracle Portal, Clearspace
Web ServicesWSDL, SOAP, WS-I, UDDI, JAX-WS, AXIS, XML RPC, WS-Security, JAX-RS, REST
Databases/Java Database FrameworksIBM DB2, Oracle, PostgreSQL, Informix, Interbase, Sybase, MS SQL, MySQL, Oracle TopLink, Oracle XML DB, Hibernate, iBatis, Java Persistence API (JPA)
SOA / Business OrientedBPEL, BPEL4WS, IBM WebSphere Business Process Choreographer, Swordfish SOA Runtime Framework, ESB, IBM WebSphere Process Server
Cloud ComputingAmazon EC2, Google App Engine, Microsoft's Windows Azure Platform
Eclipse RelatedEclipse RCP, Equinox OSGi, Business Intelligence and Reporting Tools (BIRT), GMF, GEF, EMF, DTP, e4, Eclipse RAP
Emerging TechnologiesAutonomic Computing, GRID, Terracota, J9 JVM, Maven

Thứ Bảy, 14 tháng 6, 2014

Những lời khuyên hữu ích khi làm viêc với SQL

Nếu bạn muốn có hiệu quả tốt nhất khi làm việc với SQL, giảm thiểu sai sót và nhận được hiệu suất truy vấn tốt. Bạn nên tham khảo nhưng điểm tối sẽ nêu dưới đây. 
                    
1. Tối ưu thiết kế SQL
- Dánh partition những table có dữ liệu lớn(Từ 2G trở lên)
+ Với dữ liệu lịch sử thì đánh theo By Range;
+ Với dữ liệu xác định trước được giá trị thì đánh theo By list;
+ Với dữ liệu không có quy luật thì đánh theo By Hash.
- Đánh index những trường hay tìm kiếm(Ưu tiên number)
- Đối với những table có dữ liệu lớn:
+ Hạn chế dùng khóa ngoại
+ Hạn chế dùng Trigger
+ Nếu có tần suất update & insert lớn không nên dùng khóa chính.

2. Tối ưu câu lệnh truy vấn và tác động vào các bảng đã đánh partition, indexing
- Tất cả các câu lệnh đều phải có index, không câu lệnh nào được quét full bảng.
- Nếu bảng có partition thì trong điều kiện câu lệnh phải có thêm trường partition, ngoại trừ 1 số trường hợp đặc biệt
- Khi join 2 bảng với nhau thì bảng có dữ liệu lớn hơn phải có index
- Trong câu lệnh không dùng điều kiện is null, phải chuyển sang phương án dùng các toán tử : >, < = ….
- Với các bảng tmp có dữ liệu trong quá trình chạy và xóa dữ liệu sau khi chạy (không cần backup dữ liệu) :
+ Tạo bảng ở chế độ Nologging
+ Khi insert phải dùng /*+Append*/
+ Nếu muốn xóa cả bảng hoặc 1 partition của bảng phải dùng câu lệnh truncate.
+ Hạn chế sử dụng câu lệnh update, cần tối ưu câu lệnh insert và select

3. Yêu cầu trong các câu lệnh tạo View:
- Trong view không thêm trường ’ảo’ của Database vì khi câu lệnh select vào view có thể sẽ bị quét full bảng.
- Hạn chế sử dụng view lồng nhau, tối đa chỉ dùng 2 view lồng nhau
- Nếu cần hint index trong câu lệnh truy vấn vào view thì cần hint trong câu lệnh tạo view, không hint vào trong câu lệnh select vào view

4. Yêu cầu tối ưu câu lệnh truy vấn vào Database
- Yêu cầu tối ưu lệnh select:
+ Không thực hiện select * dữ liệu trong bảng, phải chỉ rõ các trường cần select
+ Chỉ thực hiện select số num row cần sử dụng  (càng ít num row hiệu suất truy vấn dữ liệu càng nhanh)
- Giảm thiểu số lượng Subqueries trong truy vấn
- Sử dụng IN và EXISTS một cách thích hợp trong câu lệnh truy vấn
- Sử dụng EXISTS và DISTINCT khi join các bảng có quan hệ 1 nhiều
- Thay thế UNION ALL cho UNION
- Yêu cầu với câu lệnh WHERE
+ Điều kiện where khi dùng is not phải chuyển sang dùng các toán tử : >, < =
+ Điều kiện where khi dùng điều kiện kép lớn hơn hoặc nhỏ hơn trong khoảng, phải chuyển sang sử dụng BETWEEN
- Sử dụng JOIN thay cho Subqueries để tăng hiệu suất truy vấn
- Không sử dụng toán tử OR trong câu lệnh truy vấn bảng có dữ liệu lớn
- Đánh index cho foreign key trên bảng con