Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ tháng tư, 2016

Exception trong python.

Python cung cấp 2 tính năng rất quan trọng để handle những lỗi không mong muốn và thêm khả năng debug trong ứng dụng python của bạn.

1. Exception handling.
2. Assertions.

Trong phần này ta chỉ chú trọng bào Exception handling.

Danh sách các Exception tiêu chuẩn:

EXCEPTION NAMEDESCRIPTIONExceptionBase class for all exceptionsStopIterationRaised when the next() method of an iterator does not point to any object.SystemExitRaised by the sys.exit() function.StandardErrorBase class for all built-in exceptions except StopIteration and SystemExit.ArithmeticErrorBase class for all errors that occur for numeric calculation.OverflowErrorRaised when a calculation exceeds maximum limit for a numeric type.FloatingPointErrorRaised when a floating point calculation fails.ZeroDivisonErrorRaised when division or modulo by zero takes place for all numeric types.AssertionErrorRaised in case of failure of the Assert statement.AttributeErrorRaised in case of failure of attribute reference or assignment.EOF…

Tuples trong python.

Không giống như list trong python. tuple là một tuần tự của những đối tượng không thay đổi được. Thông thường được bắt đầu bởi dấu ( và kết thúc là dấu )

Ví dụ ta có 1 tuple sau:

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

Một tuple rỗng thì được định nghĩa:

tup = ();

Bạn có thể định nghĩa:

tup = (50,);

Truy cập giá trị trong tuple:

`#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );

print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]`


Khi chạy file code trên giá trị in ra sẽ là:

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]\

Thay đổi giá trị tuple, như đã nói ở trên tuple khác với list là không thể thay đổi giá trị của tuple :

ví dụ:
#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# không thay đổi được giá trị tuple
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = t…

Khác nhau giữa Chef và Ansible.

Nói chung 2 tools này có công dụng thì như nhau, nhưng nó có 1 số đặc điểm khác nhau như sau:

1. Chef được viết bằng ruby và dùng các syntax của ruby để viết các cookbook. Trong khi python là ngôn ngữ chính của Ansible.

2. Chef khi boottrap thì phải thông qua Server chủ của chef, còn Ansible thì chạy thẳng từ PC của admin lên các server được tạo và Ansible sử dụng ssh trực tiếp vào trong server được tạo để cài đặt.

3. Khả năng cài đặt bằng chef nhanh hơn bằng Ansible.

4. Trái tim của Chef là cookbook còn Ansible là playbook

JSON là gì ?

Cấu hình load balancing health check cho nginx.

File defaul nginx load balancing :
http { upstream myapp1 { server srv1.example.com; server srv2.example.com; server srv3.example.com; } server { listen 80; location / { proxy_pass http://myapp1; } } } Ví dụ bạn có file nginx như sau:
upstream mywebsite1 { least_conn; server xxx.xxx.xxx.20 weight=1 max_fails=3 fail_timeout=15s; server xxx.xxx.xxx.21 weight=1 max_fails=3 fail_timeout=15s; } Cấu hình trên là cấu hình load balancer cho nginx với max_fail = 3 , nghĩa là với request thứ 7 khi 1 server bị down thì từ request thứ 7 trở đi ,tất cả các request được trỏ về server còn sống. Nên để cấu hình heath check bạn cấu hình max_fail = 1 , nghĩa là từ request thứ 3 trở đi đều redirect về server live nếu 1 trong 2 server live die Chi tiết www.manageitservice247.com

MỘT VÍ DỤ RÕ RÀNG HƠN VỀ ROUTE TRONG NODE.JS VÀ EXPRESS.

Trong phần mềm, phần định tuyến (route) là rất quan trọng bởi vì nó định nghĩa một URL để giao tiếp với ứng dụng. Nếu nó không được tổ chức tốt thì về mặt logic là rất khó cho việc bảo trì sau này.          Trong ví dụ này ta sử dụng express frameworks để xây dựng một cars API đơn giản.
GET /models GET /models/:modelId GET /models/:modelId/cars GET /cars GET /cars/:carId
Trước tiên ta tạo thư mục project có tên là: car-api và cài đặt các thư viện cho nó:
mkdir car-api cd car-api npm init -y npm i -S express npm i -D nodemon
Thêm phần start ứng dụng vào package.json
"start": "nodemon app.js"
Tạo một file JSON để lưu trữ dữ liệu API như dưới: 
{   "models": [     {       "id": 1,       "name": "Toyota"     },     {       "id": 2,       "name": "Mazda"     }   ],   "cars": [     {       "id": 1,       "name": "Corolla",       "modelId": 1     },     {       "id": 2,    …