Bài 5: Lập trình hướng đối tượng trong java

Java là một ngôn ngữ lập trình hướng đối tượng vì vậy nó cũng hỗ trợ các đặc tính của lập trình hướng đối tượng:

  • Đa hình (Polymorphism)
  • Thừa kế (Inheritance)
  • Đóng gói (Encapsulation)
  • Trừu tượng (Abstraction)

Đối tượng trong lập trình Java:

Nếu chúng ta xem xét thực tế chúng ta có thể tìm thấy nhiều đồ vật xung quanh chúng ta: ô tô, chó, con người, v.v… Tất cả các đối tượng này đều có thuộc tính và hành vi.

Nếu chúng ta xem xét một con chó, thuộc tính của nó sẽ là – tên, giống, màu sắc, và các hành vi là: sủa, vẫy, chạy, cắn…Nếu bạn so sánh các đối tượng trong phần mềm với một đối tượng trong thế giới thực, chúng sẽ có đặc điểm rất giống nhau: thuộc tính đối tượng trong phần mềm được lưu trữ trong trường (field) và hành vi được lưu trữ trong phương thức (method).

Class: Chúng ta có thể xem lớp như một khuôn mẫu (template) của đối tượng (Object). Trong đó bao gồm dữ liệu của đối tượng (fields hay properties) và các phương thức(methods) tác động lên thành phần dữ liệu đó gọi là các phương thức của lớp.

Ví dụ:

public class Student{
   String name;
   int id;
   
   void registerCourse(){
   }
    
   void removeCourse(){
   }


}

Cách khai báo:

class<ClassName>
{
<kiểudữ liệu> <field_1>;
<kiểudữ liệu> <field_2>;
constructor
method_1
method_2
}

  • class: là từ khóa để khai báo lớp trong Java
  • ClassName: là tên chúng ta đặt cho lớp (quy tắc đặt tên: viết hoa mỗi chữ cái đầu)
  • field_1, field_2: các thuộc tính, các biến, hay các thành phần dữ liệu của lớp (quy tắc đặt tên: chữ cái đầu tiên viết thường, các chữ cái đầu tiên tiếp theo viết hoa).
  • constructor: hàm dùng để khởi tạo đối tượng lớp.
  • method_1, method_2: là các phương thức thể hiện các thao tác xử lý, tác động lên các thành phần dữ liệu của lớp.

Constructor

Mỗi lớp thường có một hàm constructor. Nếu chúng ta không khai báo hàm này rõ ràng trình biên dịch Java sẽ tạo một constructor mặc định cho lớp đó.

Mỗi lần một đối tượng mới được khởi tạo, ít nhất một constructor sẽ được gọi. Nguyên tắc chính của constructor là chúng cần phải có cùng tên với lớp. Một lớp có thể có nhiều hơn một constructor.

Ví dụ:

public class Student{
  public String name;


   public Student(){
   }


   public Student(String name){
      this.name = name;
   }
}

Trong ví dụ trên từ khóa this nhằm chỉ đến chính lớp đang được tham chiếu đến. this.name sẽ tham chiếu đến thuộc tính name của class Student.

Khởi tạo đối tượng (Instance): trong Java để khởi tạo đối tượng chúng ta sử dụng từ khóa new

public class Student{
  public String name;


   public Student(String name){
      this.name = name;
   }
   public static void main(String []args){
     Student s = new Student("Mark");
     System.out.println(s.name);
//ket qua in ra Mark
   }
}

 Cách thức truy cập biến và phương thức:

/* Khởi tạo đối tượng */

Object ObjectReference = new Constructor();

/* Gọi biến */

ObjectReference.variableName;

/* Gọi phương thức */

ObjectReference.MethodName();

Case Study

import java.io.*;
public class Employee{
   String name;
   int age;
   String designation;
   double salary;
     
   // This is the constructor of the class Employee
   public Employee(String name){
      this.name = name;
   }
   // Assign the age of the Employee  to the variable age.
   public void empAge(int empAge){
      age =  empAge;
   }
   /* Assign the designation to the variable designation.*/
   public void empDesignation(String empDesig){
      designation = empDesig;
   }
   /* Assign the salary to the variable salary.*/
   public void empSalary(double empSalary){
      salary = empSalary;
   }
   /* Print the Employee details */
   public void printEmployee(){
      System.out.println("Name:"+ name );
      System.out.println("Age:" + age );
      System.out.println("Designation:" + designation );
      System.out.println("Salary:" + salary);
   }
}
import java.io.*;
public class EmployeeTest{


   public static void main(String args[]){
      /* Create two objects using constructor */
      Employee empOne = new Employee("James Smith");
      Employee empTwo = new Employee("Mary Anne");


      // Invoking methods for each object created
      empOne.empAge(26);
      empOne.empDesignation("Senior Software Engineer");
      empOne.empSalary(1000);
      empOne.printEmployee();


      empTwo.empAge(21);
      empTwo.empDesignation("Software Engineer");
      empTwo.empSalary(500);
      empTwo.printEmployee();
   }
}

Kết quả in ra:

Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0

source https://techacadamy.com/lap-trinh-huong-doi-tuong-trong-java/

Bài 4: Các kiểu dữ liệu trong java

Để bắt đầu tìm hiểu về ngôn ngữ lập trình Java chúng ta sẽ lần lượt học về các cú pháp cơ bản trong ngôn ngữ Java gồm khai báo biến, hằng, phương thức, các kiểu dữ liệu, toán tử, biểu thức và các cấu trúc điều khiển trong Java.

1, Biến

Biến: là vùng nhớ dùng để lưu trữ các giá trị của chương trình. Mỗi biến gắn liền với một kiểu dữ liệu và một định danh duy nhất gọi là tên biến.

  • Tên biến thông thường là một chuỗi các ký tự, ký số.
  • Tên biến phải bắt đầu bằng một chữ cái , một dấu _ hay dấu $. Ví dụ: int total2Number; String title
  • Tên biến không được trùng với các từ khóa.
  • Tên bi ến không có khoảng trắng ở giữa tên.
  • Biến có thể được khai báo ở bất kỳ đâu trong chương trình.

 Cú pháp khai báo: 

<kiểu_dữ_liệu> <tên_biến>;
<kiểu_dữ_liệu> <tên_biến> = <giá_trị>;

Ví dụ:

String bodyOfContent;

bodyOfContent = “Hello World”;

Quy chuẩn đặt tên (naming convention): chữ cái đầu tiên viết thường, các chữ cái đầu tiên tiếp theo của mỗi từ trong tên biến viết hoa.

  • Biến toàn cục (khai báo bằng từ khóa public phía trước hoặc đặt trong 1 class): là biến có thể truy xuất ở khắp nơi trong chương trình.
  • Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó khai báo.

Ví dụ:

public class MyFirstJavaProgram {
    public String text="Hello World";//biến toàn cục
     
    public static void main(String []args) {
       int a = 3;//biến cục bộ
       System.out.println(text); // prints Hello World
       System.out.println(a); //print 3
    }
}

2, Hằng

Hằng:

  • Hằng là một giá trị bất biến trong chương trình
  • Qui ước đặt tên hằng giống như tên biến.
  • Hằng số nguyên: trường hợp giá trị hằng ở dạng long ta thêm vào cuối  số chữ“l” hay“L”. (ví dụ: 1L)
  • Hằng số thực: truờng hợp giá trị hằng có kiểu float ta thêm tiếp vĩ ngữ “f” hay “F”, còn kiểu số double thì thêm tiếp vĩ ngữ “d” hay“D”.
  • Hằng Boolean: có 2 giá trị là true và false.

3, Một số ký tự đặc biệt trong Java

Ký tự  Ý nghĩa
\b Xóa lùi (BackSpace)
\t Tab
\n Xuống hàng
\r Dấu enter
\” Nháy kép
\’ Nháy đơn
\\ Dấu \
\f Đẩy trang
\uxxxx Ký tự Unicode

 

4, Các kiểu dữ liệu nguyên thủy (Primitive data type Java)

Kiểu dữ liệu của Java được chia làm 3 nhóm:

  • Kiểu nguyên gồm các kiểu số nguyên và kiểu ký tự. Các kiểu số nguyên gồm: byte, short, int, long biểu diễn cho các số nguyên. Kiểu ký tự được thể hiện bằng kiểu char.
  • Kiểu dấu phẩy động hay kiểu số thực: Loại này có hai kiểu float và double biểu diễn cho các số thập phân có dấu.
  • Kiểu boolean: là kiểu boolean có hai giá trị true (đúng) và false (sai).

source https://techacadamy.com/cac-kieu-du-lieu-trong-java/

Bài 3: Hướng dẫn sử dụng Netbeans trong lập trình Java

Trong bài học này chúng ta sẽ học cách sử dụng Netbeans IDE thông qua ví dụ ở bài số 2. Bạn có thể cài đặt Netbeans theo 2 cách: download JDK tích hợp Netbeans vài cài 1 lần (phiên bản Netbeans này chỉ hỗ trợ ngôn ngữ Java) hoặc download JDK riêng rồi sau đó chọn lựa phiên bản Netbeans phù hợp (có thể sử dụng để lập trình HTML5 & PHP, C/C++…).

Trong trường hợp này tôi chọn cách thứ nhất. Chúng ta tiến hành làm theo trình tự sau:

Bước 1: Download Netbeans tại:  http://www.oracle.com/technetwork/java/javase/downloads/index.html. Bạn nhớ chọn Netbeans With JDK.

Bước 2: Tiến hành cài đặt chương trình như các chương trình thông thường khác.

Bước 3: Mở Netbeans sau đó chọn File -> New Project

Bước 4: Chọn Java Application

Bước 5: Điền tên Project Name và chọn đường dẫn lưu ứng dụng. Lưu ý là tên class main phải trùng với tên class chúng ta khai báo trong mã nguồn.

Bước 6: Xóa hết mã có sẵn trong class HelloWorldApp và chèn đoạn mã trong ví dụ ở bài số 2 vào.

Bước 7: Thực thi ứng dụng bằng cách ấn Shift+F6. Nếu xuất hiện thông báo màu xanh Build Sucess là bạn đã thành công.

Netbeans và Eclipse là những IDE rất lý tưởng đối với các bạn đang bước đầu học Java. IDE sẽ giúp bạn giảm thiểu các lỗi cú pháp, gợi ý các function (bạn sử dụng phím ctr+space để xổ các hàm được gợi ý), debug, refactor, tự động import thư viện…

source https://techacadamy.com/huong-dan-su-dung-netbeans-trong-lap-trinh-java/

Bài 2: Chương trình Java đầu tiên ?

Trong bài học này chúng ta sẽ viết một chương trình in ra màn hình dòng chữ “Hello World” – bài học nhập môn đối hầu hết các ngôn ngữ lập trình. Đầu tiên chúng ta sẽ tiến hành viết mã và biên dịch thủ công để hiểu cơ chế sau đó sẽ chuyển sang dùng Netbeans IDE để chạy chương trình.

Bước 1: Thiết lập môi trường

Để viết chương trình Java đầu tiên bạn sẽ cần đến:

  • Java SE Development Kit 8 (JDK 8)

Bạn có thể tải về phiên bản Windows tại đây . (Hãy chắc chắn rằng bạn tải về là JDK chứ  không phải là JRE nhé).

  • Một trình soạn thảo văn bản (text editor): bạn có thể sử dụng notepad hoặc notepad++.

Bước 2: Bạn mở Notepad trong Windows lên và gõ đoạn code sau vào:

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

Ứng dụng này chỉ đơn giản in ra màn hình dòng chữ Hello World. Lưu lại đoạn code trên với tên file là HelloWorldApp.java

Trong ví dụ trên chúng ta thấy cách thức cơ bản để định nghĩa 1 class sẽ có dạng như sau:

class name {
. . .
}

Từ khóa class được sử dụng để định nghĩa 1 class

Trong ngôn ngữ Java mỗi ứng dụng muốn chạy được phải có một phương thức main, phương thức main là điểm khởi đầu cho ứng dụng để gọi tất cả các phương thức khác cần thiết để khởi chạy chương trình:

public static void main(String[] args)

Từ khóa static nhằm chỉ ra rằng đây là một phương thức tĩnh có thể chạy mà không cần khởi tạo đối tượng.
Hàm main chấp nhận chỉ một tham số là một mảng dữ liệu kiểu String. Chúng ta có thể truyền tham số cho hàm main bằng lệnh như sau:

java MyApp arg1 arg2

Dòng lệnh cuối cùng System.out.println dùng để in ra màn hình chữ Hello World.

Bước 3: Biên dịch mã nguồn sang file .class – trình biên dịch (compiler) sẽ làm nhiệm vụ chuyển mã nguồn sang mã bytecodes để máy ảo (JVM) có thể hiểu được. Ở đây giả sử file HelloWorldApp.java được lưu trong ổ D. Chúng ta tiến hành mở command line và di chuyển đến ổ D rồi gõ lệnh:

javac HelloWorldApp.java

Bước 4: Thực thi chương trình đã biên dịch bằng lệnh sau:

java  HelloWorldApp

(Lưu ý: Để chạy lệnh javac hoặc java bạn cần phải set biến môi trường path trong Windows trỏ đến đường dẫn của 2 file javac.exe và java.exe nếu không sẽ gặp phải lỗi “command not found”, nếu chưa set biến môi trường bạn cũng có thể chạy thẳng trực tiếp command như trên hình vẫn được.)

