Информация об изменениях

Сообщение Re[10]: Data scientist job от 28.04.2018 1:47

Изменено 28.04.2018 4:04 De-Bill

Re[10]: Data scientist job
A>На c# за минуту пишется специализированный экстеншн (можно собрать свою библиотеку и переиспользовать в любом проекте) и код сокращается до
A>
  cut
A>
A> (trainSampleCount / 3).ForEach(i =>
A>            {
A>                img.DrawEx(trainData1, colors[0], i).
A>                    DrawEx(trainData1, colors[1], i).
A>                    DrawEx(trainData1, colors[2], i);
A>            });
A>



Только вот у того, кто будет читать этот код возникнет много вопросов. Что такое DrawEx? Зачем DrawEx принимает параметр i? Что должно содержаться в trainData1 (какой размерности массив/какой порядок следования координат)? Круг какого радиуса нарисует DrawEx? Что будет, если i выйдет за границы размера trainData1 (exception или ничего)?

С другой стороны на Python весь код будет выглядеть примерно так без никаких экстеншенов вообще и ответы на все вопросы выше ясны сразу же:
for trainData, color in zip([trainData1, trainData2, trainData3], colors[:3]):
    for x, y in trainData[:trainSampleCount // 3]:
        cv2.circle(img, (x, y), 2, color)
Re[10]: Data scientist job
A>На c# за минуту пишется специализированный экстеншн (можно собрать свою библиотеку и переиспользовать в любом проекте) и код сокращается до
A>
  cut
A>
A> (trainSampleCount / 3).ForEach(i =>
A>            {
A>                img.DrawEx(trainData1, colors[0], i).
A>                    DrawEx(trainData1, colors[1], i).
A>                    DrawEx(trainData1, colors[2], i);
A>            });
A>



Только вот у того, кто будет читать этот код, возникнет много вопросов. Что такое DrawEx? Зачем DrawEx принимает параметр i? Что должно содержаться в trainData1 (какой размерности массив/какой порядок следования координат)? Круг какого радиуса нарисует DrawEx? Что будет, если i выйдет за границы размера trainData1 (exception или ничего)?

С другой стороны на Python весь код будет выглядеть примерно так без никаких экстеншенов вообще и ответы на все вопросы выше ясны сразу же:
for trainData, color in zip([trainData1, trainData2, trainData3], colors[:3]):
    for x, y in trainData[:trainSampleCount // 3]:
        cv2.circle(img, (x, y), 2, color)