Size: a a a

2020 February 25

RB

Roman Bolkhovitin in rannts
Serg
А кто сказал, что один тестовый случай, ты сразу все описываешь на которые хватает фантазии
Как я понял Руслан говорит про хрестоматийный тдд, как в учебнике, и там действительно предполагается что ты ешь слона по частям, причем очень маленьким частям. Ты пишешь типа

def test_my_sum():
 assert my_sum(0, 0) == 0

Запускаешь, падает - нет такой функции. Определяешь функцию, запускаешь, падает потому что None != 0.
Пишешь

def my_sum(a, b):
   return 0

Проходит.
Выдыхаешь.
Добавляешь assert на (0 + 1) == 1 и пишешь дальше. Получается тот самый red, green, refactor, repeat. Звучит интересно, но неизвестно, можно ли заставить себя так писать и насколько это вообще стоит того.

А то что ты написал это больше на бдд похоже, геркин и вот это вот все.
источник

AM

Artem Malyshev in rannts
Kirill (Cykooz) Kuzminykh
Ну и есть методика проектирования через написание кода.
Так что я могу смело сказать, что я всё делаю через TDD. Ведь я не код сначала пишу, а потом тесты. Это я сначала проектирую систему через код. После этого пишу тесты. А потом, волшебным образом, оказывается что мне почти не надо писать код - он уже написался пока я проектировал систему. 😊
Самообман какой-то
источник

AM

Artem Malyshev in rannts
Kirill (Cykooz) Kuzminykh
У TDD без "собаки", "патернов" и в целом без детального проектирования есть заметный минус. Приходится не только код переписывать, когда ты понял что надо всё сделать по другому. Приходится ещё и тесты все заново писать. Конечно это не прям супер-минус для TDD, но знать про него надо.
Это проблема поддерживаемости тестов как таковых. Не важно по тдд они будут написаны или просто рядом.
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
А есть книга по TDD, где примеры его использования не находятся на уровне написания функции для складывания двух чисел? Вот что бы было нечто более сложное и реальное. Как вариант - Web API с авторизацией и всем что нужно. Вот это было бы интереснее поглядеть за развитием мысли автора в процессе написания этого. И что бы всё по честному, с самого нуля. Дабы не возникало ощущение, что автор лукавит, утверждая что вот прям такие тесты он с первого раза и написал (как в книжке про Django + TDD, которую упоминали ранее).
источник

S

Serg in rannts
Kirill (Cykooz) Kuzminykh
А есть книга по TDD, где примеры его использования не находятся на уровне написания функции для складывания двух чисел? Вот что бы было нечто более сложное и реальное. Как вариант - Web API с авторизацией и всем что нужно. Вот это было бы интереснее поглядеть за развитием мысли автора в процессе написания этого. И что бы всё по честному, с самого нуля. Дабы не возникало ощущение, что автор лукавит, утверждая что вот прям такие тесты он с первого раза и написал (как в книжке про Django + TDD, которую упоминали ранее).
Ну вот чуть по сложнее пример, как раз книга, которую Руслан штудирует. Там потом и до тестов js на фронте доходит, и более менее комплексно на мой взгляд
источник

KK

Kirill (Cykooz) Kuzminykh in rannts
Сам не читал эту книгу, но со слов Руслана , у него возникло ощущение, что его "наё...ют", т.к. он не понимает каким образом можно догадаться до написания таких тестов не написав ещё реального кода.
источник

S

Serg in rannts
Мне кажется сказывается еще мало опыта работы с Django, там предполагается интуитивное понимание архитектуры, и что за чем следует
источник

S

Serg in rannts
Я ее читал, после нескольких небольших проектов на джанге, и для меня книжка была прозрением))
источник

S

Serg in rannts
И правда читал на английском, там очень простой разговорный слог, поэтому трудностей не было
источник

AM

Artem Malyshev in rannts
Kirill (Cykooz) Kuzminykh
Когда ты "собаку съел", и в добавок у тебя фреймворк, который "палкой" заставляет делать всё в едином стиле, по единым патернам, то уже не так важно становится TDD у тебя или просто тесты. Ты уже заранее знаешь, что ты будешь в коде писать, какой будет у этого интерфейс и знаешь какие тесты у тебя будут.
Основная задача тдд - заставить идти тебя крошечными атомарными шагами. Чтобы было легко понять где ты облажался. У Бека даже новый подход появился когда коммитишь до запуска тестов и ревертиш  если провалились.
источник

💭П

💭 Руслан Прохоров in rannts
Kirill (Cykooz) Kuzminykh
Сам не читал эту книгу, но со слов Руслана , у него возникло ощущение, что его "наё...ют", т.к. он не понимает каким образом можно догадаться до написания таких тестов не написав ещё реального кода.
Имено так.
источник

💭П

💭 Руслан Прохоров in rannts
Serg
Я ее читал, после нескольких небольших проектов на джанге, и для меня книжка была прозрением))
Ну а я не знаком с джангой.
источник

💭П

💭 Руслан Прохоров in rannts
Но это не змаменят логики "проверить запущен ли сервер перед началосм разработки"
источник

SZ

Sergey Z in rannts
пчёлы против мёда, то есть интернета?
вообще звучит крипово "навязывание javascript"
источник

SZ

Sergey Z in rannts
GitLab продолжает политику навязывания JavaScript
Игнорируя сообщения о проблемах, в которых запрашивается реализация возможности использовать GitLab без предоставления ему доступа к JavaScript, GitLab продолжает усиление привязки к JavaScript. Теперь сервер не отдаёт список файлов в виде HTML, а добавляет на страницу элемент с id "js-tree-list", в который элементы вставляются посредством JavaScript.
источник

💭П

💭 Руслан Прохоров in rannts
=)
источник

💭П

💭 Руслан Прохоров in rannts
А кто-то на bitbucket настраивал pylint? Но не просто через хуки, а так, что бы коммит не принимался сервером, если проверка fail.
источник

💭П

💭 Руслан Прохоров in rannts
Если делать через хуки, то коммит будет на сервере и проверка даст пост фактум. Настраивать пре коммиты в репозитории? Ну кто-то забудет и не настроит.
источник

а

а кто это in rannts
💭 Руслан Прохоров
А кто-то на bitbucket настраивал pylint? Но не просто через хуки, а так, что бы коммит не принимался сервером, если проверка fail.
это что-то вроде гитхабовских чеков?
источник

💭П

💭 Руслан Прохоров in rannts
а кто это
это что-то вроде гитхабовских чеков?
Не юзал не могу сказать
источник