source https://techacadamy.com/bai-2-chuong-trinh-java-dau-tien/

Tổng Quan về Java

Ngôn ngữ lập trình Java ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]). Tính đến thời điểm này (tháng 2/2015) phiên bản mới nhất của Java Standard Edition (JSE) là 8. Với ưu thế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác…

Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng

  • Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển.
  • Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau. Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số.
  • Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.
  • Tính đóng gói (Encapsulation):  là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy.

Bên cạnh đó Java còn có một số đặc tính khác:

  • Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữ lập trình khác như C và C ++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM). Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java.
  • Đơn giản: học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn. Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++.
  • Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một chiều (one way hashing) hoặc mã hóa công cộng (public key)…
  • Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi nhiều task cùng một lúc. Tính năng này thường được xử dụng rất nhiều trong lập trình game.
  • Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến.
  • Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng với nhiều môi trường phát triển.

Java được sử dụng để làm gì?

  • Viết ứng dụng web (J2EE): Java thường được sử dụng để xây dựng các hệ thống web lớn đòi hỏi độ bảo mật cao, số lượng người dùng lớn  như ngân hàng, phần mềm quản lý bệnh viện, CRM, HRM…. Đối với các website nhỏ thông thường rất ít viết bằng Java.
  • Viết ứng dụng mobile (J2ME): Trước đây nền tảng J2ME thường được sử dụng để viết game và app cho di động feature phone (file .jar) và giờ đây khi smartphone Android lên ngôi Java lại tiếp tục được sử dụng để viết app và game cho nền tảng Android (file .apk).
  • Viết ứng dụng desktop (J2SE): Các ứng dụng desktop viết bằng Java thật sự không nhiều có thể kể đến một số phần mềm như JMeter hoặc Designer Vista. Lợi thế lớn nhất của ứng dụng Java là bạn chỉ viết một lần và sau đó có thể đem chương trình lên Windows, Linux hay Mac để chạy mà không cần phải viết lại. Tuy nhiên do chạy trên JVM nên performance của ứng dụng thấp hơn một chút so với các ngôn ngữ như C/C++, C#.

Sử dụng gì để lập trình Java?

Để lập trình Java bạn cần đến:

  • JDK (Java Development KIT): bao gồm JRE (Java Runtime Enviroment) và thư viện để phát triển.
  • IDE (Integrated Development Environment): là ứng dụng giúp lập trình viên phát triển dễ dàng và nhanh chóng hơn. Bạn có thể sử dụng Netbeans, Eclipse hoặc IntellịIDEA để phát triển.

source https://techacadamy.com/tong-quan-ve-java/

HTML là gì?

I. HTML là gì?

