Tài chính mở: Thực tế hay cường điệu? PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Tài chính mở: Thực tế hay cường điệu? 

Thường có một số lo ngại khi triển khai một công nghệ mới chẳng hạn như điều gì sẽ xảy ra nếu chúng ta mắc kẹt ở đâu đó và cuối cùng sẽ lãng phí thời gian và công sức của chúng ta. Có thể chúng tôi sẽ phải quay lại giải pháp ban đầu. Chúng tôi đã đối mặt với các vấn đề tương tự cách đây một năm nhưng sau khi nghiên cứu sâu và lâu dài, chúng tôi đã tìm ra giải pháp an toàn và bảo mật hơn-Golang và các khuôn khổ của nó. Cách nó được ghi lại thực sự hữu ích. Tuy nhiên, chúng tôi khá chắc chắn rằng chúng tôi sẽ không tìm thấy tất cả các câu trả lời trực tuyến, đây là một thách thức mà chúng tôi đã chấp nhận tinh thần Lailah Gifty Akita's câu ngạn ngữ nổi tiếng, “LUÔN CÓ GIẢI PHÁP CHO MỌI TÌNH HUỐNG THỬ THÁCH.”

Blog này chủ yếu nói về Golang-Beego framework và các ứng dụng của nó. Chúng ta sẽ thảo luận về cách Golang được sử dụng trong Phát triển Web và lý do tại sao hầu hết các nhà phát triển chuyển từ Python, Node hoặc các ngôn ngữ khác sang Go.

Chúng ta hãy hiểu về khung Golang để biết nó hoạt động như thế nào.

Golang là gì?

Xuất hiện lần đầu tiên vào năm 2009, Golang (thường được biết đến với cái tên cờ vây) nhanh chóng nhận được sự yêu thích của các nhà phát triển, trở thành ngôn ngữ ưa thích của hơn 90% người dùng. Ngôn ngữ tổ tiên của nó là ngôn ngữ lập trình C và C ++, điều này khá rõ ràng khi xem xét cú pháp và các tính năng biên dịch của nó. 

Chủ yếu được sử dụng để phát triển phụ trợ, Go có 4 trường hợp sử dụng khác- 

  1. Dịch vụ đám mây & mạng
  2. Giao diện dòng lệnh (CLI) 
  3. Phát triển Web
  4. Hoạt động phát triển & Kỹ thuật độ tin cậy của trang web. 

Dưới đây là một số tính năng chính của Golang khiến framework này trở thành lựa chọn ưu tiên cho các nhà phát triển:

1. Đơn giản 

Cú pháp Go rất đơn giản như được hiển thị ở đây và trình biên dịch có thể ngửi thấy sự cố và phát sinh lỗi trong quá trình xây dựng - tức là trước khi chương trình được chạy.

Tính linh hoạt, khả năng sử dụng và khái niệm cực kỳ thú vị đằng sau Go (cách nó xử lý đồng thời gốc, thu gom rác và tốc độ + an toàn) là một số tính năng khá hữu ích cho các nhà phát triển.

2. Tốc độ

Đồng thời tích hợp (Goroutines và Channels) là một trong những lý do chính cho hiệu suất cao của nó. Phân tích điều này tràn ngăn xếp sẽ cho phép chúng tôi ước tính tốc độ của nó.

“Tôi có thể đã thực hiện điều này không chính xác vì kết quả không có ý nghĩa. Tôi có một chương trình cờ vây được đếm đến 1000000000; nó kết thúc trong vòng chưa đầy một giây. Mặt khác, tôi có một tập lệnh Python; nó sẽ kết thúc sau vài phút. Tại sao phiên bản cờ vây lại nhanh hơn rất nhiều? Cả hai đều đang đếm đến 1000000000 hay tôi đang thiếu thứ gì đó? ” 

Nếu bạn vẫn không chắc chắn về tốc độ, đây là so sánh giữa Go, Nút Node, Java và Python sẽ giúp hiểu rõ hơn về cách sử dụng của nó:

Thông số thiết bị của tôi:

Tên thiết bị- LAPTOP-Q8U9LM8P

Bộ xử lý- CPU Intel (R) Core (TM) i5-10210U @ 1.60 GHz 2.10 GHz

