Open ibakaidov opened 7 years ago
Привет, к сожалению, с явой не особо приходилось работать, но хочется верить, не последний человек среди тех кто связывается с кодом )
Сразу напишу по тем же пунктам, чтобы было более структурировано.
A standard Trie is very memory intensive, for larger sets you wanna use a Compacted Trie which greatly reduces the memory footprint. Additional optimisations encompass lazy initialisation of node values and the right data structures for the children/value sets. A while ago I created a autocomplete library capable of handling very large data sets (10,000,000+) and efficiently answers exact and approximate searches.
- Больше склоняюсь в сторону популярных файловых хранилищ, наподобие Dropbox или GoogleDrive. Нужно чтобы даже те кто не сильно разбирается смогли потом извлечь свои данные или , например, легко начать не настраивая никаких серверов. В моем представлении, информация должна храниться в двух файлах. В одном большой словарь, который может быть у всех одинаковый, чтобы не искать в интернете, лучше даже в формате .txt, а втором уже то что связывает этого человека со словарем. Если на примере того же префиксного дерева, то там как раз и должно лежать это дерево. С синхронизацией, конечно, всегда бывает не всегда все просто, тут надо еще додумать.
- По этому пункту пока нечего сказать.
- Ну код выглядит точно не хуже, чем у знакомых)) поэтому оставляю это тем, кому доводилось встречаться с явой одного раза. Глянул основные классы мельком. Возможно, можно будет потом добавить больше интерфейсов, чтоб легко менять реализации, например онлайн спикера на оффлайн и тд.
Как то так. Вообщем, если что могу попробовать в таком варианте, а пока предлагаю подождать более компетентных людей, не сильно тянет пополнят свой лексикон)
@zartdinov Зачем усложнять? Реализации со стандартной sqlite бд и like* запросами тут, по моему убеждению, за глаза и за уши хватит.
Вообще, можно создать несколько Issue на выполнение (рефакторинг кода, добавление firebase, добавление базы данных, добавление поиска и т.д.), это упростит сообществу разработку.
Если опять все усложнять, тут подойдут некоторые key-value хранилища, в которых есть поиск по префиксу. Особенно легко было бы с distributed key-value storage, такими как etcd, consul и тд.
Надо бы ещё создать dev ветку, а не мешать c master'ом из которого строится для продакшена.
По Git Flow разработку ведут в ветке develop
, а master
используют для стабильных версий. Подход красивый, удобный, позволяет четко разграничить назначение разных веток.
http://nvie.com/posts/a-successful-git-branching-model/
Но также есть понятие GitHub Flow, где основная ветка master
и все изменения сливаются в нее.
https://guides.github.com/introduction/flow/
Я сторонник именно Git Flow, но команда сама решает чему следовать.
Я тоже за две ветки, это вносит некий порядок.
добавить сохранение фраз в облако (придумать в какое) и синхронизацию на всех гаджетах юзера
Я тоже голосую за Firebase, более того в нем есть функция офлайн доступа, которая включается вызовом одного метода, таким образом отпадает необходимость SQLite БД на телефоне. Ну и плюс - не надо будет реализовывать механизм синхронизации фраз, потому что Firebase это будет делать сам.
Всем привет. простите что молчал. со временем был пипец. обновил эппу и загрузил в гугл плей. Еще добавил кнопку bell, она издает громкий звук и привлекает внимание
чтобы такого еще придумать... Виджет с быстрыми фразами?