Какие технологии программисты на C++ должны знать? [закрытый]

Хорошо, я нашел решение.

Получил подсказки здесь .

Итак, дело в том, чтобы добавить инъекцию rootScope. Это сработало после этого! :)

beforeEach(inject(function($injector) {
     service = $injector.get(
         'service');
     $httpBackend = $injector.get('$httpBackend');
     $rootScope = $injector.get('$rootScope');
 }));

 it('should use the rejection handler if varB is in invalid format',
     function() {
         var successHandler = jasmine.createSpy('success');
         var failHandler = jasmine.createSpy('fail');
         service.func('abc').then(successHandler, failHandler);
         $rootScope.$digest();
         expect(successHandler).not.toHaveBeenCalled();
         expect(failHandler).toHaveBeenCalledWith('varB has to be a number');
     }
 );

32
задан Firas Assaad 30 September 2008 в 09:47
поделиться

10 ответов

Что касается каждого языка, я полагаю, что существует три взаимосвязанных уровня знаний:

  1. Осваивают Ваш язык. Каждый программист должен (сделать то, что это берет к), осваивают синтаксис. Хорошие ссылки для достижения этого:
  2. Знают Ваши библиотеки экстенсивно.
    • STL - определенно необходимость, поскольку он был включен в Библиотека Стандарта C++ , так знание, что это очень близко к точке 1: необходимо освоить его.
    • Знание повышение может быть очень интересным как многоплатформенная и универсальная библиотека.
    • Знают библиотеки, с которыми Вы, как предполагается, работаете, является ли это Win32 API, OCCI, XPCOM или ООН (всего несколько примеров здесь). Никакая потребность знать библиотеку базы данных, если Вы разрабатываете чисто графические компоненты...
  3. Разрабатывают Ваше знание шаблонов. Не может избежать Шаблоны разработки: Элементы Допускающего повторное использование Объектно-ориентированного программного обеспечения здесь...

<час> Так, мой ответ на Ваш обновленный вопрос был бы: знайте свой язык, знайте свою платформу, знайте свой домен. Я думаю, что существует достаточно работы отдельно здесь, особенно в C++. Это - работа evergoing, которая никогда не должна пропускаться.
33
ответ дан 27 November 2019 в 20:22
поделиться

Стандартная библиотека шаблонов

http://en.wikipedia.org/wiki/Standard_Template_Library

5
ответ дан 27 November 2019 в 20:22
поделиться

технологии необходимо знать как программист на C++ (и поэтому более технически хорошо осведомленный, чем меньшие программисты ;)):

проблемы производительности - что заставляет вещи не торопиться, как найти и устранить такие проблемы. Я также подразумеваю, что материал как контекстное переключение, строки кэша, оптимизировал поиски, использование памяти и ограничения и подобный материал, о котором не заботится Ваш средний разработчик VB/C#.

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

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

Иначе, для определенных инструментов - это зависит от того, для чего Вы нацелены, Windows dev будет отличаться от Linux, будет отличаться от встроенного.

6
ответ дан 27 November 2019 в 20:22
поделиться

Разработчик C++ имеет к станд. grok и повышение библиотеки.

Список других технологий в основном зависит от типа проекта. Наверняка у Вас будет некоторое взаимодействие с Так, таким образом, необходимо будет знать API среды.

Что касается доступа к данным и других материалов там тонны для различных решений. C++ намного более богат, чем некоторые управляли langs в этом смысле. 99% старых популярных систем имеют интерфейс C/C++.

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

  • Хороший браузер кода (SourceInsight или Понимают Для C++, например)
  • инструменты Статического анализа (Ссылка, KlockWork Inforce, и т.д.)
  • MySQL\SQLite (я встретился с ними DB в огромном количестве проектов C++)
  • технологии UI (OpenGL\GLUT, DirectX, GDI, QT, и т.д.)
16
ответ дан 27 November 2019 в 20:22
поделиться

Это будет в основном зависеть от используемой платформы и других ограничений. Как правило польза (C++) программист (или должен быть) способный изучить определенный для платформы API в очень короткое время. Для C++ намного более важно понять различные наборы инструментальных средств (например, программист Windows должен также знать набор инструментальных средств GCC), и различия в компиляторах. Программист должен также понять ограничения и поведение платформы-dependend языка.

Что касается библиотек, программисты на C++ абсолютно должны знать STL и Повышение. Никакое обсуждение.

5
ответ дан 27 November 2019 в 20:22
поделиться

при использовании gcc, необходимо определенно знать gdb. На самом деле необходимо быть опытными с локальным отладчиком для того, какой бы ни компилятор Вы используете. Кроме этого существует такой широкий спектр библиотек, использовал ту способность быстро взять API, более полезно, чем кто-либо определенный. Я предложил бы изучить doxygen все же.

1
ответ дан 27 November 2019 в 20:22
поделиться

Ни в каком определенном порядке

  • COM/ATL
  • DirectX
  • MFC & ПОВЫШЕНИЕ Win32
  • STL
  • GDI
1
ответ дан 27 November 2019 в 20:22
поделиться

Помимо материала все перечислили, имейте в виду, что у программиста на C++ есть пространство на рынке встроенных систем (намного больше, чем большинство других высокоуровневых языков).So знакомство со встроенными системами, и разработка может открыть много дверей и вакансий, где Вы не будете конкурировать так в большой степени с разработкой Java, например. Так обучение кодировать компактный код (компактный, после того, как скомпилировано) и низкие методы использования памяти является хорошей ставкой.

2
ответ дан 27 November 2019 в 20:22
поделиться

При использовании Linux затем , Valgrind является очень полезным инструментом для проверки, как программа имеет дело с доступом к памяти.

1
ответ дан 27 November 2019 в 20:22
поделиться

Популярный способ использовать C++ в мобильном пространстве включил бы изучение Symbian разработка ОС.

http://developer.symbian.com

0
ответ дан 27 November 2019 в 20:22
поделиться
Другие вопросы по тегам:

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