Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Найти Сятой Грааль, и оттестировать его как следует

Найти Сятой Грааль, и оттестировать его как следует

Grails is awesome! agreed? Good!
Now, search and testing facilities have become such a basic commodity in applications that it's almost taken for granted.
But as a Grails developer you face limitations and concerns: is the library well maintained? Does it fit the framework's paradigm?
After nominating the winners, we’ll show you the advantages of our tools of choice and take a deep dive into the juicy details.
This talk will provide short overviews and comparisons in the search for 2 pieces of the holy grail - good search and testing facilities.

3d73332968c0bf62e1ece7299deb8b37?s=128

Baruch Sadogursky

October 19, 2013
Tweet

Transcript

  1. None
  2. Agenda –Talklet A: Решения поиска в Грейлз _____

  3. –Talklet A: Решения поиска в Грейлз –Talklet B: Решения тестирования

    в Грейлз Agenda _____
  4. –Talklet A: Решения поиска в Грейлз –Talklet B: Решения тестирования

    в Грейлз Agenda _____
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. Требования ___________

  14. Требования –Скачивать Бинарники ___________

  15. Требования –Скачивать Бинарники –Веб приложение ___________

  16. Требования –Скачивать Бинарники –Веб приложение –REST API ___________

  17. Требования –Скачивать Бинарники –Веб приложение –REST API –Сервисы Бэкенда ___________

  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. None
  28. Требования ___________

  29. Требования –Быстрая разработка ___________

  30. Требования –Быстрая разработка –Гибкая структура ___________

  31. Требования –Быстрая разработка –Гибкая структура –Знакомо джавистам ___________

  32. Требования –Быстрая разработка –Гибкая структура –Знакомо джавистам –Stateless ___________

  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. • • – • – –

  43. None
  44. None
  45. None
  46. None
  47. None
  48. Требования ___________

  49. None
  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. None
  58. Требования –Отдельный сервер ___________

  59. None
  60. Лень: Общая черта всех программистов.

  61. Требования –Отдельный сервер –Интеграция с грейлзами с индексацией по событиям

    ___________
  62. None
  63. Требования –Отдельный сервер –Интеграция с грейлзами с индексацией по событиям

    –Не только для hibernate ___________
  64. Вот было бы здорово, если бы поисковик сам включался и

    бежал во время разработки…
  65. Требования –Отдельный сервер –Интеграция с грейлзами с индексацией по событиям

    –Не только для hibernate –Встроенный режим ___________
  66. None
  67. None
  68. None
  69. None
  70. –Очень шустрый!

  71. –Очень шустрый! –Отдельный масштабируемый сервер

  72. –Очень шустрый! –Отдельный масштабируемый сервер –Не встраивается

  73. –Очень шустрый! –Отдельный масштабируемый сервер –Не встраивается –Плагин для грейлз...

  74. None
  75. Требование Как оно?

  76. Требование Как оно? Отдельный сервер Отличный!

  77. Требование Как оно? Отдельный сервер Отличный! Индексация по событиям Неа

    :(
  78. Требование Как оно? Отдельный сервер Отличный! Индексация по событиям Неа

    :( Интеграция с грейлз Не смешите меня
  79. Требование Как оно? Отдельный сервер Отличный! Индексация по событиям Неа

    :( Интеграция с грейлз Не смешите меня Встраиваемость Нативный сервер в JVM
  80. None
  81. Требование Как оно? Отдельный сервер Отличный! Индексация по событиям Неа

    :( Интеграция с грейлз Не смешите меня Встраиваемость Нативный сервер в JVM? How about “no”.
  82. ==

  83. None
  84. None
  85. None
  86. Требование Как оно?

  87. Требование Как оно? Интеграция с Грейлз

  88. None
  89. Требование Как оно? Интеграция с Грейлз Хорошая!

  90. Требование Как оно? Интеграция с Грейлз Хорошая! Индексация по событиям

  91. None
  92. Требование Как оно? Интеграция с Грейлз Хорошая! Индексация по событиям

    Хорошая! (не уверен на счет mongodb)
  93. Требование Как оно? Интеграция с Грейлз Хорошая! Индексация по событиям

    Хорошая! (не уверен на счет mongodb) Встраиваемость Отдельный сервер
  94. static searchable = true

  95. static searchable = { except = ['field1'] field2 boost: 2.0

    }
  96. None
  97. None
  98. def result = Domain.search('query')

  99. def result = searchableService.search('query')

  100. Требование Как оно? Интеграция с Грейлз Хорошая! Индексация по событиям

    Хорошая! (не уверен на счет mongodb) Встраиваемость Только так и живем Отдельный сервер Фигушки :(
  101. None
  102. None
  103. Требование Как оно?

  104. Требование Как оно? Отдельный сервер

  105. None
  106. Требование Как оно? Отдельный сервер О, да!

  107. Требование Как оно? Отдельный сервер О, да! Встроенный режим

  108. None
  109. None
  110. Требование Как оно? Отдельный сервер О, да! Встроенный режим запрещен

  111. Требование Как оно? Отдельный сервер О, да! Встроенный режим запрещен

    Индексирование по событиям Интеграция с грейлз
  112. None
  113. None
  114. None
  115. None
  116. None
  117. grails start-solr & grails stop-solr

  118. static enableSolrSearch = true

  119. static solrAutoIndex = true

  120. def result = Domain.searchSolr('query')

  121. def result = solrService.search('query')

  122. ...there’s more...

  123. -GASP-

  124. None
  125. Требование Как оно? Отдельный сервер О, да! Встроенный режим запрещен

    Индексирование по событиям Есть, но выключен по умолчанию?! Интеграция с грейлз Сплошной фейспалм
  126. Бонзай полезен для здоровья

  127. Требование Как оно?

  128. Требование Как оно? Отдельный сервер

  129. None
  130. Требование Как оно? Отдельный сервер Есессно!

  131. Требование Как оно? Отдельный сервер Есессно! Встроенный режим

  132. elasticSearch { client.mode = 'local' }

  133. elasticSearch { client.mode = 'transport' }

  134. Требование Как оно? Отдельный сервер Есессно! Встроенный режим Один флажок

  135. Требование Как оно? Отдельный сервер Есессно! Встроенный режим Один флажок

    Интеграция с грейлз Индексация по событиям
  136. static searchable = true static searchable = { … }

    Looks familiar?
  137. None
  138. None
  139. None
  140. None
  141. None
  142. Требование Как оно? Отдельный сервер Есессно! Встроенный режим Один флажок

    Интеграция с грейлз Ноам починил Индексация по событиям Ноам починил
  143. None
  144. Покажите уже код уже!

  145. None
  146. None
  147. None
  148. "Never in the field of software development was so much

    owed by so many to so few lines of code".
  149. None
  150. Покажите уже код уже!

  151. None
  152. None
  153. None
  154. None
  155. None
  156. None
  157. None
  158. None
  159. None
  160. None
  161. None
  162. None
  163. Покажите уже код уже!

  164. None
  165. None
  166. None