1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến

54 1,1K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 3,78 MB

Nội dung

Điểm neoNgôn ngữ scala là một ngôn ngữ lập trình còn khá mới lạ đối với Việt Nam, nhất là đối tượng sinh viên đang còn trên ghế giảng đường. Trên cơ sở đang mê lập trình và thích tìm kiếm những điều mới lạ chúng tôi đã quyết định chọn đề tài “TÌM HIỂU NGÔN NGỮ LẬP TRÌNH SCALA, XÂY DỰNG WEBSITE CHIA SẺ ẢNH TRƯC TUYẾN” làm đề tài nghiên cứu cho nhóm chúng tôi.Bởi vì đây là một ngôn ngữ khá mới mẽ nên hiện nay những tài liệu hoàn chỉnh về ngôn ngữ còn rất hạn chế, đặc biệt là tài liệu Tiếng Việt. Cho nên chúng tôi đã quyết định sử dụng tài liệu Tiếng Anh và các bài thảo luận trên các diễn đàn nước ngoài làm nguồn hỗ trợ chính. Ban đầu cách tiếp cận này có thể gặp nhiều khó khăn, nhất là đối với những thuật ngữ riêng trong ngành, ngôn ngữ lập trình. Tuy nhiên, sau khi đã nắm được những đặc điểm cơ bản thì việc tìm hiểu sẽ trở nên dễ dàng hơn nhiều. Sau đề tài chúng tôi nhận ra rằng nghiên cứu những tài liệu tiếng nước ngoài và thông qua các diễn đàn sẽ mang lại một lượng kiến thức lớn và nhanh chóng hơn cách cổ điển với những cuốn sách rất nhiều. Tự nghiên cứu sẽ giúp chúng ta nhớ kiến thức tìm kiếm được lâu hơn và tạo một thói quen tốt sau này.Sau khi nghiên cứu đề tài chúng tôi đã quyết định chia thời gian nghiên cứu làm hai giai đoạn: Giai đoạn một, tập trung nghiên cứu về những vấn đề cơ bản của ngôn ngữ, những khái niệm cơ bản của một ngôn ngữ lập trình phải có, công cụ để hỗ trợ biên dịch làm sao có thể chạy được một chương trình đơn giản ví dụ như “Hello World” . Tiếp đến giai đoạn hai, sẽ tập trung nghiên cứu về framework hỗ trợ cho việc viết web trên ngôn ngữ được giao, từ đó xây dựng trang web theo yêu cầu của đề tài Đồ án. CHƯƠNG 2 – TÌM HIỂU VỀ PLAY FRAMEWORK 21.1 Tổng quan về Play Framework 21.1.1 Khái niệmPlay là một chương trình khung dùng để tạo các ứng dụng web, được viết bằng Scala and Java theo kiến trúc model–view–controller (MVC). Play được tạo ra với mục đích tăng hiệu suất lập tình bằng các sử dụng quy ước bằng cấu hình, tải lại mã nóng và hiển thị lỗi trên trình duyệt– Nguồn 21.1.2 Những điểm nổi bậtPlay Framework 2 là một framework để viết web bằng ngôn ngữ java và scala với tiêu chí nhẹ, không trạng thái, thân thiện với nền tảng web các đặc điểm sau: Dựa trên nền tảng java JVM(Java Virtual Machine): Có thể sử dụng đa nền. Thân thiện với người phát triển: Bạn chỉ cần chỉnh sửa trong texteditor và sau đó nhấn refresh trên trình duyệt web, mọi chỉnh sửa sẽ có hiệu lực. Quy mô đơn giản:Bên dưới nền tảngPlay sử dụng một mô hình hoàn toàn bất đồng bộ được xây dựng trên Akka. Kết hợp với đặc điểm không trạng thái của web, quy mô của Play trở nên đơn giản. Thích hợp cho cả Web và moblie:Play có thể hoạt động tốt trên cả nền tảng web và mobile. – Nguồn 4Play framework 1 được tích hợp rất nhiều gói thư viện hỗ trợ, mỗi gói thư việc hỗ trợ một số chức năng nhất định, sau đây là những gói thư viện chính: Netty: Netty là mộtframework hỗ trợ giao tiếp theo dạng NIO (NonBlocking IO) giữa máy chủ và máy trạm.Điều này giúp cho việc giao tiếp giữa máy chủ và máy trám trở nên nhanh chóng và dễ dàng hơn rất nhiều. Nó đơn giản và phù hợp với việc lập trìnhsocket các phương thức như TCP và UDP ở máy chủ. Mặc dù Play được thiết kế để chạy trên máy chủ web JBoss Netty, nhưng nó hoàn có thể đóng gói theo kiểu WAR và sử dụng trong những máy chủ khác bằng Java EE. JPA and Hibernate: Đây là 2 gói thư viện hỗ trợ quản lý thực thể và truy vấn cơ sở dữ liệu Groovy: Được sử dụng như mộtcông cụ để tạo ra giao diện web. Mã nguồn giao diện web sử dụng Groovy ở dạng text như html nhưng có thể chèn thêm những dòng lệnh để sinh ra nội dung đọng. Cú pháp của ngôn ngữ Groovy cũng tương tự như Java.

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN 1

