Ответы пользователя по тегу Веб-разработка
  • Стоит ли использовать малоизвестные технологии при разработке, чтобы "привязать" к себе заказчика?

    bogolt
    @bogolt
    Еще один минус - работая по вашей схеме - заказчики которые не могут отказаться от исполнителя вы в конце начнете скатываться в лень, скуку, необоснованно завышенные потребности при полном нежелании ради них напрягаться. Так как клиент есть, никуда не денется, а значит можно себе позволить что угодно.
    В финале - у клиента заканчиваются деньги или проект, и вы остаетесь со своими амбициями, без знаний актуальных на рынке языков, с опытом работы в никому не нужной среде/языке, и главное уже привыкли что вам все дают за красивые глаза. В результате только себя самого и подставили.
    Ответ написан
  • Зачем в современных проектах все еще используются макросы?

    bogolt
    @bogolt
    Макросы нужны там где нужно во время компиляции программы генерировать код. Функции или даже шаблоны для этого не подходят.
    Например вы хотите логгер, который бы писал в каком файле, и на какой строке произошла ошибка, вы пишите код

    cout << __FILE__ << __LINE__ << "error message";

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

    Итак теперь вы тяжело вздохнув, и закрыв портретик Страуструпа шторкой ( чтобы не видел как вы предаетесь адскому макросостроению ) пишите макрос
    #define LOG(x) std::cout << __FILE__ << __LINE__ << x << std::endl;


    Теперь где угодно можно писать
    LOG("this is error number " << errno);
    и все будет работать как и было запланировано.

    Еще из полезных свойств макросов - улучшать чужой плохой код. Если у вас есть много переменных, или переменных имена у которых почти совпадают с именами функций и вам нужно сделать этот код умнее, вы пользуетесь макросами, склеиваете строки через ## или преобразовываете переменную в строку через #
    Это довольно мощные инструменты ( пусть до лисповских максросов им далеко ) которые реально позволяют улучшить код и/или избежать кучу повторений одного и того же блока кода.
    Ответ написан
  • Возможно ли плодотворно заниматься фрилансом, разрабатывая не для web?

    bogolt
    @bogolt
    Как вариант можно найти удаленную работу. У нее есть почти все преимущества фриланса ( ну кроме разве что пункта - хочу работаю, хочу дурью маюсь ), зато не нужно париться и искать заказы.
    Ответ написан
  • Как прокачать навыки в C++?

    bogolt
    @bogolt
    Из литературы всегда советую Брюса Эккеля - Философия Си++ ( Thinking in C++ ). К сожалению на данный момент в связи с выходом 2011 стандарта книга стремительно устаревает. Хотя все ключевые моменты там очень хорошо разъяснены.
    Про разработку реальных приложений - тут на мой взгляд нужен реальный опыт - создание большого проекта в команде более опытных разработчиков творит чудеса и повышает уровень участников с невероятной скоростью. Разумеется команда должна быть офлайновая, через интернет подобные знания передаются хуже.
    Ответ написан
  • Как написать игровой сервер на Qt?

    bogolt
    @bogolt
    Qt не предназначен для серверов. Это отличная библиотека для десктопных приложений.

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

    Позволю себе полюбопытствовать насчет сетевого протокола. Будет ли это голый TCP или нечто более продвинутое. Если вы еще не определились или уже выбрали TCP могу порекомендовать посмотреть на xmpp. Он просто прекрасен. Правда на си есть не так уж много библиотек реализующих его, впрочем libstrophe должно хватить.
    Ответ написан
  • Загрузка веб-страницы на Visual C++?

    bogolt
    @bogolt
    1. Скачать страницу ( google: socket, http )
    2. Показать ее ( google: QtWebView )
    Ответ написан