Что является всегда 'Стандартным'? Если бы спецификация не сказала это, то это должно быть принято?

Есть ли некоторые стандарты, которые Вы считаете столь очевидными, что они, как предполагалось бы, были бы в какой-либо спецификации?

Например, удар должен выйти, всегда отменяют форму? Должен двойной щелчок по разделителю заголовка столбца изменять размер столбца?

Когда клиент говорит, что "это - очевидное и 'стандартное поведение', поэтому это - ошибка, чтобы не иметь его" - они иногда корректны? Если так, есть ли некоторые ресурсы, которые могут помочь посредничать?

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

6
задан TreyE 30 April 2012 в 17:19
поделиться

6 ответов

Возможно, вы захотите ознакомиться с Руководством по работе с Windows для "ожидаемого "поведение компонентов графического интерфейса: http://msdn.microsoft.com/en-us/library/aa511258.aspx

5
ответ дан 8 December 2019 в 16:02
поделиться

Имя файла разделяется на управляющее устройство компонентов, путь, имя файла и расширение.

Наиболее вероятно, IE использует обратную косую черту, в то время как FireFox использует косую черту. Попробуйте заменить\\parts на [\\/], чтобы выражение принимало как косую черту, так и обратную косую черту.

-121--4213373-

Небольшое редактирование кода Schnalle

<?php
$ids     = array(1, 2, 3, 7, 8, 9);
$inQuery = implode(',', array_fill(0, count($ids)-1, '?'));

$db   = new PDO(...);
$stmt = $db->prepare(
    'SELECT *
     FROM table
     WHERE id IN(' . $inQuery . ')'
);

foreach ($ids as $k => $id)
    $stmt->bindValue(($k+1), $id);

$stmt->execute();
?>

//implode(',', array_fill(0, count($ids)-1), '?')); 
//'?' this should be inside the array_fill
//$stmt->bindValue(($k+1), $in); 
// instead of $in, it should be $id
-121--1790099-

Создайте спецификацию плиты котла, которую вы включаете/ссылаетесь во все ваши проекты одного и того же общего дизайна. Эта спецификация должна увеличиваться и изменяться по мере получения дополнительной информации о клиентах/потребностях клиентов. Эта спецификация должна также содержать ссылки на соответствующие инструкции по пользовательскому интерфейсу, предоставляемые Apple или Microsoft . Даже если вы находитесь на одной платформе, я настоятельно рекомендую прочитать другую спецификацию для понимания лучших способов сделать вещи или определить возможные икоты. Есть также несколько хороших книг по дизайну пользовательского интерфейса, которые вы можете занять у.

1
ответ дан 8 December 2019 в 16:02
поделиться

Вероятно, было бы лучше, если бы C++ перегружал оператор «+», как вы показываете. К сожалению, они этого не сделали (вы можете, однако, если хотите).

Существует три основных метода преобразования целочисленных переменных в последовательности в C++; два унаследованы от C и один новый для C++.

  1. Подпрограмма itoa () . Это на самом деле нестандартно, но это есть у большинства компиляторов. Хорошо, что он возвращает указатель на последовательность, поэтому его можно использовать в программировании в функциональном стиле.
  2. sprintf () . Вторая операция удержания от C, эта процедура принимает последовательность назначения, последовательность формата и список параметров. Количество параметров и способ их интерпретации зависят от способа синтаксического анализа последовательности «format». Это делает спринт как чрезвычайно мощным, так и чрезвычайно опасным. Если вы используете этот подход, я могу в значительной степени гарантировать, что у вас будут сбои в ваших первых попытках.
  3. std:: ostringstream . Путь C++. Это имеет практически всю силу sprintf (), но гораздо безопаснее. Недостаток здесь в том, что вы должны объявить его, и это не последовательностей, так что вы все еще должны преобразовать его в один, когда вы закончили. Это означает, что по крайней мере три строки кода должны делать все со строковым потоком. Это также очень некрасиво, особенно если вы попробуйте какое-либо специальное форматирование.
-121--3432271-

По моему опыту, покровность и очистка имеют такие ошибки, чем valgrind нет (на самом деле все обнаружили проблемы, которые не были замечены другими).

Но иногда ни один инструмент не дает подсказку, и вам приходится копать больше, добавлять инструментарий, играть с точками останова на «изменить память по адресу», пытаться просто тест, который не удается и так далее, чтобы выяснить первопричину. Это может быть очень болезненно.

-121--3579216-

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

Edit: closing a dialog with the Побега key рассматривается в руководстве Microsoft (прокрутите вниз до «Interaction»):

Нажатие клавиши Esc всегда закрывает активное диалоговое окно. Это справедливо для диалоговых окон с помощью кнопки «Отмена» или «Закрыть», даже если кнопка «Отмена» была переименована в «Закрыть», поскольку результаты больше не может быть отменена.

Я выглядел не очень сильно, но я не видел ничего об авторазмере столбцов - и это достаточно необычно, что я был бы скорее удивлен, если бы он был там.

