Re[28]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 13:47
Оценка:
Здравствуйте, Erop, Вы писали:

L>>Всегда можно выбрать подход и базис для тестирования, даже если полноценное тестирование на макете провести по каким-то причинам нельзя.

E>Что-то можно, но в целом не получится без "прогонов в железе"

Симуляторы и эмуляторы изобрели даже не в прошлом веке.

E>То, что ты пишешь — всё правильно, если доступно.


Почти все доступно почти всегда. Было бы желание.
Re[26]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 13:49
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ты правда не можешь понять, что надо написать, пока не написал тесты?


Нет, я обоснованно считаю написание кода без тестов напрасной работой.

E>Про пред/пост-условия что-то слышал?


Мы, кажется, на разных языках говорим. Юнит-тесты делают намного больше, нежели ты можешь добиться от самых хитрых ассертов.
Re[32]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 13:53
Оценка: :)
Здравствуйте, Erop, Вы писали:

L>>Скорее, где поленились остальные 90% хоть как-то формализовать

E>Что значит "поленились"? Дорого или вообще не понятно как...

Поленились — значит поленились. "Дорого" — годная отмаза. Только на круг выходит почему-то дороже. А "или вообще непонянтно как" — так нужно нанимать людей, которым понятно, "как".

E>Давай ты расскажешь как ловца писем террористов на 100% формализовать?


Извини, но теперь только за деньги. Мне мое время нынче слишком дорого, чтобы бесплатно заниматься тем, за что людям платят хорошие деньги.
Даже если задача на 100% не формализуется, это не повод не попытаться формализовать ее на достижимые 80(79, 65, 95)%.
Re[31]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 13:53
Оценка:
Здравствуйте, landerhigh, Вы писали:

E>>Часто это просто готовый Фреймворк...


L>Тогда, простите, что тут тестировать? Фреймворк?


Работу фильтра...
Я про то и говорю, что есть задачи, где юнит-тестирование малоактуально...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[31]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 13:55
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Какая из? AI на базе некоего абстрактного фреймворка или kick_ass_washing_machine?


Давай возьмём задачу сделать прототип ловца писем терроритстов на лазаньи на глубоких нейросетях?
Что бы ты там юнит-тестами и вообще тдд разрабатывал?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[34]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 13:55
Оценка: -1
Здравствуйте, Erop, Вы писали:

E>Но мы же не про железо, а про рулящее им ПО?..


ПО никакого отношения к успешности стиральной машины не имеет. Конечно, плохим ПО можно испортить очень хорошую вещь, но в принципе хорошие стиральные машины до сих пор могут не иметь вообще никакого ПО.
Re[33]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 13:57
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Совершенно серьезно. Ты ж хочешь юнит-тест на основе критерия "юзеру нравится". Дай мне юзера, которого можно закоммитить в репозиторий — будет тебе и такой тест


Не, я хочу тест того, что юзеру понравится, и разработку направлять в эту сторону.
А юнит-тест и вообще TDD юзать или чего иного -- вопрос осознанного выбора уже. IMHO тут юнит-тесты малополезны.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[34]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 13:57
Оценка:
Здравствуйте, Erop, Вы писали:

E>Это, скорее всего, must have, но это уже вопрос проектирования. И все эти запчасти, скорее всего есть уже готовые вообще.


Воот. Must Have!
и эти мастхевы есть вполне формализуемые критерии. Без удовлетворения которых тестировать конечный продукт вообще смысла нет.

Из таких мастхевов почти любой программный продукт обычно состоит чуть менее, чем полностью.
Re[29]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 13:59
Оценка:
Здравствуйте, landerhigh, Вы писали:

E>>Что-то можно, но в целом не получится без "прогонов в железе"

L>Симуляторы и эмуляторы изобрели даже не в прошлом веке.
Симуляторы/эмуляторы чего? ТТ-движка и системы рулей?

L>Почти все доступно почти всегда. Было бы желание.

Вопрос цены/точности эмуляции...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[32]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 14:02
Оценка:
Здравствуйте, Erop, Вы писали:

L>>Возможно, только не в ту сторону, о которой ты подумал.. Тем более, что имхо сканирует не фотошоп, а драйвер сканера.

E>Фотошоп управляет драйвером.
E>Так скока типов датчиков? Сканеров тысяч 5 есть, если не больше...