TÌM HIỂU NGÔN NGỮ LẬP TRÌNH SCALA, XÂY DỰNG WEBSITE CHIA

SẺ ẢNH TRỰC TUYẾN

Người hướng dẫn: Th.S PHẠM VĂN SIM ANH

Người thực hiện: ĐÀO THÀNH ĐẠT

LÊ NGỌC NAM Lớp : 11050302

Khoá : 15

Trang 2

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2014

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN 1

TÌM HIỂU NGÔN NGỮ LẬP TRÌNH SCALA, XÂY DỰNG WEBSITE CHIA

SẺ ẢNH TRỰC TUYẾN

Người hướng dẫn: Th.S PHẠM VĂN SIM ANH

Người thực hiện: ĐÀO THÀNH ĐẠT

LÊ NGỌC NAM Lớp : 11050302

Khoá : 15

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2014

Trang 3

LỜI CẢM ƠN

Sau một thời gian thực hiện Đồ án 1 đến nay, mọi công việc đã hoàn thành.Trong quá trình thực hiện đồ án chúng em đã nhận được nhiều sự giúp đỡ từ mọingười Em xin chân thành gửi lời cám ơn đến những người chúng em vô cùng biếtơn:

Đầu tiên, chúng em rất cám ơn đến thầy Sim Anh đã tận tình hướng dẫn, chỉbảo và để xuất hướng giải quyết khi chúng em gặp khó khăn trong suốt quá trìnhhoàn thành đồ án

Để đạt được kết quả này, chúng em cũng rất chân thành gửi lời cám ơn đếntoàn thể thầy cô khoa Công Nghệ Thông Tin đã tận tình giảng dạy, trang bị chochúng em kiến thức trong thời gian học tại trường

Chúng em cũng đồng gửi lời cảm ơn đến các anh chị, bạn bè đã cùng traođổi, hỗ trợ, chia sẻ giúp chúng em hoàn thành để tài

Mặc dù đã cố gắng hoàn thành đề tài trong phạm vi cho phép, nhưng đây làngôn ngữ mới, khá xa lạ với chúng em nên không thể tránh khỏi sai sót, chúng emrất mong nhận được sự đóng góp phê bình của các thầy cô để để được những kinhnghiệm khi ra trường và công việc sau này

Trang 4

ĐỒ ÁN ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là sản phẩm đồ án của chúng tôi và được sự hướng dẫncủa Th.S Phạm Văn Sim Anh Các nội dung nghiên cứu, kết quả trong đề tài này làtrung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệutrong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tácgiả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo

Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như sốliệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồngốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên

quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thựchiện (nếu có)

TP Hồ Chí Minh, ngày tháng năm

Tác giả (ký tên và ghi rõ họ tên)

Đào Thành Đạt

Lê Ngọc Nam

Trang 5

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN

Phần xác nhận của GV hướng dẫn

_

Tp Hồ Chí Minh, ngày tháng năm

(kí và ghi họ tên)

Phần đánh giá của GV chấm bài

_

Tp Hồ Chí Minh, ngày tháng năm

(kí và ghi họ tên)

Trang 6

TÓM TẮT

