Приветствуем вас на форуме Тупа-Германия! Зарегистрируйтесь и станьте членом нашего сообщества! После входа в систему вы сможете участвовать в жизни сайта, создавать свои темы и сообщения, а также общаться с другими участниками через личные сообщения!
Политические дискусии на данном форуме разрешены только в разделе о политике https://forum.tupa-germania.ru/forums/politika/
Запрещено оскорблять и разжигать. За это в бан.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Ну да, юнит тесты обычно пишут разработчики и код должен не сильно мешать их писать. Но иногда так ппц лениво, особенно эти чертовы геттеры. От ручного тестера для юнит-тестов я бы не отказалось.
я правда не понимаю, как можно так модернизировать (при наличии глаз хотя-бы и комментариев, которые обычное есть) чтобы перестала работать изначальная логика.
если меняется функционал - меняются и тесты, верно?
Тогда снова, вместо одной команды нормальных людей, имеем две, где одни следят за косяками других?
Чем сложнее система, тем выше вероятность отказа.
Я правда не понимаю и мне очень любопытно.
Ну не дураки же (я надеюсь) ЭТО ВСЕ придумали. (но это не точно)
а это потому, насколько я в курсе, что не столько пишут, сколько "собирают" из непонятно кем, непонятно где, непонятно как написанного.
Зато быстро, ага.
сижу и смертельно завидую зеленой завистью.
в моей области тестов нет как класса, совсем. да я и затрудняюсь придумать, как бы это протестить так, чтобы все проверить и все промоделировать.
приходишь на пусконаладку и начинааааается радость.
у вас гиг кода, большую часть которого вы в глаза не видели и весьма приблизительно представляете что он делает. Писался в течение 10 лет разными людьми под разные требования. И продолжает писаться 10 скрам командами одновременно с вами. Не бывает таких гениальных программистов которые могут объять это все и гарантировать что ничего никогда от их изменений не сломается. Иногда конечно ты знаешь что задача маленькая и изолированная. А иногда - вроде все хорошо сделал, а хвостик на другом конце отвалился. Это нормально совершенно.
Там геттеры-сеттеры можно аннотациями добавлять и код генерится только в бинарный код. Не портит каверейдж отсутствием юниттестов на гененированные методы, как минимум.
Не знаю, все сама пишу. Есть конечно всякие спринг буты на которых это все живет и без которых пришлось бы в сотый раз велосипед изобретать, но обычно баги не в них, а в твоем коде.
специфика. я программист АСУ ТП и работаю с очень большими машинами (сейчас, например, 120 приводов, больше 12000 полевых сигналов, чужие приблуды типа машинного зрения и т.д). под каждую такую машину программы пишутся индивидуально, а при том что у нас и среда разработки развивается и у заказчиков свое понимание прекрасного каждый раз - переписываются в том числе базовые блоки библиотек.
невозможно написать всю логику начиная от управления каждыми клапаном - двигателем - тормозом, реакции на каждый датчик и каждую кнопку и заканчивая общей глобальной логикой работы всей линии и протестировать без машины, для которой это все написано.
поэтому и тянутся у нас пусконаладки по полгода ?
Там геттеры-сеттеры можно аннотациями добавлять и код генерится только в бинарный код. Не портит каверейдж отсутствием юниттестов на гененированные методы, как минимум.
Потому что не испытал боли. Можно сколько угодно объяснять, что такое "горячий утюг", но лучше дать один раз потрогать ?
ооо, ломбок! В моей нынешней компании это как гранату в толпу кинуть, у коллег от него пригорает.
В прошлой мы его использовали как раз для геттеров и конструкторов и меня он устраивал. Но там и тестов на гетеры не писали, даже на нормальные.
А в ныненшней кстати еще культ иммутабельности. Нельзя просто вернуть мапу, надо вернуть иммутабл копию этой мапы. Даже если это дтошка только-только прочиташая эту мапу из входного джисона и всем вообще посрать если с мапой что-то случиться после геттинга.
ок. Я начинаю (кажется) понимать, но тогда вопрос:
Если есть программа-тест которая вызывает что-то и передавая параметры и смотрит на результаты, то:
- почему пишущий не знает этого или не может проверить тоже самое сам?
- где гарантия, что тест учтет специфику внесенных изменений, особенно учитывая:
специфика. я программист АСУ ТП и работаю с очень большими машинами (сейчас, например, 120 приводов, больше 12000 полевых сигналов, чужие приблуды типа машинного зрения и т.д). под каждую такую машину программы пишутся индивидуально, а при том что у нас и среда разработки развивается и у заказчиков свое понимание прекрасного каждый раз - переписываются в том числе базовые блоки библиотек.
невозможно написать всю логику начиная от управления каждыми клапаном - двигателем - тормозом, реакции на каждый датчик и каждую кнопку и заканчивая общей глобальной логикой работы всей линии и протестировать без машины, для которой это все написано.
поэтому и тянутся у нас пусконаладки по полгода ?
ок. Я начинаю (кажется) понимать, но тогда вопрос:
Если есть программа-тест которая вызывает что-то и передавая параметры и смотрит на результаты, то:
- почему пишущий не знает этого или не может проверить тоже самое сам?
- где гарантия, что тест учтет специфику внесенных изменений, особенно учитывая:
В моей нынешней конторе я очень много бизнес-логики не знаю не относящейся непосредственно к моей части приложения, особенно для хитрых случаев. А так есть тесты написанные теми кто разбирается в разных частях программы, ты что-то изменил и запускаешь эти тесты. Если прошли - все ок. Если не прошли - разбираешься уже, это ты неправ или тесты. Но вообще это конечно не бесплатная фича и тесты замедляют разработку и поддержка тестов обходится недешево. И не дают конечно 100% гарантии отсутствия багов. Но с ними вроде как лучше чем без них.
Чисто с точки зрения код-ревьюера я бы это приветствовал. Помогает избегать многих багов. Интуитивно не все понимают, что нельзя модифицировать объекты, созданные не тобой. Но догмы - это тоже плохо.
под каждую такую машину программы пишутся индивидуально, а при том что у нас и среда разработки развивается и у заказчиков свое понимание прекрасного каждый раз - переписываются в том числе базовые блоки библиотек.
да индивидуально все каждый раз и под каждую задачу
мы сейчас пишем совсем базовые вещи в общие библиотеки и стараемся их проверить, но тут тоже такая засада, что возможности проверки ограничиваются в нашем случае симуляциями (невозможно соорудить стенд из всех используемых приводов, гидравлики и пневматики и обвесив всеми возможными типами датчиков). ну и, разумеется, ограничивается нашей фантазией и опытом, а этого часто нехватает. реальное железо такие фокусы показывает иногда, что ни в жизни бы не догадался здесь подстелить соломки
Чисто с точки зрения код-ревьюера я бы это приветствовал. Помогает избегать многих багов. Интуитивно не все понимают, что нельзя модифицировать объекты, созданные не тобой. Но догмы - это тоже плохо.
По факту за хрен знает сколько лет я могу припомнить только несколько багов вызванных именно изменением объектов которые ты не должен был менять, а должен был сделать копию и с ней работать. И в новой конторе у меня до сих пор пригорает от этого культа безусловной иммутабельности. Гемора дофига добавляет.
По факту за хрен знает сколько лет я могу припомнить только несколько багов вызванных именно изменением объектов которые ты не должен был менять, а должен был сделать копию и с ней работать.
Аналогично. Но всякий раз когда такой баг возникал, требовалось на порядок больше времени чтобы найти причину и починить, чем если просто писать по полиси. Ключевой вопрос, кто будет использовать геттер. Я представляю что индус и сразу сомнения отпадают,?
Аналогично. Но всякий раз когда такой баг возникал, требовалось на порядок больше времени чтобы найти причину и починить, чем если просто писать по полиси. Ключевой вопрос, кто будет использовать геттер. Я представляю что индус и сразу сомнения отпадают,?
Вот мне тут хотя бы такой критерий. А то блин создаешь иммутабл объект билдером. Идешь на следующий шаг на уровень выше и там надо просетить еще одно поле. Но у нас же все иммутабл, мы же модные. Мы не вызовем сеттер, сеттеров в объекте вообще не подвезли, мы пересоздадим объект.
На данном сайте используются cookie-файлы, чтобы персонализировать контент и сохранить ваш вход в систему, если вы зарегистрируетесь.
Продолжая использовать этот сайт, вы соглашаетесь на использование наших cookie-файлов.