Фотошоп управляет одним унифицированным драйвером. Извини, младенцев обижать врослым людям не пристало.
Re[30]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 14:13
Оценка:
Здравствуйте, Erop, Вы писали:

L>>Симуляторы и эмуляторы изобрели даже не в прошлом веке.

E>Симуляторы/эмуляторы чего? ТТ-движка и системы рулей?

Да. Даже если этот симулятор на 100% наивен и не отражает и 5% реального положения дел, он полностью себя оправладет, когда поможет выяснить, что скорости реакции алгоритма на данные от датчиков не хватает. Или показать, что в некоторых условиях алгоритм выдает слишком грубые команды, что приведет к дестабилизации и разрушению. Или что интервал ожидания фидбека слишком короткий. Дофига всяких забавностей можно выяснить на основе наивных симуляторов. И это всегда дешевле, нежели потом ковыряться ножичком в обугленных останках изделия.

К примеру, промышленный симулятор Боинга не умеет симулировать поведение самолета в случае отказа всех двигателей. Но почему-то пилотов не перестают на нем тренировать.

L>>Почти все доступно почти всегда. Было бы желание.

E>Вопрос цены/точности эмуляции...

Найти ошибку с помощью самого наколенного симулятора всегда дешевле.
Re[34]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 14:15
Оценка:
Здравствуйте, Erop, Вы писали:

E>Не, я хочу тест того, что юзеру понравится, и разработку направлять в эту сторону.


Говрю же, без вопросов. Залей юзера в репозиторий и задача становится тривиальной.

А пока такое невозможно, извини. Сегодня юзеру нравится свиной хрящик, а завтра он вообще другую религию принял.
Re[32]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 14:15
Оценка:
Здравствуйте, Erop, Вы писали:

E>Давай возьмём задачу сделать прототип ловца писем терроритстов на лазаньи на глубоких нейросетях?


Давай. Приводи инвестора.
Re[30]: Долгая компиляция на с++ - смерть для больших проект
От: landerhigh Пират  
Дата: 06.05.16 14:24
Оценка:
Здравствуйте, _hum_, Вы писали:

__>>>кстати, "дебаггинг" не только работа под дебагером, но и просто поиск ошибок в коде.

L>>Если же вести "просто поиск", то зачем тогда ждать компиляции?

__>потому что их надо исправить и проверить, что после исправления все заработало, как надо


И как же это "проверить" осуществляется?
Re[27]: Долгая компиляция на с++ - смерть для больших проект
От: _hum_ Беларусь  
Дата: 06.05.16 14:24
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, _hum_, Вы писали:


__>>тоже, можно примеры, когда он лишний?


E>Ну вычматы, например...


и в каком смысле он там лишний? вот, например, какой-нить метод ньютона у вас при реализации расходится. ну, и? какие там тесты помогут вам выявить ошибку в знаке (описку) ?
Re[27]: Долгая компиляция на с++ - смерть для больших проект
От: _hum_ Беларусь  
Дата: 06.05.16 14:27
Оценка: +1
Здравствуйте, landerhigh, Вы писали:

L>Здравствуйте, Erop, Вы писали:


E>>Про пред/пост-условия что-то слышал?


L>Мы, кажется, на разных языках говорим. Юнит-тесты делают намного больше, нежели ты можешь добиться от самых хитрых ассертов.



landerhigh,а можно в двух словах объяснить, чем все-таки тесты принципиально отличаются от "навороченных ассертов"? (не беря во внимание TDD, ибо это уже совсем из другой оперы)
Re[27]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 14:36
Оценка:
Здравствуйте, landerhigh, Вы писали:

E>>Ты правда не можешь понять, что надо написать, пока не написал тесты?


L>Нет, я обоснованно считаю написание кода без тестов напрасной работой.


1) Понятие "тесты" оч. широкое. Мы всё ещё о юнит-тестах или о любом способе запустить разрабатываемый код?
2) Ты сделал несколько иное утверждение, что понять что и зачем делать, без тестов нельзя...

L>Мы, кажется, на разных языках говорим. Юнит-тесты делают намного больше, нежели ты можешь добиться от самых хитрых ассертов.

Тем не менее, примерно ту же задачу — фиксацию пред/пост условий и контроль стабильности, они таки решают...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[33]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 14:38
Оценка:
Здравствуйте, landerhigh, Вы писали:


