C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как прикладывать файлы к сообщениям  (Прочитано 20464 раз)
S0mbre
Глобальный модератор
***

Сказали спасибо: +1113/-22
Offline Offline

Сообщений: 2137

S0mbre


WWW
« : 01 августа 2012, 09:42:08 »

Возможно, эту тему следовало бы сделать более общей, например "как правильно оформлять посты". Но это уже на усмотрение админов - может, в будущем, такую тему можно создать.
Довольно часто к своим постам необходимо что-то прикрепить (проект, картинку и т.п.) - и очень часто это делают неправильно Грустный
Вот несколько практических советов.

1. Прикрепление проекта
  • Чистите проект до его архивации! В архивированный проект должны входить только файлы, необходимые для его компиляции (т.е. файл проекта, исходники, файлы форм, ресурсы) - никаких бэкапов и временных файлов типа *.obj, *.map, *.pch, *.tds, *.#00, *.dsk, *.local и т.п.!
  • Не надо прикладывать скомпилированный файл! В большинстве случаев, вы задаете вопрос: почему то или иное не работает, не действует, функция не выполняется и т.д. Поэтому люди будут пытаться воспроизвести вашу ошибку, а для этого необходимо заново собрать проект. Уже собранный EXE/DLL ни о чем не говорит. К тому же, бинарный файл может довольно много весить, а лишние килограммы нам ни к чему  Улыбка
  • Если все же надо приложить именно собранный файл ("посмотрите, какой красивый контрол!"  Улыбка ), то либо компилируйте проект для автономного запуска (как это делается - говорилось много раз: dynamic RTL = false, link with runtime packages = false), либо прикладывайте все необходимые пакеты (*.bpl) для динамической линковки. Узнать, какие именно пакеты использует ваш проект, можно при помощи утилиты tdump, входящей в дистрибутив студии / билдера
  • Хорошо комментируйте код, особенно те строки, на которые требуется обратить внимание, или смысл которых не сразу очевиден. Например, хороший тон (IMHO) - комментировать, зачем подключен тот или иной "странный" заголовочный файл, или вложенную обработку исключений, частную специализацию шаблонных функций / классов и т.п. Очень помогает краткое описание классов и функций в их объявлениях. Это все нужно, чтобы облегчить и ускорить прочтение кода, а отсюда - быстрое его понимание, а отсюда - возможная помощь...  Улыбка
  • Избегайте хард-кодинга строковых констант, в особенности, путей к файлам. Т.е. если ваш проект содержит строку вроде
Код:
Memo1->Lines->LoadFromFile("D:\\Мои файлы\\Всякая ерунда\\Файлик.txt");
это с 99,99%-ной вероятностью не будет работать на чужой машине (где данный путь не существует). Используйте динамические диалоги, относительные пути (relative paths), файлы в ресурсах приложения и т.д.
  • Учитывайте (по возможности) различные версии компилятора. Старайтесь делать ваш код наиболее универсальным. Например, если нет необходимости использовать непременно юникодные строки, используйте более универсальный AnsiString или еще лучше - String (который преобразуется в AnsiString или UnicodeString в зависимости от компилятора и настроек проекта). Другой пример - использование функционала C++11, который и так-то далеко не весь поддерживается новейшими версиями компилятора, а о старых даже говорить не приходится... Если кратко - по возможности, стремиться к тому, чтобы проект одинаково хорошо компилировался на BCB5 и XE2. Конечно, если это невозможно, следует предупредить о минимальной версии.

2. Прикрепление картинок
  • Скриншот должен быть максимально эргономичным и понятным. Не надо прикладывать снимок всего экрана с малюсеньким окошечком посередине (вашим приложением). А надо приложить только то окно или, если возможно, ту часть окна или экрана, которая непосредственно иллюстрирует вашу мысль. При это приветствуется использование указующих стрелок, надписей и т.п. - все, что сделает скриншот более понятным (загромождать инфографикой тоже не надо!)
  • Ограничивайте размер изображений до разумных пределов. Гигантская кнопка с разрешением 1900х1200 так же информативна, как эта же кнопка с нормальным разрешением (чтобы можно было всю ее рассмотреть).
  • Используйте хорошее сжатие. Несмотря на то, что можно прикладывать изображения в разных форматах (gif, jpg, pdf, png), лучше использовать gif или jpg для хорошего коэффициента сжатия - но только так, чтобы качество изображения было приемлемым. JPEG с коэффициентом 40, например, скорее всего, будет "размытым" (оптимально - 75-90).

3. Прикрепление больших файлов
Большие файлы следует упаковывать в архив с хорошим сжатием (как пример, 7z или rar) и заливать на файлообменник, а в пост вставлять ссылку. При этом:
  • Используйте надежный файлообменный сервис. Это значит, что скорость бесплатного скачивания должна быть приемлемой, процедура получения прямой ссылки - максимально простой, время хранения файла - максимально долгим, реклама - минимальной. Лично я предпочитаю rusfolder и rghost, но, конечно, могут быть другие предпочтения, лишь бы соблюдались указанные условия. И еще на заметку: многие "раскрученные" хостинги забанены на рабочем месте, например, у нас забанены rapidshare, uploadbox и megaupload. Так что это тоже следует учитывать  Улыбка
  • Самостоятельно продлевайте срок хранения файлов. Худшее, что может быть, - это мертвая ссылка. Поэтому следите за жизнью ваших файлов без напоминания со стороны пользователей. Напоминать могут и сами файлообменные сервисы. Например, rusfolder отправляет на мыло сообщение о том, что скоро срок хранения истекает и предлагает продлить его.

Вот, пожалуй, основное, что касается прикрепления файлов. Админы, дописывайте  / изменяйте здесь по мере необходимости.
« Последнее редактирование: 02 августа 2012, 10:19:56 от S0mbre » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: