Арсенал программиста. 7 инструментов для эффективной работы

Работа программиста очень сложна. Поэтому любой инструмент, который ее облегчает, следует только приветствовать. Теоретически можно кодить, имея под рукой только блокнот и компилятор, но на практике программист пользуется специальными инструментами для ускорения работы.

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

1. Интегрированная среда программирования (IDE)

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

  • Редактор с подсветкой кода
  • Компилятор
  • Отладчик
  • Управление проектами

Существуют универсальные IDE, которые поддерживают много языков программирования:

  • CodeBlocks
  • NetBeans,
  • Eclipse,
  • Qt Creator,
  • Geany.

Существуют специализированные IDE, которые нацелены на один язык программирования:

  • Visual Basic,
  • Delphi,
  • Dev-C++.

К сожалению, практика работы программиста такова, что знания одного языка программирования и одной среды программирования явно недостаточно. Постоянно приходится использовать разные языки или среды в зависимости от задачи. Поэтому рекомендую пробовать и изучать разные IDE. Вы никогда не знаете, где это может пригодиться.

Есть много сравнительных таблиц IDE. Например, здесь. Ниже фрагмент сравнительной таблицы IDE для C/C++.

В качестве основного IDE лучше выбрать ту среду разработки, которая вам наиболее комфортна и удобна. И ее уже изучить досконально. Это существенно повысит вашу производительность.

2. Профилировщик кода (профайлер, профилер)

Профилировщик кода, или как часто на жаргоне его называют профилер (от слова profiler) — это инструмент, который собирает информацию о работе программы. Как правило, профилер требуется в тех случаях, когда ваша программа работает не так быстро, как хотелось бы.

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

Существует много профилеров, как универсальных, так и специализированных. Большой список можно найти здесь (en).

Но самым популярным профилером является GNU Gprof. Он есть в сборке Си-экспресс. Чтобы его использовать, нужно сделать следующие действия:

1. Включить профилирование в параметрах сборки проекта. Щелкнуть правой кнопкой на проекте и выбрать соответствующий пункт меню.

2. Перекомпилировать и запустить программу.

3. Запустить профилер. Меню — Модули — Code profiler

3. Система контроля версий

Часто бывает, что программист внес правки в исходный код и программа перестала работать. Для быстрого возврата к работающей версии используются системы контроля версий (SVN). Они ведут учет изменений в файлах и позволяют откатить изменения до нужной точки.

Наиболее популярными являются:

  • Subversion
  • Git
  • Mercurial

Раньше SVN работали на компьютере разработчика, но в последнее время используются веб-серверы для SVN. Это дает много преимуществ, можно работать на разных компьютерах и иметь копию программы в облаке.

Существенных отличий между этими системами нет. Базовый функционал одинаковый, разница только в способах реализации. Поэтому можете выбрать ту систему, которая вам больше понравится.

Самыми популярными серверами SVN являются:

  • GitHub (сервис платный, но бесплатен для проектов с открытым исходным кодом).
  • Bitbucket (бесплатный сервис)

4. Визуальный редактор интерфейса

Хотя интерфейс программы можно полностью написать в коде, но это подходит только для совсем простых программ. Программирование интерфейса вручную — это чрезвычайно долгий и трудоемкий процесс.

Есть еще одна причина, чтобы это процесс сильно ускорить — общение с заказчиком. Самый первый разговор с заказчиком станет намного продуктивнее, если вы сможете быстро набросать макет программы. Заказчики ничего не понимают в программировании, но интерфейс понимают все. Чем более быстро вы покажет макет будущей программы, тем быстрее получите заказ.

Существуют множество редакторов интерфейса, которые помогают набросать внешний вид программы простым перетаскиванием виджетов. Другое их название GUI-конструкторы. Они могут как отдельными программами, например, Glade.  А могут быть плагинами к IDE, как, например wxSmith для CodeBlocks.

Как правило, задача визуального редактора — задать расположение элементов интерфейса, а код обработки сообщений программист пишет уже в программе.

5. Редактор баз данных

Для прикладных программ работа с базами данных (БД) является обязательным условием. Если вы пишете программу для автоматизации бизнеса, то вам потребуются работа с базами:

  • Сотрудников
  • Товаров
  • Покупателей
  • Счетов и т.д.

Базы данных — это основа автоматизации любой компании. Поэтому программисту в той или иной форме нужно будет взаимодействовать с базами данных. В этом ему помогают редакторы БД, которые позволяют управлять информацией в базах данных.

Самым мощной и удобной системой управления базами данных (СУБД) является Microsoft Access, который входит в состав Microsoft Office. Возможности Access очень велики. Эта СУБД позволяет разработать автоматизацию небольшую компании. Но полученный продукт не очень удобно тиражировать из-за особенностей лицензирования Microsoft Office.

Самыми распространенными редакторами БД являются:

  • PhpMyAdmin
  • HeidiSQL
  • DBTools Manager

6. Инструмент тестирования ПО

Как только программист написал программу, то нужно убедиться в том, что она работает. Для этого существует отдельный процесс, который называется тестирование ПО.

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

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

Пока программы были не очень сложными, использовалось так называемое «исчерпывающее тестирование», то есть проверялась работа программы на всех возможных ветках в ыполнения. Но очень скоро количество комбинаций веток стало превышать возможности тестировщиков, и сейчас проводится выборочное тестирование. Выбирается некоторый основной вариант использования программы и для него пишутся тесты.

Трудно найти универсальные инструменты автоматического тестирования. Как правило, программист ищет инструмент тестирования под конкретную задачу. Если же такого инструмента не находится, то приходится его писать самому.

7. Фреймворк

Многие программы имеют общие модули. Отсюда приходит желание не писать каждый раз программу с нуля, а использовать какой-нибудь каркас. Так появилось понятие фреймворка, что в переводе означает «каркас».

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

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

Так как принципы разработки едины, то на фреймворке можно достаточно быстро построить вполне рабочую программу. Но есть и серьезный недостаток в использовании фреймворка.

Если функционал программы сильно отличается от тех принципов, которые использует фреймворк, то программисту приходится постоянно изобретать разные приемы, чтобы согласовать требования заказчика и ограничения фреймворка. Иногда бывает, что использование фреймворка не только ускоряет, а, наоборот, замедляет программирование.

 

 

Комментарии 5

  • Я бы добавил еще сюда дебаггер.

  • «Самым мощной и удобной системой управления базами данных (СУБД) является Microsoft Access, который входит в состав Microsoft Office»… А самый подробный и независимый обзор инструментария — в этой статье.

    • Вы знаете СУБД получше? С учетом того, что большие клиент-серверные СУБД, такие как MS SQL Server, Oracle Database, Firebird, Interbase, IBM DB2, Informix и т.д. показывают свои преимущества начиная от 500 пользователей. Для автоматизации малых компаний они не подходят.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.