Каков Ваш предпочтительный язык сценариев в мире Java (язык сценариев на JVM) и путь? [закрытый]

Вы также можете изменить свой метод uploadFile на await для загрузки.

Вы используете await, чтобы сделать асинхронный вызов синхронным. Однако, если вы смешаете это с .then() методами, вы, вероятно, сделаете его части непреднамеренно асинхронными.

  Future uploadFile() async {
    final String rand1 = "${new Random().nextInt(10000)}";
    final String rand2 = "${new Random().nextInt(10000)}";
    final String rand3 = "${new Random().nextInt(10000)}";

    // you don't need {} if it's a simple statement, use $stringvar and ${value.toString}
    final StorageReference ref = FirebaseStorage.instance.ref().child('$rand1_$rand2_$rand3.jpg');

    StorageUploadTask task = ref.putFile(imageFile);
    var downloadUrl = await (await task.onComplete).ref.getDownloadURL();
    debugPrint("downloadUrl=$downloadUrl");
    return downloadUrl.toString();
  }

просто предложение, не связанное с вашим первоначальным вопросом.

Используя 3 случайных числа, вы, вероятно, столкнетесь со временем. Рассмотрим использование пакета UUID , вероятность столкновения значительно меньше. :)

  Future uploadFile() async {
    final String uuid = uuid.v4(); // v4 is random, v1 is time-based

    final StorageReference ref = FirebaseStorage.instance.ref().child('$uuid.jpg');

    StorageUploadTask task = ref.putFile(imageFile);
    var downloadUrl = await (await task.onComplete).ref.getDownloadURL();

    return downloadUrl.toString();
  }

8
задан Darius Kucinskas 18 March 2009 в 07:45
поделиться

8 ответов

Моим фаворитом является Jython, и я использую его путем встраивания интерпретатора Jython в мое JAVA-приложение. Это используется в коммерческих проектах, и это позволяет легко настраивать приложение согласно потребностям клиентов, не имея необходимость компилировать что-либо. Просто отправьте им сценарий, и вот именно. Некоторые клиенты могли бы даже настроить свое приложение сами.

4
ответ дан 5 December 2019 в 06:54
поделиться

Я успешно использовал Groovy в коммерческом проекте. Я предпочитаю языки сценариев из-за утиного ввода и закрытий:

def results = []
def min = 5
db.select(sql) { row ->
    if (row.value > min)
        results << row;
}

Перевод: Выполните SQL-запрос против базы данных и добавьте все строки, где столбец "значение" больше, чем "минута" для "заканчиваний". Отметьте, как легко можно передать данные внутреннему "циклу" или вытащить результаты из него. И да, я знаю, что мог достигнуть того же с SQL:

def results = []
def min = 5
db.select(sql, min) { row ->
    results << row;
}

(просто предположите, что Строка в "sql" имеет a"?" в правильном месте).

По моему скромному мнению, с помощью DB с языком, который не предлагает богатые операции списка (вид, отфильтруйте, преобразуйте), и закрытия просто служит примером, как Вы не должны делать этого.

Я хотел бы использовать Jython больше, но работа над Jython 2.5 запустилась только недавно, и Python 2.2 просто слишком стар в моих целях.

4
ответ дан 5 December 2019 в 06:54
поделиться

Я мог бы предпочесть Scala, но я не могу сказать, все еще учась. В данный момент с помощью Groovy для записи маленьких утилит. Не попробовали даже Groovy на Grails. Услышанный большая польза о Платформе Лифта для Scala также.

3
ответ дан 5 December 2019 в 06:54
поделиться

У Носорога JavaScript есть востребованное преимущество - он включен с JDK. Однако более поздние версии Носорога, чем тот с Java 6 имеют хорошие функции как генераторы, выстраивают понимания и destructuring присвоение.

Я одобряю использование его каждый раз, когда церемония обработки исключений Java загромождает код ни для какой реальной выгоды. Я также использую его, когда я хочу записать простой сценарий командной строки, который использует в своих интересах библиотеки Java.

3
ответ дан 5 December 2019 в 06:54
поделиться

Java. Серьезно. Это - мощное, простое в использовании (если немного подробный) язык, который все знают. Интеграция с Java является большой.

3
ответ дан 5 December 2019 в 06:54
поделиться

Компания, на которую я работаю, встраивает Groovy в веб-сайт Java/Spring, который развертывается в ряде сайтов. Сценарии хранятся внешне скомпилированного ВОЕННОГО файла и позволяют нам управлять частью логики сайта, не имея необходимость развертывать новую ВОЙНУ на каждый сайт. До сих пор этот подход работал очень изящно на нас.

Особенно хорошая функция Groovy - то, что он может тесно напомнить код Java, который делает очень легким портировать существующие классы Java на него.

1
ответ дан 5 December 2019 в 06:54
поделиться

Как насчет SISC (второй интерпретатор кода схемы)?

ССЫЛКА: http://sisc-scheme.org/

1
ответ дан 5 December 2019 в 06:54
поделиться

Для меня Clojure выигрывает. Будучи Lisp, он краток и динамически типизирован, он обладает огромной выразительной силой, поэтому я могу написать много функций в нескольких строках. И его интеграция с Java непревзойденная - я ' Я лишь частично шучу, когда говорю, что Clojure более совместим с Java, чем сама Java. В результате можно полностью использовать весь спектр Java-библиотек, как от JDK, так и от сторонних разработчиков.

Наконец, при небольшой осторожности код Clojure может быть таким же быстрым, как код Java, поэтому я даже не теряю производительность .

5
ответ дан 5 December 2019 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: