Project

Profile

Help

Task #7480

Decompose https://dev.osll.ru/issues/7425 for separated and visible subtasks

Added by Mark Zaslavskiy over 4 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
High
Category:
performance
Sprint/Milestone:
Start date:
06.09.2016
Due date:
% Done:

100%

Estimated time:
1:30 h
Target branch:
Test scenario:

https://dev.osll.ru/issues/7425
First task - create .rb file:
https://dev.osll.ru/issues/7489


Description

- Divide #7425 for set of tasks. Each task should
-- be no more than 1 hour of estimation
-- contain detailed description
-- be as much independent as possible from other tasks (each task should be implementable without waiting for other ones)
-- have visible and verifiable result
- add each task as related to #7425


Related issues

Related to [mdbci] Maria DB Continuous integration tool - Task #7421: Plan proof of concept implementation according to maxscale proposalClosed18.08.2016

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by Mark Zaslavskiy over 4 years ago

  • Related to Task #7421: Plan proof of concept implementation according to maxscale proposal added

#2 Updated by Mark Zaslavskiy over 4 years ago

  • Copied to Task #7481: Decompose https://dev.osll.ru/issues/7426 for separated and visible subtasks added

#3 Updated by Mark Zaslavskiy over 4 years ago

  • Copied to deleted (Task #7481: Decompose https://dev.osll.ru/issues/7426 for separated and visible subtasks)

#4 Updated by Ilfat Kinyaev over 4 years ago

  • Status changed from New to Review
  • Assignee changed from Ilfat Kinyaev to Mark Zaslavskiy
  • % Done changed from 0 to 100
  • Test scenario updated (diff)

#5 Updated by Mark Zaslavskiy over 4 years ago

  • Status changed from Review to New
  • Assignee changed from Mark Zaslavskiy to Ilfat Kinyaev

При декомпозиции очень важно подробно зафиксировать два этапа:
1. подготовка среды для параллельной работы над подзадачами (описание общего стандарта кодирования/названия функций/модулей - словом все, что позволит исполнителям не задумываться над структурой)
2. окончательная сборка результатов в один работоспособный продукт (тестирование на специальных данных/ финальная проверка - специальная задача, после закрытия которой можно будет сказать, что общая задача готова)

Насколько я понял, первый этап представлен в виде https://dev.osll.ru/issues/7489. В данной задаче присутствует неявная проблема - нет никаких указаний по подробному устройству ./scripts/benchmark_parser/parse_log.rb (какие будут функции, как они будут друг друга вызывать). Если делать ее в текущем виде, то выполнение других подзадач приведет
- к большому количеству конфликтов в git (за счет одновременных правок одного и того же исходника практически с нуля).
- к возможным программным ошибкам (неправильные/несогласованные названия функций)
Поэтому, предлагаю такой фикс: добавь в ее описание требование создать по итогу не просто файл, а работоспособную заглушку с заглушками для каждой функции из подзадач.

Касательно второго этапа ( окончательная сборка результатов в один работоспособный продукт) я рекомендую сделать отдельную задачу по написанию юниттеста для этого скрипта. В задаче необходимо предоставить (прикрепить к описанию) два файла - тестовый входной файл и проверочный выходной (сделанный руками).

Кроме того, есть еще несколько моментов:
- нет подзадачи для шага "parse results using yaml parser". Нужно ее создать и обновить все прочие подзадачи - в них на вход будет подаваться не файл с результатами предыдущих изменений, а hash из ruby.
- возможно стоит в порядке выполнения в самом скрипте поднять https://dev.osll.ru/issues/7487 - эта процедура сильно упростит работу всех прочих функций по удалению скобок/единиц измерения и тд
- в ряде подзадач используется формулировка "Need made ruby script ./scripts/benchmark_parser/parse_log.rb, which do: " хотя, если я правильно все понял, на момент их исполнения файл уже будет существовать
- в задачах https://dev.osll.ru/issues/7484 и https://dev.osll.ru/issues/7485 полезно на более мелких примерах показать какую именно правку нужно сделать (было: ..., стало ...)

#6 Updated by Ilfat Kinyaev over 4 years ago

  • Status changed from New to Active / In progress

#7 Updated by Ilfat Kinyaev over 4 years ago

  • Estimated time set to 1:30 h

#8 Updated by Ilfat Kinyaev over 4 years ago

  • Status changed from Active / In progress to Review
  • Assignee changed from Ilfat Kinyaev to Mark Zaslavskiy

#9 Updated by Mark Zaslavskiy over 4 years ago

  • Status changed from Review to Closed

Also available in: Atom PDF