UET - Short Course

Get Started. It's Free
or sign up with your email address
UET - Short Course by Mind Map: UET - Short Course

1. Danh sách lớp & liên lạc

1.1. Tạo group hangout *gmail

1.2. Tạo fb group

2. Basic Knowledge

2.1. Java

2.1.1. Class - là template/loại để tạo instance / object (cả 2 cách gọi đều đúng)

2.1.2. Instance / Object là đối tượng được tạo ra từ Class

2.1.3. Mỗi Class có các fields (là các trường dữ liệu bên trong), khi có getter/setter (hàm để lấy ra, ghi vào) thì trở thành property (thuộc tính có thể tương tác)

2.1.4. Method/Function - hàm chức năng, gắn với object. Nếu khai là static, thì gắn với Class

2.1.5. Annotation @ là cách đánh dấu thuộc tính cho Class/Method/Property (và các thành phần khác) để xử lý

2.1.5.1. Khi biên dịch code

2.1.5.2. Khi xử lý code

2.1.5.3. Khi chạy runtime

2.2. Spring

2.2.1. Core của Spring là DI (Dependency Inject)

2.2.1.1. Cung cấp 1 cơ chế tạo object và quản lý object

2.2.1.2. Cơ chế để link / inject các object vào chỗ cần

2.2.2. Spring Boot là một tập hợp sẵn có các config tự động của Spring để build nhanh 1 thứ chạy được

2.2.2.1. Thường dùng để build Restful Service

2.2.2.2. Có kết nối / integration với rất nhiều các hệ thống framework, libraries khác; ví dụ: Hibernate dùng cho layer persistence của Spring, kết nối với hầu hết db phổ biến

3. Session 04

3.1. Code Guideline

3.1.1. AngularJS

3.1.1.1. Ý tưởng MVC Framework cho Javascript

3.1.1.2. Two-way-binding (kết nối dữ liệu 2 chiều giữa M = Model và V = View

3.1.1.3. Truy vấn dữ liệu nhiều cấp object.field.field

3.1.1.4. Dữ liệu JSON trả về từ server có thể dược sử dụng ngay bên client

3.1.2. Javascript

3.1.2.1. Dùng JSON là dạng dữ liệu mặc định, thể hiện chính cấu trúc object javascript

3.1.2.2. Mọi thứ trong javascript đều là object, có các cặp key - value

3.1.2.3. Format JSON

3.1.2.3.1. Array []

3.1.2.3.2. Object {}

3.1.2.3.3. "key":"value"

3.1.2.3.4. Mỗi cặp key - value phân cách = dấu , (phẩy)

3.2. Bài tuts

3.2.1. https://docs.google.com/document/d/1o3mRJwdioneZMfxKf_y1I7dL24znCGiGrIPm5TJSoEE/edit

3.2.2. 1. http://freetuts.net/tong-quan-ve-angularjs-200.html >> Tổng quan, khái niệm 2. http://viralpatel.net/blogs/angularjs-introduction-hello-world-tutorial/ >> Làm theo code để setup và chạy Hello world

4. Session 01

4.1. Kiến thức cơ bản

4.1.1. Các loại ứng dụng

4.1.1.1. PC / Mainframe (tất cả trong 1)

4.1.1.2. Client - Server

4.1.1.3. Mobile Application

4.1.1.4. Embedded

4.1.2. Client - Server

4.1.2.1. Là loại học trong course

4.1.2.2. Server là service

4.1.2.2.1. Phục vụ

4.1.2.2.2. Xử lý business

4.1.2.2.3. Xử lý dữ liệu tập trung

4.1.2.2.4. Bảo mật / Phân quyền

4.1.2.3. Client là ứng dụng phụ thuộc vào server

4.2. Cài đặt

4.2.1. Môi trường phát triển Java

4.2.1.1. JDK 1.8

4.2.1.1.1. JAVA_HOME trỏ vào thư mục cài JDK

4.2.1.1.2. PATH = %JAVA_HOME%\bin

4.2.1.1.3. http://www.oracle.com/technetwork/java/javase/downloads/index.html

4.2.1.2. Maven 3.x

4.2.1.2.1. MAVEN_HOME trỏ vào thư mục extract Maven

4.2.1.2.2. PATH = %MAVEN_HOME%\bin

4.2.1.2.3. https://maven.apache.org/download.cgi

4.2.1.3. Nên dùng User Environment Variable

4.2.2. Môi trường phát triển AngularJS

4.2.2.1. Node.JS 4.x (LTS = Long term support)

4.2.2.2. Bower

4.3. Tạo ứng dụng Spring Boot Data Rest từ template

4.3.1. Tải template project từ https://spring.io/guides/gs/accessing-data-rest/

4.3.2. Extract, mở thư mục complete, xóa gradle build script (dùng Maven)

4.3.3. Dùng Intellij mở thư mục complete (không mở thư mục bên trên, ko phải là thư mục project)

4.3.3.1. Lỗi 1: Intellij không nhận Maven -> Vào Settings > Plugins > kiểm tra Maven Integration plugin đã được bật lên chưa

4.3.3.2. Lỗi 2: Báo lỗi không tìm thấy thư viện import -> 1. Mở file pom.xml, nếu không thấy tên file hiển thị là tên project/module, chuột phải và chọn Add as Maven project. 2. Kiểm tra JDK đã được cài đặt cho Intellij, F4 / Open Module Settings; nếu chưa có JDK, chọn JDK từ thư mục đã cài.

4.3.3.3. Lỗi 3: Ko thấy thư viện tải về -> check kết nối mạng :)

4.4. Cấu hình cơ sở dữ liệu

4.4.1. 1. Tạo thư mục resources ngang cấp với thư mục src/main: src/main src/resources

4.4.2. 2. Tạo file application.properties trong thư mục resources

4.4.3. Cấu hình Java Connection String

4.4.3.1. spring.datasource.url=jdbc:h2:file:./session01

4.4.3.2. jdbc:xx:xx là connection string cho JDBC

4.4.3.3. Các mẫu connection string khác có thể tìm bằng cách google: mysql java connection string hoặc postgresql jdbc connection string

4.4.3.4. Hiện tại chỉ dùng connection string cho database H2 như mẫu

4.4.4. Cấu hình tự động tạo database

4.4.4.1. spring.jpa.hibernate.ddl-auto=create-drop

4.4.4.2. Có 4 chế độ

4.4.4.2.1. none

4.4.4.2.2. create

4.4.4.2.3. create-drop

4.4.4.2.4. validate

4.4.5. Cấu hình Dialect (phương ngữ)

4.4.5.1. spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

4.4.5.2. Các phương ngữ khác có thể tìm kiếm trong gói org.hibernate.dialect.*

4.4.5.3. Dùng shortcut Ctrl + Shift + N và chọn tìm kiếm cả Non project files, gõ *Dialect để xem các Dialect đang có.

4.5. Chuẩn bị cho buổi sau

4.5.1. ORM và JPA là gì ?

4.5.2. Restful và Hypermedia là gì ?

4.5.3. Spring HATEOAS

4.6. Setup kênh liên lạc (email & skype)

5. Session 02

5.1. Các khái niệm

5.1.1. Resource State

5.1.2. Hypermedia Links

5.1.3. JSON data

5.2. Thực hành

5.2.1. Tạo các entity Class, Person và Assets

5.2.2. Kết nối đối tượng cơ bản @OneToMany

5.2.3. Tạo/Sửa/Xóa dùng các phương thức của RESTful

6. Session 03

6.1. Programming Language

6.1.1. Compile to Binary (C++, Cobol...)

6.1.2. Compile to bytecode (có thể chạy trên máy ảo JVM, .NET Runtime) như Java, .NET

6.1.3. Interpreter (Javascript, PHP...)

6.2. Programming Methodologies

6.2.1. Structural Programming

6.2.2. Object Oriented Programming

6.2.3. Aspect Oriented Programming

6.2.4. Metadata Programming (Short = metaprogramming

6.2.5. Functional Programming

6.3. Java (continue)

6.3.1. Các class được đặt tên theo pattern (Adapter, Factory, Observer...

6.3.2. Instance / Object có thể được tạo bằng cách gọi new constructor Object a = new Object() - mặc định, ko tham số Object a = new Object(b, c) - có tham số

6.3.3. Việc đánh dấu annotation cho phép xử lý thêm

6.3.3.1. Generate thêm code

6.3.3.2. Instrument/nhét thêm instruction trong class/binary đã dịch ra lúc dịch / runtime

6.3.3.3. Xử lý lúc runtime

6.3.3.3.1. Chú ý cần phải cho phép annotation được nhìn thấy lúc runtime

6.4. Spring (continue)

6.4.1. Cơ chế tạo ra object riêng

6.4.1.1. Có definition / định nghĩa cửa object, được xác định bằng các @annotation như @Component, @Service, @Controller...

6.4.1.1.1. BeanDefinition

6.4.1.2. Có factory / nhà máy sản xuất các object đó dựa trên định nghĩa

6.4.1.2.1. BeanFactory

6.4.1.3. Có Pool / kho chứa các object đã tạo xong

6.4.1.4. Note: Có 1 cơ chế quét code đã dịch, để tìm ra định nghĩa của object

6.4.1.4.1. Class Scanner

6.4.2. Cơ chế DI

6.4.2.1. nhét object phụ thuộc vào cho object cần

6.4.3. Cơ chế IoC

6.4.3.1. tạo trước các object, link ngược từ nhánh lên cho các object trong cây phụ thuộc

6.5. Yêu cầu

6.5.1. Đọc hướng dẫn, mindmap, hỏi trong group FB

6.5.2. Hỏi các câu hỏi về mặt implement, lý thuyết khi đến lớp

6.6. Ghi chú khác

6.6.1. Check lại với thầy Hiếu để dãn lịch học