Ngôn ngữ scala là một ngôn ngữ lập trình còn khá mới lạ đối với Việt Nam,nhất là đối tượng sinh viên đang còn trên ghế giảng đường Trên cơ sở đang mê lậptrình và thích tìm kiếm những điều mới lạ chúng tôi đã quyết định chọn đề tài “TÌMHIỂU NGÔN NGỮ LẬP TRÌNH SCALA, XÂY DỰNG WEBSITE CHIA SẺẢNH TRƯC TUYẾN” làm đề tài nghiên cứu cho nhóm chúng tôi

Bởi vì đây là một ngôn ngữ khá mới mẽ nên hiện nay những tài liệu hoànchỉnh về ngôn ngữ còn rất hạn chế, đặc biệt là tài liệu Tiếng Việt Cho nên chúngtôi đã quyết định sử dụng tài liệu Tiếng Anh và các bài thảo luận trên các diễn đànnước ngoài làm nguồn hỗ trợ chính Ban đầu cách tiếp cận này có thể gặp nhiều khókhăn, nhất là đối với những thuật ngữ riêng trong ngành, ngôn ngữ lập trình Tuynhiên, sau khi đã nắm được những đặc điểm cơ bản thì việc tìm hiểu sẽ trở nên dễdàng hơn nhiều Sau đề tài chúng tôi nhận ra rằng nghiên cứu những tài liệu tiếngnước ngoài và thông qua các diễn đàn sẽ mang lại một lượng kiến thức lớn và nhanhchóng hơn cách cổ điển với những cuốn sách rất nhiều Tự nghiên cứu sẽ giúpchúng ta nhớ kiến thức tìm kiếm được lâu hơn và tạo một thói quen tốt sau này

Sau khi nghiên cứu đề tài chúng tôi đã quyết định chia thời gian nghiên cứulàm hai giai đoạn: Giai đoạn một, tập trung nghiên cứu về những vấn đề cơ bản củangôn ngữ, những khái niệm cơ bản của một ngôn ngữ lập trình phải có, công cụ để

hỗ trợ biên dịch làm sao có thể chạy được một chương trình đơn giản ví dụ như

“Hello World” Tiếp đến giai đoạn hai, sẽ tập trung nghiên cứu về framework hỗtrợ cho việc viết web trên ngôn ngữ được giao, từ đó xây dựng trang web theo yêucầu của đề tài Đồ án

Trang 7

Trên cơ sở nỗ lực của nhóm và sự định hướng, giúp đỡ nhiệt tình của người hướngdẫn Th.S Phạm Văn Sim Anh , chúng tôi đã đạt được những thành quả bước đầutrong việc tìm hiểu và sử dụng một ngôn ngữ lập trình mới để giải quyết yêu cầuđược đặt ra Không những thế còn nâng cao khả năng tìm hiểu và kỹ năng lập trìnhcho mỗi thành viên của nhóm Mang lại những kinh nghiệm quý báu cho sau này.

Trang 8

MỤC LỤC

LỜI CẢM ƠN iii

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN iii

TÓM TẮT iv

MỤC LỤC 1

DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ 4

CHƯƠNG 1 – TÌM HIỂU VỀ NGÔN NGỮ SCALA 6

1.1 Tổng quan về ngôn ngữ Scala 6

1.1.1 Giới thiệu 6

1.1.2 Nền tảng 6

1.1.3 Khả năng mở rộng 6

1.1.4 Lập trình hàm 6

1.1.5 Lập trình hướng đối tượng 6

1.1.6 Những đặc điểu nổi bật khác 7

1.2 Giới thiệu công cụ hỗ trợ và biên dịch một chương trình đơn giản 8

1.2.1 Công cụ hỗ trợ 8

1.2.2 Tạo Project và viết ứng dụng “Hello World” 8

1.2.3 Biên dịch 9

1.2.4 Biên dịch và thực thi Scala source bằng Command Line 10

1.3 Những khái niệm cơ bản trong ngôn ngữ Scala 10

1.3.1 Khai báo biến 10

1.3.2 Cách khai báo phương thức/ hàm 11

1.3.3 Cấu trúc lặp, rẽ nhánh và điều kiện 11

1.3.4 Kiểu dữ liệu 12

1.3.5 Class 12

1.3.6 Một số gói thư viện cơ bản trong ngôn ngữ scala 13

CHƯƠNG 2 – TÌM HIỂU VỀ PLAY FRAMEWORK 2 14

