CHƯƠNG I NGÔN NGỮ LẬP TRÌNH VÀ CÔNG CỤ SỬ DỤNG Trong chương này, em trình bày một số thông tin tổng quát các ngôn ngữ lập trình em sử dụng để phát triển đề tài bao gồm ngôn ngữ lập trình Ruby, Kotlin và cùng với đó là một số thông tin liên quan đến các công cụ em sử dụng trong đề tài như các frameworks, các dịch vụ bên thứ ba. NGÔN NGỮ LẬP TRÌNH RUBY 1. Ngôn ngữ lập trình Ruby [1]Ngôn ngữ lập trình Ruby là ngôn ngữ lập trình hướng đối tượng thuần túy được phát triển bởi Yukihiro Matsumoto (còn được gọi là Matz trong cộng đồng Ruby) vào giữa năm 1990 tại Nhật Bản. Ruby hỗ trợ hầu hết các nền tảng nhưu MacOS, Windows và Linux.
Ruby được phát triển dựa trên nhiều ngôn ngữ khác như Perl, Lisp, Smalltalk, Eiffel và Ada. Ruby là một ngôn ngữ kịch bản được diễn giải có nghĩa là hầu hết các triển khai của nó được thực hiện trực tiếp và tự do mà không cần biên dịch chương trình thành ngôn ngữ máy. Một số ưu điểm của Ruby o Mã được viết bằng ngôn ngữ Ruby có kích thước nhỏ vì số dòng lệnh ít. o Ruby cho phép tạo một ứng dụng Web đơn giản và nhanh chóng, giúp giảm bớt thời gian và khối lượng công việc.
o Ruby cho phép lập trình viên thực hiện các thay đổi cần thiết theo yêu cầu. o Ruby là một ngôn ngữ lập trình động do không có quy tắc cứng nào về cách xây dựng các tính năng và rất gần với ngôn ngữ nói. Một số nhược điểm của Ruby o Mã lệnh viết bằng Ruby khó sửa lỗi vì đa số mã lệnh được sinh ra ngay lúc chạy. o Ruby là một ngôn ngữ kịch bản được diễn giải, các ngôn ngữ kịch bản thường chậm hơn các ngôn ngữ biên dịch nên Ruby chậm hơn so với nhiều ngôn ngữ lập trình khác.
Ứng dụng của Ruby: Ruby được dùng sử dụng để tạo ra các ứng dụng web khác nhau. Đây là một trong những công nghệ được ưa chuộng nhất hiện nay. Ruby on Rails framework [2]Năm 2005, trong quá trình xây dựng Basecamp, David Heinemeier Hansson (DHH) đã hình dung ra một thư viện mạnh mẽ với ngôn ngữ lập trình Ruby. Anh ta đã sử dụng nền tảng của ứng dụng và tạo ra các khối (blocks) để sử dụng trong tương lai, và tạo ra Ruby on Rails framework.
DHH làm cho nó trở nên đa mục đích và có thể mở rộng và chia sẻ với thị trường mã nguồn mở. Ở đó Ruby on Rails được cải tiến thêm và tạo ra một bước đột phá để phát triển ứng dụng web. SVTH: Nguyễn Văn Mẫn GVHD: PGS. Võ Trung Hùng 3 Đề tài: Xây dựng ứng dụng Kuro Team Ruby on Rails là một trong số những web framework phía máy chủ (server-side) phổ biến nhất hiện nay.
Ruby on Rails framework tuân theo 3 nguyên tắc thiết kế chính nhằm thúc đẩy sự đơn giản trong việc xây dựng các hệ thống phức tạp: o Kiến trúc Model-View-Controller (MVC) Trong kiến trúc này, mô hình web có ba lớp được kết nối với nhau. Model chứa các mã lệnh làm việc với dữ liệu ứng dụng. Nó tập trung các quy tắc nghiệp vụ của ứng dụng và các quy tắc để thao tác với dữ liệu. Views có thể là các tệp HTML được nhúng mã Ruby bên trong để xác định cách người dùng tương tác với dữ liệu và cách hiển thị dữ liệu cho người dùng, bao gồm HTML, PDF, XML, RSS và một số định dạng khác.
Controller giao tiếp với model và views, nó nhận yêu cầu từ trình duyệt, sau đó làm việc với model để thực hiện yêu cầu và đưa ra views để hiển thị ra cho người dùng một cách chính xác. Hình ảnh bên dưới mô tả hoạt động của mô hình MVC: Hình I. Mô hình kiến trúc Model-View-Controller Trong đó: User: Người dùng Action: Hành động Update: Thao tác cập nhật Notify: Thông báo Database: Cơ sử dữ liệu Model, View, Controller: 3 thành phần của kiến trúc MVC. Các ứng dụng Web được xây dựng bởi Ruby on Rails framework được sắp xếp phù hợp và có phân chia giữa các lớp: routes, controllers, models và views.
Việc SVTH: Nguyễn Văn Mẫn GVHD: PGS. Võ Trung Hùng 4 Đề tài: Xây dựng ứng dụng Kuro Team sử dụng mô hình MVC tạo điều kiện cho việc bảo trì và triển khai kiểm thử dễ dàng hơn. o Các quy ước về mô hình cấu hình Nguyên tắc này giúp các nhà phát triển tiết kiệm thời gian và công sức bởi vì Ruby on Rails framework đã giả định ra những gì họ muốn làm và cách thực hiện, nên họ không cần ghi nhớ chi tiết về các tệp cấu hình. o Không lặp lại chính mình (DRY) DRY khuyến khích giảm thiểu sự lặp thông tin trong một hệ thống.
Điều này tạo điều kiện cho việc sửa đổi và giảm thiểu các lỗi trong quy trình phát triển phần mềm. Những người xây dựng các trang web phức tạp đánh giá cao các nguyên tắc thiết kế dưới đây cùng với các lợi ích khác của Ruby on Rails: Tính đơn giản Ruby on Rails tận dụng những lợi thế của ngôn ngữ lập trình Ruby. Nó sử dụng cú pháp giống như tiếng Anh và ngôn ngữ thông thường tạo cảm giác rất tự nhiên và hợp lý đến nỗi một số phần của mã lệnh đọc giống như khai báo tiếng Anh. Cú pháp đơn giản và dễ đọc cho phép các nhà phát triển Ruby làm được nhiều hơn với ít dòng lệnh hơn.
Khả năng dễ đọc này làm giảm gánh nặng của các nhà phát triển khi viết ra các bình luận riêng biệt hoặc văn bản trợ giúp. Các lập trình viên và người quản lý có thể xem mã của nhau một cách dễ dàng và nhanh chóng tìm hiểu những gì diễn ra trong một dự án. Nó không bắt buộc phải biết Ruby để sử dụng Rails, nhưng bạn chắc chắn sẽ chọn Ruby khi bạn học Rails. Ruby dễ học hơn hầu hết các ngôn ngữ lập trình ngay cả đối với những người không có kỹ thuật.
Nếu bạn thành thạo Python, quá trình chuyển đổi sang RoR sẽ diễn ra suôn sẻ. Cộng đồng phát triển web Rails rất cởi mở và thân thiện với người mới bắt đầu và cung cấp rất nhiều thư viện và plugin hữu ích. Framework này có các giải pháp tích hợp cho nhiều vấn đề mà các nhà phát triển web thường gặp phải. Lợi ích cốt lõi là trình khởi tạo, mô-đun và các gems của nó (thư viện để thêm các tính năng cho các ứng dụng web).
Hầu như đối với bất kỳ chức năng nào bạn có thể cần thực hiện, luôn có một gem có sẵn trong kho lưu trữ của RubyGems. Nếu không, bạn có thể dễ dàng tìm thấy một chuyên gia trong cộng đồng Ruby rộng lớn sẽ phát triển một người trong thời gian ngắn nhất. Framework đặt các quy tắc và mẫu tạo điều kiện thuận lợi hơn cho việc phát triển các ứng dụng web. Với các tiêu chuẩn được thiết lập cụ thể, các nhà phát triển không lãng phí thời gian để tìm kiếm cấu trúc phù hợp của ứng dụng.
Nhiều điều xảy ra mà không có định nghĩa chặt chẽ nhờ các quy ước và giả định được coi là cách tốt nhất để hoàn thành nhiệm vụ. Nhiều tác vụ được tích hợp sẵn để hoạt động bên ngoài, chẳng hạn như trình ánh xạ cơ sở dữ liệu đối tượng, cấu trúc tệp, tạo mã, cách các phần tử được đặt tên và sắp xếp, v. Tất cả những điều này làm tăng năng suất và làm cho các ứng dụng web được tạo nhiều hơn bảo trì. Bởi vì cấu trúc và thực tiễn SVTH: Nguyễn Văn Mẫn GVHD: PGS.
Võ Trung Hùng 5 Đề tài: Xây dựng ứng dụng Kuro Team phát triển giống nhau được sử dụng ở mọi nơi, nên nó dễ dàng đi từ dự án này sang dự án khác, cũng như cho những người mới tham gia. Phát triển nhanh hơn RoR giảm thiểu thời gian phát triển trang web xuống 25-50% so với các web framework phổ biến khác. Phát triển web với Ruby on Rails nhanh hơn do định hướng đối tượng của Ruby, cơ sở mã nạc, thiết kế mô đun, mã nguồn mở rộng được phát triển bởi cộng đồng Rails và một loạt các giải pháp plugin sẵn sàng sử dụng cho tính năng phát triển. RoR thường có ít dòng mã hơn.
Ví dụ, đôi khi một dòng mã trong Ruby có thể có giá trị bằng sáu dòng mã Java. Nó cũng cung cấp một cơ sở hạ tầng mạnh mẽ từ sự khởi đầu, tiết kiệm thời gian và nỗ lực đáng kể để các nhà phát triển xây dựng từ đầu. Họ không cần phải mất nhiều thời gian để cấu hình các tệp để thiết lập cũng như không quyết định nhiều mặc định đã tồn tại. Đưa ra ít quyết định hơn dẫn đến phát triển nhanh hơn, cộng tác được cải thiện và bảo trì dễ dàng hơn.
Các nhà phát triển cũng có quyền truy cập vào các mô-đun được tạo sẵn khác nhau trong các thư viện của bên thứ ba. Họ có thể lấy bảng điều khiển, xác thực người dùng và các thành phần tiêu chuẩn và phi tiêu chuẩn khác từ một ‘nhà để xe’ và tích hợp chúng vào sản phẩm. Các thành phần có thể được sử dụng lại, thay đổi dễ dàng, và lặp lại và thử nghiệm là không đau. Hơn nữa, RoR cung cấp tùy chọn thử nghiệm tích hợp trong quá trình coding.
Các nhà phát triển không cần phải sử dụng các plugin bên ngoài hoặc bất kỳ công cụ kiểm tra nào. Nó tiết kiệm cả thời gian và công sức của họ và tiền của khách hàng. Do đó, một trong những lợi thế của Ruby on Rails là khả năng phát triển nguyên mẫu của trang web trong tương lai nhanh hơn nhiều so với các web framework khác. Khách hàng có thể kiểm tra tính khả thi của sản phẩm và khắc phục sớm mọi lỗi trong phạm vi và hướng của sản phẩm, điều này giúp giảm thiểu rủi ro.
o Dễ dàng bảo trì và cập nhật mã Ruby on Rails được biết đến với sự ổn định và dự đoán. Sửa đổi mã hiện có và thêm các tính năng mới vào một trang web thật dễ dàng. Điều này đặc biệt có giá trị cho các dự án dài hạn và khởi nghiệp. Nếu bạn cần cập nhật ứng dụng hoặc cấu trúc lại mã của nó sau khi được phát triển và triển khai, các quy ước Rails sẽ giúp nhân viên mới hoặc người làm việc tự do bước lên và tiếp nhận mọi thứ một cách nhanh chóng.
Với các công ty mới thành lập, việc tuyển dụng và sa thải nhiều là điển hình, trong khi chi phí giới thiệu các nhà phát triển mới vào một dự án là một yếu tố quan trọng.