Данный материал подготовлен в связи ... переходе федеральных органов исполнительной власти ...

advertisement
Данный материал подготовлен в связи с тем, что существует решение о
переходе федеральных органов исполнительной власти и федеральных
бюджетных учреждений на использование СПО в 2011-2015 гг. и многим
начинающим ИТ-компаниям нашего региона потребуется использовать в своей
деятельности свободное программное обеспечение.
Эта часть материала посвещена СПО, предназначенное для компанийразработчиков программного обеспечения
Терминология
Когда мы говорим про доступное ПО, важно понимать разницу между
открытостью и свободным распространением. Поэтому введем терминологию:
Свободно-распространяемое ПО (freeware) - это программы, которые можно
легально получить и пользоваться ими. Обычно они распространяются по
открытым каналам: их можно скачать в Интернете, через пиринговые сети,
через сети распространения контента (магазины приложений и т.д.). Многие
разработчики совмещают эту схему с различными сторонними
необязательными способами монетизации: donation-based (пожертвования),
pay-as-you-want (заплати, сколько хочет) и т.д.
Открытое ПО (open-source) - это ПО, свободные коды которого доступны и
предполагают определенную свободу при работе с этими кодами (степень
свободы определяется лицензией). Некоторые лицензии являются довольно
строгими, например, лицензия GNU (используется в Linux), которая
разрешает использование кода в ПО, также распространяемым по лицензии
GNU. Другие же лицензии являются менее требовательными: наиболее
популярной и простой сейчас является MIT. Хороший сервис, который
помогает быстро выбрать нужную лицензию: http://choosealicense.com
Приводимое далее ПО считаем свободным, если это специально не оговорено.
Операционная система и окружение
Это объемная тема и требует отдельного обсуждения. Однако, здесь
необходимо сделать следующее замечание: ниже специально будут описываться
ПО, которое является кросс-платформенным, а значит оно может запускаться на
свободно распространяемых дистрибутивах.
Когда же речь идет об облачных веб-сервисах, мы помним, что для доступа
к ним необходим лишь браузер, а в данный момент на рынке достаточно решений,
которые являются частично открытыми и свободными.
Среда разработки
1. Eclipse
Веб-сайт: http://www.eclipse.org/
Лицензия: Eclipse Public License
Многоязыковая среда разработки, изначальным языком которой был Java. В
данный момент момент есть расширения для многих популярных языков(C, C++,
COBOL, Fortran, Haskell, JavaScript, Lasso, Perl, PHP, Python, R, Ruby и других).
Особенности:
Поддержка отладки для многих языков
Встроенная система управления версиями
Встроены средства статического анализа кода
Инструменты документации, структуризации проектов, средства рефакторинга,
тестирования
Гибкая система расширений (можно создавать свои собственные среды, в том
числе для DSL сред). Пример: компания Ambric, которая выпускает энергоэффективные встраиваемые ускорители (аналог CUDA, но для
встраеваемых систем) в качестве среды разработки для их DSL-языков
выпускает специальную версию Eclipse.
2.Code::Blocks
Веб-сайт: http://www.codeblocks.org/
Лицензия: GNU GPL
Среда разработки для языков C/C++ с поддержкой библиотеки wxWidgets (аналог
Qt). Возможности почти такие же, как и в Eclipse.
3. Qt Creator
Веб-сайт: http://qt.digia.com/
Лицензия: GNU GPL
Среда разработки для языков C/C++, в которой присутствует очень гибкая
поддержка фреймворка Qt.
Особенности:
Средства визуального программирования (создание форм и т.д.)
Автоматическая интеграция с мобильными устройствами
Средства интернационализации, документации, тестирования
4. Cloud9 IDE
Веб-сайт: http://c9.io/
Тип: бесплатный веб-сервис с наличием платных подписок
Первая облачная среда разработки. Ориентирована в основном на
динамические языки для веб-разработки, но есть возможность работы с
компилируемыми языками (С++, Java, Scala, Haskell).
Особенности:
Работает полностью в браузере. При этом клиенту выделяется виртуальная
машина с терминалом и текстовым редактором.
Есть средства взаимодействия: можно вместе писать код и общаться в чате.
Есть поддержка запуска в production. Т.е. проект можно в любой момент отправить
на исполнение в облачный хостинг.
Для некоторых языков есть поддержка отладки ( JavaScript )
Автоматическая интеграция с сервисами хостинга кода (например, github,
bitbucket)
5. Netbeans IDE https://netbeans.org/
6. SharpDevelop http://www.icsharpcode.net/opensource/sd/#Develop
7. KDevelop http://www.kdevelop.org/
8. IntelliJIDEA IDE Community Edition http://www.jetbrains.com/
9.
Microsoft
Visual
Studio
Express
http://www.microsoft.com/visualstudio/rus/products/visual-studio-express-products
Системы управления версиями
Наиболее распространенными системами хранения кода сейчас являются
git и mercurial. Оба эти средства являются свободными и открытыми. Здесь лучше
выделить именно сервисы для хостинга кода.
1. Github
Веб-сайт: http:/github.com
Тип: бесплатный веб-сервис с наличием платных подписок
Это наиболее популярный облачный сервис для хранения кода, в котором
присутствуют возможности социальной сети. Большая часть open-source проектов
сейчас расположены именно на этом хостинге.
Возможности:
Встроено средство управления рабочим процессом (возможность создавать
задачи, назначать людей на выполнение, делать релизы).
Встроена вики-система для документации
Удобный просмотр файлов проекта прямо в браузере без необходимости
использования git-клиента
Гибкая аналитика
2. Bitbucket
Веб-сайт: http://bitbucket.org
Тип: бесплатный веб-сервис с наличием платных подписок
Конкурент github, разработанный компанией Atlassian. Функционал
полностью повторяет github, с тем лишь исключением, что поддерживается
система управления версиями Mercurial.
3. Gitlab
Веб-сайт: http://gitlab.org
ПО для развертывания системы хостинга кода наподобие github, но для
внутреннего пользования (например, для организации). Платным аналогом
является продукт Fisheye от Atlassian.
4. SVN http://www.collab.net/
5. GIT http://git-scm.com/
6. Mercurial http://mercurial.selenic.com/
Непрерывная интеграция
1. Travis CI
Веб-сайт: https://travis-ci.org/
Тип: бесплатный веб-сервис для open-source продуктов
Облачный сервис непрерывной интеграции, основной игрок на рынке open-source
проектов.
Особенности:
Прохождение тестов для разных платформ, языков, фреймворков.
Консоль с отчетом о прохождении тестов в реальном времени.
Интеграция с сервисами облачного хостинга. Например: если проект проходит все
тесты, он сразу идет в production.
Аналитика
2. Jenkins
Веб-сайт: http://jenkins-ci.org/
Лицензия: MIT
Сервер непрерывной интеграции, изначально специализировавшийся на Java
проектах.
Особенности:
Поддержка огромного количества языков и систем сборки.
Возможность локального развертывания (внутри организации для частных
проектов).
Относительно сложен в настройке
Экспериментальный раздел
В текущем разделе помещены сервисы, которые сложно отнести к
остальным категориям, которые представляют собой совершенно новый взгляд на
разработку ПО.
1. Системы автоматического анализа качества кода и проектов
Сервис https://codeclimate.com/ - это сервис контроля качества (можно
рассматривать как один из этапов непрерывной интеграции) для языков Ruby и
JavaScript. К сожалению он платный, но он позволяет:
Оценивать качество кода на основе стандартов кодирования
Оценивать, как изменялось качество в процессе работы над проектом (пример:
работник Боб вчера сделал коммит, который ухудшил качество кода на 0.1%
-> Боба лишить премии).
2. Сервисы оценки покрытия кода тестами
В то время, как средства непрерывной интеграции определяют лишь сам факт
прохождения/непрохождения кодом тестов, анализ того, насколько хорошо код
покрыти ими, сейчас практически никто не делает.
Сервис https://coveralls.io/ предоставляет возможность оценки покрытия для
проектов на языках Ruby и JavaScript. Опять же можно рассматривать эту ступень
как часть непрерывной интеграции.
Системы bugtracking:

Bugzilla http://www.bugzilla.org/

Atlassian Jira Starter Kit https://www.atlassian.com/

Mantis http://www.mantisbt.org/
Средства для совместной работы
 Сервисы GOOGLE http://www.gogle.com

www.realtimeboard.com
Системы поддержания коммуникаций
Skype http://www.skype.com/ru/
бесплатное проприетарное программное
обеспечение с закрытым кодом, обеспечивающее текстовую, голосовую связь
и видеосвязь через Интернет между компьютерами (IP-телефония), опционально
используя технологиипиринговых сетей, а также платные услуги для звонков
на мобильные и стационарные телефоны.
WebRTC — http://www.webrtc.org/ проект с открытым исходным
предназначенный для организации передачи потоковых данных
кодом,
между
браузерами или другими поддерживающими его приложениями по технологии
точка-точка.
Система подготовки презентаций
http://prezi.com/
Офисный пакет:
- LibreOffice ru.libreoffice.org/
- OpenOffice www.openoffice.org/ru/
Свободное ПО для работы с графикой

Gimp http://www.gimp.org/ (редактор для работы с растровой графикой)

InkScape http://inkscape.org/?lang=ru (редактор для работы с векторной
графикой)

FreeCad http://www.freecadweb.org/ (система 3D моделирвоания)

Blender http://www.blender.org/ (работа с 3D графикой и анимацией)
Web-серверы

Apache http://httpd.apache.org/

LiteWebServer http://www.gefionsoftware.com/LiteWebServer

MyServer http://www.myserverproject.net/
CMS-системы

Drupal http://drupal.org/

Joomla! http://joomla.ru/

WordPress http://ru.wordpress.org/
Download