Таким образом, если бы я отвечал за это, я бы сказал, что это раздельное решение (так сказать). Для клиента разумно ожидать, что ключ побега прекратит диалог (без явного указания), и невыполнение этого требования должно рассматриваться как ошибка.

Автоматическое изменение размера столбца в ответ на удвоение -щелчок по границе заголовка столбца не является разумным без его указания, поэтому его реализация должна рассматриваться как добавленная функция.

Предостережения:

  1. Если вы разрабатываете что-то, что имеет свои собственные инструкции по UI (например, Mac или iPhone), это правила, которым нужно следовать. Доля Microsoft на рынке делает их очевидным выбором для цели, у которой нет собственного руководства по пользовательскому интерфейсу.
  2. Это явно вопрос взаимоотношений с клиентами. Вы явно не хотите потерять лучшего клиента по сравнению с тем, что вы могли бы реализовать довольно легко. Если автоматическое изменение размеров столбцов имеет огромное значение для них, и в противном случае они являются хорошим клиентом, возможно, будет целесообразно сделать это для них - но дайте им знать, что вы делаете им одолжение из-за того, насколько вы их цените. Вы просто должны быть осторожны в балансировке тепло-нечеткий «потому что вы особенный» часть с мягким вину-путешествие «так что мы делаем вам услугу, и теперь вы должны нам»... (ИМО, обычно лучше не говорить вслух часть «и теперь вы должны нам», но я не знаю вашего клиента).
3
ответ дан 8 December 2019 в 16:02
поделиться

Нет возможности полностью отформатировать то, что я могу найти, но взгляните на ReSharper 'Options: Languages' C # | Formatting Style 'Braces Layout. Он имеет ряд параметров, таких как формат анонимного типа.

-121--3926306-

Я выполнил работу по оптимизации реализации сжатия LZF, и здесь можно использовать некоторые из принципов, которые я использовал для повышения производительности.

Для повышения производительности кодирования в байтовой паре

  1. ограничьте размер блока меньше 65kB (возможно, оптимальным будет 8-16 кБ). Это гарантирует использование не всех байтов и позволяет хранить промежуточную информацию о обработке в оперативной памяти.
  2. Используйте хэш-таблицу или простую таблицу поиска по короткому целому числу (больше оперативной памяти, но быстрее) для хранения счетчиков для пар байтов. Возможны 65 656 2-байтовые пары и экземпляры BlockSize (макс. размер блока 64k). Это дает вам таблицу 128 000 возможных выходов.
  3. Выделение и повторное использование структур данных , способных содержать полный блок сжатия, таблицу замены, счетчики байтовых пар и выходные байты в памяти. Это звучит расточительно, но если учесть, что размер блока невелик, это того стоит. Ваши данные должны быть полностью помещены в кэш L2 ЦП или (в худшем случае) L3. Это дает БОЛЬШОЙ прирост скорости.
  4. Выполняйте быструю передачу данных для сбора счетчиков, а ЗАТЕМ беспокойтесь о создании таблицы замены.
  5. По возможности упакуйте байты в целые числа или короткие значения (в основном для C/C + +). Одна запись в счетной таблице может быть представлена целым числом (16-битное число плюс байтовая пара).
-121--3894530-

является стандартной практикой указывать стандарты пользовательского интерфейса, не предполагая их

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

стоит попытаться определить стандартное поведение GUI, чтобы не было путаницы; если вы можете сослаться на существующий стандарт, который хорошо, но убедитесь, что клиент подписывает на нем

«Я не могу прочитать ваш ум, и такое-и-так не является стандартным/по умолчанию поведением» является логическим реторта... но не очень вежливый.; -)

3
ответ дан 8 December 2019 в 16:02
поделиться

Моя любимая цитата из колледжа "The great thing about standards is that there are so many to choose from".

Я предполагаю, что вы задаете этот вопрос, потому что, к сожалению, оказались втянуты в спор "но вы об этом не просили". Это может поставить вас в трудное положение. Как правило, прежде всего вы хотите, чтобы компания предоставила вам свой стандарт или, как уже говорили другие, вы можете взаимно договориться о стандарте третьей стороны. Если вы руководите фирмой, которая производит много однотипных приложений, вам следует потратить время на создание своего "стандарта".

Если вы сидите на этапе подписания, а кто-то отказывается платить из-за "стандартных" функций, вам нужно иметь несколько примеров того, где это не является стандартом. В вашем примере, например, закрытие формы по клавише escape является стандартным только в Windows (не в Интернете), и то только для Microsoft. Я только что открыл на своем компьютере три приложения, в которых ESC вообще ничего не делает на форме.

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

2
ответ дан 8 December 2019 в 16:02
поделиться

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

Еще одно примечание:
Если ваша библиотека пользовательского интерфейса делает это одним способом, и для этого потребуется кодирование, чтобы сделать это другим способом (глупый пример: вы хотите, чтобы пользователи нажимали кнопки правой кнопкой мыши), тогда вы следует остановиться и переосмыслить то, чего пользователи могут ожидать.

1
ответ дан 8 December 2019 в 16:02
поделиться
Другие вопросы по тегам:

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