Module 2

ok

Jetzt loslegen. Gratis!
oder registrieren mit Ihrer E-Mail-Adresse
Module 2 von Mind Map: Module 2

1. clean code

1.1. mã sạch

1.2. dễ đọc

1.3. dễ cải tiến

1.4. dễ bảo trì

1.5. ít phụ thuộc

1.6. không trùng lặp

1.7. thể hiện rõ ý tưởng thiết kế

1.8. tại sao cần clean code

1.8.1. năng suất sẽ giảm theo thời gian nếu làm việc với mã nguồn không tốt

1.8.2. các yếu tố ảnh hưởng đến mã nguồn

1.8.2.1. định danh

1.8.2.2. phương thức

1.8.2.3. ghi chú

1.8.2.4. định dạng của mã nguồn

1.8.2.5. thiết kế kiến trúc

1.8.2.6. xử lý lỗi và ngoại lệ

1.8.2.7. test

1.9. đặt tên tốt

1.9.1. cần thể hiện rõ ý nghĩa của đối tượng mà nó đại diện

1.9.2. tránh gây hiểu lầm

1.9.3. có sự khác biệt rõ ràng giữa các tên

1.9.4. tên phát âm được

1.9.5. tên gọi có thể tìm kiếm được

1.9.6. không viết tắt hoặc mã hóa

1.9.7. sử dụng đúng ngữ nghĩa

1.9.8. đặt tên lớp

1.9.8.1. nên là danh từ

1.9.8.2. tránh dùng từ gần nghĩa

1.9.8.3. nên bắt đầu bằng chữ viết hoa

1.9.8.4. tuân theo quy tắc CamelCase

1.9.9. tên phương thức

1.9.9.1. là 1 động từ hoặc bắt đầu bằng 1 động từ

1.9.9.2. bắt đầu bằng chữ viết thường

1.9.9.3. tuân theo quy tắc camelCase

2. xử ký ngoại lệ

2.1. ngoại lệ là các lỗi phát sinh trong quá trình thực thi

2.2. các lỗi xảy ra

2.2.1. lỗi cú pháp

2.2.1.1. là lỗi xảy ra tại thời gian biên dịch trong các ngôn ngữ chương trình truyền thống và tại thời gian biên dịch trong javascript

2.2.2. lỗi chạy chương trình

2.2.2.1. là lỗi xảy ra trong suốt quá trình thực thi

2.2.3. lỗi logic

2.2.3.1. là kiểu lỗi khó có thể tìm dấu vết xảy ra khi tạo 1 lỗi về tính logic mà điều khiến script không nhận được kết quả như mong muốn

2.2.3.2. khó nắm bắt được lỗi logic bởi vì nó phụ thuộc vào yêu cầu và kiểu logic đặt vào chương trình

2.3. try-catch

2.3.1. dùng để tách phần giải quyết lỗi ra khỏi phần có thể sinh lỗi

2.3.2. quy định các loại ngoại lệ được bắt tại mức thực thi hiện hành

2.3.3. mã liên quan đến thuật toán nằm trong khối try

2.3.4. mã giải quyết vấn đề nằm trong khối catch

2.4. finally

2.4.1. sẽ luôn thực hiện vô điều kiện sau try-catch

2.5. throw

2.5.1. dùng để ném các lỗi có sẵn hoặc người dùng nghĩ ra

2.6. ngoại lệ do người dùng tạo

2.6.1. phải tạo 1 lớp là lớp mở rộng của lớp Exception có sẵn và chúng ta có thể thêm hàm để xử lý

3. Web & Web site

3.1. giao thức http là giao thưc truyền tải siêu văn bản

3.1.1. http request

3.1.2. http response

3.2. web server là một phần mềm /phần cứng để cung cấp các taì nguyên web

3.3. website

3.3.1. website tĩnh là các trang web mà nội dung củ nó không thay đổi. Những trang web tĩnh được viết bằng mã HTML thêm CSS , javascript để thêm hiệu ứng.

3.3.2. website động là website nội dung thay đổi sự thay đổi thùy theo thời gian tùy theo người dùng thùy theo ngữ cảnh. Thường sử dụng các ngôn ngữ phía server chẳng hạn như java,PHP,c#....và cơ sở dữ liệu

3.4. web là 1 không gian trên internet mà ở đó các tài liệu và các tài nguyên khác được chia sẻ dưới dạng ủl

3.5. website la tập hợp cá trang tài liệu và tài nguyên có liên quan đến nhau thường được truy cập qua một tên miền

3.6. LAMP là một bộ công nghệ được ưa chuộng và sử dụng phổ biến để xây dựng các ứng dụng web thông dụng

3.6.1. Linux là một họ các hệ điều hành mã nguồn mở

3.6.2. Aphache là phần mềm máy chủ dịch vụ web và miễn phí

3.6.3. MySQL là 1 hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở

3.6.4. PHP là 1 ngôn ngữ lập trình phía server

3.6.4.1. chức năng là xử lý yêu cầu của người dùng và sinh ra kết quả để trả về

3.6.5. tại sao nên sử dụng LAMP

3.6.5.1. các thành phần của LAMP đều là mã nguồn mở và miễn phí

3.6.5.2. cộng đồng sử dụng LAMP rất lớn

3.6.5.3. có nhiều các nền tảng (framework) thư viện (library) công cụ (tool)

3.6.5.4. các thành phần trong LAMP tương thích tốt vơi nhau và tuân theo các tiêu chuẩn của nghành

3.6.5.5. việc phát triển các ứng dụng LAMP khá nhanh chóng và dễ dàng

4. Hệ quản trị CSDL

4.1. là 1 ứng dụng máy tính được sử dụng để quản lý dữ liệu

4.2. còn được gọi là DBMS( database management system)

4.3. các chức năng của DBMS

4.3.1. định nghĩa dữ liệu ( definition)

4.3.2. cập nhập dữ liệu ( udate )

4.3.3. truy vấn dữ liệu ( retrieval )

4.3.4. quản lý dữ liệu ( administration) bảo mật theo dõi sao lưu.....

4.4. một số DBMS

4.4.1. mysql

4.4.2. mariadb

4.4.3. mongodb

4.4.4. sqlite

4.4.5. ibmdb2

4.4.6. oracledb

4.4.7. postgeresql

4.5. Sql

4.5.1. là viết tắt của cụm từ Structured Query Language ( ngôn ngữ truy vấn có cấu trúc )

4.5.2. được sử dụng để thao tác với các CSDL quan hệ

4.5.3. có nhiều phiên bản sql khác nhau mặc dù hầu hết đêu sử dụng chung cú pháp tuy nhiên cũng có 1 số khác biệt

4.5.4. các câu lệnh trong sql

4.5.4.1. thực thi các câu truy vấn

4.5.4.2. truy vấn dữ liệu từ csdl

4.5.4.3. thêm dữ liệu vào csdl

4.5.4.4. cập nhập dữ liệu trong csdl

4.5.4.5. xóa các bản ghi trong csdl

4.5.4.6. tạo csdl mới

4.5.4.7. tạo bảng trong csdl

4.5.4.8. xóa csdl

4.5.4.9. xóa bảng....

4.5.5. 1 số từ khóa quan trọng

4.5.5.1. SELECT

4.5.5.2. UPDATE

4.5.5.3. DELETE

4.5.5.4. INSERT

4.5.5.5. CREATE

4.5.5.6. ALTER

4.5.5.7. DROP

4.5.5.8. WHERE

5. Refactoring( tái cấu trúc mã nguồn )

5.1. là các kỹ thuật cho phép chỉnh sửa mã nguồn nội bộ mà không làm thay đổi hành vi củ hệ thống đối với bên ngoài

5.2. mục đích

5.2.1. mã nguồn dễ duy trì hơn

5.2.2. mã nguồn dễ mở rộng hơn

5.3. đổi tên biến và phương thức

5.3.1. để trở nên tốt hơn

5.3.1.1. dễ đọc

5.3.1.2. có ý nghĩa

5.3.1.3. thể hiện được ý nghĩa

5.3.1.4. tuân thủ coding convention

5.3.2. lưu ý

5.3.2.1. đổi tên tại vị trí khai báo

5.3.2.2. đổi tên tại các vị trí có sử dụng tên biến hoặc phương thức

5.3.3. nên sử dụng tính năng của IDE để đổi tên biến và phương thức

5.4. tách biến

5.4.1. giúp đơn giản hóa các biểu thức và giúp dễ hiểu hơn

5.5. tách hằng

5.5.1. mang lại ý nghĩa cho các giá trị thần kỳ và mã nguồn dễ hiểu hơn

5.6. tách phương thức

5.6.1. giúp các phương thức dễ đọc dễ hiểu dễ kiểm soát hơn

6. Mysql

6.1. là 1 hệ quản trị CSDL quan hệ mã nguồn mở

6.2. có các phiên bản chạy được trên nhiều nền tangr:windows, linux, macos.....

6.3. mysql server: máy chủ dịch vụ quản trị

6.4. mysql client

6.4.1. ứng dụng cho phép kết nối và tương tác với mysql server

6.5. website chính thwcs: MySQL

7. PHPmyadmin

7.1. là công cụ mã nguồn mở miễn phí dành cho mysql và mariaDB