E>>Давай ты расскажешь как ловца писем террористов на 100% формализовать?


L>Извини, но теперь только за деньги. Мне мое время нынче слишком дорого, чтобы бесплатно заниматься тем, за что людям платят хорошие деньги.


угу-угу... Я и говорю, что слишком дорого

L>Даже если задача на 100% не формализуется, это не повод не попытаться формализовать ее на достижимые 80(79, 65, 95)%.


Мы всё ещё о ТДД и юнит-тестах?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[35]: Долгая компиляция на с++ - смерть для больших проект
От: Erop Россия  
Дата: 06.05.16 14:39
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>ПО никакого отношения к успешности стиральной машины не имеет. Конечно, плохим ПО можно испортить очень хорошую вещь, но в принципе хорошие стиральные машины до сих пор могут не иметь вообще никакого ПО.


Не могут, так как хорошие алгоритмы движения барабана — один из аспектов "хорошести" машины...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Долгая компиляция на с++ - смерть для больших проектов?
От: _hum_ Беларусь  
Дата: 06.05.16 14:41
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, _hum_, Вы писали:


SaZ>>>Когда работал в Варгейминге (проект wot blitz), да и не только там, у нас в команде была позиция, которая так и называлась — build engineer. Собственно сейчас, средствами CMake, танчики собираются под всё (ios/win/android + все десктопы). У всех стоит IncrediBuild. 20 минут — полная пересборка проекта (без конвертации ресурсов).


__>>и вы считаете это естественным? а что будет через пару лет, когда объем проектов во много раз возрастет?


SaZ>Конечно. Свою карьеру я начинал в Епаме. Там для нашего проекта была целая команда билд инженеров. А ещё devops-ы есть.


то, что есть де-факто, не значит, что это естественно раньше наверное тоже отдельные должности были по набиванию перфокарт, и что?

SaZ>В вашем же случае получается так: вы заранее знаете о том, что сложность проекта будет нелинейно расти в течение нескольких лет, но всё равно не хотите выделить должные ресурсы на проработку архитектуры.


нет, не так. я НЕ ЗНАЛ, что скорость роста времени компиляции от роста проекта такая нелинейная, потому это и вызывало во мне соответствующие вопросы — в первую очередь, как же тогда большие проекты разрабатываются.

SaZ>>>Если у вас в одиночку получился столь большой проект, что вас парит время комипляции — то что-то тут не то. Или плохо накодили или не туда двигаетесь. Где-то тут, несколько лет назад, пробегал этюд товарища Nikov (правда для C#). Как обычным дженериком на 5 аргументов нагенерить 25 метров кода и ждать компиляции более 7 минут. Жаль не могу найти.


__>>ну и? что в таком случае делать?

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

SaZ>В вашем понимании программист — это кодер. Таких, конечно, не должны заботить проблемы компилятора. Такие обычно делают всякие несложные фронтэнды на пхп/асп на аутсорс.

SaZ>В моём понимании программист — это инженер. Это человек, который способен спроектировать и реализовать систему, которая будет работать. А при наличии требований к масштабированию — спроектировать хорошую архитектуру.

в моем понимании тоже. обратите внимание, вы НИГДЕ не указали, что программист должен знать особенности компиляции. всюду участвуют только особенности языка и исполнителя (машины). промежуточное звено, ака компилятор, вынесен вами за скобки.
вот об этом я и говорю, почему разработчик должен зависет и знать особенности выносимого за скобки, чтобы реализовать нормальную работающую систему?
ну это сродни тому, что повар должен уметь разбираться, как работает микроволновка (на каком клистроне, как испускающем волны, в каких местах узлы стоячих волн и проч.), чтобы приготовить вкусное блюдо.

SaZ>Например, в серьёзном геймдеве (да и не только) нечего ловить, если вы не знаете, что такое thiscall / fastcall / stdcall и т.п, если не понимаете, зачем нужен и когда нужен inline. Если не знаете, что такое кэш-мисс или конвеер команд в процессоре. Вроде бы это всё и не нужно, чтобы писать код на С++, но специалист тем и отличается от кодера-любителя, что понимает, как работает система.


это тоже все относится к языку и исполнителю алгоритма, но никак не к компилятору.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.