Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (6)

Наибольший вклад в теги

Все теги (42)

Лучшие ответы пользователя

Все ответы (30)
  • Какую систему управления версиями посоветуете?

    На Хабре уйма статей про VCS, со сравнением и священными войнами в комментах.
    Я бы сразу вычеркивал из этого списка SVN — централизованная система со всеми присущими ей проблемами (упал сервак — потеряли код; нет копии сорцов у каждого разработчика и т.д.), нелогичное ветвление (считай, его отсутствие) и прочее.

    Выбирать есть смысл из Git и Mercurial. На гите сидит больше народу, есть куча мануалов, howto, обучалок и прочего. Если интересует свой корпоративный сервак, есть отличный фронтенд Gitlab, а если разрабатываете opensource или есть деньги, можно захоститься на популярном Github.
    Для Mercurial есть замечательный Bitbucket (хотя, git они тоже поддерживают).
    Удобства работы с консолью, ровно как и работа с GUI для этих систем я бы поставил на один уровень.
    Идеологически системы по-разному хранят историю. На гите огромные репозитории (от 1Гб, хотя для Вас это вряд ли актуально) работаю плохо из-за хранения полных слепков файлов, на mercurial хранятся мелкие изменения, поэтому репозитории не такие жирные. В целом, для подавляющего большинства проектов на эту разницу можно забить.

    Я использую Git, и не имею с ним никаких проблем. Очень хорошая, продуманная и быстрая VCS.
    Ответ написан
    Комментировать
  • Каков план личностного развития C++ программиста с нуля?

    Если человек мне на собеседовании скажет, что с C++ он перешел на C#/Java, и теперь все его головные боли иссякли, я никогда не найму его на должность выше обычного девелопера. Это в лучшем случае середняк, который никогда не будет писать изящных архитектурных решений, без особой тяги к знаниями и без капельки фанатизма.

    Есть такая шутка:
    есть два типа людей: те, кто уже выучил C++, и те, кто его никогда не выучат.

    Фишка языка ровно там, где начинаются проблемы у новичков — в многообразии. Обычно нет ответа на "что лучше использовать". В каждом конкретном случае хорошо использовать ряд определенных решений, нет некоторого табу.

    Крайне не советую начинать изучение языка со Страуструпа — уснете. По моему опыту, новичкам крайне полезно читать книгу Стивена Прата "Язык программирования C++. Лекции и упражнения". Во-первых, это именно книга по C++, а не древний учебник по C с классами. Во-вторых, там уделено внимание стандарту C++11, фишки которого отлично приходят на замену древнему C++ (о которых еще пишут в учебниках, да).

    STL — обязательна для изучения. Без нее C++ — обычный C с классами.

    Изучению также подлежат такие библиотеки, как boost (сначала, что в ней вообще есть, а потом — как написать определенные случаи), poco, ACE. Крайне рекомендую обратить внимание на Qt — это клад в мире C++.
    Если интересна 3d-графика, можно посмотреть свободный графический движок Ogre3d.

    Потом, хорошим C++-программистам хорошо бы знать структуры данных. Пожалуй, на этот вопрос лучше всего ответит Роберт Седжвик в своих книгах, либо соответствующих курсах на Coursera. Это важно, т.к. C++ обычно используется как язык для решения ресурсоемких задач, а не построения "табличной" бизнес-логики.

    И на финал — один из самых сложных современных языков для изучения.
    Ответ написан
    4 комментария
  • Обработка ошибок?

    Рассмотрим другой пример: процедура поиска чего-нибудь. Мы ищем ищем, и не можем найти. Каким способом сообщить причину неудачного поиска? Вернуть в этой ситуации можно пустой список или null.

    Если мы ничего не нашли, то выводим просто пустой список. И это логично, Вы ведь искали что-то по корректному списку, ничего не нашли, поэтому вернули пустой список.
    Если же при попытки поиска по данным произошло что-то нештатное (БД отвалилась, файл перестал читаться и т.д.), то нужно выкидывать исключение, ловить его и обрабатывать. Пользователю тоже желательно показать. что произошла ошибка.
    Ответ написан
    Комментировать
  • Как вы осуществляете commit в git?

    Если над проектом Вы работаете один, то делайте так, как Вам удобнее (мне кажется, в этом случае удобно вести просто прямую линию разработки).
    Но вот если у Вас над проектом работает несколько человек, то делать rebase в основную ветку в принципе нельзя — Вы принесете кучу проблем своим коллегам. Сделали мердж — всем все видно, у людей нет проблем с впихиванием своей работы.
    И я не вижу пробел в большой количестве merge — да, история ветвистая, да, ее сложнее понимать какому-то стороннему человеку, зато видно все, и проект может без проблем для разработчиков масштабироваться.

    Могу порекомендовать Вам вот эту статью, для осмысления workflow.
    Ответ написан
    4 комментария
  • Посоветуйте материнку с большим количеством PCI-E 16x

    Ну а Яндекс.Маркет зачем придумали?
    Вот MSI Big Bang-XPower II, тоже с 7-ю PCI-E (правда, только 4 работают на полную, но Вам же так и надо), а купить можно за 10-11.

    И лично я считаю, что если деньги упираются в бюджет, можно забить на все 16x — разница между 16x и 8x достаточна мала, чтобы переплачивать за мать в 4 раза.
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (4)