LINUX.ORG.RU
ФорумTalks

Пятница 13

 ,


0

1

Идиотский день

Сажусь писать программу. Пишу код. Тестирую - не работает. Вставляю отладочные принты на экране пусто. Начинаю смотреть принты есть. Запускаю пусто. Опять смотрю. Длится минут 20. Потом нахожу, что я вчера делал сборку и программа установилась в систему и запускается не то, что я правлю, а та что вчера попала в систему.

Ладно удаляю.

Запускаю. Говорит не найду программы. Запускаю в интерпретаторе - видит.

Запускаю. Говорит не найду программы. Запускаю в интерпретаторе - видит.

Начинаю искать - сломались переменные среды.

Ладно вписываю верные. Ломается.

Плюю к чертям пересобираю вагрант.

Загружаю бэкап базы.

Запускаю. Захожу в браузер в базе странный документ. Пытаюсь открыть - падает с жалобами на странные поля. Лезу в базу. Вот помню, что

import pymongo
db=pymongo.Connection()['dbname']
Пишет нет никакого Connection Глаза лезут на лоб. Я ведь во сне мог все сделать.... Гуглю.... Оказывается это для версии 1.9 Теперь это:
>>> client = pymongo.MongoClient()
>>> db = client['dbname']
Запускаю. Все падает к чертям.... С ошибкой, что у класса
AttributeError: 'StreamingBody' object has no attribute 'close'
Иду в документацию (не ну минимум три дня был метод).
http://botocore.readthedocs.io/en/latest/reference/response.html
class botocore.response.StreamingBody(raw_stream, content_length)
close()
Close the underlying http response stream.
Ниче не понимаю. Смотрю список атрибутов у живого объекта - НЕТУ.

Туплю пол часа.

Смотрю у меня версия 1.1.7, а текущая 1.4.73

Ладно думаю. Прописываю зависимости ставлю.

Запускаю программу, а она падает говорит я тут хочу 1.1.7

Пока нашел где еще зависимости потерял час.

Начинаю коммитить... гит говорит, что я менял. bower.json

Иду смотрю на себя в зеркало.

Начинаю коммитить... гит говорит, что я менял. bower.json

Смотрю дифф.

   ],
   "dependencies": {
-    "bootstrap": "~3.3.6",
+    "bootstrap": "~3.3.7",
     "bootstrap-file-input": "~1.0.0",
     "bootbox": "~4.4.0",
     "jquery-cookie": "~1.4.1",
Ну наверное npm при пересборке вагранта привез.....

Пятница 13-го....

А у вас какая чертовщина сегодня?


Ответ на: комментарий от Inshallah

У меня вот человечек в голове в твой адрес много хороших вещей сказал :-)

dmxrand
() автор топика

А у вас какая чертовщина сегодня?

Выбираю между нормальной, здоровой, семейной жизнью и всем тем трешем, что в ней творится из года в год.

slon
()

А у вас какая чертовщина сегодня?

Ты и твоё ЖЖ на лоре. А ещё пробел на ноуте стал барахлить.

cipher ★★★★★
()
Ответ на: комментарий от cipher

Нет это у меня проблемы с рукой. Был перелом, была парализована. Теперь баги выдает.

dmxrand
() автор топика
Ответ на: комментарий от imul

Отвёз жену в роддом.

Хоть кто-то делом занят.) Поздравляю!

ashot ★★★★
()
Ответ на: комментарий от bread

Вспоминаю как я 17 лет назад работал в веб-студии, писали тогда cgi скрипты на перле и только-только начал проникать похапе. Какие же это были счастливые времена )

bread
()
Ответ на: комментарий от bread

Не ну обычно сижу кодю и не парюсь. Такого чтоб слетело то или это небыло. Впрочем я там накануне искал ошибки в библиотеках и эксперементировал....

dmxrand
() автор топика

Вставляю отладочные принты на экране
программа установилась в систему и запускается не то, что я правлю
Пока нашел где еще зависимости потерял час
наверное npm при пересборке вагранта привез

что-то мне плохо стало от всего этого
это даже не хаос, мне сложно выразить всё отвращение которое я сейчас испытываю к этому
как насчёт — принять комплекс мер, начиная с внедрения tdd?

system-root ★★★★★
()
Ответ на: комментарий от system-root

Он есть, а что? Если тесты слетают тоже.

dmxrand
() автор топика
Ответ на: комментарий от dmxrand

ты ведь понимаешь, что это ненормально?
на свете ещё нет хорошего и годного менеджера зависимостей (см. выступление Баруха)
блин, до такой степени ад надо чем-то лечить, нужна идемпотентность, нужна какая-то изолированность и т.д. я же говорю — комплекс мер

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от system-root

Тут в чем проблема далеко не все можно покрыть тестами (во всяком случае я не знаю как это сделать). Например при взаимодействии с внешними системами... Вот я гружу в s3 полугиговые файлы. Как ты это тестами покроешь? Будешь в тесте грузить файл? Так тест будет проходить час. Я кстати могу показать случай когда до 10 мегабайт все работает, а выше нет.

Второй вариант как ты покроешь тестами вьюхи? Если ты используешь python яб с удовольствием пообщался как раз на случай тестов.

Ну и я не использую напрямую пумонгу. У меня мотор. Это в базу я лезу пумонгой.

А так я все понимаю конечно :-) Я уже вечерм вчера тоже затупил, но уже с jquery вызвав неверно $.post по аналогии с $.ajax и получив object в url

dmxrand
() автор топика
Ответ на: комментарий от dmxrand

как ты покроешь тестами вьюхи?

на данный момент я не крою вьюхи тестами, т.к. не создаю веб-интерфейсы. но это не надолго

VIPER: View, Interactor, Presenter, Entity и Routing

лучше распределение — лучше тестируемось

ребята «выкинули» MVC, взяли VIPER и стало возможным тестировать всё
да, не тот язык, да не те вьюхи, но это просто паттерн, его куда хочешь можно прикрутить

Например при взаимодействии с внешними системами...

https://habrahabr.ru/post/170637/

system-root ★★★★★
()
Ответ на: комментарий от system-root

Про моки могу показать пример когда mock созданный для request работает, а в реальном мире все сломалось.

Собственно у меня как раз с боди так и вышло еслиб я сделал мок у меня у боди былоб close а он пропал :(

dmxrand
() автор топика
Ответ на: комментарий от dmxrand

когда mock созданный для request работает, а в реальном мире все сломалось

что если тест писать не для случаев «работает», а в том числе на «все сломалось»?

ты всё скатил к тестированию, хотя в моём первоначальном посте было 4 строчки:

  1. тесты
  2. изоляция\виртуализация
  3. контроль зависимостей\построение дерева зависимостей
  4. идемпотентность самого менеджера зависимостей (это вообще вызвало лютую ненависть к npm)
system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от system-root

Смотри. Request создает сервер. Сервер это часть чужой библиотеки и реквест тоже. Потом это дело попадает в роутер. При тестировании роутера мы создали мок реквеста. Мок мы наполнили теми полями которые были. Тест проходит.

Как написать тест, что все сломалось? Яж не могу создать мок без полей. И я не могу тестировать сервер ибо он требует внешних соединений. Не ну можно запустить сервер и вгетом в него пулять и тестом проверять, но ....

Короче я пока не знаю как такое тестами покрывать.

dmxrand
() автор топика
Ответ на: комментарий от system-root

Это в планах. Одному все такое развернуть не легко

dmxrand
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.