7.2. được viết bằng php

7.3. sử dụng phpmyadmin

7.3.1. nhập dữ liệu

7.3.2. xuất dữ liệu

7.3.3. tạo bảng

7.3.4. xóa bảng

7.3.5. chèn dữ liệu

7.3.6. xóa dữ liệu

7.3.7. cập nhập dữ liệu

7.3.8. lấy dữ liệu

8. thuật toán tìm kiếm

8.1. tìm kiếm tuyến tính

8.1.1. mỗi phần tử được kiểm tra và nếu tìm thấy bất kỳ kết nối nào thì phần tử cụ thể đó được trả về nếu không tìm thấy thì quá trình tìm kiếm tiếp tục diễn ra cho tới khi tìm kiếm hết dữ liệu

8.2. tìm kiếm nhị phân

8.2.1. tìm kiếm 1 phần tử cụ thể bằng cách so sánh phần tử tại vị trí giữa nhất của tập dữ liệu

8.2.2. nếu tìm thấy kết nối thì chỉ mục của phần tử được trả về

8.2.3. nếu phần tử cần tìm là lớn hơn giá trị phần tử giữa thì phần tử cần tìm được tìm trong mảng con nằm bên phải phần tử giữa. nếu không thì tìm ở bên trái phần tử giữa, tiếp tục như vậy cho tới khi tìm hết mọi phần tử trên mảng con này

9. Regex

9.1. thường được gọi là Regex hoặc Regexp

9.2. là thuật toán khớp mẫu mạnh mẽ có thể được thực hiện trong 1 biểu thức nó giúp tiết kiệm thời gian khi xây dựng web động

9.3. là 1 nhóm các ký tự ký hiệu nó được sử dụng để tìm kiếm văn bản (text)

9.4. là 1 mẫu nó tương đồng quy luật với 1 chuỗi từ trái qua phải

9.5. trong lập trình nó được dùng với hàm xử ký chuỗi xử lý văn bản với các tác vụ tìm và thay thế chuỗi kiểm tra tính hợp lệ dữ liệu

9.6. tại sao dùng biểu thức chính quy

9.6.1. đơn giản hoá việc xác định các mẫu dữ liệu trong chuỗi dữ liệu băng cách gọi 1 hàm duy nhất giúp tiết kiệm thời gian lập trình

9.6.2. khi xác định đầu input người dùng nhập

9.6.3. highlight từ khóa tìm kiếm

9.6.4. khi tạo mẫu html tùy chỉnh biểu thức chính quy được sử dụng để xác đình các tag và thay thế chung bắng dữ liệu thực tế

9.6.5. đặc biệt sử dụng biểu thức chinh quy tăng perpormance của chương trình

9.7. khai báo

9.7.1. để khai báo 1 chuỗi Regular Expression / Regex ta chỉ cần khai báo băng ký tự / và kết thúc bằng ký tự /

9.8. Các ký tự dùng trong biểu thức chính quy được gọi là metacharacters

9.9. các hàm

9.9.1. preg_match()

9.9.1.1. so khớp và lấy kết quả của việc so sánh chuỗi dựa vào biểu thức chính quy. Hàm trả về TRUE/FALSE

9.9.2. preg_match_all()

9.9.2.1. ũng tương tự hàm preg_match() ở trên , tuy nhiên hai hàm này khác nhau ở chỗ , hàm preg_match_all() sẽ trả về toàn bộ các giá trị được so sánh khớp, còn hàm preg_match() chỉ trả về giá trị đầu tiên được so sánh khớp.

9.9.3. preg_split()

9.9.3.1. để chia nhỏ chuỗi thành mảng chứa các chuỗi con.

9.9.4. preg_replace()

9.9.4.1. dùng để tìm kiếm và thay thế một chuỗi nào đó khớp với đoạn Regular Expression truyền vào.

10. Cơ sở dữ liệu

10.1. là nhóm dữ liệu có tổ chức

10.2. là cơ chế lưu trữ dữ liệu

10.3. có nhiều CSDL khác nhau

10.3.1. CSDL phân cấp

10.3.2. CSDL mạng

10.3.3. CSDL quan hệ......

10.4. CSDL quan hệ

10.4.1. la CSDL được xây dựng trên mô hình dữ liệu quan hệ

10.4.2. dữ liệu được tổ chức trong bảng còn được gọi là quan hệ

10.4.3. dòng được gọi là bản ghi hoặc hàng

10.4.4. cột được gọi là thuộc tính hoặc trường

10.4.5. 1 bảng thường lưu trữ dữ liệu của 1 loại thực thể nhất định

11. php

11.1. Hàm

