Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
@dempfi
Best practices,
exploring!
@dempfi
Software Engineer at VChain
Ike Ku
!
@dempfi
Эээ..?
@dempfi
Первые годные планеры
188x Полет Уйтхэда
1901 Полет братьев Райт
1903
Математика крыла
191x Серийный тяжелый самол...
@dempfi
500,000 проданных копий
41 переизданий
Design Patterns: Elements of
Reusable Object-Oriented Software
Банда четыре...
@dempfi
Композиция
@dempfi
toLower: String !" String
log: Number !" Number
not: Boolean !" Boolean
length: String !" Number
isOdd: Number !" ...
@dempfi
String
Number
Boolean
length isOdd
toLower not
log
@dempfi
(length ◦ isOdd)(x) ""# isOdd(length(x))
length ◦ toLower ""# length ""# log ◦ length
String
Number
Boolean
length...
@dempfi
f ◦ (g ◦ h) ""# (f ◦ g) ◦ h
1ᴮ ◦ f ""# f ""# f ◦ 1ᴬ
A
B
C
f g
f ◦ g
1ᴬ 1&
1ᴮ
@dempfi
Don’t Repeat Youself
@dempfi
A
B
C
f
g
h
f: A !" B
g: A !" B
h: B !" C
@dempfi
A
B
C
f
g
h
h ◦ g
h ◦ f
h ◦ f ""# h ◦ gh ◦ f ""# h ◦ g
@dempfi
toLower: String !" String
toUpper: String !" String
length: String !" Number
length ◦ toUpper !!$ length ◦ toLower
@dempfi
https://hoogle.haskell.org/?hoogle=String->String
@dempfi
Keep It Simple, Stupid
@dempfi
@dempfi
A
B
D
C
E
f
g
h
k
@dempfi
A
B
D
C
E
f
g
h ◦ g
h
k
@dempfi
f: A !" B
g: A !" C
k: A !" D
h: C !" E
t: A !" E !!# h ◦ g
@dempfi
A
B
D
C
E
f
m
h
l
@dempfi
l ◦ (m ◦ f)
A
B
D
C
E
f
m
h
m ◦ f
l ◦ m
h ◦ m
h ◦ (m ◦ f)
l
@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 ◦ ...
@dempfi
id: a !" a
@dempfi
❤
@dempfi
Embrace abstraction
@dempfi
DRY + KISS
@dempfi
Separation of Concerns
@dempfi
@dempfi
@dempfi
!
Спасибо
за внимание!
Upcoming SlideShare
Loading in …5
×

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

66 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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 ! Спасибо за внимание!

×