Обычно считают, что TDD замедляет те, кто делает это неэффективно:
— пишет юнит тесты на тривиальные функции
— перегибает: например, тест, который проверяет, что функция A вызывает функции B, C, D, а C вызывает E, когда особой необходимости именно в такой реализации и разбивки на функции нет.
— не пытается сделать тест инвариантым к изменениям
— сначала пишет код (конечно же тестирует вручную), а потом вспоминает про тест.
А не видят, где TDD больше всего экономит те, кто никогда не разрабатывал с autotest :) TDD больше всего экономит не там, в будущем, а прямо сейчас, во время программирования, когда не надо после каждого сейва нажимать Alt-tab и вручную тестировать изменения, а достаточно скосить глаза на соседнее окно, где только что пробежали новые тесты.
Когда выходит первая версия, и появляются первые пользователи, как думаете, первая прибыль сможет перекрыть первый поток фичреквестов и багрепортов, чтобы ещё остались деньги на команду «второй очереди»? А если учесть, что к моменту первого релиза все первопроходцы выжаты до суха, так как вложились на 100% в расчёте на будущий рай?
Нет. Тогда откуда деньги на команду «второй очереди»?
Из опыта: есть дырявый проект с костылями, который делался без тестов практик а лишь бы побыстрее. Занял нишу, нашел хороших инвесторов, куча пользователей, сириус бизнес. Только…
Сейчас на средства которые вливаются в починку багов (лишь бы Это дышало) позавидует любой стартап. На эти деньги можно их пачку поднять.
Не хватает разработчиков на починку багов. Давно немаленький такой штат, но всё равно каждый месяц находят больше чем чинят. Название проекта уже стало магическим словом, которое, прозвучав, навевает грусть и уныние.
Снежный ком говнокода уже давно неподконтролен. Внутренняя сложность ПО уже давно перешла все рамки любого мозга. А без тестов никто не решается это рефакторить.
Движения наверху. Никто не может Это сдвинуть хоть куда-то. Никто не может это исправить. (Уже никто и не берётся). Тех кто начинал уже давно поменяли инвесторы на более опытных. Но всё равно инвесторы недовольны.
Ресурсы, которые уходят на поддержку старого, практически не оставляют ничего тем, кто хочет начать с нуля.
Конечно, кто-то может назвать это успехом… но Боб прав. Если вам важна скорость выхода на рынок, то надо обрезать функционал первой версии до минимума, но никогда, никогда, никогда не трогайте практики!
А ещё, судя по видео (0:33), поворачивает заднее колесо. Значит зад будет постоянно заносится и царапать всё что рядом. Откуда у них 14 заказов на такое непрактичное решение? Коллекционеры?
О, да. Прошу прощения, но вынужден слинять из дискуссии, размазывая сопли по слёзам из-за своей неудачной судьбы: «о боже, у меня нет десяти счетов в банках, что я вообще смыслю в этой жизни?».
Удачи вам в поисках достойного оппонента, чтобы так счетов 20, а то и *шепотом* 30! Вот у кого можно поучится.
> А я имею право считать такой банк неадекватным.
> И имею право считать, что время виндовз прошло. безвозвратно.
Да, вы имеете такое право. Как и у меня есть право считать неадыкватным банк, девочки которого не приносят мне пиццу по пятницам. Я, например, глубоко верю, что именно за таким вниманием к клиенту будущее. И все банки, которые этого не понимают, сдохнут.
И кому какая разница, считают ли такой подход адекватым другие. Главное: я же право имею, да? :)
Как клиент вы можете искать банк под любые ваши требования. Пусть хоть девочки в бикини каждую пятницу разносят пиццу всем клиентам. Ваше право.
Но считать неадекватным банк, оператор поддержки которого не знает как поведёт себя банк клиент в нестандартных условиях нельзя. (а ведь речь была об этом а не о том, что linux и macos не входят в поддерживаемые A, B, C — это отдельный разговор).
Наоборот. Если бы мне оператор вдруг ответил и начал рассказывать какие проблемы у их ПО под разными виртуалками и эмуляторами, то это 100% надо бежать. Это значит там неэффективный менеджмент, который или не может найти нормального применения хорошим спецам или заставляет девочек зубрить совершенно не то, что нужно.
Тоже и со спецами. Умный менеджменет не будет напрягать разработчиков изучать 100500 нестандартных конфигураций, встречающихся у 1% пользователей. Их задача — сконцентрировать усилия на тех 5 системах, которые официально поддерживаются. Разработчик в принципе может ответить, но это удача, а не так и надо. Значит просто разработчик самостоятельно с этим игрался.
По-моему, это уже перебор. Девушка неопытная попалась. Правильный ответ был бы: «Мы гарантируем работу только под операционными системами A, B, C на реальном железе. Все остальные варианты официально не поддерживаются, пробуйте на свой страх и риск.»
Вы же не думаете, что разработчики ПО (а банк-клиент — это ПО) должны попробовать всю пачку операционок и способов виртуализации и эмуляции, и знать где что и почему не работает?
Со своей стороны я предложил им подключиться к нашей, легальной библиотеке, которая будет приносить доход и им, и нам, а также технологическое сотрудничество – они могли бы протестировать свою технологию на базе пользователей нашего приложения. Иначе я не понимаю, зачем мне, собственно, восстанавливать «Читатель» в App Store – мы коммерческая организация, в конце концов, и ничем ЦРТ не обязаны.
Та запись диалога через скайп подтверждена другой стороной: литрес почувствовал власть и прямо шантажировал.
Психология. Если отключить всё, то градус народной ненависти в сторону GEMA увеличивается в разы, а значит их оппоненту в суде икается больше и думается меньше.
> Закрытым ОС не нужны менеджеры пакетов, так как у них нет проблем с двоичной совместимостью.
Запустите приложение из Мака под Виндой, пожалуйста.
А если без иронии, вы пытаетесь навязать один стандарт на все дистрибутивы, но каждую закрытую операционку рассматриваете отдельно. Это неправильно.
Ubuntu, Windows, RedHat, MacOS, Arch Linux — это 5 разных операционок. У них разные команды, разные разработчки, разная стратегия, разная философия, разное развитие. Или мы каждую смотрим отдельно, или мы пытаемся что-то объединять по надуманным признакам и получаем бардак в голове.
А вы расскажите существует ли единый менеджер пакетов для закрытых операционок, есть ли между ними хотя бы жалкое подобие FHS? Есть единый стандарт инициализации системы?
Разные дистрибутивы — это разные операционки от разных товарищей, несмотря на то, что во всех них примерно одно и тоже ПО, и все работают поверх Линуха. Не вижу логики в требовании от всех одного стандарта только потому, что там общее ядро.
Ну а минусуют, потому что UNIX — не опенсорс (rtfm, да), и, потому что вброс без обоснования — это троллинг. А на гитхабе написано откуда форкнуто, и проследить до начала — дело одной минуты. Ваш КО.
Платный продукт:
1. если моя бага появляется у большинства, то она будет починена, и это плюс.
2. если я с маргинальным железом или в маргинальный ситуации, я вынужден осознать, что мою проблему в этом тысячелетии не починят — это не рентабельно для разработчика, даже если я тут загибаюсь. Это как раз ситуация «смирись».
Опенсорс:
1. если моя бага появляется у большинства, то она _скорее всего_ будет починена не мной. Ситуация хуже, но слегка.
2. во _всех_ остальных случаях есть только вопрос цены. Любую багу можно пофиксить или оплатить исправление, но некоторые баги дешевле терпеть чем фиксить. Это с одной стороны тоже «смирись», но это уже добровольное «смирись».
PS: TDD в этой статье под словом «рефакторинг», потому что рефакторинг по Фаулеру, это всегда тесты, тесты, тесты и только потом действия.
— пишет юнит тесты на тривиальные функции
— перегибает: например, тест, который проверяет, что функция A вызывает функции B, C, D, а C вызывает E, когда особой необходимости именно в такой реализации и разбивки на функции нет.
— не пытается сделать тест инвариантым к изменениям
— сначала пишет код (конечно же тестирует вручную), а потом вспоминает про тест.
А не видят, где TDD больше всего экономит те, кто никогда не разрабатывал с autotest :) TDD больше всего экономит не там, в будущем, а прямо сейчас, во время программирования, когда не надо после каждого сейва нажимать Alt-tab и вручную тестировать изменения, а достаточно скосить глаза на соседнее окно, где только что пробежали новые тесты.
Нет. Тогда откуда деньги на команду «второй очереди»?
Сейчас на средства которые вливаются в починку багов (лишь бы Это дышало) позавидует любой стартап. На эти деньги можно их пачку поднять.
Не хватает разработчиков на починку багов. Давно немаленький такой штат, но всё равно каждый месяц находят больше чем чинят. Название проекта уже стало магическим словом, которое, прозвучав, навевает грусть и уныние.
Снежный ком говнокода уже давно неподконтролен. Внутренняя сложность ПО уже давно перешла все рамки любого мозга. А без тестов никто не решается это рефакторить.
Движения наверху. Никто не может Это сдвинуть хоть куда-то. Никто не может это исправить. (Уже никто и не берётся). Тех кто начинал уже давно поменяли инвесторы на более опытных. Но всё равно инвесторы недовольны.
Ресурсы, которые уходят на поддержку старого, практически не оставляют ничего тем, кто хочет начать с нуля.
Конечно, кто-то может назвать это успехом… но Боб прав. Если вам важна скорость выхода на рынок, то надо обрезать функционал первой версии до минимума, но никогда, никогда, никогда не трогайте практики!
Удачи вам в поисках достойного оппонента, чтобы так счетов 20, а то и *шепотом* 30! Вот у кого можно поучится.
> И имею право считать, что время виндовз прошло. безвозвратно.
Да, вы имеете такое право. Как и у меня есть право считать неадыкватным банк, девочки которого не приносят мне пиццу по пятницам. Я, например, глубоко верю, что именно за таким вниманием к клиенту будущее. И все банки, которые этого не понимают, сдохнут.
И кому какая разница, считают ли такой подход адекватым другие. Главное: я же право имею, да? :)
Но считать неадекватным банк, оператор поддержки которого не знает как поведёт себя банк клиент в нестандартных условиях нельзя. (а ведь речь была об этом а не о том, что linux и macos не входят в поддерживаемые A, B, C — это отдельный разговор).
Наоборот. Если бы мне оператор вдруг ответил и начал рассказывать какие проблемы у их ПО под разными виртуалками и эмуляторами, то это 100% надо бежать. Это значит там неэффективный менеджмент, который или не может найти нормального применения хорошим спецам или заставляет девочек зубрить совершенно не то, что нужно.
Тоже и со спецами. Умный менеджменет не будет напрягать разработчиков изучать 100500 нестандартных конфигураций, встречающихся у 1% пользователей. Их задача — сконцентрировать усилия на тех 5 системах, которые официально поддерживаются. Разработчик в принципе может ответить, но это удача, а не так и надо. Значит просто разработчик самостоятельно с этим игрался.
Вы же не думаете, что разработчики ПО (а банк-клиент — это ПО) должны попробовать всю пачку операционок и способов виртуализации и эмуляции, и знать где что и почему не работает?
Та запись диалога через скайп подтверждена другой стороной: литрес почувствовал власть и прямо шантажировал.
О, так Иммунитет ещё работает и как фаервол на сервере? А сервер значит на Винде?
По остальным пунктам вопросов нет?
Запустите приложение из Мака под Виндой, пожалуйста.
А если без иронии, вы пытаетесь навязать один стандарт на все дистрибутивы, но каждую закрытую операционку рассматриваете отдельно. Это неправильно.
Ubuntu, Windows, RedHat, MacOS, Arch Linux — это 5 разных операционок. У них разные команды, разные разработчки, разная стратегия, разная философия, разное развитие. Или мы каждую смотрим отдельно, или мы пытаемся что-то объединять по надуманным признакам и получаем бардак в голове.
Разные дистрибутивы — это разные операционки от разных товарищей, несмотря на то, что во всех них примерно одно и тоже ПО, и все работают поверх Линуха. Не вижу логики в требовании от всех одного стандарта только потому, что там общее ядро.
Ну а минусуют, потому что UNIX — не опенсорс (rtfm, да), и, потому что вброс без обоснования — это троллинг. А на гитхабе написано откуда форкнуто, и проследить до начала — дело одной минуты. Ваш КО.
Платный продукт:
1. если моя бага появляется у большинства, то она будет починена, и это плюс.
2. если я с маргинальным железом или в маргинальный ситуации, я вынужден осознать, что мою проблему в этом тысячелетии не починят — это не рентабельно для разработчика, даже если я тут загибаюсь. Это как раз ситуация «смирись».
Опенсорс:
1. если моя бага появляется у большинства, то она _скорее всего_ будет починена не мной. Ситуация хуже, но слегка.
2. во _всех_ остальных случаях есть только вопрос цены. Любую багу можно пофиксить или оплатить исправление, но некоторые баги дешевле терпеть чем фиксить. Это с одной стороны тоже «смирись», но это уже добровольное «смирись».