1.1 Tổng quan về Play Framework 2 14

Trang 9

1.1.1 Khái niệm 14

1.1.2 Những điểm nổi bật 14

1.1.3 Lịch sử phát triển kiến trúc Play Framework 15

1.2 Hướng dẫn cài đặt Play Framework 2 17

1.2.1 Những công cụ cần thiết 17

1.2.2 Cài đặt và kiểm tra 18

1.2.3 Tạo mới một chương trình sử dụng Play Framework 20

CHƯƠNG 3 – DEMO WEB CHIA SẺ ẢNH 22

1.2 Khảo sát và phân tích hệ thống 22

1.2.1 Phân tích yêu cầu 22

1.2.2 Lược đồ usecase 23

1.2.3 Phân tích và thiết kế hệ thống 27

1.3 GIAO DIỆN VÀ CHỨC NĂNG 31

1.3.1 Tổng quan về giao diện 31

1.3.2 Tổng quan về giao diện Giao diện chi tiết và chức năng 33

CHƯƠNG 4 – TỔNG KẾT 40

1.1 Kết quả đạt được 40

1.1.1 Về công nghệ 40

1.1.2 Về kỹ năng 40

1.2 Đánh giá chung 40

1.2.1 Ưu điểm 40

1.2.2 Nhược điểm 40

1.3 Hướng phát triển 40

Trang 10

DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT

CÁC CHỮ VIẾT TẮT

Bảng 0.1: Bảng các chữ viết tắt

Trang 11

DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ

DANH MỤC HÌNH

Hình 1.1: Tạo Project mới bằng Bundle of the Scala IDE for Eclipse 8

Hình 1.2: Biên dịch và thực thi bằng Command Line 10

Hình 1.3: Khai báo hàm – [1, pp 69] 11

Hình 1.4: Kiểu dữ liệu và phạm vi [1, pp.108] 12

Hình 1.5: Lược đồ kiến trúc Play Framework 1 15

Hình 1.6: Kiến trúc Play Framework 2 16

Hình 2.7: Kiểm tra cài đặt JDK 18

Hình 2.8: Thêm đường dẫn vào biến môi trường 19

Hình 2.9: Kiểm tra tồn tại của Play Framework 2 20

Hình 2.10: Tạo project mới trong Play Framework 20

Hình 2.11: Chọn ngôn ngữ cho project sẽ tạo 21

Hình 2.12: Chạy project web mới được tạo trên trình duyệt 21

Hình 3.13: Usecase tổng quát 23

Hình 3.14: Usecase đăng nhập 24

Hình 3.15: Usecase theo tác người dùng 24

Hình 3.16: Usecase quản lý dữ liệu cá nhân 24

Hình 3.17: Usecase đăng ký 25

Hình 3.18: Usecase quản lý website 25

Hình 3.19: Lược đồ tuần tự 27

Hình 3.20 Mô hình ER-D 30

Hình 3.21: Giao diện chính 31

Hình 3.22: Giao diện phần trên 31

Hình 3.23: Giao diện phần giữa 32

Hình 24: Guao diện phần cuối 33

Hình 3.25: Giao diện hình ảnh theo danh mục 34

Hình 3.26: Giao diện tìm kiếm 35

Hình 3.27: Giao diện chi tiết hình ảnh 35

Trang 12

Hình 3.28: Hình ảnh phóng lớn khi rê chuột vào 36

Hình 3.29: Hình cùng người đăng 36

Hình 3.30: Giao diện đăng ký thành viên 37

Hình 3.31: Thanh menu khi chưa đăng nhập 37

Hình 3.32: Giao diện đăng nhập 38

Hình 3.33: Thanh menu sau khi đã đăng nhập 38

Hình 3.34: Thông tin tài khoản 39

DANH MỤC BẢNG Bảng 0.1: Bảng các chữ viết tắt 3

Bảng 3.2: Mô tả hoạt động usecase 26

Trang 13

CHƯƠNG 1 – TÌM HIỂU VỀ NGÔN NGỮ SCALA

1.1 Tổng quan về ngôn ngữ Scala

Scala chạy trên nền máy ảo java và tương thích với chương trình java Cũng

có thể chạy trên android Nó cũng có thể chạy trên nền tảng NET nhưng mà chưa

