Angular-styleguide: Мысли об использовании суффикса * Async для любых функций, возвращающих обещание?

Созданный на 7 мая 2015  ·  4Комментарии  ·  Источник: johnpapa/angular-styleguide

Одна вещь, которую мне нравится делать в моем коде JavaScript, - это добавлять слово «Async» в конец имен функций, возвращающих обещание. Это улучшает читаемость и позволяет людям сразу узнать, что он возвращает обещание, когда intellisense показывает вам имя функции.

Пример:

function getDataFromThesServer() {}

Было бы:

function getDataFromThesServerAsync() {}
question

Все 4 Комментарий

Это стандарт Microsoft для библиотек .NET. Но я думаю, что им это нужно, а нам - нет.

Им это нужно, потому что у них есть масса синхронных методов с асинхронными альтернативами. Суффикс помогает им передать схожесть намерений, не изобретая новый корень имени метода.

Но это попахивает венгерской нотацией, которая стала устаревшей, когда редакторы / IDE начали предоставлять помощь API.

Более того, у нас нет такого же потенциала для конкуренции асинхронных и синхронизирующих сигнатур. Это случается, конечно, но не так часто, потому что все межпроцессные коммуникации в мире JS должны быть асинхронными; нет конкурирующих альтернатив синхронизации. Поэтому я думаю, что мы можем обойтись без лишних писаний и чтений.

Более того, довольно очевидно, если посмотреть на используемый метод, является ли он асинхронным или нет.

Вы вполне можете не согласиться. Но я думаю, что руководство по стилю должно рекомендовать только проверенные методы, которые широко используются и широко применяются ... а это - нет.

Руководство по стилю также не должно запрещать это, что дает вам возможность добавить его к стандартам вашей группы, если хотите.

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

интересное обсуждение. Чтобы было ясно, я не делаю этого и не меняюсь ... но я не думаю, что это плохо. Зачем? это соглашение, и если вы думаете, что он вам лучше читается, попробуйте. но я уверен, что после того, как вы получите все больше и больше кода с этим, вы можете увидеть то, что упоминал @kylecordes ... у многих fn он есть, и он вам действительно не нужен.

Я не буду этого делать, и я согласен с тем, что чаще всего можно увидеть, как функции используют обещания, чем нет, и практически все асинхронно :)

Я тоже из .Net, и я предполагаю, что еще одна причина добавления * Async к асинхронным функциям - дать вызывающему абоненту знать, что это асинхронная функция, и не забыть использовать await .

Любая хорошая практика (или поддержка IDE), которая может напомнить вызывающему, что await может отсутствовать?

Я использую VSCode и WebStorm.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги