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

52 1.1K 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

Đ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

Đ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.

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 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 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ọi ngườ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ình hoà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 đến toàn thể thầy cô khoa Công Nghệ Thông Tin đã tận tình giảng dạy, trang bị cho chú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 em rất mong nhận được sự đóng góp phê bình của các thầy cô để để được những kinh nghiệm khi ra trường và công việc sau này. 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ẫn củ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ệu trong 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ác giả 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ồn gố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ực hiệ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 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) 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ậ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. 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ướng dẫn Th.S Phạm Văn Sim Anh , chúng tôi đã đạt được những thành quả bước đầu trong 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ình cho 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. 8 MỤC LỤC 9 DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT CÁC CHỮ VIẾT TẮT STT Chữ viết tắt Chữ viết đầy đủ 1 CMD Command line 2 JDK Java Development Kit 3 DSLs Domain Specific Languages 4 JVM Java Virtual Machine 5 E-RD Entity–relationship Diagrams 6 NIO Non-Blocking I/O 7 Java EE Java Platform, Enterprise Edition Bảng 0.: Bảng các chữ viết tắt 10 DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH DANH MỤC BẢNG [...]... – TÌM HIỂU VỀ NGÔN NGỮ SCALA 1.1 Tổng quan về ngôn ngữ Scala 1.1.1 Giới thiệu Scala là tên viết tắt của Scalable Language (Ngôn ngữ có khả năng mở rộng) Được phát triển dựa trên những nhu cầu sử dụng các tính năng mở rộng của nó Scala được thiết kế để tích hợp các tính năng của lập trình hướng đối tượng và lập trình hàm.[2] 1.1.2 Nền tảng Scala chạy trên nền máy ảo java và tương thích với chương trình. .. lệnh: $ play run Mở trình duyệt web với port 9000 ta đã sẽ thấy giao diện của Play Framework 27 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 CHƯƠNG 3 – DEMO WEB CHIA SẺ ẢNH 1.2 Khảo sát và phân tích hệ thống 1.2.1 Phân tích yêu cầu 1.2.1.1 Tên đề tài Thiết kế trang web chia sẻ ảnh sử dụng ngôn ngữ scala 1.2.1.2 Phân... 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 ra ngôn ngữ miền đặc trưng (DSLs).[2] 13 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.1 Công cụ hỗ trợ Để có thể viết và biên dịch được chương trình được viết bằng ngôn ngữ Scala cần có những công cụ sau - Java Developer Kit... dạng ngôn ngữ máy độc đáo giúp hỗ trợ lập trình dựa tên các thư viện hàm có sẵn: - 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ĩa cá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ột biến cho đến khi cần sử dụng nó.[2] 1.1.5 Lập trình. .. là một website chia sẻ và lưu trữ hinnhf ảnh của người dùng, tiện lợi và bảo mật, bao gồm các yêu cầu sau: - Người dùng o Ở trang chủ hiển thị một số những hình ảnh tiêu biểu , hình ảnh mới, thông tin về hình ảnh bao gồm tên ảnh, ngày đăng, người đăng, ghi chú… o Do có nhiều thể loại nên cần chia thành các danh mục khác nhau, menu ngang hiển thị danh sách các danh mục để dễ dàng cho người dùng tìm kiếm... Trong ngôn ngữ Scala cũng kiểu dữ liệu cơ bản như mọi ngôn ngữ lập trình khác 1.3.5 Class - Định nghĩa 1 class: class Checksum { var sum = 0 } - Sử dụng class: val acc = new Checksum 18 - Phương thức trong class 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... 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 Play Framewrok 2 1.1.1.2 Hình 1.: Kiến trúc Play Framework 2 Nguồn [3] Play 2 là đánh dấu một bước chuyển lớn của Play đối với ngôn ngữ Scala Trong Play 2 thư viện cho ngôn ngữ đã được sử dụng Những phiên bản trước đó của Play Framework chủ yếu viết cho ngôn ngữ Java (Scala chỉ được sử dụng như một plug-in), nhưng... các thông tin sau: họ tên, địa chỉ, số điện thoại, email - Quản lý hình ảnh: mã, tên ảnh, thể loại, địa chỉ ảnh, lượt xem, người đăng, ghi chú, album, ngày đăng, lượt thích, chế độ, trạng thái 1.2.3.1 Phân tích hệ thống Sau khi khảo sát hiện trạng của hệ thống và xây dựng hệ thống thì em dã đưa ra các tệp CSDL của “Web chia sẻ ảnh : Các bảng cơ sở dữ liệu: Gồm có 9 bảng csdl: album, category,comment,images,level,... hình ảnh theo loại 28 o Cần có trang hiển thị đầy đủ thông tin của mỗi hình ảnh khi nhấp chuột vào hình đó, kèm thêm đó là các gợi ý danh sách hình của cùng người đăng hiện thị ngay bên dưới chi tiết hình đang xem o Người dùng có thể thích hoặc chia sẻ hình ảnh đó lên trang facebook cá nhân của mình để giới thiệu với mọi người và tạo các album khác nhau o Người dùng cũng có thể đăng hình để chia sẻ. .. đến mọi người hoặc lưu trữ ở chế độ riêng tư o Người dùng cũng có thể quản lý hình ảnh mà mình đăng lên - Quản trị viên o Người quản trị viên có thể quản lý thông tin người dùng o Quản lý thông tin hình ảnh o Quản lý các danh mục hình ảnh o Xóa các hình ảnh hoặc danh mục do đã được tạo o Từ những yêu cầu trên ta xây dựng được những chức năng trên: o - Cho phép đăng hình vào cơ sở dữ liệu o - Cho phép . 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. 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:. 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:

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

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan