MySQL: проблемы роста

457 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
457
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MySQL: проблемы роста

  1. 1. Процесс разработки ПО в MySQL: проблемы роста Konstantin Osipov Staff Engineer Sun/MySQL [email_address] These slides released under the Creative Commons Attribution-Noncommercial-Share Alike License
  2. 2. Меню <ul><li>Два слова о нетикете
  3. 3. О чём вообще речь?
  4. 4. Практика распределённой работы
  5. 5. Принципы роста </li></ul>
  6. 6. Два слова о нетикете <ul><li>эх, неблагодарное ремесло
  7. 7. читайте книги, не почту
  8. 8. I does not go before Y
  9. 9. email guidelines </li></ul>() ascii ribbon campaign / against html email
  10. 10. Что есть малое: MySQL 2000-2001 гг. <ul><li>4 основных разработчика
  11. 11. 90% кода написано одним человеком
  12. 12. система контроля версий CVS
  13. 13. примитивная система сборки
  14. 14. минимальное тестовое покрытие </li></ul>
  15. 15. Попробуем обобщить <ul>Если один человек способен: <li>полностью контролировать архитектуру системы
  16. 16. принимать основные решения
  17. 17. лично при необходимости выполнить любую работу
  18. 18. – мы имеем дело с небольшим проектом </li></ul>
  19. 19. Статистика индустриализации <ul><li>  sql/ </li></ul>3.23 : 89K 4.1 : 187K 5.0 : 271K 5.1 : 323K (LOC) <ul><li>tests/: </li></ul>3.23: 11K 4.1: 62K 5.0: 124K 5.1: 177K (LOC) <ul><li>число разработчиков: </li></ul>2003: 12 , 2004: 15 , 2006: 18 , 2007: 25 <ul><li>commits p/day (примерно): </li></ul>2003: 5-7 2004: 15 , 2005: 25 2006: 50 , 2007: 80
  20. 20. Основы MySQL сегодня <ul><li>5 команд и 4 основных подсистемы
  21. 21. все внешние проекты (клиенты, GUI, документация) вне сервера
  22. 22. Architecture Board и New Feature Development Guidelines
  23. 23. Bazaar – распределённая система контроля версий
  24. 24. мощная обвязка для сборки и тестирования (pushbuild, mtr)
  25. 25. autotools для UNIX и cmake для Windows </li></ul>
  26. 26. От чего пришлось отказаться <ul><li>централизованная система модерации
  27. 27. мега-merges
  28. 28. 3 версии в разработке
  29. 29. принцип “одно логическое изменение – один патч” </li></ul>
  30. 30. Ошибки юности <ul><li>нет “я смогу это сделать за три дня” 
  31. 31. нет NRE и CUSTOM BUILDS
  32. 32. нет my_lock, my_thread_create, my_foo
  33. 33. нет #ifdef CYBOZU
  34. 34. нет ручному контролю зависимостей и --enable-maintainer-mode
  35. 35. нет единственному global header file
  36. 36. нет привязке bug cycle к release cycle
  37. 37. нет сломанным деревьям </li></ul>
  38. 38. Что такое Pushbuild <ul><li>10 платформ и 7 конфигураций проекта
  39. 39. немедленная обратная связь </li></ul>
  40. 40. Pushnext <ul><li>ключ к увеличению числа людей активно работающих над одной областью кода
  41. 41. clean house эффект
  42. 42. возможен только с BitKeeper или аналогом </li></ul>
  43. 43. Bazaar: distributed RCS <ul><li>проблема главного репозитория
  44. 44. простое создание веток (branching)‏
  45. 45. полностью автономная работа
  46. 46. скорость основных операций </li></ul>
  47. 47. Анализ: принципы роста <ul><li>решение проблем
  48. 48. фокус на возможностях
  49. 49. развитие культуры </li></ul>
  50. 50. Подход к проблемам <ul><li>предпочитайте процессы и инструменты личной ответственности
  51. 51. ответственность vs. безответственность
  52. 52. пример: merges, broken trees </li></ul>
  53. 53. Поиск возможностей <ul><li>принцип избыточности возможностей
  54. 54. пример: Maira vs. Falcon </li></ul>
  55. 55. Культура принятия решений <ul><li>принцип ответственности
  56. 56. тщательно готовьтесь – agile не значит lax
  57. 57. всегда предлагайте альтернативные решения
  58. 58. знайте когда писать, а когда обсуждать устно
  59. 59. учитывайте мнение всех, если это возможно
  60. 60. что делать, если это невозможно
  61. 61. нет крику и переходу на личности
  62. 62. управляемые конфликты
  63. 63. нет email trolls </li></ul>
  64. 64. Планы <ul><li>уход от BitKeeper lock-in
  65. 65. планирование и прозрачность разработки
  66. 66. open source software И open source development </li></ul>
  67. 67. Медиаграфия <ul><li>Geoffrey Moore “Crossing the chasm”
  68. 68. Linus Torvalds talk on GIT – hosted on Google Video
  69. 69. Subversion developers talk on poisonous people – hosted on Google Video
  70. 70. Eugene Potemkin's video on MySQL growth </li></ul>

×