вторник, августа 23, 2011

Книжка про архитектуру open source приложений

Книжка про архитектуру 25 популярных open source приложений (на английском):
http://www.aosabook.org/en/index.html

Очень полезное чтение для программистов - это серия коротких описаний внутреннего устройства больших опен-сорсных приложений.

Абзац из введения: "архитектура зданий и архитектура ПО имеют много общего, но есть одно важнейшее отличие. Архитекторы во время своей учебы и карьеры изучают тысячи зданий, большинство разработчиков имеют возможность хорошо изучить только несколько больших программ. Чаще всего это те программы, которые пишут они сами. У них нет возможности изучать величайшие программы в истории или читать критику архитектуры этих программ, написанную опытными практиками. Как результат, они повторяют ошибки друг друга, а не строят на основе успешного опыта других".

Книжка пытается помочь решить эту проблему за счет приложений с открытым исходным кодом.

Содержание:
Introduction
1. Asterisk - программа для создания телефонной станции.
2. Audacity - запись/редактирование звука.
3. The Bourne-Again Shell - bash Unix shell
4. Berkeley DB - высокопроизводительная нереляционная БД
5. CMake - кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода.
6. Eclipse - популярный IDE (конкурент MS Visual Studio)
7. Graphite - система для построения графиков
8. The Hadoop Distributed File System - распределенная, масштабируемая и компактная файловая система, написанная на Java
9. Continuous Integration - система для построения и тестирования программ.
10. Jitsi - приложение, позволяющее делать видео/аудио звонки, расшаривать свой десктоп, обмениваться файлами и сообщениями
11. LLVM - цитата с википедии: "универсальная система анализа, трансформации и оптимизации программ, реализующая виртуальную машину с RISC-подобными инструкциями. Может использоваться как оптимизирующий компилятор этого байткода в машинный код для различных архитектур либо для его интерпретации и JIT-компиляции (для некоторых платформ). LLVM позволяет компилировать программы написанные на языках Си, C++, ObjC, Fortran, Ada, Haskell, Java, Python, Ruby, JavaScript, GLSL или любом другом, для которого реализован front-end."
12. Mercurial - популярная система контроля версий
13. The NoSQL Ecosystem - ряд подходов к интерфейсам БД без использования SQL.
14. Python Packaging - система питоновских пакетов.
15. Riak and Erlang/OTP - распределенная отказоустойчивая БД для больших масштабируемых систем на Erlang/OTP
16. Selenium WebDriver - фреймворк для тестирования веб приложений
17. Sendmail - первый и все еще существующий Mail Transfer Agent
18. SnowFlock - монитор виртуальных машин для облачных вычислений
19. SocialCalc - электронные таблицы в интернете
20. Telepathy - фреймворк для создания программного обеспечения мгновенного обмена сообщениями, IP-телефонии или видеоконференций.
21. Thousand Parsec - фреймворк для создания космических стратегий.
22. Violet - простой UML редактор
23. VisTrails - система для визуализации научных данных
24. VTK - Visualization Toolkit - система для обработки и визуализации данных
25. Battle For Wesnoth - пошаговая стратегическая игра

Комментариев нет: