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.

Baruch Sadogursky

October 19, 2013
Tweet

More Decks by Baruch Sadogursky

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. Требования
    ___________

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  9. Требования
    ___________

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide







  14. View full-size slide

  15. Требования
    ___________

    View full-size slide

  16. Требования
    –Отдельный сервер
    ___________

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  20. Вот было бы
    здорово, если
    бы поисковик
    сам включался
    и бежал во
    время
    разработки…

    View full-size slide

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

    View full-size slide

  22. –Очень шустрый!

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  38. static searchable = true

    View full-size slide

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

    View full-size slide

  40. def result =
    Domain.search('query')

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  49. grails start-solr
    &
    grails stop-solr

    View full-size slide

  50. static enableSolrSearch = true

    View full-size slide

  51. static solrAutoIndex = true

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  54. ...there’s more...

    View full-size slide

  55. Требование Как оно?
    Отдельный сервер О, да!
    Встроенный режим запрещен
    Индексирование по
    событиям
    Есть, но выключен
    по умолчанию?!
    Интеграция с грейлз Сплошной
    фейспалм

    View full-size slide

  56. Бонзай полезен для здоровья

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  64. Требование Как оно?
    Отдельный сервер Есессно!
    Встроенный режим Один флажок
    Интеграция с грейлз
    Индексация по
    событиям

    View full-size slide

  65. static searchable = true
    static searchable = {

    }
    Looks familiar?

    View full-size slide

  66. Требование Как оно?
    Отдельный сервер Есессно!
    Встроенный режим Один флажок
    Интеграция с грейлз Ноам починил
    Индексация по
    событиям
    Ноам починил

    View full-size slide

  67. Покажите
    уже код
    уже!

    View full-size slide

  68. "Never in the field of software
    development was so much owed
    by so many to so few lines of
    code".

    View full-size slide

  69. Покажите
    уже код
    уже!

    View full-size slide

  70. Покажите
    уже код
    уже!

    View full-size slide