- Mọi phương thức (hàm) đều có thể dùng như là một toán tử

- Đánh dấu kết thúc cú pháp tự động.[2]

1.1.4 Lập trình hàm

Scala hỗ trợ lập trình hàm Nó hỗ trợ cú pháp ngắn gọn cho việc định nghĩacác hàm, cho phép hàm lồng vào nhau Dùng từ khóa lazy để trì hoãn sử dụng mộtbiến cho đến khi cần sử dụng nó.[2]

1.1.5 Lập trình hướng đối tượng

Giống Java, Scala là ngôn ngữ hướng đối tượng Scala là ngôn ngữ thuần lậptrình hướng đối tượng trong cú pháp theo quy tắc tất cả giá trị biến đều là một đốitượng Kiểu dữ liệu và hành vi của một đối tượng được mô tả bằng các lớp Các lớp

Trang 14

trừu tượng được mở rộng bằng các lớp con và hạn chế các khó khăn trong đa kếthừa.[2]

1.1.6 Những đặc điểu nổi bật khác

Nhờ suy luận kiểu của nó và các tính năng khác, Scala là một ngôn ngữ súctích, điển hình là cho phép các nhà phát triển để giảm kích thước của mã nguồn ítnhất ai hoặc ba lần, so với Java Scala đi kèm với một tập hợp phong phú các công

cụ phát triển, vì vậy hiệu suất tương đương với các ngôn ngữ như Ruby hay Python,trong khi giữ lại những ưu điểm hiệu suất của Java

Scala được trang bị hệ thống phát hiện và tránh nhiều lỗi ứng dụng tại thờigian biên dịch

Scala cung cấp một sự kết hợp độc đáo của các cơ chế ngôn ngữ khiến nó dễdàng để thêm các cấu trúc ngôn ngữ mới theo hình thức thư viện, hoặc để tạo rangôn ngữ miền đặc trưng (DSLs).[2]

Trang 15

1.2 Giới thiệu công cụ hỗ trợ và biên dịch một chương trình đơn giản

1.2.2 Tạo Project và viết ứng dụng “Hello World”

Sau khi khởi đông Bundle of the Scala IDE for Eclipse, hoàn toàn tương tự

như Java, tạo project ta chọn: File ->New ->Scala Project

Hình 1.1: Tạo Project mới bằng Bundle of the Scala IDE for Eclipse

Trang 16

- Ứng dụng “Hello World:

object HelloWorld{

def main(args:Array[String]){

println("Hello, World! ") }

}

Cấu trúc chương trình cũng giống như ở Java Nó bao gồm một phương thứcgọi hàm main, với các đối số dòng lệnh, một mảng các chuỗi như một tham số.Thân phương thức bao gồm một lời gọi duy nhất lệnh println với đối số Hello,Word!

Phương thức main không trả về giá trị, vì thế không cần thiết phải khai báokiểu trả về

Điều khác biệt nhất với người lập trình Java là từ khóa Object bao gồmphương thức main chứa trong nó Từ khóa Object ngầm định là tạo một thể hiệnđơn của một lớp trong Scala

Ta có thể thấy rằng, phương thức main không được khai báo static TrongScala, các thành viên tĩnh (phương thức, trường) không tồn tại

1.2.3 Biên dịch

Để biên dịch chương trình chúng ta sử dụng scalac(scala compiler), Trìnhbiên dịch Java Scalac hoạt động giống như hầu hết các trình biên dịch khác Nó cómột file nguồn giống như đối số, có thể có vài tùy chọn và tạo ra một hoặc vài fileđối tượng

Chúng ta có thể lưu chương trình trên thành file với tên HelloWord.scala và

có thể thực hiện biên dịch nó bằng sử dụng lệnh (command line) bên dưới:

> scalac HelloWorld.scala

Sau khi gọi lệnh trên nó sẽ tạo ra vài file class trong cùng thư mục với fileHelloWord.scala Một trong số đó sẽ có HelloWorld.class, và chứa một class có thểđược thực thi trực tiếp bằng cách sử dụng lệnh scala, như các chương trình phầntiếp theo

Trang 17

1.2.4 Biên dịch và thực thi Scala source bằng Command Line

Chương trình trên ta lưu thành file HelloWord.scala tại D:\test