11.1.1. Thân hàm

11.1.2. là một khối lệnh thực hiện 1 nhiệm vụ nhất định

11.1.3. có thể sử dụng lặp đi lặp lại nhiều lần

11.1.4. không được thực thi ngay tức thì khi nạp trang php

11.1.5. chỉ thực thi khi được gọi hàm

11.1.6. khai báo hàm

11.1.6.1. Tên hàm

11.1.6.1.1. phải bắt đầu bằng ký tự chữ hoặc dấu gạch dưới

11.1.6.1.2. không phân biệt chữ hoa và chữ thường

11.1.6.1.3. nên đặt tên hàm có ý nghĩa

11.1.6.2. Tham số đầu vào

11.1.6.2.1. là cơ chế truyền dữ liệu đầu vào vào cho hàm

11.1.6.2.2. tham số giống như 1 biến

11.1.6.2.3. có thể truyền 1 hoặc nhiều tham số vào hàm

11.1.6.2.4. các tham số cách nhau bởi dấu phẩy (,)

11.1.6.2.5. các tham số được đặt trong () sau tên hàm

11.1.6.2.6. giá trị

11.2. Biến

11.2.1. cục bộ (local) sử dụng trong hàm

11.2.2. toàn cục (global) sử dụng ngoài hàm

11.2.2.1. có thể sử dụng từ khóa global để truy xuất biến toàn cục trong hàm. Có thể sử dụng mảng $_GLOBAL

11.2.3. tĩnh (static) giữ lại giá tri của biến cục bộ (local) mà không hủy đi

11.2.4. biến trong php bắt đầu bằng dấu $ tiêp theo là tên của biến

11.2.5. tên biến phải bắt đầu bằng 1 ký tự hoặc 1 dấu gạch dưới _

11.2.6. tên biến không thể bắt đầu bằng số

11.2.7. tên biến chỉ được bao gồm các ký tự chữ ký tự số và dấu gạch chân

11.2.8. tên biến phân biệt chữ hoa và chữ thường

11.2.9. biến có thể khai báo bất cứ đâu , vị trí khai báo biến quy định phạm vi mà biến đó có thể được sử dụng

11.3. Các kiểu dữ liệu

11.3.1. String(chuỗi)

11.3.2. integer( số nguyên)

11.3.3. Float(số thập phân)

11.3.4. Boolean(true/false)

11.3.5. Array(mảng)

11.3.6. Object( đối tượng )

11.3.7. NULL

11.3.8. Resource

11.4. toán tử

11.4.1. toán học(Arithmetic)

11.4.1.1. +,-,*,/,%

11.4.2. gán(Assignment)

11.4.2.1. =, -=, +=, *= , /=, %=

11.4.3. so sánh (Comparison)

11.4.3.1. == , ===, !=, >=, <=, <, >, <>, !==