Đã cài đặt RAM- 16.0 GB (có thể sử dụng được 15.6 GB)

Loại hệ thống- Hệ điều hành 64-bit, bộ xử lý dựa trên x64

N-body in:

Nguồn thời gian để đếm 

Đi: 6.34 giây

Python3: 545.25 giây

GO

Đầu ra:

yếu tố   Thời gian để tính giai thừa

10000 0.008 giây

50000 0.506 giây

100000 3.154 giây

500000 82.394 giây

1000000 284.445 giây

NodeJS (Javascript)

Đầu ra:

Thời gian giai thừa để tính giai thừa

10000 0.113 giây

50000 1.974 giây

100000 22.730 giây

500000 477.534 giây 

1000000 1175.795 giây 

Python

Đầu ra:

Thời gian giai thừa để tính giai thừa

10000 0.046 giây

50000 1.187 giây

100000 6.051 giây

500000 388.607 giây 

1000000 813.725 giây 

JAVA

Đầu ra:

Thời gian giai thừa để tính giai thừa

10000 0.064 giây

50000 1.607 giây

100000 5.363 giây

500000 141.076 giây

1000000 585.868 giây

3. An toàn:

Bộ sưu tập GARBAGE:

Thích đi chỉ định bộ nhớ trên ngăn xếp, vì vậy hầu hết các phân bổ bộ nhớ sẽ kết thúc ở đó. Điều này có nghĩa là nó có một ngăn xếp trên mỗi quy trình và khi có thể, nó sẽ gán các biến cho ngăn xếp này.

Bộ thu gom rác đánh dấu và quét Golang có hai giai đoạn: Đánh dấu và Quét. Đầu tiên, nó sẽ đánh dấu tất cả các biến chưa sử dụng và đã sử dụng, sau đó quét những biến không sử dụng.

Các số liệu thống kê và mô tả ở trên gợi ý lý do tại sao một người nên làm việc với cờ vây. Khung Golang tốt nhất để tạo API cũng tăng tốc và tạo điều kiện phát triển.

Tại sao chúng tôi sử dụng Beego Framework?

Dù là Go hoặc Beego, cả hai đều rất tuyệt vời để phát triển các API REST hiệu suất cao. 

Beego là một khuôn khổ “bao gồm pin”, với các công cụ tích hợp sẵn (công cụ ong), ORM và các thư viện so với các khuôn khổ khác như Gin-gonic, đây không phải là loại “bao gồm pin” và chứa hầu hết các thư viện và tính năng cần thiết không tốt cho các tính năng phía máy chủ.

Beego sử dụng khuôn khổ Model-View-Controller (MVC) điển hình đã trở nên tốt cho những người (như chúng tôi) làm việc trên Python-Django trước đây và Beego cũng khá giống nhau.

Tại sao chúng tôi sử dụng Beego Framework?

Kết luận: 

Đó là cách chúng tôi bắt đầu ứng dụng của mình với Golang và Beego. Chúng tôi đã làm việc trên PDF, Xử lý hình ảnh với ImageMagick, AWS-SNS, AWS-SES SMTP, cuộc gọi IVR, Fax, Chữ ký kỹ thuật số, Tạo báo cáo với ORM, v.v. Và chúng tôi không tìm thấy bất kỳ sự tắc nghẽn nào khi làm việc với các tính năng của bên thứ ba như Twilio hoặc AWS. Nó thực sự đơn giản để viết mã trên Golang như được đề cập bởi những người sáng tạo của họ. Có những thách thức nhất định trong việc sử dụng khuôn khổ này nhưng cũng có những giải pháp. Chúng tôi thực sự thích nó khi làm việc trên khuôn khổ này. MAY MẮN NHẤT cho các ứng dụng Golang sắp tới của bạn.

Lưu ý

Piyush Raj tốt nghiệp trường IIT Kharagpur tại Cục Hóa chất. Anh bắt đầu sự nghiệp của mình với ML và AI, và hiện làm việc tại Mantra Labs với tư cách là nhà phát triển phần mềm. Khi rảnh rỗi, anh ấy thích khám phá những con đường mới trong thế giới thực hoặc trên giấy thông qua việc đi du lịch và vẽ tranh.

Dấu thời gian:

Thêm từ Phòng thí nghiệm thần chú