[MUSIC CHƠI] STEPHEN Turban: Vì vậy, tôi là Stephen Turban. Từ phía bên đây, có lẽ chúng tôi có thể nhận được một số người lặn trong. Chúng tôi có Gabriel và Zack. Vì vậy, đối với một lộ trình ngắn gọn về những gì điều này sẽ như thế nào, Tôi sẽ làm một số cực kỳ cấp cao nhìn vào những gì là MVC. Gabe? GABRIEL Guimaraes: Tôi sẽ nói về Ruby và một chút cách Rails công trình và làm thế nào nó có thể giúp bạn xây dựng các ứng dụng web. Zack Chauvin: Và tôi sẽ cho bạn thấy một ví dụ cụ thể về cách sử dụng Rails để xây dựng một ứng dụng siêu tuyệt vời. STEPHEN Turban: Awesome. Ngọt ngào. Được rồi. Vì vậy, chúng ta hãy nói về MVC. Vì vậy, chúng ta hãy đi đến slide tiếp theo, trong đó Tôi sẽ làm bằng cách nhấn vào nút này. Và chúng ta hãy đi đến sự phát triển next--, Tôi thích nghĩ về việc đi đến CVS, vì CVS là một cửa hàng và cũng có một V ở trung tâm. Và như vậy chúng ta hãy tưởng tượng đến một cửa hàng. Và chúng ta hãy làm cho cửa hàng này bán chỉ có một điều. Vì vậy, chúng ta sẽ có điều này lưu trữ chỉ bán những ly màu đỏ. Và hãy tưởng tượng bạn bước vào, và bạn đi vào phía trước của các cửa hàng, và người. Và tên của ông là Vince. Và Vince sóng chào vào bạn, nói hi. Và bạn nhận thấy một điều về Vince. Vì vậy, bất cứ khi nào chúng ta nghĩ về Vince, chúng tôi phải suy nghĩ về hai tính từ quan trọng. Vince là xinh đẹp, nhưng anh ấy là ngu ngốc. OK. Vì vậy, bạn biết đấy, không phải do lỗi của mình, không may, anh ấy đẹp. Ông là quan điểm của chúng tôi. Vì vậy, diễn viên đầu tiên của chúng tôi là có. Giữ cho rằng trong tâm trí. Bây giờ, bạn hỏi Vince, bạn đi, hey Vince. Tôi là khách hàng. Ông nói hi. Tôi thực sự muốn một ly màu đỏ của bạn. Và những gì Vince nói? Có ai có bất kỳ ý tưởng gì Vince nói? Tôi sẽ gọi lạnh. Bạn nghĩ gì Vince nói? Đung Ông nói rằng, tôi có thể chỉ cho bạn nó ở đâu, nhưng tôi không thể cung cấp cho bạn một. STEPHEN Turban: Ông nói rằng, tôi có thể chỉ cho bạn nó ở đâu, nhưng tôi không thể cung cấp cho bạn một. Thậm chí tệ hơn. Bất cứ ai khác có khác ý tưởng gì Vince có thể nói? Đung Ông có đi kiểm tra nếu họ có bất kỳ ly màu đỏ. STEPHEN Turban: Vince không thậm chí không biết anh có để kiểm tra. Bất cứ điều gì khác? Vì vậy, bạn cho biết, có tới kiểm tra xem anh có ly màu đỏ. Đi trước. Đung một ly màu đỏ là gì? STEPHEN Turban: một ly màu đỏ là gì? Một ly màu đỏ là gì? Vince là nhầm lẫn. Vì vậy, Vince sẽ nói chuyện với diễn viên tiếp theo của chúng tôi, Carl. Và khi chúng ta nghĩ về Carl, chúng tôi gotta suy nghĩ về hai adjectives-- lớn anh ấy kiểm soát, nhưng ông không có khả năng. Vì vậy, ông Vince goes-- đi, một ly màu đỏ là gì? Tôi không biết những gì một ly màu đỏ là. Ông quay lại, và anh hỏi Carl. Ông cho biết, Carl, một người nào đó hỏi cho một ly màu đỏ. Bạn có thể làm điều đó? Và điều Carl nói? Chúng ta hãy tìm nó ra. Không ai có bất kỳ ý tưởng gì Carl nói? Và tôi sẽ chỉ lặp lại nó cho bạn. Tôi nhìn thấy một phong trào tay. Đung Anh ta nói với một người nào đó khác để có được những ly màu đỏ. STEPHEN Turban: Ông nói người khác để có được những ly màu đỏ. Chính xác. Và chúng ta có một ý tưởng người đó có thể được? Đó là một gợi ý. Nó sẽ bắt đầu với một M. Mob? Đung Model. STEPHEN Turban: Mô hình, có. Tên của ông được không Làm mẫu, không may, bởi vì đó là một tên ngớ ngẩn. Chúng tôi có Mitt. Và khi chúng ta nghĩ về Mitt-- Không, đây không phải là một hình ảnh của Zack. Chúng ta phải nghĩ đến hai Tính từ quan trọng với Mitt. Anh ấy có khả năng, nhưng anh ấy phục tùng. Vì vậy, Mitt biết những gì ông đã làm, nhưng anh thực sự không thể làm bất cứ điều gì. Hoặc anh ta thực sự không thể tự mình quyết định của mình. Vì vậy, chúng tôi có Carl. Carl hét tại Mitt. Và ông nói, hey Mitt, chúng ta cần tách đỏ. Và Mitt đi cup lưu ký đỏ của mình. Ông lấy một ly, và ông cho nó trở lại. Không ai có bất kỳ ý tưởng những gì xảy ra sau đó? Cung cấp cho các cốc. Cho đến nay Mitt đã đi màu đỏ của mình ly kho, lấy nó ra, kiểm tra nó đi, nói, Tôi lấy một cái ly màu đỏ. Và anh đưa nó cho Carl. Bạn có một ý tưởng? Bạn nghĩ gì về Carl không? Đung Carl đưa nó cho Vince. STEPHEN Turban: Carl đưa nó cho Vince. Vince. Đung Và Vince cho thấy nó [không nghe được]. STEPHEN Turban: Chính xác. Vì vậy, đó là chính xác nó. Vì vậy, Vince mất chén, thậm chí còn không biết nó là gì, nhưng anh thấy nó cho người dùng. Vì vậy, hãy cố gắng tái tạo điều này thực sự một thời gian ngắn. Và chúng ta sẽ cần ba tình nguyện thầm lặng, như các bạn không đi để có thể nói chuyện. Vì vậy, tôi có thể lấy ba? OK. Và những người bạn sẽ như thế nào? Đung Sẽ Vince. STEPHEN Turban: Vince, OK. Đẹp nhưng ngu ngốc. Tuyệt vời. Bất cứ ai khác? Chúng tôi đang tìm kiếm một có khả năng nhưng phục tùng. Bất kỳ ai khác muốn có khả năng? Đung tôi có thể là Carl. STEPHEN Turban: Sweet. Chúng tôi đã có Carl. Đung Mitt. STEPHEN Turban: Mitt, OK. Và chúng ta sẽ cần a-- tôi sẽ là khách hàng. Vì vậy, đến trên lên, đi lên trên. Và tất cả mọi người trong tầm nhìn? Vì vậy, tôi sẽ hỏi Vince đứng ở phía trước, chỉ mỉm cười, chỉ mỉm cười rạng rỡ như có thể. Và chúng tôi sẽ yêu cầu Carl, đúng, tại sao không bạn, như, đứng ngay đằng sau cô ấy? Và Mitt, tại sao bạn không chỉ cần đi ra ở phía sau, và sau đó tôi sẽ cung cấp cho bạn một nhóm của ly để đi chơi cùng. Vì vậy, tôi là một khách hàng. Tôi đến. Và tôi làm [Không nghe thấy] Tôi nói, hi, tôi muốn một cốc. Perfect. Vì vậy, Vince không có ý tưởng. Vì vậy, những gì Vince làm gì tiếp theo? Vince-- OK, vì vậy tôi sẽ được kể lại bây giờ. Vince quát lên với Carl, chén! Carl không làm những gì? Carl hét lên với Mitt. Mitt lấy một ly. Mitt đưa nó cho Carl. Carl trả nó về Vince. Và Vince thấy nó cho người dùng. Và đó là một cao, cao, cao, nhìn rất cao tại MVC. Chúng tôi chia nó có một cái nhìn, những gì người dùng thấy, một bộ điều khiển, một người nào đó ai làm tất cả mọi thứ trong nền nhưng thực sự không thể cập nhật bất cứ điều gì hoặc không thể làm bất cứ điều gì của bất kỳ ý nghĩa trừ gọi view và model. Và sau đó chúng tôi có Mitt, các mô hình, người cập nhật bất cứ dữ liệu chúng ta có. Vì vậy, cảm ơn bạn rất nhiều cho xinh đẹp của chúng tôi, kiểm soát, và tình nguyện viên có khả năng. Và tôi nghĩ đó là nó. [Vỗ tay] Tôi nghĩ rằng Gabe là sẽ nói chuyện với doanh nghiệp trên một mức độ cao hy vọng ít. GABRIEL Guimaraes: OK, guys. Bây giờ chúng ta hãy nói một chút ít về mã và về Ruby on Rails chính nó, và khoảng cách liên quan cho tất cả các câu chuyện MVC này. Về cơ bản, Ruby on Rails là một khuôn khổ. Hơn về điều đó trong một giây. Nhưng chỉ để cung cấp cho bạn một cảm giác của người đang sử dụng nó, như thế, tất cả những companies-- lớn nên GitHub, Groupon, Twitter-- tất cả họ đang sử dụng Ruby on Rails là khuôn khổ chính mình để thực hiện các trang web của họ. Vì vậy, tôi chắc chắn rằng rất nhiều người dân đã sử dụng các trang web này ở đây. Và đó là tất cả Ruby on Rails để thực hiện các mô hình, xem, và bộ điều khiển trên tất cả các trang web và nhiều hơn nữa. OK? Vì vậy, như tôi đã nói, Ruby on Rails là một khuôn khổ. Và bạn có thể loại suy nghĩ của một khuôn khổ trong cảm giác giống như xây dựng một ngôi nhà. Vì vậy, nếu bạn đang đi để xây dựng một house-- và bạn có thể luôn luôn bắt đầu từ đầu, phải không? Bạn có thể cố gắng để đi lên với một cách để nhìn thấy gỗ, và mang gỗ đến nơi, và để có được những viên đá trong hình dạng đúng, và sau đó tất cả điều đó. Nhưng điều đó sẽ mất có lẽ rất nhiều năm cho đến khi bạn nhận được tất cả các tài liệu, và bạn sẽ có được tất cả mọi thứ lại với nhau, và bạn thực sự bắt đầu để xây dựng ngôi nhà của bạn. Vì vậy, nó quay ra nếu bạn bắt đầu với một khuôn khổ với cái gì đó đã loại tại chỗ cho bất kỳ loại nhà rằng bạn muốn một cái gì đó build-- đó là rất chung chung, nhưng mà bạn có thể sau đó mô theo hướng riêng của bạn goals-- sau đó bạn có thể tận dụng quyền lực này trong những khuôn khổ để xây dựng họ một cái gì đó nhiều hơn, nhanh hơn nhiều. OK. Vì vậy, đây là những ý tưởng tương tự trong một khuôn khổ cho một ứng dụng web hoặc cho bất kỳ loại ứng dụng, cho rằng vấn đề. Bạn thực sự bắt đầu với một nửa ứng dụng đã có ở nơi dành cho bạn. Và do đó, tôi có nghĩa là bạn nhận được rất nhiều các tập tin đã có chức năng, như thư viện, giống như chức năng, và các lệnh mà bạn có thể chạy theo thứ tự để làm cho cuộc sống của bạn nhiều đơn giản và dễ dàng hơn. OK. Vì vậy, trong trường hợp này, chúng ta sẽ để nói về Ruby on Rails. Có rất nhiều khác nhau các khuôn khổ hiện có. Có Django cho Python. Có khuôn khổ Zend hoặc Laravel cho PHP. Có rất nhiều cái khác nhau. Ruby on Rails là một cái mới khá tốt đẹp. Rất nhiều người sử dụng trong phần khởi động và loại này của môi trường. Và một số trong những rất lớn các công ty mà tôi giới thiệu ở đây trước cũng sử dụng Ruby on Rails. Như vậy chỉ cần cung cấp cho bạn một ý nghĩa của những gì Ruby như thế, kể từ khi các bạn là sử dụng nhiều hơn để, như, C và một chút của PHP Hiện tại, do Ruby sẽ là tương đương với PHP của bạn trong ý nghĩa này. Đây không phải là Ruby. Đây là C. OK? Nhưng điều này cũng giống như các DJBHash chức năng mà tôi biết nhiều người sử dụng cho lỗi chính tả PSET. Và trong Ruby, khá giống như trong PHP, bạn có thể thực hiện điều này với chỉ một vài dòng mã. Thay vì phải lo lắng về hàm băm, cần phải lo lắng về các xô, và tất cả điều đó, bạn chỉ có thể nói, Từ điển = Hash.net. Và sau đó bạn sử dụng loại giống như cùng một ý tưởng mà PHP có. Và do đó, nó là true. Và sau đó nếu bạn muốn kiểm tra, nên kiểm tra chức năng sẽ là nếu từ điển "foo" bằng từ bằng sự thật, trả lại sự thật. Và đó là tất cả, OK? Vì vậy, bạn nhận thấy một vài sự khác biệt. Không có dấu chấm phẩy ở đây, như đã có trong C. Nhưng ý tưởng chung là rất giống nhau. OK? Ngoài ra, trong Ruby, có những viên đá quý, trong đó là loại thư viện Ruby. Và Rails xử lý chúng trong một cách rất tốt đẹp cho bạn. Vì vậy, nếu bạn muốn đặt trong một số thư viện không email, hoặc không gửi tin nhắn văn bản, hoặc không hội nhập với Facebook, hoặc bất kỳ loại điều như thế cho ứng dụng của bạn, nó rất, rất dễ dàng. Tỷ lệ cược là bạn có thể tìm thấy một cái gì đó như thế trên internet. Và họ chỉ cần làm một cái gì đó giống như đặt mà đá quý bạn muốn sử dụng trong các tập tin đá quý. Và sau đó Rails cài đặt tất cả mọi thứ. Bạn không cần phải lo lắng về bất kỳ trong đó, vì vậy đó là thực sự mát mẻ. Ngoài ra, có rất nhiều, nhiều sự giúp đỡ trực tuyến. Vì vậy, bạn có thể tìm thấy rất nhiều thứ. Nếu bạn có một lỗi, bạn chỉ có thể Google nó, và nó sẽ được rất dễ dàng để có được sự giúp đỡ. Và đó là một rất nhiều fun-- exactly-- vì bạn không cần phải lo lắng về mức độ thấp chi tiết, thực hiện các bảng băm và phải đến với tất cả các các tiêu đề HTTP, và rất nhiều thứ, và thậm chí một số điều mức độ cao hơn nhiều. Bạn không cần phải lo lắng về điều đó trong Rails. Nó có phải nó rất, rất độc đáo cho bạn. Và chúng ta sẽ thấy rằng Cụ thể hơn rất sớm. OK. Vì vậy, một chút về Ruby nữa. Vì vậy, nó chỉ giống như C, như tôi đã nói. Thay vì printf, chúng tôi nói "Đặt", mà là "một chuỗi ký tự." Nó đặt một chuỗi các giao diện điều khiển. Và trong trường hợp này, chúng tôi chỉ cần in "Hello World". Chúng tôi không cần các dấu ngoặc đơn, nhưng nó là khá nhiều tương tự. Và sau đó nếu bạn muốn để làm một cái gì đó ở đây, như in một loạt các "smalls" và một loạt các "bigs" trong một vòng lặp khi, nó là loại giống như trong C, phải không? Bạn không có params, nhưng nó là khá nhiều giống. Các vết lõm ở đây đếm, do đó x = 1. Và sau đó khi x nhỏ hơn 50-- này là một Nếu, đây là một khác. Đó là khá nhiều như những gì bạn nhìn thấy. Và sau đó x + = 1 chỉ là cách tăng, loại giống như làm ++ mà bạn có thể làm trong C. Nhưng nó đẹp nhiều những gì bạn thấy trong C. Nó không nên quá phức tạp. Nhưng nó là mạnh hơn. Vì vậy, có một số lệnh ở đây đó là chắc chắn một chút mới hơn. Vì vậy, ví dụ, "puts." Bạn có thể sử dụng ký hiệu hashtag này ở đây chỉ in something-- khá nhiều như những gì bạn sẽ làm gì nếu % D% hoặc C hay một phần như thế. Và bạn thực sự có thể đặt một Nếu ngay sau khi tuyên bố. Vì vậy, tôi chỉ muốn làm this-- Nếu x là lớn hơn 3. Vì vậy, tại sao tôi phải làm cho toàn bộ một Nếu khối? Tôi không biết. Tôi chỉ có thể in chỉ này nếu x bằng lớn hơn 3. Vì vậy, đây là một cách một dòng làm điều này trong Ruby. Một danh sách trong Ruby là một cái gì đó rất linh hoạt. Vì vậy, bạn không thực sự cần để chỉ có một loại. Bạn có thể có một chuỗi, và sau đó một số con số, và bất cứ điều gì. Và nếu bạn muốn nối thêm một cái gì đó cho một danh sách, bạn chỉ có thể sử dụng này ký hiệu ngay tại đây. Và nếu bạn muốn lặp. Khá nhiều 4each trong PHP, ở đây, bạn có một danh sách và bạn làm "List.each làm." Và điều này "elem," đây là giống như tên của mỗi phần tử rằng tôi sẽ có trong danh sách của tôi. Và sau đó tôi chỉ có thể "đặt elem." Và "đặt" khá nhiều tay cầm đặt nó cho bạn, in ấn nó. Nó không quan trọng nếu đó là một chuỗi hoặc một int. Nó sẽ làm việc đó ra cho bạn. Phải không? Cool. Và cũng giống như PHP, Ruby và HTML cũng tích hợp rất, rất độc đáo. Và ở đây, có một số HTML với Ruby trong đó. Vì vậy, chúng ta có một cơ thể như tag trong HTML. Và nếu chúng ta muốn kiểm tra rằng một người dùng là, ví dụ, đăng nhập, chúng tôi chỉ có thể nói, bắt đầu của Ruby, nếu user.logged_in ?, cuối Ruby. In toàn bộ điều này, mà có một số Ruby trong nó, mà chỉ là loại như là cú pháp cho PHP mà in ra một biến. Hãy in user.name. Vì vậy, hoan nghênh, Stephen, bên trong một div HTML. Và cuối cùng, chúng ta có một "kết thúc" và Mã Ruby, điều đó có nghĩa là tôi Nếu khối. OK? Vì vậy, nó chỉ giống như một liền mạch tích hợp giữa Ruby và HTML. Ngoài ra còn có rất nhiều nguồn lực. Nhưng trước khi chúng ta di chuyển trên, không ai có bất kỳ câu hỏi về Ruby, bất cứ điều gì? OK. Có rất nhiều nguồn tài nguyên trực tuyến để tryruby.org, Mã Viện, ruby-lang.org, nơi bạn có thể thử nó ra trên trình duyệt của bạn trước khi bạn thực sự nói, oh, OK, tôi sẽ sử dụng Ruby cho dự án cuối cùng của tôi. Và như vậy chắc chắn cho những thử. Tất cả các slide sẽ có sẵn trực tuyến, vì vậy bạn chỉ có thể tải chúng. Và có? Đung [Không nghe thấy] những gì bạn vừa thấy đã HTML và các mã nhúng vào nó vào khái niệm này của Model View Điều khiển? GABRIEL Guimaraes: Yes. Chúng tôi sẽ làm điều đó trong một giây Khi chúng ta xem ví dụ của chúng tôi, OK? Cảm ơn các câu hỏi. Vậy câu hỏi là về cơ bản nếu chúng tôi có thể cho thấy sự kết hợp này của Ruby trong HTML trong mẫu Xem khung Controller. Vì vậy, ý tưởng của mô hình Khung View Controller là nó về cơ bản là một triết lý, giống như Stephen cho thấy ở đây. Và nó không phải là một cái gì đó mà bạn phải làm, nhưng nó là một cái gì đó mà làm cho cuộc sống của bạn đơn giản hơn rất nhiều. Và Ruby on Rails được xây dựng xung quanh triết lý này của mã. Vì vậy, chúng ta sẽ thấy một ví dụ rất sớm. Vì vậy, Rails là tình yêu. Rất nhiều người đang sử dụng nó, như tôi đã nói. Và nó thực sự thú vị. Các bạn nên chắc chắn cung cấp cho nó một thử. MVC làm cho mọi thứ đơn giản hơn. Vì vậy, các Model View Controller, những điều tách và đưa một người, mỗi gia nhập, hoặc một phần của ứng dụng của bạn để làm mỗi công việc khác nhau ứng dụng mà bạn đã làm. Và ít thời gian về các vấn đề ở mức độ thấp. Và rất phổ biến ngay bây giờ. Chúng tôi có Rails 4.0, đó là một phiên bản mới. Và nó đi kèm với rất nhiều thứ mát. Một câu hỏi khác. Đung Một câu hỏi khác. Ruby on Rails so với Ruby on Rails Grails. GABRIEL Guimaraes: OK. Câu hỏi đặt ra là, Ruby on Rails so Ruby-- Đung Grails. Ruby? GABRIEL Guimaraes: Yeah. Vì vậy, Ruby là ngôn ngữ. Đung số Tôi hỏi bạn so sánh một ngôn ngữ và một khuôn khổ, Ruby on Rails, với một ngôn ngữ phổ biến framework-- Grails-- với Ruby on Rails. GABRIEL Guimaraes: OK. Xin lỗi. Câu hỏi đã được, so sánh Ruby và Ruby on Rails đến một khuôn khổ và another-- Đung Ruby. Đó là OK. Nếu bạn không biết về nó, đó là tốt. GABRIEL Guimaraes: Giống như, những gì tôi hiểu là that-- Đung Có một khuôn khổ gọi là Grails. GABRIEL Guimaraes: Oh, Grails. Tôi chưa bao giờ nghe nói về nó. Xin lỗi. Tôi chưa bao giờ nghe nói về Groovy on Rails. Xin lỗi. Đung Nó tốt hơn nhiều tích hợp với Java. GABRIEL Guimaraes: Tôi thấy. Đung Tôi chỉ tò mò về một số người tôi biết like-- GABRIEL Guimaraes: Không, tôi không bao giờ nghe nói về điều đó, không may. Grails. Đung Và một số người rõ ràng như Ruby on Rails. GABRIEL Guimaraes: Tôi đã sử dụng Ruby on Rails rất nhiều. Tôi đã sử dụng một số Django với Python, như tôi đã nói. Tôi đã sử dụng một số Laravel. Nhưng tôi đã không được sử dụng Groovy on Rails. Xin lỗi. Và nó rất phổ biến bây giờ với Rails 4.0. Giống như, một số các công cụ đó Rails làm cho bạn, ví dụ, là bạn có rất nhiều tập tin CSS và nhiều tập tin JavaScript. Và bạn có thể đối xử với họ như riêng biệt và tất cả mọi thứ. Nhưng sau đó nó automatically-- khi bạn gửi mã của bạn để sản xuất, nó tự động biên dịch tất cả chúng vào một tập tin duy nhất đó là không có bất kỳ minified không gian, do đó nó chiếm ít không gian trong ứng dụng của bạn, vì vậy mà bạn thực sự có thể mở rộng những thứ rất nhiều. Đó là lý do tại sao các công ty lớn như vậy như Twitter và GitHub đang sử dụng Rails, bởi vì nó làm tất cả điều đó cho bạn, mà là thực sự mát mẻ. Một điều đó là rất, rất, rất khó khăn cho mọi người, kể cả tôi, những người đang cố gắng để làm việc với một khuôn khổ lúc đầu, là rằng khi bạn bắt đầu một ứng dụng, bạn sẽ thấy một loạt các tập tin. Giống như khi bạn tạo Rails mới, ứng dụng của tôi, bạn sẽ thấy tất cả các folders-- app, bin, config, db, lib, đăng nhập, công cộng. Giống như, rất nhiều và rất nhiều thứ. Và lần đầu tiên tôi thấy rằng, tôi đã thích, OK, tôi không có ý tưởng những gì đang xảy ra. Tôi chỉ muốn tạo ra một trang web với "Hello, world" và điều này đem lại cho tôi, như, 100 tỷ trang khác nhau. Tôi không biết những gì đang xảy ra. Vì vậy, xin vui lòng đừng quá daunted bởi điều đó. Ý tưởng là nó thực sự có một nửa của một ngôi nhà ở đó cho bạn rồi. Nó có một toàn bộ khuôn khổ cho bạn rồi. Đó là lý do tại sao có rất nhiều tập tin. Nhưng điều tốt đẹp là nó cách ly tất cả trong số họ rất độc đáo. Tỷ lệ cược là bạn không phải lo lắng về hầu hết các thư mục này. Điều quan trọng nhất, tôi có thể nói, là các thư mục ứng dụng, nơi ứng dụng của bạn thực sự sống. Vì vậy, các cấu hình, bạn sẽ phải tinh chỉnh một số nội dung, như cơ sở dữ liệu và những thứ bạn thích mà loại cơ sở dữ liệu bạn đang sử dụng. Nhưng khác với đó, giống như hầu hết các công việc của bạn sẽ được thực hiện trong ứng dụng. Vì vậy, trong ứng dụng, bạn có tài sản, điều khiển, người giúp việc, bưu phẩm, mô hình, quan điểm. Vì vậy, ở đây, bạn bắt đầu thấy rằng bộ điều khiển, mô hình, và quan điểm đến vào chơi. Bưu phẩm chỉ là nếu bạn muốn gửi email. Helpers nếu bạn muốn tạo ra một số chức năng mà bạn sử dụng rất nhiều trong các view. Vì vậy, bạn đặt chúng trong những người giúp đỡ. Và tài sản về cơ bản là tất cả hình ảnh của bạn, tất cả các CSS của bạn, tất cả các bạn JavaScript, và giống như những loại điều đó có được gửi cho khách hàng. Và tất cả mọi thứ đó là trong các tài sản, rằng tôi đã nói trước đây, được minified. Đó là lập. Và bạn không thực sự phải lo lắng về việc mà khi nó đi vào sản xuất mã. Cool. Bây giờ Zack sẽ đi vào, và anh ấy sẽ làm một ví dụ về Twitter50. Đung Woo-hoo! Zack Chauvin: Awesome. Vì vậy, tôi đã có cơ hội để làm việc với Ruby on Rails mùa hè này. Đó là một khuôn khổ tuyệt vời. Tôi rất phần cho nó. Và tôi sẽ chỉ cho bạn thấy một chút một ví dụ về những gì nó có thể trông như thế nào. Nhảy sang Chrome. Vì vậy, đây là một ví dụ rất đơn giản Ruby on Rails application-- một cái gì đó như thế này là một cái gì đó Ruby thực sự vượt trội that-- chỉ nơi bạn mô hình được rất rõ ràng. Trong ví dụ này, bạn sẽ thấy hai mô hình khác nhau, trong đó là chúng ta đã có người sử dụng và chúng tôi có tweets. Vì vậy, đây là Twitter50, Twitter riêng của Harvard. Như bạn có thể thấy, tôi đang đăng nhập nhưzack. Và tôi có thể làm cho tweet mới. Vì vậy, tôi think-- "Đây là một" - xin lỗi? Đung [không nghe được]. Zack Chauvin: Oh, OK. Cần ngăn chặn các máy chủ. Tuyệt vời. Vì vậy, ở đây chúng tôi đang có. Như bạn có thể thấy, chúng ta có của chúng tôi Ứng dụng Twitter ngay tại đây. Và đó là siêu dễ dàng để bắt đầu các máy chủ. Chúng tôi sẽ chỉ làm "server ray." Tuyệt vời. OK. Cảm ơn vì điều đó. Vì vậy, bây giờ chúng tôi đang chạy. Và chúng ta sẽ nói, "Điều này là một hội thảo tuyệt vời. " Và chúng ta hãy xem những gì sẽ xảy ra. Vì vậy, chúng tôi sẽ tweet về nó. Xuống phía dưới, bạn có thể nhìn thấy bây giờ có hơn ba tweets. Vì vậy, chúng tôi có một chút của pagination xảy ra. Và chúng tôi có tweet đó. Và tôi cũng có thể tìm kiếm thông qua của tôi tìm kiếm tweets-- cho điều này và hai cái mà có chữ "Này" trong đó hiện lên. Chúng tôi cũng có thể xóa các tweet bởi nhấp vào nút nhỏ Delete. Và rõ ràng, tôi chỉ có thể xóa các bài đó thuộc về tôi. Hiện tại, chúng tôi gần như có chức năng của Twitter. Giống như, khi bạn nghĩ về nó, Twitter thực sự không làm được gì nhiều. Có người dùng, nó có tweets. Có một số chức năng phức tạp hơn. Nhưng khi bạn thực sự có được xuống để nó, nó khá một Ruby on Rails ứng dụng đơn giản. Và một cái gì đó như thế này, với một hiểu biết tốt về Ruby on Rails, bạn có thể có thể thực hiện trong một hoặc hai giờ. Và đó thực sự đi trở lại thần chú Ruby, đó là quy ước về cấu hình. Vì vậy, trở lại trong ngày, mọi người, bất cứ lúc nào họ muốn làm cho trang web này, sẽ phải bắt đầu lại từ đầu. OK, tôi muốn làm một trang web. Hãy làm cho tập tin này và tập tin này và tập tin này. Với Ruby on Rails, có ai trong số đó. Bạn nói, tôi muốn có một ứng dụng mới. Và cũng giống như Gabe cho chúng ta thấy, nó tạo cấu trúc toàn bộ tập tin cho chúng tôi. Và chúng ta chỉ cần thay đổi phần nhỏ mà chúng ta cần. Chúng tôi chỉ tùy chỉnh những gì là duy nhất về ứng dụng của chúng tôi. Cool. Quay trở lại với bài thuyết trình của chúng tôi preview-- thú vị. Tôi trình bày ở đâu? Đung Full màn hình. Trên bên phải. Zack Chauvin: Tuyệt vời. Cool. OK. Vì vậy, trước hết, các mô hình. Stephen đã làm một tuyệt vời công việc phác thảo MVC. Và bây giờ chúng ta sẽ liên quan lại cho rằng Ruby on Rails. Vì vậy, mô hình bạn có thể loại của nghĩ đến như là cơ sở dữ liệu. Bạn đã nhìn thấy điều này trong CS50 Tài chính, nơi các cửa hàng mô hình các thông tin về có bao nhiêu cổ phiếu mà bạn có, hoặc tất cả các giao dịch mà bạn đã thực hiện. Đây là một ví dụ về một dòng về cách bạn sẽ đi về làm cho một mô hình mới trong Rails. Vì vậy, tôi muốn có một người sử dụng. Nó sẽ có một email, mà là một chuỗi, và một mật khẩu, cũng là chuỗi. Vì vậy, nó giống như those-- Tôi muốn mỗi hàng trong bảng của tôi của người sử dụng để xem xét như thế. Một phần thực sự tuyệt vời về Rails là nó làm cho nó không cần thiết để viết bất kỳ SQL khá nhiều. Bao nhiêu người trong các bạn yêu viết SQL trong PSET 7? Chính xác. SQL không phải là rất dễ sử dụng. Và Rails tóm tắt tất cả những gì đi với các lệnh này thực sự dễ dàng. Vì vậy, ví dụ, nếu chúng ta có một người sử dụng, người dùng có nhiều tweets. Và mỗi một trong những tweets thuộc về một người sử dụng. Vì vậy, nếu bạn nhìn ở đây, điều này là mô hình của chúng tôi cho tweet của chúng tôi. Và tất cả chúng ta có thể nói là line-- single này tôi là một tweet và tôi thuộc về một người sử dụng. Và với dòng duy nhất và một chút chút về cấu hình cơ sở dữ liệu, Rails lập mối quan hệ này. Bất cứ lúc nào, tôi chỉ có thể nói, zack.tweets, như thế, cho tôi tất cả các tweets Zack. Không SQL. Siêu đơn giản. Một lần nữa, đó là quy ước về cấu hình khi vào chơi. Bạn có thể thấy một chút một ví dụ của Ruby ở đây. Giống như Gave nói, viết Ruby loại như văn bản tiếng Anh. Đó là một ngôn ngữ rất cao cấp, và nó làm cho nó thực sự dễ dàng để chúng tôi nói những điều như thế, tôi muốn chắc chắn rằng tweet này có một cơ thể. Sự hiện diện của nó là đúng. Và tôi muốn chắc chắn rằng điều này tweet, giống như bình thường Twitter, có chiều dài tối đa của 140. Đó là siêu trực quan, ngôn ngữ thực sự tuyệt vời. Tiếp theo chúng ta có quan điểm. Vì vậy, điều này bao gồm HTML và CSS. Và đây là một ví dụ về một điểm. Vì vậy, Ruby on Rails loại liên tục tích hợp cả Ruby và HTML để tạo ra những gì chúng tôi muốn trên trang. Vì vậy, đây là một ví dụ về cách bố trí của chúng tôi. Vì vậy, bạn có thể xem một số thẻ mà bạn kẻ đang sử dụng để, như HTML, cơ thể, tất cả những thứ tốt. Và ngay tại đây, tuy nhiên, chúng tôi kết hợp một số của Ruby bằng cách nói, nếu có một thông điệp để hiển thị, sau đó hiển thị các tin nhắn trong một div. Vì vậy, tôi sẽ không nhận được quá nhiều vào đó. Nhưng điều này thường là một trang đó được kết on-- và không có vấn đề gì bạn đang trang trên, một trong những điều này được trả lại. Vì vậy, đây là những gì được bao gồm luôn. Cool. Một ví dụ khác của một view-- này là một trong những nơi mà nó đã chọn tất cả các tweets. Và một số các công cụ này có thể trông khá quen thuộc. Vì vậy, ví dụ, ngay tại đây, chúng tôi Looping qua mỗi tweet, và chúng tôi đang in chúng ra. Vì vậy, đây là nơi mà chúng tôi in ra khỏi cơ thể. Và nếu user-- của tweet đây là một ví dụ thực tế không có SQL là có liên quan. Tôi chỉ hỏi, liệu này người dùng tweet của người dùng hiện tại? Sau đó hiển thị một liên kết để xóa nó. Đó là siêu đơn giản. Các bộ điều khiển. Vì vậy, đây là, một lần nữa, giao diện giữa các mô hình và xem. Đó là một trong những điều đó không làm việc chăm chỉ của interacting-- là người trung gian. Nó tải thông tin cho xem, mà chúng ta sẽ thấy trong một giây. Và để tương tác với mô hình, nó gọi phương pháp mô hình, mà là những gì các bạn đã quen thuộc như các chức năng. Vì vậy, ví dụ, đây là điều khiển tweet của chúng tôi. Nó có thể nhìn một chút nản chí ngay bây giờ. Nhưng nó thực sự là siêu trực quan một khi bạn bắt đầu lặn. Vì vậy, ví dụ, trong chỉ mục của mình, đó là nơi mà chúng ta muốn hiển thị tất cả các tweets. Và để dòng này về cơ bản chỉ yêu cầu cho tất cả các tweets. Và sau đó chúng ta khởi tạo cả các tweet-- mới nên như nếu họ muốn tạo ra một tweet mới trên trang đó. Và nó sẽ hỏi những gì người dùng hiện tại. Và điều này là rất tương tự như các và việc này là bạn đã thấy trong PSET 7, mà nó chỉ là loại nói các view-- nó loại, giống như, đi qua các biến mà bạn sẽ cần trong giao diện để xem. Và có cả một bó phương pháp khác nhau bộ điều khiển của tweet này có thể xử lý. Nhưng thực sự, Rails làm một công việc tuyệt vời của loại phân chia chúng thành các khác nhau hành động điều khiển của bạn có thể làm. Có bất kỳ câu hỏi về bất cứ bộ phận MVC của Rails? Loại chỉ là một cách nhanh chóng bằng. Vì vậy, các bạn có thể kiểm tra nó ra ngày của riêng bạn. Awesome. Chúng tôi sẽ tiếp tục đi. Vì vậy, cài đặt Rails. Cài đặt Rails có thể là, như, một trong những phần khó khăn hơn của toàn Rails quá trình, không may. Nhưng rõ ràng, tất cả chúng tôi là xung quanh để giúp đỡ. Và khi nó đã ở đó, rất nhiều nguồn tài nguyên lớn, Gabe như đã đề cập, để bắt đầu. Dưới đây là các liên kết bạn sẽ cần để để tải về Rails để có được nó cài đặt trên máy tính của bạn. Rõ ràng, nó có sẵn cho cả Windows và Mac và cho các thiết bị CS50. Các câu hỏi về bất cứ điều gì chúng tôi đã nói? Đung tôi sẽ là quan tâm, actually-- vì vậy tôi biết rằng tải phần mềm là rào cản lớn nhất. Nếu có đủ quan tâm để có một tải phiên mini hoặc một cái gì đó. Zack Chauvin: Mm-hm. Yeah. Điều đó có thể được thực sự hữu ích. Nếu bất cứ ai thực sự gung-ho về sử dụng cho dự án của họ hoặc trong tương lai, sau đó chúng tôi muốn chắc chắn rất vui khi được nói chuyện với bạn về điều đó. Mm-hm. Đung Một câu hỏi liên quan những gì tôi hỏi trước. Đối với những người bạn của những người đã thực hiện các khuôn khổ khác mà vẫn còn cố gắng để làm như vậy điều, làm cho nó dễ dàng hơn để xây dựng một trang web hoặc một chức năng, tôi nghĩ rằng bất kỳ ý nghĩa tại sao chúng ta sẽ so on Rails Zend hoặc một số các khuôn khổ khác và ngôn ngữ. Zack Chauvin: Tôi sẽ chỉ nói của tôi $ 0,02 về điều đó. Tôi yêu Ruby on Rails. Tôi đã có cơ hội để làm việc trong cả hai PHP và Ruby on Rails. Tôi rất thích Ruby on Rails vì Ruby. Chắc chắn, đó là một phần của nó. Giống như khi bạn đang chọn khuôn khổ của bạn, bạn cũng có thể chọn ngôn ngữ của bạn. Ruby là siêu accessible-- tôi nghĩ một ngôn ngữ tốt hơn nhiều so với PHP. Nhưng đó là loại sở thích cá nhân. Đồng thời, một yếu tố nữa là cộng đồng đằng sau khuôn khổ rằng bạn đang làm việc với. Ngay bây giờ Ruby on Rails là thực sự nóng. Có tấn hỗ trợ phía sau nó. Bạn gửi một cái gì đó trên Stack Tràn về một vấn đề mà bạn đang có trong Ruby on Rails, và nó trả lời. Một lần nữa, nó là mã nguồn mở, có nghĩa mà nó liên tục được thay đổi. Có tấn của người dân được thực sự dành riêng để làm cho một này khuôn khổ thực sự tuyệt vời. Vì vậy, đó là lý do tại sao tôi sẽ chọn Ruby on Rails. GABRIEL Guimaraes: Yeah. Tôi sẽ nói rằng ý tưởng đằng sau hầu hết các khuôn khổ bạn sẽ tìm hiểu có rất, rất giống nhau, phải không? Vì vậy, các Model View Controller, thực tế là bộ điều khiển của chúng tôi sẽ trông giống như một cái gì đó như this-- từng chức năng giống như một trong các trang của bạn, và nó chuyển hướng bạn, và nó khởi tạo các biến. Đó sẽ là điều tương tự cho mỗi khuôn khổ mà bạn nhìn thấy trên mạng. Và đó sẽ là mô hình. Và bạn có thể làm những thứ như, "thuộc về." Vì vậy, thay vì làm các phiên bản SQL, bạn chỉ cần, như, làm, user.tweets, và bạn sẽ có được tất cả mọi thứ. Mọi người đều có mà. Ngoại trừ trong Ruby, bạn làm user.tweets, và sau đó một số khung trong PHP, bạn làm user.getalltweets ĐÂU PHP của tôi không phải là một vấn đề. Giống như, nó là một đường lớn. Đó là những điều tương tự, nhưng nó là một đường lớn. Vì vậy, đó là một trong những lý do chính ưu đãi của tôi trên Ruby. Nó chỉ là tôi làm chính xác điều tương tự trong các khuôn khổ khác, nó chỉ đưa tôi hai lần đường như dài của mã. OK? Bất kỳ câu hỏi khác? Zack Chauvin: Something Tôi sẽ đề cập đến quickly-- Gabe nói một chút về đá quý. Và đó là một thực sự great-- tôi là, đây là loại phổ biến cho tất cả các khuôn khổ, rằng có một loại khái niệm đá quý, mà là giống như trong ví dụ nhỏ của tôi, Tôi đã đăng nhập. Giống như, bạn có thể đăng nhập, đăng xuất. Giống như, đó là thực sự loại của một quá trình phức tạp. Nó đã được xử lý một chút bit cho bạn trong PSET 7. Nhưng tôi vẫn không biết đầy đủ như thế nào để thực hiện đăng nhập, đăng ký ra. Và đó là bởi vì Ruby on Rails có tấn đá quý đó làm công cụ như điều đó cho bạn. Một lần nữa, ước về cấu hình. Mọi người sẽ được làm đăng nhập này, bước ký-out. Vì vậy, tại sao không chỉ làm cho một gói, gọi là Vạch ra trong trường hợp này, đó là một viên ngọc quý. Bạn chỉ cần có nó. Và sau đó có một số giúp đỡ trực tuyến với cách sử dụng nó. Và bạn không cần phải lo lắng về bất cứ điều gì như thế. Gắn hình ảnh cho các things-- một viên ngọc cho điều đó. Giống như, bất cứ lúc nào bạn đang cố gắng để làm bất cứ điều gì mới, có một viên ngọc cho điều đó. Và bạn có loại chỉ mảnh với nhau những đá quý và xây dựng một thực sự phức tạp ứng dụng rất nhanh chóng. Cool. Bất kỳ câu hỏi khác? STEPHEN Turban: Woo-hoo. Tôi không nghĩ rằng [không nghe được]. GABRIEL Guimaraes: OK. Cảm ơn rất nhiều, guys. STEPHEN Turban: Buh-bye. Zack Chauvin: Buh-bye. STEPHEN Turban: Woo-hoo. [Vỗ tay] Yay.