Каковы рекомендации по именованию параметра типа?

Вам нужно найти, где создается экземпляр класса следующим образом:

$ivole_sender = new Ivole_Sender();

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

global $ivole_sender;
remove_action( 'woocommerce_order_status_completed_notification', array( $ivole_sender, 'sender_trigger' ), 10 );
19
задан 21 April 2009 в 03:15
поделиться

5 ответов

Вот мой набор правил

  • Если есть один параметр, я называю его T
  • Если есть более одного параметра, я выбираю осмысленное имя и префикс с помощью T. Например, TKey, TValue

Для полуофициального мнения, стоит взглянуть на руководящие принципы разработки структуры по этому вопросу:

30
ответ дан 30 November 2019 в 01:58
поделиться

В конце концов, это ДЕЙСТВИТЕЛЬНО не имеет значения. Используйте соглашение об именах, которое имеет смысл.

public class MyDictionary<T1, T2>
{ }

, вероятно, не так полезно, как

public class MyDictionary<KeyType, ValueType>

(или TKey, TValue, если вы предпочитаете).

Если я смотрю на вашу реализацию и должен думать «хорошо, что это снова «Т3»? тогда ты не сделал хорошую работу.

7
ответ дан 30 November 2019 в 01:58
поделиться

Пример от Microsoft:

public interface IDictionary<TKey, TValue>

Параметр type представляет что-то , поэтому, если вы хотите иметь читаемый код, это «что-то» должно быть очевидно из кода (без дополнительные комментарии). Использование имен типов, таких как T, V, U, не обязательно очевидно (но иногда это может быть).

1
ответ дан 30 November 2019 в 01:58
поделиться

Это зависит от того, насколько ценным является содержание сообщений. Семейство SHA явно более безопасно, чем MD5 (где «более безопасный» означает «сложнее подделать»), но если ваши сообщения являются обновлениями в Твиттере, то вам, вероятно, все равно.

0
ответ дан 30 November 2019 в 01:58
поделиться

Есть несколько вещей, которые, я думаю, вам следует принять во внимание:

  1. Сколько аргументов типа существует?
  2. Есть ли там несколько аргументов? какие-либо ограничения на них?
  3. Используются ли они для чего-то особенного?

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

Пара примеров , на мой взгляд, хорошего именования аргументов типа (нумерация в этом списке не зависит от нумерации выше ...):

  1. Один аргумент, и это очевидно из имени класса (или в противном случае из контекста в коде) почему необходимо имя типа:

     List  
     

    Поскольку мы видим, что это список объектов типа T , и нет никаких конкретных ограничений на T , нет необходимости давать более конкретное имя аргументу типа.

  2. Несколько аргументов, которые представляют разные вещи в универсальном классе / интерфейсе:

     IDictionary  
     

    Нам нужно иметь возможность различать два аргумента, поэтому мы не t указать тип ключа для значения и наоборот.Таким образом, наименование аргументов Ключ и Значение и префикс T кажется уместным.
    Я должен подчеркнуть, что это намного лучше, чем, например, IDictionary или IDictionary , поскольку в В последних двух случаях невозможно интуитивно узнать, какой аргумент для чего будет использоваться.

  3. Один аргумент типа, но тип должен удовлетворять тем или иным требованиям:

     Репозиторий , где TEntity: class, IEntity 
     

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

2
ответ дан 30 November 2019 в 01:58
поделиться
Другие вопросы по тегам:

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