HTML là chữ viết tắt của cụm từ HyperText Markup Language((Xem thêm tại http://vi.wikipedia.org/wiki/HTML)) (dịch là Ngôn ngữ đánh dấu siêu văn bản) được sử dụng để tạo một trang web, trên một website có thể sẽ chứa nhiều trang và mỗi trang được quy ra là một tài liệu HTML (thi thoảng mình sẽ ghi là một tập tin HTML). Cha đẻ của HTML là Tim Berners-Lee, cũng là người khai sinh ra World Wide Web và chủ tịch của World Wide Web Consortium (W3C – tổ chức thiết lập ra các chuẩn trên môi trường Internet).

Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ (tag), các cặp thẻ này được bao bọc bởi một dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ mở và thẻ đóng (ví <strong> dụ </strong> và ). Các văn bản muốn được đánh dấu bằng HTML sẽ được khai báo bên trong cặp thẻ (ví dụ <strong>Đây là chữ in đậm</strong>). Nhưng một số thẻ đặc biệt lại không có thẻ đóng và dữ liệu được khai báo sẽ nằm trong các thuộc tính (ví dụ như thẻ <img>).

Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mở rộng là .html hoặc .htm.

II. HTML được xử lý ra sao?

Khi một tập tin HTML được hình thành, việc xử lý nó sẽ do trình duyệt web đảm nhận. Trình duyệt sẽ đóng vai trò đọc hiểu nội dung HTML từ các thẻ bên trong và sẽ chuyển sang dạng văn bản đã được đánh dấu để đọc, nghe hoặc hiểu (do các bot máy tính hiểu).

Để kiểm tra, bạn có thể sử dụng khung nội dung bên dưới và chuyển qua lại giữa phần HTML và Result để xem kết quả của một tập tin HTML sau khi được xử lý.

III. Cấu trúc một đoạn HTML

Như mình đã nói ở trên, HTML sẽ được khai báo bằng các phần tử bởi các từ khóa. Nội dung nằm bên trong cặp từ khóa sẽ là nội dung bạn cần định dạng với HTML. Ví dụ dưới đây là một đoạn HTML khai báo một đoạn văn bản.

<p>Đây là một đoạn văn bản trong HTML.</p>

Ngoài ra, trong các thẻ còn có các thuộc tính, thuộc tính sẽ đặt bên trong thẻ mở đầu, mỗi thuộc tính sẽ có giá trị được đặt trong dấu ngoặc kép và cách nhau bởi dấu bằng (=) với tên thuộc tính. Ví dụ dưới đây là một thẻ có sử dụng thuộc tính-

<form action="https://thachpham.com"> </form>

Một thẻ có thể sử dụng nhiều thuộc tính chứ không phải chỉ một thuộc tính nhé.

IV. Dùng chương trình gì để tạo tập tin HTML?

HTML là một tập tin siêu văn bản nên bạn có thể dùng các chương trình soạn thảo văn bản không có chức năng định dạng văn bản để tạo ra một tập tin HTML. Trong Windows, bạn có thể dùng Notepad để tạo ra một tập tin HTML, còn trên Mac thì có thể dùng TextEdit và Vim trên các hệ điều hành Linux khác. Miễn là sau đó bạn phải lưu tập tin thành đuôi .html và sử dụng trình duyệt website để đọc nó.

Tuy nhiên Notepad lại quá đơn giản để sử dụng cho mục đích soạn thảo, nên từ các bài sau chúng ta sẽ dùng một chương trình khác tương tự để soạn thảo HTML. Và mình cũng không bao giờ khuyến khích bạn sửa một tập tin HTML bất kỳ bằng chương trinh Notepad để tránh gặp các lỗi hiển thị ký tự tiếng Việt.

V. HTML đóng vai trò gì trong website?

Như mình đã nói, HTML là một ngôn ngữ đánh dấu siêu văn bản nên nó sẽ có vai trò xây dựng cấu trúc siêu văn bản trên một website, hoặc khai báo các tập tin kỹ thuật số (media) như hình ảnh, video, nhạc.

Điều đó không có nghĩa là chỉ sử dụng HTML để tạo ra một website mà HTML chỉ đóng một vai trò hình thành trên website. Ví dụ một website như Thachpham.com sẽ được hình thành bởi:

  • HTML – Xây dựng cấu trúc và định dạng các siêu văn bản.
  • CSS – Định dạng các siêu văn bản dạng thô tạo ra từ HTML thành một bố cục website, có màu sắc, ảnh nền,….
  • Javascript – Tạo ra các sự kiện tương tác với hành vi của người dùng (ví dụ nhấp vào ảnh trên nó sẽ có hiệu ứng phóng to).
  • PHP – Ngôn ngữ lập trình để xử lý và trao đổi dữ liệu giữa máy chủ đến trình duyệt (ví dụ như các bài viết sẽ được lưu trong máy chủ).
  • MySQL – Hệ quản trị cơ sở dữ liệu truy vấn có cấu trúc (SQL – ví dụ như các bài viết sẽ được lưu lại với dạng dữ liệu SQL).

Nhưng ở đây, tạm thời bạn chỉ cần quan tâm đến HTML mà thôi. Dễ hiểu hơn, bạn hãy nghĩ rằng nếu website là một cơ thể hoàn chỉnh thì HTML chính là bộ xương của cơ thể đó, nó như là một cái khung sườn vậy.

Như vậy, dù website thuộc thể loại nào, giao tiếp với ngôn ngữ lập trình nào để xử lý dữ liệu thì vẫn phải cần HTML để hiển thị nội dung ra cho người truy cập xem.

Nhân tiện đây mình cũng nói luôn, website có hai loại chính:

  • Website tĩnh (static web) – Là một website không giao tiếp với máy chủ web để gửi nhận dữ liệu mà chỉ có các dữ liệu được khai báo sẵn bằng HTML và trình duyệt đọc.
  • Website động (dynamic web) – Là một website sẽ giao tiếp với một máy chủ để gửi nhận dữ liệu, các dữ liệu đó sẽ gửi ra ngoài cho người dùng bằng văn bản HTML và trình duyệt sẽ hiển thị nó. Để một website có thể giao tiếp với máy chủ web thì sẽ dùng một số ngôn ngữ lập trình dạng server-side như PHP, ASP.NET, Ruby,..để thực hiện. Ví dụ như một website làm bằng WordPress là website động.

IV. Tài nguyên tham khảo HTML

Trong serie này mình không có nói hết về các thẻ trong HTML mà chỉ nói qua các thẻ quan trọng nhất vì bạn sẽ sử dụng nó thường xuyên. Vì vậy, bạn hãy vào trang HTML Reference để tham khảo ý nghĩa và cách sử dụng của tất cả các thẻ HTML.

Dưới đây là một só tài liệu học lập trình HTML:

1, https://ift.tt/1oOjF6A

2, https://ift.tt/2WpNy1v

V. Lời kết

Ở trên mình đã giải thích khá chi tiết và cặn kẽ về HTML và vai trò của nó trên website là như thế nào. Thoạt nhìn có thể bạn sẽ tưởng các thông tin này chỉ mang tính tham khảo nhưng đó lại là các thông tin cực kỳ quan trọng, vì bạn đã làm web thì phải hiểu rõ về nó.

Ở các bài sau, chúng ta sẽ đi vào việc chuẩn bị để soạn thảo một tập tin HTML đầu tiên và chạy thử nó nhé.

source https://techacadamy.com/html-la-gi/

Internet of things là gì?

Thuật ngữ ” Internet of things”( viết tắt là IoT) dạo gần đây xuất hiện khá nhiều và thu hút không ít sự quan tâm chú ý của thế giới công nghệ. Vì sự bùng nổ của IoT trong tương lai sẽ có tác động mãnh mẽ tới cuộc sống, công việc và xã hội loài người.

Thực tế, Internet of things đã manh nha từ nhiều thập kỹ trước. Tuy nhiên mãi đến năm 1999 cụm từ IoT mới được đưa ra bởi Kevin Ashton , Ông là một nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở đại học MIT, nơi thiết lập các quy chuẩn toàn cầu cho RFID (một phương thức giao tiếp không dây dùng sóng radio) cũng như một số loại cảm biến khác.

I. Internet of things là gì?

Theo định nghĩa của Wikipedia

Mạng lưới vạn vật kết nối Internet hoặc là Mạng lưới thiết bị kết nối Internet viết tắt là IoT (tiếng Anh: Internet of Things) là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện một công việc nào đó.

Hay hiểu một cách đơn giản IoT là tất cả các thiết bị có thể kết nối với nhau . Việc kết nối thì có thể thực hiện qua Wi-Fi, mạng viễn thông băng rộng (3G, 4G), Bluetooth, ZigBee, hồng ngoại… Các thiết bị có thể là điện thoại thông minh, máy pha cafe, máy giặt, tai nghe, bóng đèn, và nhiều thiết bị khác. Cisco, nhà cung cấp giải pháp và thiết bị mạng hàng đầu hiện nay dự báo: Đến năm 2020, sẽ có khoảng 50 tỷ đồ vật kết nối vào Internet, thậm chí con số này còn gia tăng nhiều hơn nữa. IoT sẽ là mạng khổng lồ kết nối tất cả mọi thứ, bao gồm cả con người và sẽ tồn tại các mối quan hệ giữa người và người, người và thiết bị, thiết bị và thiết bị. Một mạng lưới IoT có thể chứa đến 50 đến 100 nghìn tỉ đối tượng được kết nối và mạng lưới này có thể theo dõi sự di chuyển của từng đối tượng. Một con người sống trong thành thị có thể bị bao bọc xung quanh bởi 1000 đến 5000 đối tượng có khả năng theo dõi.

II. Đặc tính cơ bản

+  Tính kết nối liên thông(interconnectivity): với IoT, bất cứ điều gì cũng có thể kết nối với nhau thông qua mạng lưới thông tin và cơ sở hạ tầng liên lạc tổng thể.

+ Những dịch vụ liên quan đến “Things”: hệ thống IoT có khả năng cung cấp các dịch vụ liên quan đến “Things”, chẳng hạn như bảo vệ sự riêng tư và nhất quán giữa Physical Thing và Virtual Thing. Để cung cấp được dịch vụ này, cả công nghệ phần cứng và công nghệ thông tin(phần mềm) sẽ phải thay đổi.

+ Tính không đồng nhất: Các thiết bị trong IoT là không đồng nhất vì nó có phần cứng khác nhau, và network khác nhau. Các thiết bị giữa các network có thể tương tác với nhau nhờ vào sự liên kết của các network.

+ Thay đổi linh hoạt: Status của các thiết bị tự động thay đổi, ví dụ, ngủ và thức dậy, kết nối hoặc bị ngắt, vị trí thiết bị đã thay đổi,và tốc độ đã thay đổi… Hơn nữa, số lượng thiết bị có thể tự động thay đổi.

+ Quy mô lớn: Sẽ có một số lượng rất lớn các thiết bị được quản lý và giao tiếp với nhau. Số lượng này lớn hơn nhiều so với số lượng máy tính kết nối Internet hiện nay. Số lượng các thông tin được truyền bởi thiết bị sẽ lớn hơn nhiều so với được truyền bởi con người.

III. Yêu cầu ở mức high-level đối với một hệ thống IoT

Một hệ thống IoT phải thoả mãn các yêu cầu sau:

+ Kết nối dựa trên sự nhận diện: Nghĩa là các “Things” phải có ID riêng biệt. Hệ thống IoT cần hỗ trợ các kết nối giữa các “Things”, và kết nối được thiết lập dựa trên định danh (ID) của Things.

+ Khả năng cộng tác: hệ thống IoT khả năng tương tác qua lại giữa các network và Things.

+ Khả năng tự quản của network: Bao gồm tự quản lý, tự cấu hình, tự chữa bệnh, tự tối ưu hóa và tự có cơ chế bảo vệ. Điều này cần thiết để network có thể thích ứng với các domains ứng dụng khác nhau, môi trường truyền thông khác nhau, và nhiều loại thiết bị khác nhau.

+ Dịch vụ thoả thuận: dịch vụ này để có thể được cung cấp bằng cách thu thập, giao tiếp và xử lý tự động các dữ liệu giữa các “Things” dựa trên các quy tắc(rules) được thiết lập bởi người vận hành hoặc tùy chỉnh bởi các người dùng.

+ Các Khả năng dựa vào vị trí(location-based capabilities): Thông tin liên lạc và các dịch vụ liên quan đến một cái gì đó sẽ phụ thuộc vào thông tin vị trí của Things và người sử dụng. Hệ thống IoT có thể biết và theo dõi vị trí một cách tự động. Các dịch vụ dựa trên vị trí có thể bị hạn chế bởi luật pháp hay quy định, và phải tuân thủ các yêu cầu an ninh.

+ Bảo mật: Trong IoT, nhiều “Things” được kết nối với nhau. Chình điều này làm tăng mối nguy trong bảo mật, chẳng hạn như bí mật thông tin bị tiết lộ, xác thực sai, hay dữ liệu bị thay đổi hay làm giả.

+ Bảo vệ tính riêng tư: tất cả các “Things” đều có chủ sở hữu và người sử dụng của nó. Dữ liệu thu thập được từ các “Things” có thể chứa thông tin cá nhân liên quan chủ sở hữu hoặc người sử dụng nó. Các hệ thống IoT cần bảo vệ sự riêng tư trong quá trình truyền dữ liệu, tập hợp, lưu trữ, khai thác và xử lý. Bảo vệ sự riêng tư không nên thiết lập một rào cản đối với xác thực nguồn dữ liệu.

+ Plug and play: các Things phải được plug-and-play một cách dễ dàng và tiện dụng.

+ Khả năng quản lý: hệ thống IoT cần phải hỗ trợ tính năng quản lý các “Things” để đảm bảo network hoạt động bình thường. Ứng dụng IoT thường làm việc tự động mà không cần sự tham gia người, nhưng toàn bộ quá trình hoạt động của họ nên được quản lý bởi các bên liên quan.

IV. Ứng dụng của IoT

IoT có ứng dụng rộng vô cùng, có thể kể ra một số thư như sau:

• Quản lí chất thải
• Quản lí và lập kế hoạch quản lí đô thị
• Quản lí môi trường
• Phản hồi trong các tinh huống khẩn cấp
• Mua sắm thông minh
• Quản lí các thiết bị cá nhân
• Đồng hồ đo thông minh
• Tự động hóa ngôi nhà
• …

Tác động của IoT rất đa dạng, trên các lĩnh vực: quản lý hạ tầng, y tế, xây dựng và tự động hóa, giao thông…. Cụ thể trong lĩnh vực y tế, Thiết bị IoT có thể được sử dụng để cho phép theo dõi sức khỏe từ xa và hệ thống thông báo khẩn cấp. Các thiết bị theo dõi sức khỏe có thể dao động từ huyết áp và nhịp tim màn với các thiết bị tiên tiến có khả năng giám sát cấy ghép đặc biệt, chẳng hạn như máy điều hòa nhịp hoặc trợ thính tiên tiến. cảm biến đặc biệt cũng có thể được trang bị trong không gian sống để theo dõi sức khỏe và thịnh vượng chung là người già, trong khi cũng bảo đảm xử lý thích hợp đang được quản trị và hỗ trợ người dân lấy lại mất tính di động thông qua điều trị là tốt. thiết bị tiêu dùng khác để khuyến khích lối sống lành mạnh, chẳng hạn như, quy mô kết nối hoặc máy theo dõi tim mặc.

V. IoT trong tương lai

Vì sao Cisco, Intel, và Qualcomm tài trợ khởi nghiệp cho IoT? Vì Tiềm năng hưởng lợi từ việc đầu tư vào các công ty khởi nghiệp đáng để mạo hiểm cho các hãng công nghệ khổng lồ. Như trong năm 2014, Intel kiếm hơn 2 tỷ USD từ Internet of Things

Những con số khẳng định IoT là xu hướng của tương lai

Internet of Things đến năm 2020:

+ 4 tỷ người kết nối với nhau
+ 4 ngàn tỷ USD doanh thu
+ Hơn 25 triệu ứng dụng
+ Hơn 25 tỷ hệ thống nhúng và hệ thống thông minh
+ 50 ngàn tỷ Gigabytes dữ liệu

source https://techacadamy.com/internet-of-things-la-gi/

Lập trình là gì ?

I. Lập trình là gì?

Để làm nghề lập trình, trước hết các bạn phải hiểu thế nào là lập trình viên. Lập trình viên là người thiết kế, xây dựng và bảo trì các chương trình máy tính (phần mềm). Bằng cách thao tác các đoạn mã (các ngôn ngữ) trên các công cụ lập trình, họ có thể tạo ra các chương trình mới, sửa lỗi hay nâng cấp chương trình đó để tăng tính hiệu quả của việc sử dụng máy tính.
Các lập trình viên thường có thể làm việc trên nhiều ngôn ngữ lập trình, trong đó chủ yếu là lập trình web Java, C++, php, Asp, ASP.Net, Visual Basic.Net và C#.

II. Công việc của một lập trình viên

Công việc của lập trình viên có thể được phân chia cụ thể thành: lập trình web, lập trình hệ thống, lập trình database, lập trình game, lập trình mobile.

Các nhiệm vụ chính của một lập trình viên đó là:

+ Xây dựng mới một ứng dụng

+ Nâng cấp và sửa chữa các ứng dụng có sẵn

+ Xây dựng các chức năng xử lý

+ Nghiên cứu và phát triển công nghệ mới

III. Những yếu tố để trở thành Lập trình viên?

Nghề lập trình đòi hỏi sự sáng tạo cũng như các kỹ năng đánh giá, phân tích yêu cầu của dự án, đưa ra các giải pháp thiết kế hoặc cách tiếp cận công nghệ mới khi gặp những framework thiết kế chưa kỹ hoặc công nghệ thay đổi.

1, Suy nghĩ một cách logic

Logic là điều quan trọng nhất trong lập trình. Bạn phải có đủ nhạy bén, linh hoạt và khả năng phán xét cao để giải quyết một vấn đề triệt để bằng phương pháp logic. Vì thế, nếu không có khả năng suy luận logic thì chắc chắn một điều nghề lập trình không thích hợp với bạn. Bạn sẽ cảm thấy nhàm chán và nhức đầu khi theo đuổi các đoạn code của chương trình, các vấn đề về debug (gỡ rối), về lỗi, về dấu chấm, dấu phẩy…

2, Tiếp cận vấn đề có thứ tự và luôn chú ý tới chi tiết

Các lập trình viên nên tập cho mình thói quen cẩn thận và luôn chú ý đến từng chi tiết. Đôi khi những chi tiết rất nhỏ, bạn vô tình bỏ qua, thì bạn phải ân hận khi mất hàng ngàn giờ chỉ để tìm những lỗi nhỏ đó. Bạn cần có kỹ năng truyền đạt thông tin tốt cũng như viết chương trình của mình một cách mạch lạc, có cấu trúc để đồng nghiệp của bạn có thể biết được tại sao bạn lại viết đoạn mã như vậy và cái gì tiếp theo sẽ xảy ra trong chương trình của bạn.

3, Làm việc nhóm

Đa số, công việc lập trình đều làm việc theo nhóm. Khả năng để bạn thích ứng, và chia sẻ những ý kiến của bạn tại công ty chiếm vị trí rất quan trọng. Bạn phải biết cách phối hợp công việc với cộng sự, khả năng thuyết trình, giao tiếp, ứng xử của bạn sẽ được sử dụng tối đa trong môi trường làm việc này.

4, Làm việc một mình trong thời gian dài

Thời hạn của dự án luôn làm bạn đau đầu. Có đôi lúc, bạn phải ngồi làm việc một mình, do đó, bạn cần phải có tính độc lập cao hơn, biết tổ chức và sắp xếp thời gian để hoàn thành dự án đúng lúc. Để được như vậy, bạn cần phải ghi danh sách những việc bạn phải làm và có ý chí quyết tâm cao khi làm việc một mình.

5, Kỹ năng thiết kế

Công việc phân tích và thiết kế luôn là công việc rất quan trọng của lập trình. Bạn có thể phải thiết kế toàn bộ một hệ thống cho kinh doanh, bao gồm các bảng lưu trữ thông tin, các giao diện để nhập xuất thông tin hay các tài liệu kỹ thuật liên quan đến chương trình… Bạn phải giỏi trong việc lắng nghe và chuyển đổi các yêu cầu của các khách hàng đơn lẻ, các nhóm khách hàng và thậm chí cả việc kinh doanh thành các ứng dụng. Các chương trình của bạn phải dễ dùng và có hiệu quả cao. Do vậy, bất kỳ kỹ năng thiết kế nào của bạn cũng sẽ rất hữu ích trong lĩnh vực này.

6, Kiên nhẫn

Các vấn đề mà các lập trình viên phải giải quyết thường là các vấn đề khó có thể giải quyết ngay lập tức. Nó mất nhiều giờ, nhiều ngày, thậm chí nhiều tháng làm việc một cách cẩn thận để giải quyết, tìm hướng đi. Nhiều khi bạn đi sai hướng lại phải quay lại giải quyết từ phần đã giải quyết đúng và bắt đầu lại.

7, Tự học

Không trường lớp nào có thể đào tạo cho bạn tất cả những thứ bạn cần cho công việc lập trình sau này. Chính vì thế, khả năng tự học qua sách vở, tài liệu, internet và qua cả bạn bè nữa là không thể thiếu. Kết hợp với những dự án làm việc trong thực tế, bạn sẽ dần dần thành thạo những gì mình đã tự học được.

Quan trọng nhất đối với các bạn muốn theo đuổi nghề lập trình đó là lòng đam mê và mong muốn chinh phục những thử thách. Ngay bây giờ, nếu bạn đã có sẵn niềm đam mê hãy bắt đầu bằng việc tham gia một trong những khoá đào tạo căn bản để mở đầu một chân trời mới và tiếp cận với kho tàng kiến thức khổng lồ.

IV. Các cấp bậc của nghề lập trình viên

Không phải tất cả lập trình viên đều có trình độ như nhau, để trở thành một lập trình viên xuất sắc, bạn sẽ phải trải qua thời gian khổ luyện lâu dài. Các cấp độ của một lập trình viên gồm:

Junior Developer ($500 – $1000): có dưới 3 năm kinh nghiệm, hiểu biết tổng thể về cơ sở dữ liệu, vòng đời các ứng dụng, ở trình độ này bạn có thể viết được các ứng dụng đơn giản.

Senior Developer ($1000 – $1500): có từ 4 – 10 năm kinh nghiệm, ở cấp độ này bạn đã có kiến thức sâu hơn và có thể lập trình được các ứng dụng phức tạp.

Leader Developer ($1500 – $2000): có 7 – 10 năm kinh nghiệm, ở cấp độ này, bạn đã có các kỹ năng của một senior developer và có thể làm việc như một kỹ sư độc lập hoặc lãnh đạo một nhóm các lập trình viên.

Mid-level Manager – Quản lý cấp trung ($1500 – $2500): là người quản lý các lập trình viên, và làm việc dưới quyền của quản lý cấp cao, ở một số tổ chức họ có quyền thuê và sa thải nhân viên của mình. Các chức danh ở cấp độ này là Product Manager, Project Manager,…

Senior Leader – Quản lý cấp cao (trên $2000): lãnh đạo các quản lý cấp dưới của mình và báo cáo lên Ban Giám đốc công ty. Các chức danh ở cấp độ này có thể là: VP, CTP hoặc CEO.

source https://techacadamy.com/lap-trinh-la-gi/

Ngôn ngữ lập trình Là Gì ?

I. Ngôn ngữ lập trình Là Gì

Ngôn ngữ lập trình là một loại ngôn ngữ đặc biệt được thiết kế để giúp các lập trình viên có thể dựa trên đó viết các chỉ dẫn để máy tính thực hiện một hoặc nhiều tác vụ cho trước.

Ngôn ngữ lập trình định nghĩa một bộ các quy tắc viết mã lệnh (còn gọi là cú pháp) để lập trình viên có thể dựa vào đó viết các chỉ dẫn thực hiện các tác vụ cụ thể cho máy tính. Các ngôn ngữ lập trình khác nhau có các quy tắc riêng khác nhau.

Ví dụ với ngôn ngữ PHP để hiển thị một thông báo ra về năm hiện tại màn hình chúng ta có thể viết như sau:

echo "Xin chào!";

Đối với ngôn ngữ Ruby chúng ta lại sử dụng cú pháp khác:

puts("Xin chào!");

II. Tại Sao Có Nhiều Ngôn Ngữ Lập Trình

Lý do có nhiều ngôn ngữ lập trình là bởi vì mỗi ngôn ngữ lập trình thường được thiết kế để phục vụ các mục đích (porpose) khác nhau. Ví dụ như một số ngôn ngữ được thiết kế để thực hiện các tác vụ về thống kê mô tả, chạy các phân tích, hay nói cách khác các tác vụ có tính học thuật. Trong khi đó một số ngôn ngữ được thiết kế để viết lập trình các trang web, một số khác thì để lập trình ứng dụng mobile…

Một số ngôn ngữ có thể sử dụng cho tất cả các mục đích được gọi là ngôn ngữ đa mục đích (general purpose pgoramming language).

Các ngôn ngữ đa mục đích phổ biến được dùng hiện nay có thể kể đến đó là C, C++, Java, Python, Ruby, PHP, Objective-C…

III. Các loại ngôn ngữ lập trình

Phân theo cách một chương trình phần mềm được viết sử dụng một ngôn ngữ lập trình được chạy như thế nào thì chúng ta có thể phân chia ngôn ngữ lập trình theo hai nhánh khác nhau:

+ Ngôn ngữ lập trình kịch bản (scripting language):

ứng dụng phần mềm (còn gọi là chương trình phần mềm) viết với những ngôn ngữ dạng này có thể được chạy trực tiếp mà không cần một quá trình trung gian chuyển tiếp mã lệnh của chương trình về mã máy (chỉ gồm các số 0 và 1).

+ Ngôn ngữ lập trình biên soạn (compiled language):

ứng dụng phần mềm viết với những ngôn ngữ dạng này cần được chuyển tiếp (hay biên soạn tiếng anh là compiled) về mã máy trước khi được máy tính chạy.
Các ngôn ngữ lập trình kịch bản phổ biến có thể kể đến như PHP, Ruby, Python, JavaScript…

Các ngôn ngữ lập trình kịch bản phổ biến có thể kể đến như C, Java, C++, Objective-C…

IV. Đặc điểm chung của ngôn ngữ lập trình

Mỗi ngôn ngữ lập trình có thể được xem như là một tập hợp của các chi tiết kỹ thuật chú trọng đến cú pháp, từ vựng, và ý nghĩa của ngôn ngữ.

Những chi tiết kỹ thuật này thường bao gồm:

+ Dữ liệu và cấu trúc dữ liệu

+ Câu lệnh và dòng điều khiển

+ Các tên và các tham số

+ Các cơ chế tham khảo và sự tái sử dụng

Đối với các ngôn ngữ phổ biến hoặc có lịch sử lâu dài, người ta thường tổ chức các hội thảo chuẩn hoá nhằm tạo ra và công bố các tiêu chuẩn chính thức cho ngôn ngữ đó, cũng như thảo luận về việc mở rộng, bổ sung cho các tiêu chuẩn trước đó. Ví dụ: Với ngôn ngữ C++, hội đồng tiêu chuẩn ANSI C++ và ISO C++ đã tổ chức đến 13 cuộc hội thảo để điều chỉnh và nâng cấp ngôn ngữ này. (Xem thêm Comeau.Computing). Đối với các ngôn ngữ lập trình web như JavaScript, ta có chuẩn ECMA, W3C.

V. Ngôn ngữ lập trình gồm những gì ?

– Bảng chữ cái

– Kí hiệu và các phép toán

– Các quy tắc để viết các câu lệnh

source https://techacadamy.com/ngon-ngu-lap-trinh-la-gi/

Tự học react native thế nào để đạt hiệu quả tốt nhất ?

Hiện nay, ReactJS đang nhận được rất nhiều sự chú ý và nó đang trở nên rất phổ biến, điều này khiến các lập trình viên muốn tìm hiểu và thử làm việc với React. Vậy tự học lập trình react native thế nào cho hiệu quả tốt nhất ? Tìm hiểu ngay bài viết dưới đây

I. Tại sao nên học lập trình react native

1, React Native mở ra một tương lai mới cho các ứng dụng di động

Với cực nhiều ưu điểm như: – Tiết kiệm cực nhiều thời gian phát triển, debug và đưa app đến tay người dùng nhớ tính năng live reloading – Khả năng tái sử dụng code cao lên tới 80% với chỉ một ngôn ngữ duy nhất là javascript React Native ngày càng được ưa chuộng tại Việt Nam, nhất là trong các công ty có các ứng dụng nặng về nghiệp vụ: thương mại điện tử, nghe nhạc, v.v…

Không ít cái tên như Appota, Tiki, Teko, Niteco, VNP, v..v… đều đã và đang dần chuyển sang React Native hoặc xây dựng một chỉ một team React Native khi phát triển các dự án mới thay vì xây dựng một team iOS và một team Android riêng biệt. Đặc biệt, với việc code bằng Javascript, giờ ngay cả các lập trình viên web cũng có thể code được React Native, nhất là những ai có học qua “anh em họ hàng” của nó là ReactJS, từ đó tạo nhiều cơ hội hơn khi chuyển đổi giữa các công việc web – mobile.

Khái niệm “Full-stack developer” – 1 người làm cả server, webclient và mobile client cũng từ đó mà ra đời

2, React Native đang là xu thế và có tốc độ phát triển chóng mặt

React Native đang dần trở thành 1 trong những xu hướng lớn nhất khi phát triển các ứng dụng di động, bên cạnh các xu hướng về Instant Apps, Mobile Payment, AR/VR, v.v…

Bản thân Facebook – cha đẻ của React Native cũng coi đây là một dự án trọng điểm và sử dụng nó để phát triển nhiều dự án quan trọng như Marketplace, Blood Donations, Crisis Response, Privacy Shortcuts và cả ứng dụng di động dành cho Tai nghe Oculus Go VR Cộng đồng React Native cũng đang phát triển hơn bao giờ hết, với hơn 2500 commits chỉ trong năm ngoái từ hơn 500 cộng tác viên.

Facebook cũng vừa thông báo một số thay đổi dự định với React Native vào ngày 14/6/2018 để làm cho React Native trở nên nhẹ hơn và phù hợp hơn với các ứng dụng gốc hiện có như sau.

“Đầu tiên, chúng tôi đang thay đổi mô hình quản lí luồng. Mỗi lần giao diện update, thay vì phải thực hiện công việc trên ba luồng khác nhau, ta có thể gọi một cách đồng bộ bằng JavaScript trên bất kỳ luồng nào để cập nhật (với mức độ ưu tiên cao) trong khi vẫn duy trì (mức độ ưu tiên thấp) trong chuỗi chính để duy trì phản hồi. Thứ hai, chúng tôi kết hợp khả năng render không đồng bộ vào React Native để cho phép nhiều lượt render (với các mức ưu tiên khác nhau) và đơn giản hóa việc xử lý dữ liệu không đồng bộ.

Cuối cùng, chúng tôi đang đơn giản hóa các cổng kết nối của chúng tôi để làm cho nó nhanh hơn và nhẹ hơn; việc call trực tiếp giữa native và JavaScript hiệu quả hơn và sẽ làm cho việc xây dựng các công cụ debug dễ dàng hơn, đặc biệt là các công cụ lần dấu cross-language” Những thay đổi này sẽ giúp cho việc xây dựng các tính năng như UICollectionView và RecyclerView đơn giản hơn rất nhiều

3, React Native cho bạn cơ hội nghề nghiệp rất sáng

Công nghệ mới đồng nghĩa với việc khó tuyển người, và lập trình viên React Native sẽ “có giá” hơn so với các vị trí khác, chưa kể tới lợi thế sinh viên mới ra trường sẽ học công nghệ mới dễ dàng hơn so với các nhân sự lâu năm – vốn khó khăn hơn trong việc cập nhật xu hướng

Thông thường, các vị trí dành cho React Native chỉ yêu cầu trung bình 6 tháng kinh nghiệm lập trình cho vị trí junior (so với việc yêu cầu khoảng 1 năm kinh nghiệm), thậm chí chấp nhận đào tạo lại do khát nhân lực. Ngoài ra mức lương khởi điểm cho React Native Developer trung bình cao hơn so với các vị trí khác từ 10 – 30%

II. Lộ trình tự học lập trình react native

Chương 1: Lập Trình JavaScript Cơ Bản

1, Khai báo biến

2, Các hàm cơ bản: If, if else, while, for, switch case, try catch

3, Mảng (Array)

4, Functions & Tham số

5, Class

6, Các action quan trọng phải biết

+ setTimeout

+ setInterval

+ Các hàm tính toán trong Math

+ Các hàm xử lý chuỗi

Chương 2: Giới Thiệu React

1. Giới thiệu state và props

2. Xử lý dữ liệu trong react

3. Quản lý dữ liệu thông qua redux

4. Sử dụng thư viện kết nối với Server

Chương 3: Xây Dựng Server Với Ngôn Ngữ Javascript

1. Tìm hiểu về database mongoose

2. Xây dựng server nodejs

3. Hướng dẫn up server lên heroku

Chương 4 : Giới Thiệu Về React Native

1, Cách hoạt động của ứng dụng React Native

2, Cài đặt môi trường làm việc với React Native (Windows + iOS)

3, Quy trình thiết kế ứng dụng React Native

4, Hướng dẫn build ứng dụng trên máy Android + iPhone

Chương 5: Component Trong React Native

1, Giới thiệu Component

2, Cách tạo Component

3, Hiểu về Hooks trong React Native

4, Hiểu về trình tự hoạt động của một Component

5, Text Component

6, Image Component

7, View Component

8, TouchableHighlight

+ Flatlist

+ ReactNavigation

+ Component lồng Component

+ Export Component

+ Truyền tham số cho Component

Chương 6: Styles – Định Dạng Giao Diện Ứng Dụng

1, Các cách tạo định dạng StyleSheet

2, Sử dụng StyleSheet

3, Export StyleSheet

4, Truyền Styles dạng Props

5, Chia sẽ Styles

6, Positioning và Design giao diện

Cách 1: Sử dụng Flexbox

Cách 2: Sử dụng Absolute Positioning

Cách 3: Kết hợp Flexbox & Positioning

Chương 7: Các Platform APIs

1, Thư viện Geolocation

+ Bắt tọa độ người dùng

+ Quản lý Permissions

+ Hướng dẫn test location trên máy iPhone

+ Theo dõi tọa độ người dùng

2, Camera và Photos của người dùng

+ Sử dụng CameraRoll

+ Lấy danh sách hình với GetPhotoParams

+ Tạo hình ảnh chụp từ CameraRoll

+ Hiển thị danh sách hình ảnh

3, Lưu trữ dữ liệu với AsyncStore

Chương 8: Modules

1, Debug với JavaScript

2, Debug với React Native

3, Debug với Beyond Javascript

Chương 9: Xuất Bản Ứng Dụng Lên AppStore

1, Hướng dẫn chọn Supported Device & Traget iOS version

2, Lauching Screen Image

3, Cấu hình Application icon

4, Cấu hình Bundle Name

5, Cấu hình AppDelegate.m

6, Archive ứng dụng lên AppStore

Chương 10: Xuất Bản Ứng Dụng Lên Google Store

1, Cấu hình Application icon

2, Xuất file APK dạng release

3, Submit ứng dụng lên Google Store

III. Tài liệu tự học lập trình react native

Dưới đây là một số tài liệu lập trình react native để bạn đọc tham khảo:

1, Tài liệu React Native

+ https://ift.tt/1yLmjao

+ https://ift.tt/1ITKHky

+ https://expo.io/

+ https://ift.tt/3944z3X

2, Cộng đồng học React Native

+ https://ift.tt/2cZ7VN8

+ https://ift.tt/2J2ZiPm

IV. Học react native cần gì ?

Để học lập trình react native cần chuẩn bị một số yêu cầu sau:

1, Nếu bạn là một Mobile developer!?

Bạn đã quen với mobile native, navigation, stack, UI thread, bạn chỉ cần tìm hiển thêm phần thiếu là Javascript và ES6, ReactJS và cách làm việc với API và state management của Web developement.

2, Nếu bạn là một Web developer!?

Chắc chắn bạn phải biết về Javascript, nếu chưa có nhiều kinh nghiệm hãy bổ sung thêm kiến thức về nó đặt biệt là ES6, nếu không bạn hãy dừng lại.

Nếu chưa quen thuộc với ReactJS, bạn hãy tìm hiểu ngay về ReactJS rồi hãy bắt đầu nhé.

3, Cài đặt những công cụ cần thiết

Nếu là một Developer, chắc chắn bạn phải cần có git. Bạn cần phải có cài đặt Node JS (version 8+), nếu chưa có bạn có thể tải và làm theo hướng dẫn ở đây và npm. Có bạn sẽ tự hỏi có cần yarn không!? việc này tùy ở bạn, yarn không phải là bắt buộc.

Bạn cần cài thêm các máy ảo (Simulator cho iOS và Emulator cho Android) để phục vụ cho việc debug ứng dụng hoặc có thể dùng luôn điện thoại di động mình của mình cũng được.

source https://techacadamy.com/tu-hoc-react-native/