/forums/comment/222854-wasd-net-slov-ja-vot-otkryl-dvorovye-ploshhadki
WasD, нет слов.
Я вот открыл дворовые площадки, которые регистрировал 2 года назад - это просто ж*па. Реально!..
Все площадки подвязаны к домам. Все площадки передвинуты...
Возле школьного стадиона 3 площадки - турники (которые отнесены сейчас к зданию детского садика), турники на стадионе, и дворовая площадка рядом-стоящей 5ти этажки. Такое впечатление, что туники и дворовая площадка были объединены под один ID - подвязанный сейчас к зданию школы.
Скриншот.
Ладно, всяко может быть. Прокрутил карту вправо, прокрутил влево - площадки всего города подвязаны к домам !..
ВСЕ ПЛОЩАДКИ, КАРЛ!... Какой смысл углубляться в ловлю ошибок передачи локаций точного позиционирования, если база всего города уже и так похерена ?!
Ладно. Может мы с провинции, а в Москве другая метрика площадок - открываю Москву. Площадки есть где-то в парках - ну может быть. Смотрю дворовые - не буду утверждать что все, но достаточно много площадок, подзвязанных к номерам домов. Или те кто их вводил - тоже рукожопы, и указывали на карте не точку локации площадки, а адреса домов ?
Для примера хоты бы так:
Может ты припомнишь какой-то фикс, который по координатам площадки определял ее адрес (через гугл сервис), а потом сделали апдейт - установили новые координаты (сделали переподвязку площадок), согласно их географического адреса ??
Смотрю на олд (http://old.workout.su/areas/city/496) - там вообще минимум регистраций площадок. С чем сравнивать ?
В общем - ты постановщик задачи, база под твоим ведомством. По факту - базу криво проапдейтили. Другой причины я не вижу. Если у тебя нету бэкапа - печально.
ps: случайно наткнулся на дубль площадки. Может тоже чей-то тест - подвязка к крыше дома, и рядом она же. Могу предполагать, что это косячит твой сервис System при оформлении портированных площадок с других ресурсов (а вы сэкономили на QA, и точек отката для восстановления базы, я так понимаю, тоже нету).
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222860-quote-name-vago-post-222854-ili-te-kto-ih-vvodil
Или те кто их вводил - тоже рукожопы, и указывали на карте не точку локации площадки, а адреса домов ?</quote>
WasD, cмотри!
Я открыл томские площадки. Ткнулся куда попало - координаты к домам не подвязаны. Т.е моя программа выдала данные, сервер их принял - хорошо.
Дата регистрации этих площадок - 13-августа-2015 17:31
А теперь я смотрю первые площадки, зарегистрированные через мою программу - 100% что они были отправленны с правильными координатами (т.е не подвязанными к домам), а вот твой сервис их (координаты) профиксил.
Первые введенные площадки через мою программу -
30-июля-2015 19:00 (я обвел их красной линией... 4ая площадка была зарегистрирована в декабре - вот она и не подвязана к "крыше дома")
А вот теперь вспоминай, какой фронт работ проводился с 30-июня по 12-августа. И что могло зацепить фикс локаций.
Не думаю, что мне стоит заниматься воспроизведением бага.
Это косяк на вашей стороне.
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222861-sejchas-posmotrel-po-moskve-dejstvitelno-mnogie
Сейчас посмотрел по Москве - действительно, многие площадки к домам подвязаны. Очень странно.
Хотя та, что я добавлял недавно, норм.
/forums/comment/222862-wasd-ty-mne-kak-to-podskazal-chto-tdd-krutaja-shtuka
WasD, ты мне как-то подсказал, что TDD крутая штука...
Я вот что нашел - MVP (Model View Presenter). Это не TDD, но тоже типа того - проектирование модели, а потом оформление вызовов в режиме хардкодной эмуляции поведения пользователя. http://habrahabr.ru/post/131446/
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222865-quote-name-mike38217-post-222861-hotja-ta-chto-ja
Хотя та, что я добавлял недавно, норм. </quote>
mike38217, какой-то косяк 100% случился в интервале 30-июня / 12-августа. Грешу на System. Вероятно он запускается руками на сервере.
У меня нету информации, чтобы вообще о чем-либо предполагать
ps: мои последние регистрации вроде как тоже сели корректно. Правда вчера я наблюдал, что регистрация села на крышу дома - но не понял почему. А повторная отправка тех же данных села (спозиционировалась) корректно.
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222870-vago-davaj-razbiratsja-po-porjadku-1-v-kakoj-to
vago
Давай разбираться по порядку.
1) В какой-то момент какой-то процесс меняет данные по ГПС площадки? При этом вообще непонятно какой и когда, так? Но то, что меняет - это очевидно.
Бекап базы с последующим выяснением - у кого изменились координаты - ничего не даст. Потому что это даст такой же результат, как и сейчас - видимость того, что данные изменились. Почему и как? Хрен его знает. Надо понять, как это отловить. Разработчики клянутся, что быть такого не может. Потому что данные записались в базу данных и все.
10.12.2015 09:13
Было бы не плохо отсортировать список стран и городов в алфавитном порядке.</quote>
Увидел, исправим!
Ладно, всяко может быть. Прокрутил карту вправо, прокрутил влево - площадки всего города подвязаны к домам !..
ВСЕ ПЛОЩАДКИ, КАРЛ!... Какой смысл углубляться в ловлю ошибок передачи локаций точного позиционирования, если база всего города уже и так похерена ?!</quote>
К тем домам, которые указаны в адресе площадки, верно?
Может ты припомнишь какой-то фикс, который по координатам площадки определял ее адрес (через гугл сервис), а потом сделали апдейт - установили новые координаты (сделали переподвязку площадок), согласно их географического адреса ??</quote>
Не было такого фикса.
ps: случайно наткнулся на дубль площадки. Может тоже чей-то тест - подвязка к крыше дома, и рядом она же. Могу предполагать, что это косячит твой сервис System при оформлении портированных площадок с других ресурсов (а вы сэкономили на QA, и точек отката для восстановления базы, я так понимаю, тоже нету).</quote>
Если бы ты дал айдишник площадки, было бы ещё круче)
WasD,
ты мне как-то подсказал, что TDD крутая штука...
Я вот что нашел - MVP (Model View Presenter). Это не TDD, но тоже типа того - проектирование модели, а потом оформление вызовов в режиме эмуляции хардкодного поведения пользователя.
http://habrahabr.ru/post/131446/
</quote>
Но у нас-то все отлично работает в этом плане, проблема в том, что в какой-то момент происходит пересохранение координат площадки. Вообще по неведомой причине.
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/222900-quote-name-wasd-post-222870-1-v-kakoj-to-moment-kakoj
1) В какой-то момент какой-то процесс меняет данные по ГПС площадки? При этом вообще непонятно какой и когда, так? Но то, что меняет - это очевидно.</quote>
Полагаю что не так. Может быть несколько ситуаций.
1. Запускается что-то в потоке. И в зависимости от того успеет ли отработать процесс в потоке или нет - происходит изменение данных. Данные на уровне приложения - глобальные. Вот они и сохраняются уже измененными. Это что-то типа того, что происходит с личными данными - сейчас они корректные, а стоит походить по экранам.... и какой-то АсинкТаск изменяет данные на уровне Applicaton (приложения).
Применительно к личным данным - может быть это фоновая синхронизация площадок, может информация об регистраторе какой-то площадки выходи на уровень приложения - и садится в данные пользователя.
Может какая-то описка в коде, или временная переменная - заведенная для дебага, а потом не подчищенная.
2. Я предположил, что это System косячит. По крайней мере - почему площадка села на крышу колледжа, и рядом площадка с такой же картинкой - но по описанию видно что ее точно не System посадил. Может в этом направлении начать смотреть.
Бекап базы с последующим выяснением - у кого изменились координаты - ничего не даст. Потому что это даст такой же результат, как и сейчас - видимость того, что данные изменились</quote>
Бэкап нужен для того чтобы восстановить изначальные данные, которые сейчас подвязались на крыши домов. Логирование позволит определить какая площадка изменилась, и по статистике увидеть что этому предшествовало - корректировка существующей площадки, или ввод новой. В зависимости от этого анализировать логику - что вызывалось, почему работа с другой площадкой задела эту - может они приграничные по расположению в списках. Может работает какой-то счетчик и вместо корректного позиционирования на элемент списка делается -1, ли +1 смещение.
Может быть все что угодно. То что разработчики клянутся что такого быть не может - мы видим результат. И ладно мои площадки, виг с ним, множество подвязанных площадок к крышам домов от других пользователей. Я к этому точно руку приложить не мог - те проявление какого-то бага.
Задача сейчас не в том чтобы воспроизвести ошибку, а в том, чтобы локализовать причину подобного проявления. Есть данные, есть процессы. И как увидеть какие действия проводятся с базой преднамеренно, и что меняется непреднамеренно - я так понимаю, что при настоящей организации работающей модели этого не сделаешь. Может сейчас будет введена площадка №4657, а зацепится #1058. Потому что она попадет под фильтр измненений, или потому что она на нее укажет индекс, или хз чего.
В подобных ситуация сперва проводится исследование, а потом уже по результату того исследования делается багфикс.
Разработчики клянутся, что быть такого не может. Потому что данные записались в базу данных и все.</quote>
Это еще раз говорит о том, что нужен некий механизм, позволяющий отмониторить и просигнализировать, что происходит попытка несанкционированного изменения данных, т.е данные меняются, а должны ли они меняться или нет - это уже вопрос второй.
Другими словами, если идет правка #6512, то нужно чтобы как-то система отреагировала, если будет изменены данные и в #1321. Как-то так. Я назвал это логированием. По дате изменений конкретной локации можно было бы определить какое значение было до этого (затерлось), а какой момент (те изменения над какой площадкой проводились в это время еще) - это поможет локализовать причину.
Повторюсь - то что какой-то косяк прошел по базе, это вроде бы как очевидно.
Почему и как? Хрен его знает. Надо понять, как это отловить</quote>
предлагаю логировать. на каждый ID площадки организовать трекинг изменений - статистику изменений (число, время), значение (что было на что меняется), статус строки (новая, апдейт, удаление). Как-то так.
При мониторинге проблемной ситуации, или неясности - делается запрос на таблицу лога. И по хронологии видим последовательность что на что менялось, по каким площадкам, а потом уже начинаем курить исходники - почему такое произошло.
К тем домам, которые указаны в адресе площадки, верно?</quote>
Ой, я не докапывался до этого момента. Полагаю что да.
Могу сказать, что по сути, адрес не имеет никакого значения. Я вообще заморачивался лишь с ЖПС данными. По ЖПС данным гугл сервис выдает адрес для описания, но отправной точкой является именно локация, а не номер дома, который подтягивается по этой локации.
Не было такого фикса.</quote>
Фикса небыло. А что было ? System. Как он работает. В какой момент. Он сидит сервисом ? может ли он изменять разделяемые переменные (разделяемые - это в смысле глобальные, на уровне приложения).
Может проблема на не уровне приложения, а не уровне сервера (сайта) - может сервис, может процесс по расписанию (или запускается руками) ? Ведь что-то в какой-то момент "пилит" данные! Может динамики изменений сейчас нет (мои площадки августовсвие - не подпорченные), может что-то каждый день портится - рандомно пилится .. исследовать и мониторить нужно.
Если бы ты дал айдишник площадки, было бы ещё круче)</quote>
Посмотри на скриншот. Там какой-то колледж. И адрес площадки в маркере отображен. Я думаю, что ты найдешь ее. И сможешь сопоставить кто их заводил, с каким интервалом. Может System тут не при чем - может он сам жертва того, что локацию этой площадки запилил злобный фоновый процесс...
Но у нас-то все отлично работает в этом плане, проблема в том, что в какой-то момент происходит пересохранение координат площадки. Вообще по неведомой причине. </quote>
Не совсем понятно о каком плане (с котороым у ас все ок) ты говоришь Озвучен ряд замечаний, воспроизведен ряд крешей, указана проблема с базой. При должном подходе этого всего не должно было быть.
Ответственность целостности данных лежит исключительно на Вас. И если Вы прошляпили момент порчи данных, а разработчики препираются, что такого не может быть потому что быть такого не может - это весьма прискорбно.
Хм, я могу предположить, что было бы весьма разумно организовать некий коммуникационный протокол между клиентом и сервером. Чтобы отправляю площадку на регистрацию (или корректировку), сервер не просто принимал данные, а отдавал информацию на клиента - например ID принятой площадки. М чтобы клиент после регистрации площадки мог сравнить данные с сервера со своими, которые он до этого отправил на регистрацию. По результату такого сравнения - будет видно, не закосячил ли сервер, адекватные ли данные сели в базу, или со смешением "на крышу дома".
Разумно рассмотреть было бы это на уровне MVP.
И далее, на этом же уровне было бы практично при синхронизации кеша приложения и сервера - не тянуть измененные данные, не переинициализировать кешь, а мониторить - сколько площадок новых, сколько измененных. И делать синхронизацию кеша - по лист списку (либо по кнопке "синхронизировать все").
Этот момент бы мог визуализировать состояние базы сервера - можно было бы мониторить какие площадки изменились, а потом уже пытаться анализировать почему они изменились..
В любом случае, с подходом MVP было бы проще все это замутить
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222905-wasd-uzhasno-smotritsja-moj-predydushhij-post-mnoga
WasD, ужасно смотрится мой предыдущий пост - "многа букафф, ниасилил"
В общем, я озвучил все свои мысли. Не думаю, что я могу что-то подсказать еще. Было бы интересно таки узнать из за чего такой происходит косяк с данными, и как вы собираетесь (и собираетесь ли вообще) его ловить за "хвост"
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222906-quote-name-vago-post-222900-fiksa-nebylo-a-chto-bylo
Фикса небыло. А что было ? System. Как он работает. В какой момент. Он сидит сервисом ? может ли он изменять разделяемые переменные (разделяемые - это в смысле глобальные, на уровне приложения).</quote>
System никак не работает, просто взяли базу calisthenics-parks и залили под аккаунтом System. Всё.
Может проблема на не уровне приложения, а не уровне сервера (сайта) - может сервис, может процесс по расписанию (или запускается руками) ? Ведь что-то в какой-то момент "пилит" данные! Может динамики изменений сейчас нет (мои площадки августовсвие - не подпорченные), может что-то каждый день портится - рандомно пилится .. исследовать и мониторить нужно.</quote>
Проблема явно на уровне сайта
Не совсем понятно о каком плане (с котороым у ас все ок) ты говоришь Озвучен ряд замечаний, воспроизведен ряд крешей, указана проблема с базой. При должном подходе этого всего не должно было быть.
Ответственность целостности данных лежит исключительно на Вас. И если Вы прошляпили момент порчи данных, а разработчики препираются, что такого не может быть потому что быть такого не может - это весьма прискорбно.</quote>
Я имею в виду, что добавление площадки работает все корректно, вся инфа сохраняется правильно, более того в течении какого-то времени вся инфа отображается правильно, потом в какой-то момент происходит что-то что сбивает настройки ГПС и перезаписывает их по ГПС указанному в адресе. Что вообще бред как такое может быть???
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/222912-quote-name-wasd-post-222870-razrabotchiki-kljanutsja
Разработчики клянутся, что быть такого не может. Потому что данные записались в базу данных и все.</quote>
Не только. Есть еще корректировка данных. Когда вызываетя корректировка? На корректировку уходят инициализированные данные. Эти данные - расшаренные ? Отправляются данные фоновым процессом ?
Запрашиваются значения этих переменных откуда - из фонового процессе ? Может ли механизм работы основного процесса сделать изменения расшариваемых данных до того, как фоновый процесс еще не закончил работу ? Лочатся ли адреса переменных, пока фоновый процесс не закончил работу ?
Это так - размышления на скорую руку. Потому что хз что является причиной - мобильное приложение, или процесс на стороне сервера. Это я к тому, что не все так просто - "сели данные в базу и все".
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222915-quote-name-wasd-post-222906-system-nikak-ne-rabotaet
System никак не работает, просто взяли базу calisthenics-parks и залили под аккаунтом System. Всё.</quote>
Хм...
Проблема явно на уровне сайта </quote>
Ну это уже что-то.
потом в какой-то момент происходит что-то что сбивает настройки ГПС и перезаписывает их по ГПС указанному в адресе. Что вообще бред как такое может быть???</quote>
Попробуйте с конца - какие методы меняют данные реквизитов локации в базе?
МОжет для мониторинга - ввести какие-то параметры, чтобы отслеживать кто вызывает эти меторы - целенаправленно, или по какому-то событию происходит вызов.
И опять таки - логировать ID, время, и новое значние.
Было бы неплохо мониторить еще и старое значение - но это можно сделать на уровне базы (на уровне таблицы), включить тригер onUpdate (или как он там называется) и на уровне тргера прописать - insert into logTable и указать старое и новое значение отслеживаемых реквизитов. Вообщем - логировать. А потом уже думать, имея данные для анализа.
ps: для новых записей и удаления что-то типа onInsert и onDelete - что-то типа этого.
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/222945-vago-budem-jetim-zanimatsja-sejchas
vago
Будем этим заниматься сейчас.
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/223470-wasd-spoiler-img-http-workout-su-uploads-userfiles
"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/223546-vago-spasibo-obrashhu
кто не сворачивает тот дойдет (c) DoXoD
/forums/comment/226767-img-http-workout-su-uploads-userfiles-2016-01-02-21
Только что отправил сообщение в коммент. Посмотрите на дату, на сортировку сообщений по хронологии.
"Принимай критику только от тех, кто добился больше тебя"(c)