Ruby 0

1,919 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,919
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ruby 0

  1. 1. Програмиране с Ruby лекция 010 октомври 2011
  2. 2. тази седмица:за курса & първи стъпки в Ruby ...но преди това:
  3. 3. ще се опитам да ви убедя да отпишете курса (отново)
  4. 4. труденстрашен
  5. 5. административни въпроси
  6. 6. Кога? Ден Час ЗалаПонеделник 19:00 101 Вторник 19:00 200
  7. 7. искате ли да сменим залата?
  8. 8. http://fmi.ruby.bg/ (скоро)
  9. 9. @rbfmi
  10. 10. оценяване
  11. 11. Скалата180 180 150135 130 110 90 90 45 3 4 0 5 6 Max
  12. 12. ЗадължителнитеПроект 60 Задачи 60 Тестове 60
  13. 13. Задачите• десет броя• предават се онлайн• проверяват се автоматично• 0-6 точки
  14. 14. Тестове• два броя• 30 въпроса за един час• 30 точки всеки
  15. 15. Проекти• на края на семестъра• вие измисляте или ние избираме• 60 точки• 30 за функционалност, 30 за стил
  16. 16. Бонусите участие в часучастие във форумите елеганти решения помощ на другарче
  17. 17. Тежките ограничениямаксимум X реда код в методмаксимум Х нива на влагане в методмаксимум Х метода в клас
  18. 18. Тежките ограничениямаксимум 10 реда код в методмаксимум 3 нива на влагане в методмаксимум 7 метода в клас
  19. 19. за какво ще говорим в курса?
  20. 20. в дълбочинаняма да сме повърхностни всички language feature-и идиоми екосистема
  21. 21. Добър код
  22. 22. Добър код
  23. 23. “Besides a mathematicalinclination, an exceptionallygood mastery of onesnative tongue is the mostvital asset of a competentprogrammer.” — Edsger Dijkstra* * изобретател на blog post-а
  24. 24. “Programs must be writtenfor people to read, and onlyincidentally for machines toexecute.” — H. Abelson and G. Sussman
  25. 25. Принципи
  26. 26. SOLID
  27. 27. Single Responsibility PrincipleOpen-Closed PrincipleLiskov Substitution PrincipleInterface Segregation PrincipleDependency Inversion Principle
  28. 28. Law of Demeter
  29. 29. Single Level of Abstraction Principle (SLAP)
  30. 30. Практики
  31. 31. Refactoring
  32. 32. Test-DrivenDevelopment
  33. 33. TDD + refactoring = чернова
  34. 34. web frameworkнай-популярното нещо в Rubyняма да говорим за него(или поне най-много лекция-две)
  35. 35. вместо това:ред малки библиотеки
  36. 36. “Дялкам камъни”
  37. 37. “Храня жената и децата”
  38. 38. “Строя катедрали”
  39. 39. В този курс ще се учимкак се дялкат камъни, а некак се строят катедрали.
  40. 40. за Ruby
  41. 41. Yukihiro “Matz” Matsumoto
  42. 42. designed for programmer productivity and fun
  43. 43. “Treating Code as an Essay” Brevity Simplicity Balance
  44. 44. характеристики
  45. 45. динамичен
  46. 46. интерпретира се$ cat hello.rbputs "Hello world!"forty_two = 6 * 9puts "The answer is #{forty_two}"$ ruby hello.rbHello world!The answer to is 54
  47. 47. general purposeмного web библиотеки
  48. 48. обектно-ориентиранс функционални елементи
  49. 49. вдъхновен от:Perl, Smalltalk, Python, Lisp
  50. 50. култура
  51. 51. open source!
  52. 52. $ gem install rails
  53. 53. 29 245 библиотеки тази сутрин
  54. 54. 133 923 хранилища, 50 491 потребителя тази сутрин
  55. 55. community
  56. 56. много блогове
  57. 57. много много много много много блогове
  58. 58. screencasts & podcasts
  59. 59. колорит
  60. 60. _why the lucky stiff
  61. 61. elitism
  62. 62. David Heinemeir Hanson (автор на Rails)
  63. 63. David Heinemeir Hanson
  64. 64. през 2011: зрялост
  65. 65. иновация
  66. 66. nokogiri sequel rspeccapybara sinatra lolcat
  67. 67. GitHub
  68. 68. кой ползва Ruby?
  69. 69. Twitter
  70. 70. GitHub
  71. 71. Shopify
  72. 72. SoundCloud
  73. 73. SongKick
  74. 74. Groupon
  75. 75. Urban Dictionary
  76. 76. версии и интерпретатори
  77. 77. 1.8 vs 1.9
  78. 78. ще ползваме само 1.9
  79. 79. JRubyIronRubyRubiniusMacRuby
  80. 80. ресурси
  81. 81. why’s poignant guide to Rubyhttp://mislav.uniqpath.com/poignant-guide/
  82. 82. Programming Ruby 1.9
  83. 83. The Ruby Programming Language
  84. 84. Ruby Best Practices
  85. 85. малко код
  86. 86. днес на 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 }
  87. 87. (1..9).select { |x| x.odd? }.map { |x| x ** 2 }
  88. 88. 1.upto(10).inject { |a, b| a * b }
  89. 89. def factorial(n) 1.upto(n).inject { |a, b| a * b }endputs factorial(10)
  90. 90. class Integer def factorial 1.upto(self).inject { |a, b| a * b } endendputs 10.factorial
  91. 91. def prime?(n) 2.upto(n - 1).all? { |a| n.remainder(a).nonzero? }endputs prime?(13)puts prime?(42)
  92. 92. class Integer def prime? 2.upto(pred).all? { |a| remainder(a).nonzero? } endendputs 13.prime?puts 42.prime?
  93. 93. въпроси?

×