Ruby 0 2012

  • 332 views
Uploaded on

 

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
332
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Програмиране с Ruby лекция 0 03 октомври 2012Monday, October 8, 12
  • 2. Стефан Митьо днес сме се събрали с една цел:Monday, October 8, 12
  • 3. ще се опитам да ви убедя да отпишете курсаMonday, October 8, 12
  • 4. СтрашенMonday, October 8, 12
  • 5. ТруденMonday, October 8, 12
  • 6. Monday, October 8, 12
  • 7. Kimos high expectations set a new pace for me. He taught me “the standard pace is for chumps” - that the system is designed so anyone can keep up. If youre more driven than “just anyone” - you can do so much more than anyone expects. — http://sivers.org/kimoMonday, October 8, 12
  • 8. “Трябва да има кръв и пот.” — @skanevMonday, October 8, 12
  • 9. (имате ли Mac и iPhone/iPad/iPod?)Monday, October 8, 12
  • 10. административни въпросиMonday, October 8, 12
  • 11. 3Monday, October 8, 12
  • 12. Monday, October 8, 12
  • 13. Кога? Ден Час Зала Понеделник 19:00 229 Сряда 19:00 325Monday, October 8, 12
  • 14. http://fmi.ruby.bg/Monday, October 8, 12
  • 15. http://fmi.ruby.bg/ (регистрации: скоро)Monday, October 8, 12
  • 16. @rbfmiMonday, October 8, 12
  • 17. Група “Програмиране с Ruby” facebook.com/groups/437194362990982/Monday, October 8, 12
  • 18. Monday, October 8, 12
  • 19. Четвъртата “лекция” от курса ще се проведе на “по бира”. Датата е 15 октомври. Мястото вероятно е RockIT.Monday, October 8, 12
  • 20. оценяванеMonday, October 8, 12
  • 21. всичко се върти около точкиMonday, October 8, 12
  • 22. Скалата 3 4 5 6 MaxMonday, October 8, 12
  • 23. Задължителните Проект 60 Задачи 60 Тестове 60Monday, October 8, 12
  • 24. ЗадачитеMonday, October 8, 12
  • 25. Задачите • десет брояMonday, October 8, 12
  • 26. Задачите • десет броя • предават се онлайнMonday, October 8, 12
  • 27. Задачите • десет броя • предават се онлайн • проверяват се автоматичноMonday, October 8, 12
  • 28. Задачите • десет броя • предават се онлайн • проверяват се автоматично • 0-6 точкиMonday, October 8, 12
  • 29. Задачите • десет броя • предават се онлайн • проверяват се автоматично • 0-6 точки • могат да дават допълнителни точкиMonday, October 8, 12
  • 30. Задачите • десет броя • предават се онлайн • проверяват се автоматично • 0-6 точки • могат да дават допълнителни точки • имате право да пропуснете триMonday, October 8, 12
  • 31. Задачите • десет броя • предават се онлайн • проверяват се автоматично • 0-6 точки • могат да дават допълнителни точки • имате право да пропуснете три • чуждите решения са публичниMonday, October 8, 12
  • 32. ТестовеMonday, October 8, 12
  • 33. Тестове • два брояMonday, October 8, 12
  • 34. Тестове • два броя • 30 въпроса за един часMonday, October 8, 12
  • 35. Тестове • два броя • 30 въпроса за един час • 30 точки всекиMonday, October 8, 12
  • 36. ПроектиMonday, October 8, 12
  • 37. Проекти • на края на семестъраMonday, October 8, 12
  • 38. Проекти • на края на семестъра • вие измисляте или ние избирамеMonday, October 8, 12
  • 39. Проекти • на края на семестъра • вие измисляте или ние избираме • 60 точкиMonday, October 8, 12
  • 40. Проекти • на края на семестъра • вие измисляте или ние избираме • 60 точки • 30 за стил, 30 за тестовеMonday, October 8, 12
  • 41. Проекти • на края на семестъра • вие измисляте или ние избираме • 60 точки • 30 за стил, 30 за тестове • да работят е задължително, но не достатъчноMonday, October 8, 12
  • 42. има и други начини да изкарвате точкиMonday, October 8, 12
  • 43. Участие в часMonday, October 8, 12
  • 44. Участие в час • някой знае ли защо държа Snickers?Monday, October 8, 12
  • 45. Участие в час • някой знае ли защо държа Snickers? • обикновено на тях има код, който ви носи 1 точкаMonday, October 8, 12
  • 46. Участие в час • някой знае ли защо държа Snickers? • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в часMonday, October 8, 12
  • 47. Участие в час • някой знае ли защо държа Snickers? • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в час • получивате ги за добро включване в часMonday, October 8, 12
  • 48. Участие в час • някой знае ли защо държа Snickers? • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в час • получивате ги за добро включване в час • например: въпрос, отговор или коментарMonday, October 8, 12
  • 49. Участие в час • някой знае ли защо държа Snickers? • обикновено на тях има код, който ви носи 1 точка • насърчават да не спите в час • получивате ги за добро включване в час • например: въпрос, отговор или коментар • ако прекалите с глупостите ще хванете захарна болестMonday, October 8, 12
  • 50. Участие в сайтаMonday, October 8, 12
  • 51. Участие в сайта • добър пост във форумитеMonday, October 8, 12
  • 52. Участие в сайта • добър пост във форумите • добър коментар на чуждо решениеMonday, October 8, 12
  • 53. Помощ с материалитеMonday, October 8, 12
  • 54. Помощ с материалите • лекциите са OpenSourceMonday, October 8, 12
  • 55. Помощ с материалите • лекциите са OpenSource • оправяне на грешкиMonday, October 8, 12
  • 56. Помощ с материалите • лекциите са OpenSource • оправяне на грешки • примери от лекциитеMonday, October 8, 12
  • 57. Помощ с материалите • лекциите са OpenSource • оправяне на грешки • примери от лекциите • ваши допълненияMonday, October 8, 12
  • 58. Challenges * под “мързи” имаме предвид “не можем”Monday, October 8, 12
  • 59. Challenges • малка задачки относително често * под “мързи” имаме предвид “не можем”Monday, October 8, 12
  • 60. Challenges • малка задачки относително често • малки: 4-10 реда код * под “мързи” имаме предвид “не можем”Monday, October 8, 12
  • 61. Challenges • малка задачки относително често • малки: 4-10 реда код • често: 2-3 пъти в седмицата * под “мързи” имаме предвид “не можем”Monday, October 8, 12
  • 62. Challenges • малка задачки относително често • малки: 4-10 реда код • често: 2-3 пъти в седмицата • имате 24 часа за всяка * под “мързи” имаме предвид “не можем”Monday, October 8, 12
  • 63. Challenges (понеже ни мързи* да измислим хубаво име) • малка задачки относително често • малки: 4-10 реда код • често: 2-3 пъти в седмицата • имате 24 часа за всяка * под “мързи” имаме предвид “не можем”Monday, October 8, 12
  • 64. Tip of the DayMonday, October 8, 12
  • 65. Tip of the Day • кратки полезни Ruby съветиMonday, October 8, 12
  • 66. Tip of the Day • кратки полезни Ruby съвети • няма да се всеки денMonday, October 8, 12
  • 67. Tip of the Day • кратки полезни Ruby съвети • няма да се всеки ден • обикновено ги публикуваме ниеMonday, October 8, 12
  • 68. Tip of the Day • кратки полезни Ruby съвети • няма да се всеки ден • обикновено ги публикуваме ние • може да изпращате и вашиMonday, October 8, 12
  • 69. И други...Monday, October 8, 12
  • 70. защо правим всичко това?Monday, October 8, 12
  • 71. точките рефлектират участието ви в курсаMonday, October 8, 12
  • 72. Вие имате ли идеи?Monday, October 8, 12
  • 73. въпроси?Monday, October 8, 12
  • 74. Лош код before_filter :get_current_year def get_current_year @current_year = 2011 endMonday, October 8, 12
  • 75. 3-4 ноемвриMonday, October 8, 12
  • 76. за какво ще говорим в курса?Monday, October 8, 12
  • 77. Monday, October 8, 12
  • 78. в дълбочинаMonday, October 8, 12
  • 79. в дълбочина няма да сме повърхностниMonday, October 8, 12
  • 80. в дълбочина няма да сме повърхностни всички language feature-иMonday, October 8, 12
  • 81. в дълбочина няма да сме повърхностни всички language feature-и идиомиMonday, October 8, 12
  • 82. в дълбочина няма да сме повърхностни всички language feature-и идиоми екосистемаMonday, October 8, 12
  • 83. Добър кодMonday, October 8, 12
  • 84. Добър кодMonday, October 8, 12
  • 85. “Besides a mathematical inclination, an exceptionally good mastery of ones native tongue is the most vital asset of a competent programmer.” — Edsger Dijkstra* * изобретател на blog post-аMonday, October 8, 12
  • 86. “Programs must be written for people to read, and only incidentally for machines to execute.” — H. Abelson and G. SussmanMonday, October 8, 12
  • 87. Monday, October 8, 12
  • 88. принципиMonday, October 8, 12
  • 89. SOLIDMonday, October 8, 12
  • 90. Single Responsibility Principle Open-Closed Principle Liskov Substitution Principle Interface Segregation Principle Dependency Inversion PrincipleMonday, October 8, 12
  • 91. Law of DemeterMonday, October 8, 12
  • 92. Single Level of Abstraction Principle (SLAP)Monday, October 8, 12
  • 93. Expression ProblemMonday, October 8, 12
  • 94. ПрактикиMonday, October 8, 12
  • 95. Version ControlMonday, October 8, 12
  • 96. RefactoringMonday, October 8, 12
  • 97. Test-Driven DevelopmentMonday, October 8, 12
  • 98. Monday, October 8, 12
  • 99. web frameworkMonday, October 8, 12
  • 100. web framework най-популярното нещо в RubyMonday, October 8, 12
  • 101. web framework най-популярното нещо в Ruby ще говорим най-накрая (3-4 лекции)Monday, October 8, 12
  • 102. web framework най-популярното нещо в Ruby ще говорим най-накрая (3-4 лекции) (ОК за проекти, но трябва да одобрим)Monday, October 8, 12
  • 103. вместо това: ред малки библиотекиMonday, October 8, 12
  • 104. Тежките ограничения максимум X реда код в метод максимум Х нива на влагане в метод максимум Х метода в класMonday, October 8, 12
  • 105. Тежките ограничения максимум 10 реда код в метод максимум 3 нива на влагане в метод максимум 7 метода в класMonday, October 8, 12
  • 106. Monday, October 8, 12
  • 107. “Дялкам камъни”Monday, October 8, 12
  • 108. “Храня жената и децата”Monday, October 8, 12
  • 109. “Строя катедрали”Monday, October 8, 12
  • 110. В този курс ще се учим как се дялкат камъни, а не как се строят катедрали.Monday, October 8, 12
  • 111. за RubyMonday, October 8, 12
  • 112. Yukihiro “Matz” MatsumotoMonday, October 8, 12
  • 113. designed for programmer productivity and funMonday, October 8, 12
  • 114. “Treating Code as an Essay” Brevity Simplicity BalanceMonday, October 8, 12
  • 115. характеристикиMonday, October 8, 12
  • 116. динамиченMonday, October 8, 12
  • 117. интерпретира се $ cat hello.rb puts "Hello world!" forty_two = 6 * 9 puts "The answer is #{forty_two}" $ ruby hello.rb Hello world! The answer to is 54Monday, October 8, 12
  • 118. general purpose много web библиотекиMonday, October 8, 12
  • 119. обектно-ориентиран с функционални елементиMonday, October 8, 12
  • 120. вдъхновен от: Perl, Smalltalk, Python, LispMonday, October 8, 12
  • 121. култураMonday, October 8, 12
  • 122. open source!Monday, October 8, 12
  • 123. $ gem install railsMonday, October 8, 12
  • 124. 44 982 библиотеки тази сутрин (миналата година бяха 29 245)Monday, October 8, 12
  • 125. 133 923 хранилища, 50 491 потребителя (миналата година бяха 133 923 хранилища, 50 491 потребителя)Monday, October 8, 12
  • 126. communityMonday, October 8, 12
  • 127. Monday, October 8, 12
  • 128. много блоговеMonday, October 8, 12
  • 129. много много много много много блоговеMonday, October 8, 12
  • 130. screencasts & podcastsMonday, October 8, 12
  • 131. колоритMonday, October 8, 12
  • 132. _why the lucky stiffMonday, October 8, 12
  • 133. Monday, October 8, 12
  • 134. elitismMonday, October 8, 12
  • 135. David Heinemeir Hanson (автор на Rails)Monday, October 8, 12
  • 136. David Heinemeir HansonMonday, October 8, 12
  • 137. през 2012: зрялостMonday, October 8, 12
  • 138. иновацияMonday, October 8, 12
  • 139. nokogiri sequel rspec capybara sinatra lolcatMonday, October 8, 12
  • 140. GitHubMonday, October 8, 12
  • 141. кой ползва Ruby?Monday, October 8, 12
  • 142. TwitterMonday, October 8, 12
  • 143. GitHubMonday, October 8, 12
  • 144. ShopifyMonday, October 8, 12
  • 145. SoundCloudMonday, October 8, 12
  • 146. SongKickMonday, October 8, 12
  • 147. GrouponMonday, October 8, 12
  • 148. Urban DictionaryMonday, October 8, 12
  • 149. версии и интерпретаториMonday, October 8, 12
  • 150. 1.8 vs 1.9Monday, October 8, 12
  • 151. ще ползваме само 1.9Monday, October 8, 12
  • 152. JRuby IronRuby Rubinius MacRubyMonday, October 8, 12
  • 153. ресурсиMonday, October 8, 12
  • 154. why’s poignant guide to Ruby http://mislav.uniqpath.com/poignant-guide/Monday, October 8, 12
  • 155. Programming Ruby 1.9Monday, October 8, 12
  • 156. The Ruby Programming LanguageMonday, October 8, 12
  • 157. Ruby Best PracticesMonday, October 8, 12
  • 158. Monday, October 8, 12
  • 159. малко кодMonday, October 8, 12
  • 160. днес на http://ruby-lang.org/ # Output "I love Ruby" say = "I love Ruby" puts say # Output "I *LOVE* RUBY" say[love] = "*love*" puts say.upcase # Output "I *love* Ruby" # five times 5.times { puts say }Monday, October 8, 12
  • 161. (1..9).select { |x| x.odd? }.map { |x| x ** 2 }Monday, October 8, 12
  • 162. 1.upto(10).inject { |a, b| a * b }Monday, October 8, 12
  • 163. def factorial(n) 1.upto(n).inject { |a, b| a * b } end puts factorial(10)Monday, October 8, 12
  • 164. class Integer def factorial 1.upto(self).inject { |a, b| a * b } end end puts 10.factorialMonday, October 8, 12
  • 165. def prime?(n) 2.upto(n - 1).all? { |a| n.remainder(a).nonzero? } end puts prime?(13) puts prime?(42)Monday, October 8, 12
  • 166. class Integer def prime? 2.upto(pred).all? { |a| remainder(a).nonzero? } end end puts 13.prime? puts 42.prime?Monday, October 8, 12
  • 167. въпроси?Monday, October 8, 12