Điều hướng. Làm cách nào để biết url nào ứng với controller nào.

Điều hướng (routing) là cơ chế dựa vào url, và các thông tin liên quan khác như phuong thức (method), tham số (param), … để chỉ định controller cho truy vấn. (Định nghĩa tự nghĩ ra)

Nguyên lí khá đơn giản. Xem cái truy vấn đó khớp nhất với quy tắc nào thì dùng controller tương ứng với quy tắc đó.

Cái điều hướng đơn giản của mình sẽ dựa vào 2 thứ:

  • Phuowng thức có khớp ko
  • Url có khớp ko.
    • Url khớp chính xác
    • Url khớp với regex

Ví dụ:

  • GET / sẽ khớp với GET /
  • POST /123 sẽ khớp với POST /123
  • PUT /id/{id} sẽ khớp với /id/<chuỗi chữ số >

Từ đó gọi tới controller tương ứng với mỗi truy vấn.

Comment and share

Con nhà người ta code config ntn. mình code config ntn.

File config mỗi thằng code 1 kiểu. Apache dùng file text theo dạng tự quy định. Laravel dùng mảng nhiều chiều, thêm config thì điền vào mảng.

Mình làm đơn giản thôi, dùng json. Tạo 1 cái struct rồi load json vào struct đó. Khi thêm config thì thêm dòng vào struct và json.

Cấu trúc struct

1
2
3
4
5
6
7
8
9
10
11
12
type Config struct {
Database struct {
Host string
User string
Pass string
Name string
Driver string
}
App struct {
Env string
}
}

Cấu trúc Json

1
2
3
4
5
6
7
8
9
10
11
12
{
"database": {
"host":"127.0.0.1",
"user":"admin",
"pass":"12345",
"name":"oximen",
"driver":"mysql"
},
"app": {
"ENV":"dev"
}
}

Thật là đơn giản :p

Comment and share

Từ mô hình đến thực tế

Khi khởi động sẽ bắt đầu chạy vào main.go. File này sẽ thiết lập các thứ linh tính rồi bắt đầu sang router, controller, view như hình hôm nọ. Mấy cục shit kia tính sau.
mô hình

Framework của mình thì phải pro. Mà pro thì phải có hot reload. Không thể như mấy cái webpef… cùi cùi gì đó được. Khi thay đổi thiết lập, chỉ cần chạy lệnh reload cái, thiết lập mới sẽ được load ngay lập tức.
Cơ ché hot reload này đơn giản lắm.
Cứ coi mỗi chương trình chạy trong máy tính như 1 thằng sinh viên. Sinh viên có mã sinh viên thì chương trình khi chạy cũng có process Id. Nhà trường báo sinh viên nộp đồ án qua mã số sinh viên cũng giống như mình báo cho chương trình load lại thiết lập qua process Id (viết tắt là pid ).
Continue reading

Ý tưởng

Sau 1 hồi câu kéo đủ 30 likes, mình quyết định thực hiện ý tưởng: làm 1 cái web framework bằng golang. Mục tiêu đơn giản thôi. Làm 1 cái frame work đơn giản dễ hiểu, có khả năng mở rộng cao, có thể phục vụ hàng tỉ yêu cầu, cho hàng triệu system engineer sử dụng. Framework sẽ sử dụng các nguyên lý, kiến thức cơ bản, dễ hiểu đối với mọi người, để ai cũng có thể hiểu, mở rộng, phát triển framework này. Hơn nữa, framework này sẽ là một mô hình để mọi người có thể hiểu cơ chế hoạt động của các framework hiện đại.

Tại sao lại là go

Những ngôn ngữ chúng ta hay sử dụng: C, C++, Java, Python, PHP, Javascript,… đều là các ngôn ngữ từ “thời tiền sử”.
Máy tính năm 1995, CPU 75Mhz, RAM 8MB.
Cấu hình năm 1995

Continue reading

Code RNN

Code RNN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Recurrent Neural Network



# Part 1 - Data Preprocessing

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# Importing the training set
dataset_train = pd.read_csv('Google_Stock_Price_Train.csv')
training_set = dataset_train.iloc[:, 1:2].values

# Feature Scaling
from sklearn.preprocessing import MinMaxScaler
sc = MinMaxScaler(feature_range = (0, 1))
training_set_scaled = sc.fit_transform(training_set)
Continue reading
Author's picture

Nguyen Tien Thanh

(o.O)


Spamer


Kanagawa,Japan