11.4.4. tăng/ giamr( increment/decrement

11.4.4.1. ++, --

11.4.5. logic(logical)

11.4.5.1. &&, ||, !

11.4.6. string (chuỗi)

11.4.7. Array (mảng)

11.5. câu lệnh điều kiện

11.5.1. if

11.5.1.1. thực hiện câu lệnh nếu điều kiện là đúng

11.5.2. if.. else

11.5.2.1. Thực hiện một câu lệnh nếu điều kiện là đúng, còn nếu điều kiện sai thì thực hiện một câu lệnh khác

11.5.3. if ... elseif... else

11.5.3.1. Thực hiện các câu lệnh khác nhau với việc đánh giá nhiều hơn 2 điều kiện

11.5.4. switch .... case

11.5.4.1. Chọn thực hiện một hoặc nhiều câu lệnh tùy thuộc vào điều kiện

11.6. câu lệnh lặp

11.6.1. while

11.6.1.1. Kiểm tra điều kiện, nếu đúng thì thực hiện các câu lệnh, lặp lại các bước như thế.

11.6.2. do ... while

11.6.2.1. Thực hiện các câu lệnh, kiểm tra điều kiện, nếu đúng thì lặp lại các bước như thế.

11.6.3. for

11.6.3.1. Thực hiện lặp lại các câu lệnh trong một số lần nhất định

11.6.4. foreach

11.6.4.1. Thực hiện lặp lại các câu lệnh đối với từng phần tử của một mảng

11.7. mảng

11.7.1. mảng đa chiều

11.7.1.1. là mảng có các phần tử là mảng

11.7.1.2. có thể có mảng 2 chiều 3 chiều hoặc nhiều hơn

11.7.1.3. thì cần nhiều chỉ số để truy xuất đến 1 phần tử

11.7.1.4. duyêt mảng

11.7.1.4.1. sử dụng các vòng lặp lồng nhau để duyệt qua tất cả các phần tử của mảng nhiều chiều

11.7.2. $array

11.7.2.1. indexarrays

11.7.2.1.1. mảng 1 chiều với 1 chỉ số

11.7.2.2. assocltivearrays

11.7.2.2.1. màng 1 chiều với chỉ số là 1 từ khóa

11.7.2.3. multidimenslonalalarrays

11.7.2.4. count() trả về độ dài của mảng

11.7.2.5. for và foreach để duyệt mang

11.7.3. là cơ chế giúp lưu trữ nhiều giá trị trong cùng 1 biến

11.7.4. các giá trị được lưu trong mảng thương là cung loại

11.7.5. khái niệm

11.7.5.1. tên mảng tuân thủ các quy tắc như tên biến

11.7.5.2. phần tử mảng : từng giá trị của mảng

11.7.5.3. độ dài mảng : số lượng phần tử của mảng

11.7.5.4. chỉ số : vị trí của các phần tử trong mảng

11.8. abstract class

11.8.1. là những lớp có tính trừu tượng rất cao đến mức không thể tạo được các đối tượng của lớp đó

11.8.2. tính chất

11.8.2.1. không thể tạo đối tượng của lóp abstract

11.8.2.2. lớp abstract có thể có các thuộc tính và phương thức bình thường

11.8.2.3. 1 lớp chứa phương thức abstract thì lớp đó phải là abstract

11.8.2.4. 1 lớp không phải là abstract kế thừa 1 lớp cha abstract thì phai implement tất cả các phương thức abstract của lớp cha

11.8.2.5. 1 lớp abstract kế thừa 1 lớp cha abstract có thể không implement các phương thức của lớp cha

11.8.2.6. lớp abstract không thể là final

11.8.2.7. phương thức abstract không thể là final

11.9. interface

11.9.1. là cấu trúc tương tự như lớp nhưng chỉ chứa hằng số và abstract method

11.9.2. quy định chung cho các lớp triển khai nó

11.9.3. sử dụng từ khóa interface để định nghĩa interface

11.9.4. tính chất

11.9.4.1. interface tạo ra 1 kiểu dữ liệu mới

11.9.4.2. không thể tạo đối tượng của interface

11.9.4.3. interface không thể chứa các phương thức không abstract

11.9.4.4. khi một lớp triển khai interface thì cần triển khai tất cả các phương thức được khai báo trong interface đó

11.9.4.5. interface có thể được thiết kế để khai báo cá phương thức chung cho các lớp không liên quan đến nhau

11.9.4.6. interface bổ sung cho việc java không hỗ trợ đa kế thừa

11.9.5. triển khai interface

11.9.5.1. 1 lớp triển khai interface bằng cách sử dụng từ khóa implements

11.9.5.2. 1 lớp có thể implements nhiều interface

11.9.6. kế thừa interface

11.9.6.1. 1 interface có thể kế thừa nhiều interface khác

11.9.6.2. interface con thừa hưởng các phương thức và hằng số được khai báo trong interface cha

11.9.6.3. interface con có thể khai báo thêm các thành phần mới

11.9.6.4. từ khóa extends được sử dụng để kế thừa interface

11.9.7. access modifier

11.9.7.1. mặc định là public

11.9.7.2. không cần thiết chỉ rõ access modifier của phương thức interface

11.9.8. khai báo hằng

11.9.8.1. có thể khai báo các hằng số trong interface

11.9.8.2. không cần thiết phải ghi rõ từ khóa final cho hằng số

11.9.8.3. không cân thiết chỉ rỏ access modifier cho hằng số

11.10. include && require

11.10.1. đều được sử dụng để nhúng trang php

11.10.2. điểm khác biệt

11.10.2.1. require sẽ tung ra lỗi nghiêm trọng ( E_COMPILE_EROR) và dừng thực thi

11.10.2.2. include sẽ tung ra cảnh cáo (E_WARNING) và tiếp tục thực thi

11.10.3. có thể nhúng trang php nhiều lần nếu được sử dụng nhiều nơi

11.10.4. include_once && require_once chỉ nhúng trang php duy nhất 1 lần

11.11. oop

11.11.1. static

11.11.1.1. được sử dụng để khai báo các thuộc tính và phương thức của lớp

11.11.1.2. các thành phần static trực thuộc lớp thay vi trực thuộc đối tượng

11.11.1.3. biến static còn được gọi là biến của lớp

11.11.1.4. phương thức static còn được gọi là phương thức của lớp

11.11.1.5. truy xuất các thành phần static bằng cách sử dụng lớp hoặc đối tượng

11.11.1.6. không cần khởi tạo vẫn có thể sử dụng các thành phần static

11.11.2. setter

11.11.3. getter

11.11.4. kế thừa

11.11.4.1. là cơ chế cho phép lớp con sử dụng lại các đặc điểm và hành vi đã được định nghĩa trong lớp cha

11.11.4.2. quan hệ lớp con với lớp cha là is-a

11.11.4.3. khái niệm

11.11.4.3.1. lớp được kế thừa gọi là lớp cha

11.11.4.3.2. lớp kế thừa gọi là lớp con

11.11.4.4. một số dạng kế thừa

11.11.4.4.1. single 1 lớp con kế thừa chỉ 1 lớp cha

11.11.4.4.2. multilevel 1 lớp con kế thừa từ 1 lóp cha, lớp cha lại kế thừa 1 lớp khác trên nó

11.11.4.4.3. hierarchical 1 lớp cha có nhiều lớp con với nhiều level khác nhau

11.11.4.5. cú pháp kế thừa

11.11.4.5.1. từ khóa extends được sử dụng dể kế thừa 1 lớp

11.11.4.6. method overriding (ghi đè phương thức )

11.11.4.6.1. là cơ chế cho phép lớp con định nghĩa lại các phương thức ở lớp cha

11.11.4.6.2. phương thức override ở lớp con có cùng tên cung danh sách tham số và kiểu dữ liệu trả về so với phương thức ở lớp cha

11.11.4.6.3. phương thức ở lớp con phải có access modifier có level bắng và cao hơn lớp cha

11.11.4.7. parent

11.11.4.7.1. được sử dụng trong 1 lớp con đẻ truy xuất các thuộc tính và phương thức lớp cha

11.11.4.7.2. parent::__construct được sử dụng trong lớp con để gọi đến constructor của lớp cha

11.11.4.8. final

11.11.4.8.1. được sử dụng với class hoặc method

11.11.4.8.2. với class ngăn chặn việc kế thừa 1 lớp

11.11.4.8.3. với method ngăn chặn việc ghi đè 1 phương thức

11.11.4.8.4. final class không thể là abstract class

11.11.5. là đơn vị thực thi cơ bản trong ngôn ngữ php, quy định hình thức và các khả năng của các đối tượng

11.11.6. constructor là 1 phương thức đặc biệt được sử dụng để khởi tạo các đối tượng của 1 lớp

11.11.7. đặt tên

11.11.7.1. tên lớp nên là 1 danh từ

11.11.7.2. tuân theo quy tắc Camel

11.11.7.3. nên đơn giản có nghĩa

11.11.7.4. không trùng với các từ khóa trong php

11.11.7.5. không được bắt đầu bằng chữ số . Có thể bắt đầu bằng ký tự $ hoặc _

11.11.8. khởi tạo đối tượng

11.11.8.1. sử dụng từ khóa new để tạo dối tượng

11.11.9. khai báo thuộc tính

11.11.9.1. mô tả các đặc điểm của đối tượng

11.11.9.2. thuộc tính còn được gọi là biến của đối tượng (instance variable)

11.11.10. khai báo phương thức

11.11.10.1. mô tả hành vi mà đối tượng có thể thực hiện

11.11.10.2. phương thức còn được gọi là phương thức của đối tượng (instance method)

11.11.11. hàm tạo (constructor)

11.11.11.1. dùng để tạo và khởi tạo các trạng thái ban đầu cuả đối tượng. Mặc định sẽ có 1 hàm tạo không có đối số được thêm vào cho lớp

11.11.11.2. có thể lựa chọn các constructor khác nhau bằng cách truyền vào các tham số khác nhau

11.11.12. truy xuất thuộc tính

11.11.12.1. thông qua biến trỏ đến đối tượng

11.11.12.2. sử dụng toán tử -> để truy xuất thuộc tính đối tượng

11.11.13. gọi phương thức

11.11.13.1. sử dụng toán tử -> để gọi phương thức đối tượng

11.11.14. access modifier

11.11.14.1. là các từ khóa được sử dụng để quy định mức độ truy cập đến lớp và các thành phần lớp

11.11.14.2. public có thể truy cập từ bất cứ đâu

11.11.14.3. private các phương thức và thuộc tính chỉ được phép truy xuất trong cung 1 lớp

11.11.14.4. protected các phương thức và thuộc tính được phép truy xuất trong cùng 1 lớp và ở lớp con kế thừa

11.11.15. từ khóa this

11.11.15.1. được sử dụng để đại diện cho đối tượng hiện tại

11.11.15.2. có thể sử dụng từ khóa this để truy cập đến các thành phần của đối tượng hiện tại

11.11.16. khai báo lớp đồng thời cũng là khai báo 1 kiểu dữ liệu mới để có thể khởi tạo các đối tượng thuộc kiểu dữ liệu đó

12. thuật toán sắp xếp

12.1. là qúa trình xử lý 1 danh sách các phần tử để đặt chúng theo thứ tự thỏa mãn 1 tiêu chuẩn nào đó dựa trên nội dung thông tin lưu giữ tại mỗi phần tử

12.2. thường xét trường hợp các phần tử cần sắp xếp các con số

12.3. một số thuật toán sắp xếp

12.3.1. sắp xếp nổi bọt

12.3.1.1. so sánh 2 phần tử kề nhau nếu chúng chưa đứng đúng thứ tự thì đổi chỗ cho nhau

12.3.1.2. có thể tiến hành từ trên xuống (từ trái sang ) từ dưới lên ( từ phải sang )

12.3.1.3. ưu điểm : code ngắn gọn nhất

12.3.1.4. nhược điểm : hiệu suất thấp nhất

12.3.2. sắp xếp chèn

12.3.2.1. thực hiện sắp xếp day số theo cách duyệt tưng phần tử và chèn từng phần tử đó vào đúng vị trí trong mảng con đã sắp xếp sao cho dãy số trong mảng đã sắp xếp đó đảm bảo tính chất của 1 dãy số tăng dần

12.3.2.2. ưu điểm : chạy nhanh khi mảng nhỏ hay được sắp xếp 1 phần

12.3.2.3. nhược điểm : hiệu suất thấp

12.3.3. sắp xếp chọn

12.3.3.1. là sắp xếp 1 mảng bằng cách đi tìm phần tử có giá trị nhỏ nhất trong đoạn đoạn chưa được sắp xếp và đổi phần tử nhỏ nhất đó với phần tử ở đâu đoạn chưa được sắp xếp

12.3.3.2. thuật toán sẽ chia lam 2 mảng con

12.3.3.3. ưu điểm :thuật toán chạy nhanh hơn khi mảng sắp xếp 1 phần

12.3.3.4. nhược điểm : hiệu suất không cao

12.3.4. sắp xếp vun đống

12.3.5. sắp xếp nhanh

13. String

13.1. là 1 kiểu dữ liệu cơ bản trong php

13.2. là dãy liên tiếp các ký tự

13.3. chuỗi không có ký tự gọi là chuỗi rỗng

13.4. đươc bao quanh bởi nháy đơn hoặc nháy kép

13.5. toán tử chuỗi

13.5.1. trong php để nối hai hay nhiều chuỗi ta sử dụng toán tử dấu chấm

13.6. ký tự đặc biệt

13.6.1. là những ký tự mà khi nó được viết vào bên trong chuỗi sẽ có nguy cơ làm ảnh hưởng đến cú pháp chuỗi khiến câu lệnh bị lỗi

13.7. chỉ số của ký tự chuỗi

13.7.1. chuỗi được coi như là mảng của các ký tự vì vậy các ký tự trong chuỗi được thao tác như thao tác với các phần tử trong mảng chứa các tập ký tự

14. Cấu trúc dữ liệ và giải thuật

14.1. cấu trúc dữ liệu

14.1.1. là hình thức tổ chức 1nhoms dữ liệu

14.1.1.1. lưu trữ dữ liệu

14.1.1.2. cung cấp các phương thức để thao tác với dữ liệu

14.1.2. khái niệm

14.1.2.1. container: lớp chứa dữ liệu

14.1.2.2. Element: các phần tử dữ liệu

14.1.3. cấu trúc thông dụng

14.1.3.1. set : nhóm các phần tử không trùng nhau

14.1.3.2. array

14.1.3.3. list : nhóm các phần tử có thể trùng nhau

14.1.3.4. stack : nhóm các phần tử theo trật tự first-in/last-out (vào trước / ra sau )

14.1.3.5. queue : nhóm các phần tử theo trật tự first-in/ last-out ( vào trước / ra trước )

14.1.3.6. map : lưu trữ các cặp key/value

14.1.3.7. tree : lưu trữ theo mối quan hệ cha con

14.1.3.8. graph : lưu trữ theo mối quan hệ mạng lưới

14.1.4. ArrayLisst

14.1.4.1. là 1 danh sách

14.1.4.2. lưu trữ dữ liệu trong mảng

14.1.4.3. kích thước thay đổi được

14.1.4.4. truy xuất phần tử nhanh

14.1.4.5. thêm xóa phần tử chậm

14.1.4.6. thao tác cơ bản

14.1.4.6.1. get(): lấy về phần tử

14.1.4.6.2. add() : thêm 1 phần tử

14.1.4.6.3. remove(); xóa 1 phần tử

14.1.4.6.4. size() : lấy về số lượng phần tử

14.1.4.6.5. find(); tìm kiếm phần tử

14.1.4.6.6. isEmpty() : kiểm tra rỗng

14.1.5. LinkedLisst

14.1.5.1. các phần tử liên kết với nhau qua tham chiếu

14.1.5.2. truy xuất ngẫu nhiên chậm

14.1.5.3. thêm xóa phần tử nhanh

14.1.5.4. hoạt động trên cơ chế liên kết giữa các node . Mỗi node chứa dữ liệu của node đó và liên kết với node khác

14.1.5.5. singly linkedlisst

14.1.5.5.1. một node chỉ có 1 liên kết đến node phía sau nó. node cuối cùng trỏ về null

14.1.5.6. circular linkedlisst

14.1.5.6.1. node cuối cùng trỏ về node đầu tiên

14.1.5.7. doubly linkey list

14.1.5.7.1. một node chứa 2 liên kết trỏ đến phần tử trước và sau nó

14.1.5.7.2. phần tử phía trước của phần tử đầu tiên là null

14.1.5.7.3. phần tử phía sau của phần tử sau là null

14.1.5.8. circular doubly linkedlisst

14.1.5.8.1. node đầu tiên và node cuối cùng có liên kết trỏ đến nhau

14.2. tree

14.2.1. là một cấu trúc dữ liệu được sư dụng rộng rãi gồm các node được liên kết với nhau theo quan hệ cha con

14.2.2. khái niệm cơ bản

14.2.2.1. nút gốc

14.2.2.2. nút cha

14.2.2.3. nút con

14.2.2.4. nút lá

14.2.2.5. cây con

14.2.2.6. duyệt

14.3. Queue

14.3.1. là một câu trúc dữ liệu trừu tượng, tương tự như hàng đợi trong đòi sống hàng ngày

14.3.2. tuân theo phương thức first-in/last-out ( vào trước / ra trước )

14.3.3. enqueue() : thêm 1 phần tử vào trong hàng đội

14.3.4. dequeue(): xóa 1 phần tử từ hàng đợi

14.3.5. peek(): lấy phần tử ở đầu hàng đợi mà không xóa phần tử này

14.3.6. isEmpty(): kiểm tra rỗng

14.3.7. isfull () : kiểm tra hàng đợi đầy hay chưa

14.4. stack

14.4.1. giống như là 1 ngăn xếp

14.4.2. hoạt động theo nguyên lý last-in/first-out (vào sau / re trước )

14.4.3. có thể dùng mảng hoặc là 1 linkedlist để lưu trữ phần tử

14.4.4. thao tác cơ bản

14.4.4.1. push() : lưu giữ 1 phần tử trên ngăn xếp

14.4.4.2. pop() : xóa 1 phần tử từ ngăn xếp

14.4.4.3. peek() : lấy phần tử dữ liệu của ngăn xếp mà không xóa phần tử này

14.4.4.4. isEmpty() : kiểm tra rỗng

14.4.4.5. isfull() : kiểm tra ngăn xếp đã đầy hay chưa

15. MVC

15.1. model

15.1.1. Quản lý dữ liệu, lưu trữ, truy vấn, giao tiếp với CSDL

15.2. view

15.2.1. là giao diện của ứng dụng, biểu diễn giữ liệu

15.3. controller

15.3.1. quản lý dữ liệu và điều phối luồng hoạt động, nhận request từ client, điều phối model và view để cho ra output thích ứng và trả về kết quả cho người dùng

15.4. Lợi ích

15.4.1. Tách biệt Model và View, tạo sự linh hoạt khi thay đổi ứng dụng như giao diện hoặc xử lý logic

15.4.2. Tầng Model và View có thể thay đổi, chỉnh sửa 1 cách độc lập. vậy nên ta có thể tạo các giao tiếp thông minh hơn chỉ bằng cách thay đổi view, hoặc cũng có thể thay thế Database bằng cách sử dụng Wed Service...

15.5. PDO

15.5.1. là một extentions để tối ưu hơn trong việc truy xuất Database.

15.5.2. cung cấp các cơ chế để thao tác với Database thông qua các đới tượng

15.5.3. Kết nối đến CSDL

15.5.3.1. $conn = new PDO('mysql:host = localhost, dbname = 'name', $username, $password

15.5.4. Thao tác

15.5.4.1. thêm mới

15.5.4.2. cập nhật

15.5.4.3. đọc dữ liệu

15.5.4.3.1. fetch_obj

15.5.4.3.2. fetch_class

15.5.5. dùng exceptions PDO để xử lý các ngoại lệ