Кто-нибудь, пожалуйста, пометите соответствующие теги
Здравствуйте,
Это моя история, но я думаю, что это справедливо для всех программистов.
Мы начинаем программирование с простой программы Hello World. Мы практикуем и добавляем функции / классы в программу. Но они все еще поддерживают стиль Hello World. функция, вызывающая некоторые другие функции стандартной библиотеки.
Но когда речь идет о реальных проектах (я просто знаком с OpenSource). Много больше других вещей входят в картину. Затем начинаются трудности этого начинающего программиста.
Ход проекта:
- Программа не работает должным образом. Используйте Отладчик
- Использование сторонних библиотек . У нас сегодня
библиотека на всех популярных языках для
почти все, что нам нужно.
- Несколько человек работают над одним проектом. Использование Контроль версий
Системы .
- Проект становится большим. Автоматизация сборки
- Многие люди начали использовать ваше приложение. Вам нужно перенести его на
разные платформы (работающие
системы / архитектура). Нужно для
Кросс-компиляция
- Я не знаю почему, но нам нужны Структура модульного тестирования и / или модульные тесты
- Что еще ???
Проблема в этом заключается в отсутствии знаний этого начинающего программиста о существовании этих вещей.
Я имею в виду, когда начал изучать некоторые реальные проекты (Opensource). Я не знал, что это? а зачем нам это делать?
$./configure
$make
$make install
Недавно мне стало известно о ключевом слове "Build Automation". Мне нужна была какая-то библиотека, которая была бы доступна для Linux, но она мне была нужна в Windows. Я не знал, что это называется «кросс-компиляция» и такие инструменты, как MinGW / MSYS, существуют для этой цели. Я должен был выучить эти вещи трудным путем. Хотелось бы, чтобы кто-нибудь рассказал мне о существовании таких вещей. Это сэкономило бы мне много времени.
Сегодня я столкнулся с проблемой производительности и чувствовал необходимость чего-то. Я думаю, что я ищу, это Profiler. Благодаря моему участию в проектах с открытым исходным кодом. Несмотря на то, что я не осознавал / не чувствовал необходимости в этом, я знаю термин Unit Testing.
Хотя этот (сложный) способ изучения вещей имеет некоторые большие преимущества, как сейчас, я могу найти решение или неизвестную вещь очень быстро, и в отличие от других моих друзей, я не поражен в любой момент. Но я ненавижу потерю времени. Вы не верите, сколько времени я потратил на выяснение Makefiles
& Gnu Build System
Итак, что я ищу в этом сообщении?
- Пожалуйста, заполните
Project Flow
. Я хочу посмотреть, в чем дело.
- Для каждой задачи в списке
Project Flow
. Я хочу видеть следующую информацию.
- Самые популярные решения / инструменты доступны.
- Википедия список всех альтернатив.
- [опционально]. Предложите несколько хороших книг / учебников / руководств для изучения этого Или ссылку на соответствующие сообщения / теги.
- Я знаю, что что-то зависит от языка и ОС. Я бы сказал, что у нас есть только несколько основных платформ Linux / Unix, Windows, Java, .NET и несколько основных языков C, C ++, Java, .NET, Python. Обращайтесь к этим языкам. Его более чем достаточно.
Пример:
Использование библиотек :
Примечание:
Пожалуйста, обратите внимание, что я не прошу предлагать информацию о том, как изучать каждую из этих вещей. Я спрашиваю о том, что еще такого рода вещи и альтернативы для каждого из них.