Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26

50 Aufrufe

Veröffentlicht am

Speech of Ike Kurghinyan, Senior Software Engineer at VChain LLC, at Ruby Meditation #26 Kyiv 16.02.2019
Next conference - http://www.rubymeditation.com/

«Is there one grand unifying rule to software engineering? Can so-called best practices be somehow derived from that unifying rule? This speech is a humble attempt to explore the subject and provide you with tools for your own explorations.»

Announcements and conference materials https://www.fb.me/RubyMeditation
News https://twitter.com/RubyMeditation
Photos https://www.instagram.com/RubyMeditation
The stream of Ruby conferences (not just ours) https://t.me/RubyMeditation
* The channel of the organizers of the meetup https://t.me/incredevly

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26

  1. 1. @dempfi Best practices, exploring!
  2. 2. @dempfi Software Engineer at VChain Ike Ku !
  3. 3. @dempfi Эээ..?
  4. 4. @dempfi Первые годные планеры 188x Полет Уйтхэда 1901 Полет братьев Райт 1903 Математика крыла 191x Серийный тяжелый самолет 1917 Формула Глоэрта 1928
  5. 5. @dempfi 500,000 проданных копий 41 переизданий Design Patterns: Elements of Reusable Object-Oriented Software Банда четырех 1994
  6. 6. @dempfi Композиция
  7. 7. @dempfi toLower: String !" String log: Number !" Number not: Boolean !" Boolean length: String !" Number isOdd: Number !" Boolean
  8. 8. @dempfi String Number Boolean length isOdd toLower not log
  9. 9. @dempfi (length ◦ isOdd)(x) ""# isOdd(length(x)) length ◦ toLower ""# length ""# log ◦ length String Number Boolean length isOdd length ◦ isOdd toLower not log
  10. 10. @dempfi f ◦ (g ◦ h) ""# (f ◦ g) ◦ h 1ᴮ ◦ f ""# f ""# f ◦ 1ᴬ A B C f g f ◦ g 1ᴬ 1& 1ᴮ
  11. 11. @dempfi Don’t Repeat Youself
  12. 12. @dempfi A B C f g h f: A !" B g: A !" B h: B !" C
  13. 13. @dempfi A B C f g h h ◦ g h ◦ f h ◦ f ""# h ◦ gh ◦ f ""# h ◦ g
  14. 14. @dempfi toLower: String !" String toUpper: String !" String length: String !" Number length ◦ toUpper !!$ length ◦ toLower
  15. 15. @dempfi https://hoogle.haskell.org/?hoogle=String->String
  16. 16. @dempfi Keep It Simple, Stupid
  17. 17. @dempfi
  18. 18. @dempfi A B D C E f g h k
  19. 19. @dempfi A B D C E f g h ◦ g h k
  20. 20. @dempfi f: A !" B g: A !" C k: A !" D h: C !" E t: A !" E !!# h ◦ g
  21. 21. @dempfi A B D C E f m h l
  22. 22. @dempfi l ◦ (m ◦ f) A B D C E f m h m ◦ f l ◦ m h ◦ m h ◦ (m ◦ f) l
  23. 23. @dempfi f: A !" B m: B !" C l: C !" D h: C !" E g: A !" C !!# m ◦ f k: A !" D !!# l ◦ g !!# l ◦ (m ◦ f) t: A !" E !!# h ◦ g !!# h ◦ (m ◦ f) u: B !" E !!# h ◦ m j: B !" D !!# l ◦ m
  24. 24. @dempfi id: a !" a
  25. 25. @dempfi ❤
  26. 26. @dempfi Embrace abstraction
  27. 27. @dempfi DRY + KISS
  28. 28. @dempfi Separation of Concerns
  29. 29. @dempfi
  30. 30. @dempfi
  31. 31. @dempfi ! Спасибо за внимание!

×