2010-11-17 12 views
17

Moja firma poszukuje zaawansowanych rozwiązań do wyszukiwania i raportowania i rozważa (między innymi) stworzenie czegoś podobnego do JIRA's JQL dla maksymalnej elastyczności.Czy Atlassion zbudował język zapytań JIRA (JQL) od zera?

Moje podejście do prowadzenia prowadzi mnie do przekonania, że ​​Atlassian zbudował JQL od podstaw, co najmniej jako język ze składnią i parserem, ale pomyślałem, że spróbuję SO, zanim skończę. Ktoś wie, na wysokim poziomie, jak to zrobili? Czy był jeden lub więcej projektów Open Source, na których je opierali?

(Kudos do Atlassian czy inaczej - JQL jest wspaniały)

+2

dla późnych przybyszy na ten temat; JQL może nie być open source, ale IntelliJ zaimplementował [parser JQL] (https://github.com/JetBrains/intellij-community/blob/master/plugins/tasks/tasks-core/jira/src/com/intellij/tasks /jira/jql/JqlElementTypes.java). W komentarzu występuje formalna składnia JQL. –

Odpowiedz

4

myślę zrobili to od podstaw. Podstawowa architektura jest ostra, ale dość złożona. Zajęło mi to kilka godzin, po prostu czytając źródło i minimalną liczbę dokumentów dla użytkowników.

~ Matt

+0

Ponadto, gdy Atlassian wydaje się być tak otwarty w swoim biznesie - na przykład blogowanie o rozwoju - można by pomyśleć, że oddałby jakąkolwiek podstawę technologiom, które wykorzystali, aby je wykorzystać. Używamy hostowanej JIRA, więc wszystko, co widzę, to interfejs użytkownika - dzięki za informacje. – peteorpeter

+13

Atlassian opracował JQL od zera. Analizator składni języka został opracowany przy użyciu [ANTLR] (http://www.antlr.org/). Po przeanalizowaniu jest on przekształcany w odpowiedni zestaw zapytań Lucene i bazy danych, a następnie wykonywany. Dokumentacja ANTLR ma [dobry, prosty przykład] (http://www.antlr.org/wiki/display/ANTLR3/Expression+evaluator), jak analizować wyrażenie, a następnie "wykonać" je. (Jestem programistą JIRA, więc dostajesz wewnętrzną historię :)) –

0

Atlassian zbudowany JQL na szczycie Apache Lucene. Możesz rzucić okiem na Elasticsearch lub Solr, które są alternatywami open source, również zbudowanymi na Lucene.

Powiązane problemy