Калека по сравнению с Inkscape по сравнению с Фейерверками для разработки веб-сайтов?

Кандидат Singleton должен удовлетворить три требования:

  • средства управления параллельный доступ к совместно используемому ресурсу.
  • доступ к ресурсу будет запрошен от нескольких, разрозненных частей системы.
  • может быть только один объект.

, Если Ваша предложенная Singleton имеет только один или два из этих требований, модернизация является почти всегда корректной опцией.

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

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

12
задан Vivek Sharma 16 July 2009 в 03:35
поделиться

6 ответов

Если вы не хотите использовать существующую библиотеку ведения журнала, вы можете попробовать использовать макросы. Я бы порекомендовал предоставить вашу собственную библиотеку и сделать ее доступной с макросами с механизмом форматирования наподобие printf.

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

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

Вот предложение (извините, нет времени проверять, я надеюсь, что оно работает)

header:

#ifdef _MYAPI_IMPL
#define MY_API __declspec(dllexport)
#else
#define MY_API __declspec(dllimport)
#endif

class MY_API Log
{
public:
    enum Level {Error, Warning, Info, Debug};
    Log(Level level, const char* file, int line );
    void operator()(const char* Format, ... );
private:
       const char* m_file;
       Level m_level;
       int m_line;
};

#define __LOG(lvl) (Log(lvl, __FILE__, __LINE__ ))

#define LOG_ERR  __LOG(Log::Error)
#define LOG_WRN  __LOG(Log::Warning)
#define LOG_INF  __LOG(Log::Info)
#define LOG_DBG  __LOG(Log::Debug)

class My_API Logger
{
public:
    virtual void log(const char* message)=0;
};

class MY_API LoggerManager
{
private:
    static LoggerManager* s_inst;
    LoggerManager() {}
        virtual ~LoggerManager() {}
public:
    static LoggerManager* Instance();
    static void Clean();
    addLogger(Logger* newLogger, Log::Level minlevel = Log::Info);
        log(const char* file, int line, Log::Level level, const char* message);
};

Cpp:


Log::Log(Level level, const char* file, int line)
 : m_file(file), m_level(level), m_line(line)
{
}

void Log::operator()(const char* format, ... )
{
    va_list va;
    va_start(va, format);
    char message[LENGTH+1]={0};

    _vsnprintf(message, LENGTH, format, va);

    va_end(va);

    LoggerManager::Instance()->log(m_file, m_line, m_level, message);


};

Другие библиотеки и exe должны иметь возможность вызывать подобным образом. Им просто нужно включить .h и ссылку на библиотеку.

LOG_INF("Hello %s!", "world");

Обновление: я добавил пояснения, необходимые для механизма ведения журнала. Также можно превратить макросы в обычный printf, если вы не хотите реализовывать весь механизм ведения журнала.

и в целом я использую GIMP / Inkscape только для быстрых набросков или когда мне специально нужно создать / изменить изображение.

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

Прямо сейчас, для всего, что не требует специальной работы с векторной графикой, я предпочитаю GIMP. Это гораздо более зрелая и отточенная программа. (И есть много обучающих программ и плагинов, плавающих вокруг, если они вам в конечном итоге понадобятся.)

Однако здесь Inkscape действительно имеет то преимущество, что является редактором векторной графики. Если вы собираетесь много перемещать объекты и изменять их размер, чтобы получить то, что вам нужно, Inkscape будет намного проще работать здесь. Тем не менее, если вы делаете изображения для веб-сайта, вы В конце концов мы собираемся использовать растровую графику, и GIMP предоставит вам более точный контроль.

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

(Заключительное примечание: несмотря на то, что многие люди говорят о пользовательском интерфейсе GIMP, я бы в любой момент взял его на себя Photoshop. У него все еще есть несколько причуд, но в основном это мнение.)

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

(Заключительное примечание: несмотря на то, что многие люди говорят о пользовательском интерфейсе GIMP, я бы в любой момент взял его на себя Photoshop. У него все еще есть некоторые причуды, но в основном это мнение.)

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

(Заключительное примечание: несмотря на то, что многие люди говорят о пользовательском интерфейсе GIMP, я бы в любой момент взял его на себя Photoshop. У него все еще есть некоторые причуды, но в основном это мнение.)

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

(Заключительное примечание: несмотря на то, что многие люди говорят о пользовательском интерфейсе GIMP, я бы в любой момент взял его на себя Photoshop. У него все еще есть некоторые причуды, но в основном это мнение.)

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

(Заключительное примечание: несмотря на то, что многие люди говорят о пользовательском интерфейсе GIMP, я бы в любой момент взял его на себя Photoshop. У него все еще есть некоторые причуды, но в основном это мнение.)

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

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

17
ответ дан 2 December 2019 в 05:28
поделиться

Если вы используете Windows, попробуйте Paint.NET - это открытый исходный код и бесплатный, как GIMP, но проще в использовании, запускается быстрее и больше похож на photoshop (самая известная программа для обработки изображений).

1
ответ дан 2 December 2019 в 05:28
поделиться

InkScape не предназначен для веб-разработки; это прежде всего утилита для полиграфического дизайна. Для графической утилиты веб-дизайна, которая также имеет открытый исходный код, является кроссплатформенной и гораздо более сопоставима с Fireworks / Photoshop, я рекомендую The Gimp.

Основы описаны здесь:

http: //www.gimp .org / tutorials / The_Basics /

, а здесь доступно еще множество руководств:

http://gimp-tutorials.net/

Удачи.

0
ответ дан 2 December 2019 в 05:28
поделиться

И GIMP, и Inkscape относительно хорошо обрабатывают экспорт фрагментов. Inkscape определенно лучше справляется с векторной графикой, в то время как gimp определенно основан на растре.

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

0
ответ дан 2 December 2019 в 05:28
поделиться

Я люблю фейерверки для веб-дизайна / прототипирования по следующим причинам

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

Я знаю, что это не дает прямого ответа на ваш вопрос о inkscape, но, надеюсь, это может дать вам еще одну точку зрения.

0
ответ дан 2 December 2019 в 05:28
поделиться

Я должен сказать, что я действительно впечатлен Inkscape. Я сделал свой первый дизайн веб-сайта в Inkscape из Fireworks. На изучение интерфейса у меня ушло некоторое время, но я смог сделать то, что должен был. После некоторого использования это становится действительно легко, теперь я действительно делаю свою работу быстрее. Я могу только порекомендовать его, если вы потратите 2 дня на чтение и изучение http://en.flossmanuals.net/Inkscape/ . Когда вы хорошо знаете Inkscape, вы можете изучить GIMP для редактирования растров. Для любого веб-сайта в стиле Web 2.0 подойдет inkscape. Вы также можете выполнять базовое редактирование растровых изображений с маскированием и т. Д. GIMP для следующего уровня.

1
ответ дан 2 December 2019 в 05:28
поделиться
Другие вопросы по тегам:

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