Đầu tiên ta gọi lệnh: >D:

Tiếp theo trỏ đến thư mục test bằng lệnh: >cd test

Để biên dịch ta xài lệnh:

> scalac HelloWorld.scalaNếu không có lỗi sẽ không có thông báo gì, tiếp theo để thực thi chươngtrình ta dùng lệnh: >scala HelloWord

Chượng trình sẽ in ra kết quả là: Hello, Word!

Chi tiết được hiển thị như hình dưới:

Hình 1.2: Biên dịch và thực thi bằng Command Line

1.3 Những khái niệm cơ bản trong ngôn ngữ Scala

1.3.1 Khai báo biến

Có 2 loại biến trong Scala: biến val và biến var Biến val tương tự như biếnfinal trong java, sau khi được khai báo thì không thể thay đổi giá trị Còn biến varthì ngược lại, sau khi khi báo vẫn có thể thay đổi giá trị

Ví dụ về khai báo một biến: Val count : Int

Trang 18

1.3.2 Cách khai báo phương thức/ hàm

Hình 1.3: Khai báo hàm – [1, pp 69]

Khai báo một hàm/phương thức bắt đầu bằng từ khóa def sau đó tới tên hàm/phương thức, các giá trị đầu vào nằm trong dấu ngoặc đơn Tiếp sau đó là dấu : vàkiểu dữ liệu trả về Nội dung hàm/phương thức nằm trong cặp dấu ngoặc nhọn {}

1.3.3 Cấu trúc lặp, rẽ nhánh và điều kiện

Trang 19

val acc = new Checksum

- Phương thức trong class

Trang 20

class ChecksumAccumulator {private var sum = 0

def add(b: Byte): Unit = {sum += b

}def checksum(): Int = {return ~(sum & 0xFF) + 1}

}

1.3.6 Một số gói thư viện cơ bản trong ngôn ngữ scala

Scala đây là gói chứa các thành phần cốt lõi của ngôn ngữ scala ngoài ra còn

có các gói con sau:

- scala.collection và các gói con của nó có chứa bộ sưu tập framework với

các chức năng bậc cao cho các thao tác

- scala.io : Quản lý nhập xuất.

- scala.math : các hàm toán học cơ bản và các kiểu số học bổ sung.

- scala.sys : Tương tác với các tiến trình khác và hệ điều hành.

- scala.util.matching - mẫu kiểm tra tính phù hợp bằng chữ sử dụng biểu

thức thông thường

- scala.util.parsing.combinator : sử dụng để phân tích cú pháp

- scala.xml : phân tích cú pháp XML, thao tác, và tuần tự hóa.

Trang 21

CHƯƠNG 2 – TÌM HIỂU VỀ PLAY FRAMEWORK 2

1.1 Tổng quan về Play Framework 2

1.1.1 Khái niệm

Play là một chương trình khung dùng để tạo các ứng dụng web, được viết bằng Scala and Java theo kiến trúc model–view–controller (MVC) Play được tạo ra với mục đích tăng hiệu suất lập tình bằng các sử dụng quy ước bằng cấu hình, tải lại mã nóng và hiển thị lỗi trên trình duyệt – Nguồn [2]

1.1.2 Những điểm nổi bật

Play Framework 2 là một framework để viết web bằng ngôn ngữ java vàscala với tiêu chí nhẹ, không trạng thái, thân thiện với nền tảng web các đặc điểmsau:

- Dựa trên nền tảng java JVM(Java Virtual Machine): Có thể sử dụng

đa nền

- Thân thiện với người phát triển: Bạn chỉ cần chỉnh sửa trong text-editor

và sau đó nhấn refresh trên trình duyệt web, mọi chỉnh sửa sẽ có hiệu lực

- Quy mô đơn giản: Bên dưới nền tảng Play sử dụng một mô hình hoàn

toàn bất đồng bộ được xây dựng trên Akka Kết hợp với đặc điểm khôngtrạng thái của web, quy mô của Play trở nên đơn giản

- Thích hợp cho cả Web và moblie: Play có thể hoạt động tốt trên cả nền

tảng web và mobile – Nguồn [4]

Trang 22

1.1.3 Lịch sử phát triển kiến trúc Play Framework

- Netty: Netty là một framework hỗ trợ giao tiếp theo dạng NIO

(Non-Blocking I/O) giữa máy chủ và máy trạm Điều này giúp cho việc giaotiếp giữa máy chủ và máy trám trở nên nhanh chóng và dễ dàng hơn rấtnhiều Nó đơn giản và phù hợp với việc lập trình socket các phương thứcnhư TCP và UDP ở máy chủ Mặc dù Play được thiết kế để chạy trênmáy chủ web JBoss Netty, nhưng nó hoàn có thể đóng gói theo kiểuWAR và sử dụng trong những máy chủ khác bằng Java EE

- JPA and Hibernate: Đây là 2 gói thư viện hỗ trợ quản lý thực thể và

truy vấn cơ sở dữ liệu

Trang 23

- Groovy: Được sử dụng như một công cụ để tạo ra giao diện web Mã nguồn

giao diện web sử dụng Groovy ở dạng text như html nhưng có thể chèn thêmnhững dòng lệnh để sinh ra nội dung đọng Cú pháp của ngôn ngữ Groovycũng tương tự như Java

Trong phiên bản mới của Play Framework đã có nhiều thành đổi nhằm đơngiản và tối ưu hóa cho Play Sau đây là những thay đổi chính:

- Scala-library: Gói thư viện cho ngôn ngữ Scala đã được chính thức thêm

vào

Trang 24

- Groovy đã bị lược đi: Play 2 không còn sử dụng groovy nữa, thay vào đó

là Scala templates

- JPA and Hibernate cũng được lược bỏ: Trong phiên bản 2.0 trở đi Play

không còn sử dụng hai gói thư viện này để hỗ trợ quản lý thực thể nữa,thay vào đó là một lớp truy xuất dữ liệu mới tên là Anorm Arnorm được

sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu sau đó chuyển vào các thựcthể một cách rất đơn giản

- Akka được sử dụng làm tác nhân chính để đáp ứng xu hướng mới là phát

triển một ứng dụng hiệu năng cao và đáng tin cậy

(Nguồn tham khảo [3])

1.2 Hướng dẫn cài đặt Play Framework 2

1.2.1 Những công cụ cần thiết

Để có thể sử dụng được Play Framework 2 cần có những công cụ sau

- JDK 6 hoặc mới hơn Có thể tải về ở đường dẫn sau:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

- Mã nguồn Play Framework 2 Có thể dùng 1 trong 2 bản sau:

o Typesafe Activator bao gồm: Activator, Akka, Play, Scala.

http://typesafe.com/activator?

_ga=1.197492719.1758479467.1399448997

Trang 25

o Play standalone distribution chỉ bao bồm Play

http://www.playframework.com/download

(Lưu ý: Bài hướng dẫn sử dụng gói Play standalone distribution)

1.2.2 Cài đặt và kiểm tra

Bước 1: Cần đảm bảo đã cài đặt JDK Có thể kiểm tra bằng Command

Line(CMD) bằng cú pháp java –version và javac –version

Hình 2.7: Kiểm tra cài đặt JDK

Bước 2: Giải nén gói Play standalone distribution ở trên và copy vào một nơi bất kỳ (trong ví dụ tên thư mục sẽ là play-2.2.2 đặt ở đường dẫn C:\)

Trang 26

Bước 3: Thêm đường dẫn thư mục chứ Play vào biến môi trường

(Environment variables) Trong ví dụ là: C:\play-2.2.2\

Hình 2.8: Thêm đường dẫn vào biến môi trường

Trang 27

Bước 4: Kiểm tra sự tồn tại của Play Framework 2

Trong CMD sử dụng cú pháp play help nếu có thông tin của Play

Framework 2 xem như công việc cài đặt đã thành công

Hình 2.9: Kiểm tra tồn tại của Play Framework 2

1.2.3 Tạo mới một chương trình sử dụng Play Framework

Để tạo mới một project bằng Play ta chọn đến vị trí cần tạo và dùng lệnh:

$ play new myFirstApp

Tiếp theo ta nhập vào tên project

Hình 2.10: Tạo project mới trong Play Framework

Ngày đăng: 16/07/2014, 16:37

HÌNH ẢNH LIÊN QUAN

Bảng 0.: Bảng các chữ viết tắt - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Bảng 0. Bảng các chữ viết tắt (Trang 9)
Hình .1: Tạo Project mới bằng Bundle of the Scala IDE for Eclipse - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
nh 1: Tạo Project mới bằng Bundle of the Scala IDE for Eclipse (Trang 13)
Hình 1.: Biên dịch và thực thi bằng Command Line - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 1. Biên dịch và thực thi bằng Command Line (Trang 15)
Hình 1.: Khai báo hàm – [1, pp. 69] - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 1. Khai báo hàm – [1, pp. 69] (Trang 16)
Hình 1.: Lược đồ kiến trúc Play Framework 1 - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 1. Lược đồ kiến trúc Play Framework 1 (Trang 20)
Hình 1.: Kiến trúc Play Framework 2 - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 1. Kiến trúc Play Framework 2 (Trang 21)
Hình 2.: Kiểm tra cài đặt JDK - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 2. Kiểm tra cài đặt JDK (Trang 23)
Hình 2.: Thêm đường dẫn vào biến môi trường - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 2. Thêm đường dẫn vào biến môi trường (Trang 24)
Hình 2.: Tạo project mới trong Play Framework - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 2. Tạo project mới trong Play Framework (Trang 25)
Hình 2.: Kiểm tra tồn tại của Play Framework 2 - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 2. Kiểm tra tồn tại của Play Framework 2 (Trang 25)
Hình 2.: Chọn ngôn ngữ cho project sẽ tạo - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 2. Chọn ngôn ngữ cho project sẽ tạo (Trang 26)
Hình 2.: Chạy project web mới được tạo trên trình duyệt Import project vừa tạo vào eclipse và bắt đầu tạo web bằng ngôn ngữ Scala. - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 2. Chạy project web mới được tạo trên trình duyệt Import project vừa tạo vào eclipse và bắt đầu tạo web bằng ngôn ngữ Scala (Trang 27)
Hình 3.: Usecase tổng quát - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Usecase tổng quát (Trang 29)
Hình 3.: Usecase đăng nhập - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Usecase đăng nhập (Trang 30)
Hình 3.: Usecase quản lý dữ liệu cá nhân - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Usecase quản lý dữ liệu cá nhân (Trang 31)
Hình 3.: Usecase quản lý website - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Usecase quản lý website (Trang 32)
Hình 3.: Lược đồ tuần tự - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Lược đồ tuần tự (Trang 34)
Hình 3.: Mô hình ER-D - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Mô hình ER-D (Trang 37)
Hình 3.: Giao diện chính - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện chính (Trang 38)
Hình 3.: Giao diện phần trên - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện phần trên (Trang 38)
Hình ảnh giới thiệu. - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
nh ảnh giới thiệu (Trang 39)
Hình : Guao diện phần cuối - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
nh Guao diện phần cuối (Trang 40)
Hình 3.: Giao diện hình ảnh theo danh mục - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện hình ảnh theo danh mục (Trang 41)
Hình 3.: Giao diện tìm kiếm - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện tìm kiếm (Trang 42)
Hình 3.: Giao diện chi tiết hình ảnh Khi đặt chuột lên hình, nó sẽ phóng to hình bên cạnh để người dùng thấy nó - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện chi tiết hình ảnh Khi đặt chuột lên hình, nó sẽ phóng to hình bên cạnh để người dùng thấy nó (Trang 42)
Hình 3.: Hình ảnh phóng lớn khi rê chuột vào Ngoài ra trang chi tiết sản phẩm còn có hiển thị những hình ảnh cùng người  đăng để người dùng dễ dàng xem - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Hình ảnh phóng lớn khi rê chuột vào Ngoài ra trang chi tiết sản phẩm còn có hiển thị những hình ảnh cùng người đăng để người dùng dễ dàng xem (Trang 43)
Hình 3.: Hình cùng người đăng - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Hình cùng người đăng (Trang 43)
Hình 3.: Giao diện đăng ký thành viên - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện đăng ký thành viên (Trang 44)
Hình 3.: Giao diện đăng nhập - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Giao diện đăng nhập (Trang 45)
Hình 3.: Thông tin tài khoản - Tìm hiểu ngôn ngữ lập trình scala, xây dựng website chia sẻ ảnh trực tuyến
Hình 3. Thông tin tài khoản (Trang 46)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w