Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Контрактники...

1798  1 2 3 4 5 6 7 все
Murr патриот07.02.20 12:23
Murr
07.02.20 12:23 

Контрактники...


Где-то в Сентябре прошлого года заводик начал искать шаражку для перетаскивания имеющегося кода под новую версию.

В том что купили просто нет нужной функциональности.


Где-то в Ноябре меня... или мне... показали двоих мужичков и сказали - они будут делать... перевод СКЛ с Оракла на Постгрее.

Приступили. Делали.


Пару месяцев делали. И пару месяцев Я просил доступ к тому что они делают.

Не давали.

На этой неделе - дали.

Посмотрел.

Выпал в осадок... полностью...


Ребятки два с гаком месяца занимались именно переводом СКЛ...

При этом ребяток совершенно не интересовало как будет работать переведенный СКЛ на новой базе.


И вот сегодня меня спрашивают

- Когда будет работать такой-то отчет?

- Ну так его же "перевели"...

- Да, но там такая галиматья... а по нему надо в следующую среду подать данные в налоговую... или оштрафуют...


Полез смотреть.

Есть превосходно переведенный СКЛ. Синтаксически полностью правильный.

И только одно плохо - в базе НЕТ таблицы с которой он должен брать данные...

Есть замена... но там вместо 5 полей - 20 полей... что куда мапится - непонятно...

Выборок там дохрена...


Ну и как с этим обходится?

#1 
NoName99 посетитель07.02.20 16:47
NEW 07.02.20 16:47 
в ответ Murr 07.02.20 12:23

#2 
Murr патриот07.02.20 17:10
Murr
NEW 07.02.20 17:10 
в ответ NoName99 07.02.20 16:47

Если бы...


Ковыряю что они сделали...


Есть у меня "исполнительная система", которой передаются команды.

Задизайнена на поддержку множества типов серверов.

Для работы со специфическим сервером необходимо написать реализацию одного интерфейса под специфику сервера.

Специально для засранцев каждая версия лежит в отдельной папке и имеет свой намеспаце.

Написать новую... хммм... ну 20 минут... втыкнуть в систему - еще 10-ть... если понимаешь как и куда...


Смотрю код... плакать хочется...

МсСкл-ный вариант... переделан... на Постгрее...

Оракловский вариант... переделан... на Постгрее...

Постгреешный вариант - не написан...


Пишу Постгрешный вариант, коммичу... было - вчера...

Сегодня - ор - у нас не работает... крутим все обратно...

Спрашиваю - что именно не работает... тесты написаны... пусть не полные, но все же...

Тишина... просто откатились на то, что покурочили... бо, у них работает...


Спрашиваю - вот там у нас есть очень непростой моментик - репорт работает

с базой на другой фабрике... да-да, сервер - наш, логины - тут, данные - там...

Как будете решать этот вопрос?

Ответ - не будем! Мы не будем работать с другими типами баз...

Идиоты... там те же базы... только как Я к ним подлючаюсь ребятки не понимают...


А так - ну да... был баг... нашел Я его - было НЕВ вместо ОВЕРРИДЕ...

Так теперь закоммитить невозможно - откачено...


#3 
Программист коренной житель10.02.20 11:41
NEW 10.02.20 11:41 
в ответ Murr 07.02.20 12:23

1)

сказали - они будут делать... перевод СКЛ с Оракла на Постгрее.Приступили. Делали.

2)

Ребятки два с гаком месяца занимались именно переводом СКЛ...


3)

Есть превосходно переведенный СКЛ. Синтаксически полностью правильный.


Ну и как с этим обходится?

Заплатить за отлично сделанную работу и уволить того, кто не смог сформулировать контрактникам ТЗ :)


#4 
Murr патриот10.02.20 13:23
Murr
NEW 10.02.20 13:23 
в ответ Программист 10.02.20 11:41

Заплатить за отлично сделанную работу и уволить того, кто не смог сформулировать контрактникам ТЗ :)

-----

Я таки двумя руками ЗА... вопрос лишь в том кто будет писать следующее ТЗ? - Я - точно не буду...

#5 
Murr патриот10.02.20 13:33
Murr
NEW 10.02.20 13:33 
в ответ Murr 10.02.20 13:23

Н.П.


Снова билли...


Есть у вбшников такая фича - собирают СКЛ-строку в теле метода... Ну да - вб6-лике...


Полтора дня ковырял кривой после перевода СКЛ пока не получил что-там-надо...


Копи-пасщу текст запроса в отдельное окно вб-редактора и начинаю процедурку редактирования - доублекуот спереди, синглекуот на доублекуоте в именах, закрывающий доублекуот плюс амперсенд плюс ундерскоре...


Сделал...


Запуск... компилируется без ошибок - все куотики на местах... и облом... трасе не дает никаких ошибок...


Разбираюсь что за хрень происходит... выдергиваю построенный СКЛ непосредственно перед выполенением, кидаю в дбфорге студию... ошибка в СКЛ...


Смотрю подстановку параметров - все чисто...


Разбираю по частям.... мать... мать... мать...

На каждый мой внутренний селект при пасте текста в окно редактора мудрый билли добавил словечко КАСЕ...


#6 
Программист коренной житель10.02.20 13:34
NEW 10.02.20 13:34 
в ответ Murr 10.02.20 13:23
Я таки двумя руками ЗА... вопрос лишь в том кто будет писать следующее ТЗ? - Я - точно не буду...

Это шутка?

Ну наймите консалтеров, которые напишут следующее ТЗ :) В чем проблема? Правда им тоже надо будет как-то внятно сформулировать ТЗ :)


Ну а так, придется вам идти к результату итеративно. Сейчас вот вы уже поняли, в чем была проблема - значит надо исправить ТЗ и нанять новых консатреров. После завершения работы, если не будет достигнут нужный результат, надо будет опять сделать работу над ошибками, понять проблемы, сделать новое ТЗ и опять нанять консалтеров. И так до тех пор, пока не получите нужный результат :)
#7 
Программист коренной житель10.02.20 13:36
NEW 10.02.20 13:36 
в ответ Murr 10.02.20 13:23

Ну и откой для себя UnitOfWork + Repository :) Должно помочь как при миграции с одной БД на другую, так и с тестируемостью ;)

#8 
Murr патриот10.02.20 14:06
Murr
NEW 10.02.20 14:06 
в ответ Программист 10.02.20 13:34

Это шутка?

-----

Не-а...

Через пару месяцев начну жестко пинать местных чиновников на предмет выдачи документов и меня вышлют... де(рь)мократия же европоцкая...

Кто будет этим заниматься далее - не интересно... безум


пока не получите нужный результат

-----

Нужный мне результат - возможность получать ирландскую пенсию в другой стране - будет достигнут через 5-с-половиной месяцев независимо от процесса... смущ

#9 
Murr патриот10.02.20 14:14
Murr
NEW 10.02.20 14:14 
в ответ Программист 10.02.20 13:36

UnitOfWork + Repository

-----

Да, если оно умеет делать две вещи:

- работать с вб6-лике спагетти кодом

- убеждать консалтеров его пользовать...


Пойми простую вещь - Я не могу убедить консалтеров "починить" ими уже сломанное...

Основной критерий - у них работает. А с изменениями - не работает...

При этом тестов нет вообще... а в тестах - засада - динамическое переключение между ливе и сандбох... ими сломанное...

На вопрос об том как они собираются проверять работоспособность кода имеется вполне нормальный ответ - загрузим и ЮЗВЕРЬ все проверит...

#10 
AlexNek патриот10.02.20 14:19
AlexNek
NEW 10.02.20 14:19 
в ответ Программист 10.02.20 13:36

Очень сложно представить как это должно помочь

https://medium.com/@utterbbq/c-unitofwork-and-repository-p...

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

Главное, что выкинуть всё нельзя и написать нормально по новой.

#11 
Программист коренной житель10.02.20 15:09
NEW 10.02.20 15:09 
в ответ Murr 10.02.20 14:06
Нужный мне результат - возможность получать ирландскую пенсию в другой стране - будет достигнут через 5-с-половиной месяцев независимо от процесса...

Ну так что же ты рыпаешься? :) ИБД тебя спесет :)

#12 
Программист коренной житель10.02.20 15:14
NEW 10.02.20 15:14 
в ответ Murr 10.02.20 14:14
- работать с вб6-лике спагетти кодом

Внутри репозиторий делать что хочешь. Вообще не принципиально.


- убеждать консалтеров его пользовать...

А их не надо убеждать.

Ты даешь им скомпилированную библиотеку с тестами и интерфейс. Задача консалтеров сделать так, чтобы все тесты были зелеными.


При этом тестов нет вообще...

Ну так это твой косяк, а не консалтеров.


На вопрос об том как они собираются проверять работоспособность кода имеется вполне нормальный ответ - загрузим и ЮЗВЕРЬ все проверит...

А как иначе, если у тебя нет тестов? :)

#13 
Программист коренной житель10.02.20 15:18
NEW 10.02.20 15:18 
в ответ AlexNek 10.02.20 14:19

Очень сложно представить как это должно помочь

Очень просто:

1) делается 100500 тестов, которые покрывают текущую реализацию кода.

2) консалтера выдаются скомпилироввые тесты, интерфейсы и старый код

3) консалтеры делают новый код и этот новый код должен проходить через все 100500 тестов.

Профит.

#14 
Murr патриот10.02.20 15:27
Murr
NEW 10.02.20 15:27 
в ответ Программист 10.02.20 15:09

ИБД тебя спесет

-----

Хи-хи... в отсутствие чего-нибудь горячего последние два месяца Я читал художественную литературу... хаха

А ты - ИБД...


Вот текущий вопроск возник:

- приходит заказик от старой клиентской компании... обычная CSV...

- конвертится моей конвертилкой во что-то консумабальное новой системой...

- система без проблем кушает предложенное...

Потом начинается крик - цены не те, много руками делать...

Разбираемся...

- сгенеренный файлик - идеален... ну оно и понятно - была бы ругань при импорте...

- цены реально выставлены "не те"...

- цены забитые в систему - те...

Ну и?


А проблемка - элементарная - при смене системы в тихую сменили номер системы ценообразования... был - 11, стал - 21...

Ну а вся "внешняя" информация осталась "11"...

Вот сижу, жду когда кто-то из операторов вгонит в систему ордерок с "21" и скажет то ли это...

Думаю, что на следующей неделе получу ответ... если, конечно, поторопятся...

ИБД? спок

#15 
Murr патриот10.02.20 15:37
Murr
NEW 10.02.20 15:37 
в ответ Программист 10.02.20 15:14

Ты даешь им скомпилированную библиотеку с тестами и интерфейс.

-----

А где Я ее возьму?

Я ее за 6+ лет так и не сумел сделать - слишком объемная задача... практически втрое превышающая написание новой системы...


Но у меня с контрактниками не в этом проблема.

С ними проблема в том, что один из них что-то понимает, но ничего делать не хочет, а второй - что-то делает, но не понимает...

Получается, что что-то делается, но нихрена не получается... ну или хрень получается...


Я вот сейчас запихал два новых проекта - по одному на каждую новую базу... плюс по одному проекту с тестами...

Все - по старой схеме - часть тестов - деструктивные, часть - работает с живой системой.

У меня - вполне управляемо...

А у них - не пойдет и снова все похерят отказавшись от тестов...

#16 
Murr патриот10.02.20 15:45
Murr
NEW 10.02.20 15:45 
в ответ Программист 10.02.20 15:14

А как иначе, если у тебя нет тестов? :)

-----

А с ответом - не работает! - А ты ожидаешь что-то еще?


Оцени - поменялась не только СУБД как таковая - самым серьезным образом поменялась структура таблиц в базах.

Где и что лежит... не говоря об том откуда, куда и как пересчитывается - можно только догадываться...

Поковырял выданную доку... не совпадает... настучал в почту вопрос - Что за фигня? - получил ответ - У вас ДРУГАЯ версия!!!

- А доки где? - Хммм... Я посмотрю, может есть где...

Это по основной системе - у нас еще 2+Гб самописного кода...


это твой косяк

-----

А Я их нанимал? смущ

#17 
AlexNek патриот10.02.20 16:16
AlexNek
NEW 10.02.20 16:16 
в ответ Программист 10.02.20 15:18
Очень просто:1) делается 100500 тестов

считаем в году около 250 часов 100500/250=402 года. Можно делать и по 4 теста в час, но вроде тоже не спасёт смущ

#18 
Программист коренной житель10.02.20 16:16
NEW 10.02.20 16:16 
в ответ Murr 10.02.20 15:37
А где Я ее возьму? Я ее за 6+ лет так и не сумел сделать - слишком объемная задача...

:) Ну нормально! :) Т.е. ты за 6+ лет не потрудился создать что-то, чем можно было бы измерить работоспособность кода, а в неработающем коде виноваты консалтеры :)

Ты там 6+ лет фигачишь новый код, у тебя там 2Гб исходников, херова прорва требований (которые вы, я уверен, даже не предоставили консалтерам) и теперь ты ожидаешь, что консалтеры за 2 месяца переработают весь этот твой спагети-код? При этом ТЗ для консалтеров, я уверен, выглядит так "Сейчас все работает. Надо чтобы все работало также, только с новой БД" :)

И при этом консалтеры еще и виноваты? :) Офигенски конечно :)


практически втрое превышающая написание новой системы...

Я тебя умоляю :)


С ними проблема в том, что один из них что-то понимает, но ничего делать не хочет, а второй - что-то делает, но не понимает...
Получается, что что-то делается, но нихрена не получается... ну или хрень получается...

Так и будет. Надо четко формулировать задание. И, плюс к этому, нужны четкие критерии оценки качества. А у тебя таких критериев нет. Точнее говоря, твоя оценка - "Чтобы у клиента все работало" :) И после этого ты удивляешься тому, что тебе предлагают выкатить обнову и посмотреть будет ли работать у клиента :)


#19 
Программист коренной житель10.02.20 16:22
NEW 10.02.20 16:22 
в ответ Murr 10.02.20 15:45
Оцени - поменялась не только СУБД как таковая - самым серьезным образом поменялась структура таблиц в базах.
Где и что лежит... не говоря об том откуда, куда и как пересчитывается - можно только догадываться...

Да хоть что там поменялось. Почитай про UnitOfWork + Repository, там нет привязки к структуре БД, к таблицам, к типу БД итд. БД - это черный ящик и за интерфейсами может быть все, что угодно. Хоть генератор сущностей.


А Я их нанимал?

Ты не сделал тесты ;) Твой косяк в том, что ты не можешь оценить работу консалтера. Твоя единственная метрика "работает / не работает".

#20 
Программист коренной житель10.02.20 16:28
NEW 10.02.20 16:28 
в ответ AlexNek 10.02.20 16:16
считаем в году около 250 часов

Да ладно :) Я могу легко делать по 200 часов в месяц :)

100500/250=402 года.

100500 - это идиоматическое выражение (Стопицот)


#21 
Murr патриот10.02.20 16:56
Murr
NEW 10.02.20 16:56 
в ответ Программист 10.02.20 16:16

Т.е. ты за 6+ лет не потрудился создать что-то, чем можно было бы измерить работоспособность кода

-----

Ну Я еще разок спрошу - а это входило в круг моих обязанностей?

Ну и почему не потрудился - потрудился... в тех частях над которыми трудился вполне потрудился.

Ну так и это похерили...


выглядит так "Сейчас все работает. Надо чтобы все работало также, только с новой БД"

-----

Вероятно.

И что ожидается?


Я тебя умоляю :)

-----

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

Ну скажем под тот, который Я сейчас чиню - Р20.

Там не много - два поля, кнопка и рассчетик с задействованием десятка... может полутора... таблиц...

А когда сделаешь - Я тебе спасибо скажу... смущ



Надо четко формулировать задание.

-----

Конечно - надо. А кто будет это делать? безум


#22 
Murr патриот10.02.20 17:02
Murr
NEW 10.02.20 17:02 
в ответ Программист 10.02.20 16:22

Хоть генератор сущностей.

-----

Угу...

Я на "смотринах" заикнулся об переходе в к объектной форме и ЕФ6...

Ну так 2 месяца держали подальше...


Ты не сделал тесты ;)

-----

А должен был?


Твой косяк в том, что ты не можешь оценить работу консалтера.

-----

А мне кто-то поставил такую задачу?

У меня по прежнему - поддержка системы и программирование в освободное от этого время...

Просто вижу что качество системы откатывается назад... и не чувствую от этого удовлетворения... хммм

#23 
Программист коренной житель10.02.20 17:13
NEW 10.02.20 17:13 
в ответ Murr 10.02.20 16:56
Ну Я еще разок спрошу - а это входило в круг моих обязанностей?

Это вопрос к твоему работодателю :)

Для меня написание тестов - неотемлемая часть программирования.

И если начальство по какой-то причине против написания тестов, то это просто некомпетентные люди.


Вероятно.
И что ожидается?

Кем ожидается?

Что вы ожидаете я не знаю. Но очевидно, что ничего хорошего вы не получите :)

А консалтеры ожидают вменяемых требований и критериев. Которым можно будет проверить реботу.


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

Присылай описание задачи и подписанный договор. Стоимость моего часа при работе над твоим проектом 150Евро. (обсуждение ТЗ - это тоже работа и за это тоже будет выставлен счет)


А когда сделаешь - Я тебе спасибо скажу...

За спасибо я не работаю.


Конечно - надо. А кто будет это делать?

Тут есть варианты. Этим может заниматься

1) тот, кто ПМ

2) ты

3) консалтеры (не важно что это за консалтеры - те, кто будет потом имплементировать или другие)

4) кто-то еще из твоей конторы

#24 
Программист коренной житель10.02.20 17:17
NEW 10.02.20 17:17 
в ответ Murr 10.02.20 17:02
А должен был?

Кто писал код, тот и должен был сделать тесты.


А мне кто-то поставил такую задачу?

Так и хрен ли ты тогда возмущаешься? :)


У меня по прежнему - поддержка системы и программирование в освободное от этого время...
Просто вижу что качество системы откатывается назад... и не чувствую от этого удовлетворения...

Ну так и запимайся своим делом и не лезь туда, где ни за что не отвечаешь.

#25 
Murr патриот10.02.20 17:40
Murr
NEW 10.02.20 17:40 
в ответ Программист 10.02.20 17:13

Для меня написание тестов - неотемлемая часть программирования

-----

У маня... на каком-то уровне... тоже.

Вот только до меня ваяли без тестов...


просто некомпетентные люди

-----

Уровень их компетентности Я оцениваю по выплачиваемой мне зарплате.

В этом плане - вполне компетентны.



Кем ожидается?

-----

Не знаю.

Меня просто ставят перед фактом что в суппорте будет новый код... и его надо будет фиксить... Как Р20 сегодня...



описание задачи

-----

Уже изложено выше - Р20. Другой информации у меня нет - Я с ним еще не работал.

Насколько Я понял ты его за пару минут обернешь в интерфейсный враппер и нарисуешь тесты...

Об пиве (там какие-то 5 при твоем рэйте) не переживай - в лучшем пабе поставлю...



Этим может заниматься

-----

Второй пункт вычеркни - меня этим с Июня надо было озадачивать...

Остальные могут делать все что считают нужным...


#26 
Murr патриот10.02.20 17:50
Murr
NEW 10.02.20 17:50 
в ответ Программист 10.02.20 17:17

Кто писал код, тот и должен был сделать тесты.

-----

Ошибаешься...

тесты, нормально, должен писать другой прогер...

желательно даже чтобы пишущий код не видел тестера вообще и писал до или в параллель...

Одна проблема - Я тут ОДИН... и даже если захочу отдать что-то на сторону - не имею никакой документации для этого...


Так и хрен ли ты тогда возмущаешься?

-----

А что еще делать?



Ну так и запимайся своим делом

-----

К несчастью то Р20, об котором Я пишу, не дает правильного результата после перевода...

А вот это уже падает ко мне и надо... вчера... т.е. завтра-послезавтра уже будут штрафы...

Точнее - не будет штрафов - сделал свое дело - починил... как умел... не уверен что все тип-топ...

Теперь сижу на попе ровно и возмущаюсь что от консалтеров не получен работающий репортик... смущ

И, кстати, перековыриваю спагетти в объекты... и к ним делаю тесты...


#27 
Программист коренной житель10.02.20 18:01
NEW 10.02.20 18:01 
в ответ Murr 10.02.20 17:40
Уровень их компетентности Я оцениваю по выплачиваемой мне зарплате.
В этом плане - вполне компетентны.

Я оценивию компетентность по знаниям в предметной области, а не по толщине бюджета :)

Кроме того, зарплату мне выплачивает один отдел, а шеф мой из другого :) Так что не смотря на хорошую зарплату, мой шеф остается некомпетентным :)


Меня просто ставят перед фактом что в суппорте будет новый код... и его надо будет фиксить... Как Р20 сегодня...

Ну и отлично. Консалтеры-то тут при чем? :) И при чем тут вообще весь этот топик?


Уже изложено выше - Р20. Другой информации у меня нет - Я с ним еще не работал.
Насколько Я понял ты его за пару минут обернешь в интерфейсный враппер и нарисуешь тесты...
Об пиве (там какие-то 5 при твоем рэйте) не переживай - в лучшем пабе поставлю...

Сорян, но за еду/пиво я тоже не работаю :) Цену я озвучил. За другую цену я не готов погружаться в твой проект :) Уж слишком ты его тут распиарил :D


Второй пункт вычеркни - меня этим с Июня надо было озадачивать...
Остальные могут делать все что считают нужным...

Ну так что ж ты паришься? Сиди ровно до июня и ковыряйся в этой двухгигабайтной лапше :)


Одно тут совершенно очевидно - консалтеры в этой ситуации вообще никак не виноваты :)

#28 
Murr патриот10.02.20 18:21
Murr
NEW 10.02.20 18:21 
в ответ Программист 10.02.20 18:01

Я оценивию компетентность по знаниям в предметной области

-----

У меня нет знаний в их предметной области. Получать их Я не планирую.


Консалтеры-то тут при чем?

----

При том, что похерили что было живого... и матюгаться Я на это буду долго...


Ну так что ж ты паришься?

-----

Ну а хрена мне их недоработки СЕЙЧАС валятся?

Вот и парюсь-матерюсь... вместо того чтоб книжку читать... спок

#29 
AlexNek патриот10.02.20 19:27
AlexNek
NEW 10.02.20 19:27 
в ответ Программист 10.02.20 16:28
100500 - это идиоматическое выражение

Один фиг, порядок думаю как раз тот который коту нужен смущ

Вот смотри, тебе дали стопицот линий спагетти кода, который должен работать "постоянно правильно".

Как ты при этом собираешься делать тесты?

К тому же, что именно надо не знает никто - нужно как было раньше спок

#30 
  moose коренной житель10.02.20 20:46
NEW 10.02.20 20:46 
в ответ Murr 07.02.20 12:23

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


в одном проекте мне показали чувака, который был ответственным за чекин моих изменений. я к нему дважды обращался с вопросами, оба раза получал неправильные ответы, правильных от него же приходилось добиваться.


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


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


мурр, вам строго запретили с ними контактировать? или их против вас настроили? или что вам мешало с ними выпить по чашке пыва?

вот это что означает?

Я просил доступ к тому что они делают. Не давали.

даже не знакомили? или следили, с кем вы и о чем?


#31 
Программист коренной житель11.02.20 08:59
NEW 11.02.20 08:59 
в ответ Murr 10.02.20 18:21
При том, что похерили что было живого...

Ты сам сказал, что они все правильно перевели.


и матюгаться Я на это буду долго...

Ну это понятно :D Но в этом же не контрактники виноваты :) Также как и Билли не виноват в твоих матюках :) Просто тебе нравится матюкаться :D


Ну а хрена мне их недоработки СЕЙЧАС валятся?

Такое впечатление, что это у тебя первая работа и ты ответственнен за все :)

Если появилась какая-то проблема, то ты

1) пишешь е-мыл с уточняющими вопросами

2) если получен ответ и ты можешь двигаться дальше, то делаешь дальше. гото 4

3) пока нет ответа читаешь книжку.

4) если нет, то пишешь уточняющий е-мыл. гото 2 :)

5) решаешь проблему


Если где-то появляется начальник и начинает требовать, то говоришь, что ждешь ответа. И скидываешь ему всю переписку. Можешь изначально ставить начальника в СС.

#32 
Программист коренной житель11.02.20 09:01
NEW 11.02.20 09:01 
в ответ AlexNek 10.02.20 19:27
Вот смотри, тебе дали стопицот линий спагетти кода, который должен работать "постоянно правильно".

Тестируются фичи, а не строички кода.


К тому же, что именно надо не знает никто - нужно как было раньше

Значит сначала нужно собрать требования.


#33 
Murr патриот11.02.20 11:08
Murr
NEW 11.02.20 11:08 
в ответ Программист 11.02.20 08:59

Ты сам сказал, что они все правильно перевели.

-----

Они сделали синтаксически-правильный перевод.

Но это совсем не означает, что то что они выдали дает тот же результат, что и предыдущая система.


Но в этом же не контрактники виноваты

-----

Угу... Матюкаться это не мешает...



Если появилась какая-то проблема, то ты

-----

Выполняю п.3. безум

Все остальное делаю когда поручено.

Неприятность в том, что незнакомый мне код в результате работы этих ребят не стал лучше -

это то же спагетти, только с положенным на него нерабочим склом...


п.5 появляется только когда поручают что-то горящее, как Р20... смущ



#34 
Murr патриот11.02.20 11:30
Murr
NEW 11.02.20 11:30 
в ответ Программист 11.02.20 09:01

Значит сначала нужно собрать требования.

-----

Каким образом?

Есть под 500 работников обученных выполнять работу.

Они знают КАК надо делать их работу.

В процессе этого КАК - используют функционал - поставленную систему плюс 2 Гб самописного спагетти.

ЧТO именно они делают - они не знают. Они знают КАК.

Что именно они используют - тоже не имеют никакого понятия.

Выкопать требования - это значит в деталях выяснить ЧТО делается на каждом рабочем месте.

У тех, кто знает ЧТО они делают это займет порядка пары недель... и не факт что будет правильно...

и не факт что то что будет получено можно привязать к имеющейся системе.

У тех кто не знает - можно выкопать только из спагетти-кода... там 2+ Гб...


Ну так каким образом делать будем?

#35 
Murr патриот11.02.20 11:31
Murr
NEW 11.02.20 11:31 
в ответ Программист 11.02.20 09:01

Тестируются фичи, а не строички кода.

-----

Вообще-то, чтобы тестировать фичи - надо иметь эти самые фичи.

А в наличиии - спагетти...

#36 
Программист коренной житель11.02.20 11:49
NEW 11.02.20 11:49 
в ответ Murr 11.02.20 11:30
Ну так каким образом делать будем?

Ты как маленький :)

Ладно, говорю как я это делаю у себя.

1) беру некий код и смотрю что он делает. пытаюсь понять use-case'ы

2) делаю тесты на каждый use-case

3) добиваюсь, чтобы тесты были зелеными

4) добавляю пограничные состояния (очевидные)

5) добиваюсь, чтобы тесты были зелеными

6) говорю, что тесты созданы и код работает правильно

7) если приходит какой-то баг, то пишу тест с условиями в этом баге

8) убеждаюсь, что тест красный

9) гото 5.


Иногда бывает так, что при создании теста для какого-либо use-case'а в голову приходят другие use-case'ы. Тогда добавляю тесты и для них. Результат предполагаю сам исходя из логики программы. Если тест зеленый, то оставляю его. Если тест красный, то пытаюсь найти требования для данного сценария. Если требования найдены, то привожу тест в ссоответствие с требованиями и делаю этот тест зеленым. Если требования найти не получается, то исключаю тест из списка (но не удаляю) до тех пор, пока не появится баг и требования таки будут сформулированы.


Кто и как там работает и сколько там сотрудников меня совершенно не интересует.

#37 
Murr патриот11.02.20 12:15
Murr
NEW 11.02.20 12:15 
в ответ Программист 11.02.20 11:49

1) беру некий код и смотрю что он делает. пытаюсь понять use-case'ы

-----

Вот взял ты некий код.

Юсе-касов там один - две даты и кнопочка - можно вбить и давануть.

Результат - тоже известен - будет дампнут ехцел-файлик с результатом.

Открытой функциональности в коде нет - вся упакова в приватность.


Тест Я написал за 2 минуты.


А дальше что?


7) если приходит какой-то баг, то пишу тест с условиями в этом баге

-----

Да, приходит баг - в результирующий файлик НЕ содержит ожидаемой информации.

Пояснить что за информация клиент не может - просто не знает.

Знает, что всегда была, а сейчас - нету. Что с этим делать он не знает.


Что дальше?


Если ожидается что у меня будет время на выяснение деталей - напрасно -

у меня будет еще с десяток задач которые требуют почти немедленного реагирования.

Время, потребное на анализ данной проблемы путем просмотра спагетти-кода - от 2 недель

до пары лет. Больше 3-х часов подряд, если отложить то что можно отложить, у меня никогда

не будет.


пытаюсь найти требования для данного сценария.

-----

Ну тест красный так как исследуемый заказ прошел обработку и покоится в архиве.

Вышеозначенный файлик содержал какую-то информацию об ордере, его части, или процессе,

или еще бог знает об чем и сейчас ее там нету, а следующая будет через 3-7 месяцев.

Куда и какая информация писалась в процессе - точно не известно. Кое-что - да, есть.

Но не все. тем более, что все только что поменялось...

#38 
Программист коренной житель11.02.20 12:58
NEW 11.02.20 12:58 
в ответ Murr 11.02.20 12:15
Вот взял ты некий код. Юсе-касов там один - две даты и кнопочка - можно вбить и давануть.Результат - тоже известен - будет дампнут ехцел-файлик с результатом.Открытой функциональности в коде нет - вся упакова в приватность.Тест Я написал за 2 минуты.А дальше что?

Дальше надо перестать валять дурачка.

Если результат - это саличие ексель-файла, значит твой код работает правильно.

Если результат - какие-то данные в эксель-файле, то проверять надо содержание эксель-файла.


Половина работы по написанию теста заключается в ответе на вопрос "Что я хочу протестировать?"

Тест который ты напишешь за 2 минуты будет тестировать совсем не то, что надо. Так что этот тест - говно :)

И юз-кейс там не один. И это не "две даты и кнопочка". А такой вот твой взгляд на проблему и приводит к тому, что у тебя там 2Гб спагетти кода и хер поймешь что там происходит.


Да, приходит баг - в результирующий файлик НЕ содержит ожидаемой информации.
Пояснить что за информация клиент не может - просто не знает.
Знает, что всегда была, а сейчас - нету.
Что с этим делать он не знает.

Что дальше?

Все просто, если клиент не знает, чего там не хватает, то с чего он взял, что этого там нет? Говоришь ему, что информация в файле есть и все. Пусть либо формулирует, что ему там нужно, либо пользуется тем, что было регенерировано.

Если клиент ожидает какую-то информацию, то он знает что они там ожидает.


Ну тест красный так как исследуемый заказ прошел обработку и покоится в архиве.Вышеозначенный файлик содержал какую-то информацию об ордере, его части, или процессе,или еще бог знает об чем и сейчас ее там нету, а следующая будет через 3-7 месяцев.Куда и какая информация писалась в процессе - точно не известно. Кое-что - да, есть.Но не все. тем более, что все только что поменялось..

Это что за поток сознания? Тесты не должны зависеть ни от каких ордеров. Для исполнения теста должны быть созданы условия. И тест этот должен быть зеленым всегда.

#39 
AlexNek патриот11.02.20 13:19
AlexNek
NEW 11.02.20 13:19 
в ответ Программист 11.02.20 09:01
Значит сначала нужно собрать требования.

Вы видимо на заводе никогда не работали. Я тоже, но провел там некоторое время для проекта. Да и немного помню кошкину ситуацию.


Систему в полном объеме не знает никто. Даже если ты делаешь чего-то для одного рабочего места тебе будут говорить о детали А, а то что там могут делать деталь Б и С можно узнать случайно, а можно и нет.

И это так, довольное грубое описание.


Тестируются фичи, а не строчки кода.

К сожалению, в наследство получаешь код, а что он делает нужно уже разбираться самому.

И не обязательно, что можно вообще написать хотя бы юнит тест к нужному фукнционалу.

#40 
Программист коренной житель11.02.20 13:29
NEW 11.02.20 13:29 
в ответ AlexNek 11.02.20 13:19
И не обязательно, что можно вообще написать хотя бы юнит тест к нужному фукнционалу.
Да и немного помню кошкину ситуацию.

Да ничего необычного в его ситуации нет.


Систему в полном объеме не знает никто.

Да и ради бога :) У меня на текущем проекте тоже самое :) Никому и не нужно знать всю систему.


Даже если ты делаешь чего-то для одного рабочего места тебе будут говорить о детали А, а то что там могут делать деталь Б и С можно узнать случайно, а можно и нет.

И что? Сделал ты для детали А - протестировал и все работает - отлично. Если про делали Б и С ты ничего не узнал - отлично. Если узнал, то дополняешь тесты для этих деталей. Никто не требует моментального покрытия всего функционала.

И не обязательно, что можно вообще написать хотя бы юнит тест к нужному фукнционалу.

Это да. Но для таких случаев придумали рефакторинг. Ну и таки есть тестовые фреймфорки, которые подменяют код ;) Правда платные. Так что вполне вероятно, что это вопрос инструментария.

Опять же, кроме юнит-тестов есть еще и интеграционные и системные тесты.

#41 
Murr патриот11.02.20 14:56
Murr
NEW 11.02.20 14:56 
в ответ Программист 11.02.20 12:58

Если результат - какие-то данные в эксель-файле, то проверять надо содержание эксель-файла.

-----

Каким образом проверять содержание ехцел-файла?

Тебе русским языком написано:

- пользователь НЕ знает что там должно быть.

- код построения находится в приватных функциях.

- внешний интерфейс - два поля (типа Дата) и кнопа, результат - файл.


И юз-кейс там не один. И это не "две даты и кнопочка".

-----

Тебе скриншотик дать? смущ



с чего он взял, что этого там нет

-----

Потому как его шеф сказал ему - Бу-бу-бу...

А когда его шеф говорит ему - Бу-бу-бу - в файлике должны быть данные...

С этими данными нужно проделать 1., 2., 3... или 4., 5 - если весто Бу-бу-бу услышал Бу-бу-ба...

и поместить результат в другую форму и нажать другой кнопарик (этого кода нет)...

Но данных в файлике нет...


Пусть либо формулирует

-----

Смешно...

Он НЕ знает ЧТО он делает - он знает КАК он должен делать - читать, вписать, нажать, читать, нажать, читать, вписать, нажать, читать, вписать, нажать...

И так - 8 часов в сутки... чем быстрее - тем больше зарплата... за формулирование - не платят...


#42 
AlexNek патриот11.02.20 14:57
AlexNek
NEW 11.02.20 14:57 
в ответ Программист 11.02.20 13:29

Теоретически, полностью с вами согласен. Но практически, обычно бывают нюансы.


Если про делали Б и С ты ничего не узнал - отлично. Если узнал, то дополняешь тесты для этих деталей.

Есть только маленький нюанс совместная обработка А и Б, в данной реализации, невозможна.


Но для таких случаев придумали рефакторинг.

Ну я хочу глянуть на рефакторинг 10-летнего монолитного спагетти кода, когда при этом приложение должно быть всегда в рабочем состоянии.


Опять же, кроме юнит-тестов есть еще и интеграционные и системные тесты.

Ну вот есть софт, управляет железом и получает оттуда же данные. Чтобы промоделировать железо нужно писать докторскую, не говоря уже о том как "перецепить" соединение с железом.

Ваши действия?

#43 
Murr патриот11.02.20 15:06
Murr
NEW 11.02.20 15:06 
в ответ Программист 11.02.20 12:58

Если клиент ожидает какую-то информацию, то он знает что они там ожидает.

-----

Ты действительно не понимаешь?

Сидит Патрик. Сельский. Полностью от сохи.

Он знает, что в файлике есть клеточка из которой он должен взять что там есть

и поместив это форму нажать кнопарь. Все, ничего больше он не знает...

Просто человеко-"автомат" по перемещению данных из клеточки в форму.

Проблема - клеточка - пуста.


#44 
Murr патриот11.02.20 15:15
Murr
NEW 11.02.20 15:15 
в ответ Программист 11.02.20 13:29

Никому и не нужно знать всю систему.

-----

Есть в системе календарик смен.

там пустяки - начало-окончание и немного дополнительной фигни.

Единствення проблема - сделано неудобно.

Я поковырялся и написал намного более удобную фиговинку...

заодно и глюки пофиксил и тесты написал... даже жизнеспособность

в базе проверяется...

Внедрять? улыб

#45 
Murr патриот11.02.20 15:27
Murr
NEW 11.02.20 15:27 
в ответ AlexNek 11.02.20 14:57

на рефакторинг 10-летнего монолитного спагетти кода

-----

Примерно 20-летнего... и минимум 5-к прогеров разной квалификации...

Но самое то - при активном и постоянном изменении требований...


Чтобы промоделировать железо нужно писать докторскую, не говоря уже о том как "перецепить" соединение с железом.

-----

Ну это пустяки... совершенные пустяки...

пишем управляющее воздействие как ключ

возвертаем чего там железо должно вернуть...

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

#46 
AlexNek патриот11.02.20 16:43
AlexNek
NEW 11.02.20 16:43 
в ответ Murr 11.02.20 15:27
Ну это пустяки... совершенные пустяки...

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

#47 
Программист коренной житель11.02.20 16:58
NEW 11.02.20 16:58 
в ответ Murr 11.02.20 14:56
Каким образом проверять содержание ехцел-файла?

Открываешь ексель-файл и читаешь его. В чем проблема? Если смог записать, значит и прочитать можешь.


- пользователь НЕ знает что там должно быть.

Значит пользователь НЕ знает, есть там это или нет.


- код построения находится в приватных функциях.

Это не важно.


- внешний интерфейс - два поля (типа Дата) и кнопа, результат - файл.

Это тоже не важно.


Тебе скриншотик дать?

Нафига мне твой скриншот? Ты же сам не знаешь, как отличить ошибку от корректной работы :) И не знаешь как узнать правильно отработала твоя функция или нет.


Потому как его шеф сказал ему - Бу-бу-бу...

т.е. его шеф знает, что должно быть в файлике.


Но данных в файлике нет...

Есть! Просто он не знает об этом :)


Он НЕ знает ЧТО он делает - он знает КАК он должен делать - читать, вписать, нажать, читать, нажать, читать, вписать, нажать, читать, вписать, нажать...
И так - 8 часов в сутки... чем быстрее - тем больше зарплата... за формулирование - не платят...

А на то, чтобы маякнуть тебе и сказать "у меня тут нет данных", у него, значит время есть и это время даже оплачивается :D :D :D


Ну-ну...

#48 
Программист коренной житель11.02.20 17:12
NEW 11.02.20 17:12 
в ответ AlexNek 11.02.20 14:57
Есть только маленький нюанс совместная обработка А и Б, в данной реализации, невозможна.

Ну значит будет либо А и о Б думать не надо, либо будет Б и не надо думать об А :)

В чем проблема?


Ну я хочу глянуть на рефакторинг 10-летнего монолитного спагетти кода, когда при этом приложение должно быть всегда в рабочем состоянии.

Ну так никто не рефакторит все за раз. Частями, там где это возможно. А в рабочем состоянии оно должно быть после мерджа. При этом рабочесь состояния можно оценить только одним способом - протестировав.


Чтобы промоделировать железо нужно писать докторскую, не говоря уже о том как "перецепить" соединение с железом.

Это кто тебе сказал такую ерунду? :) Железо для тестов симулируется довольно просто. Тут же нужно симулировать состояние железа. Наверное ты как-то не так понимаешь слово сочетание "симуляция железа" :)

Симуляция для стресс-теста уже сложнее, но тоже до докторской там далеко.


Ваши действия?

Я сделаю симулятор железа :) Так же как я делал симулятор для System.IO.Directory, System.IO.DriveInfo, симулятор системы видео анализа и симулятор карточных игр для стресс-тестов :) Уверяю тебя, это совсем не трудно ;)


#49 
Программист коренной житель11.02.20 17:16
NEW 11.02.20 17:16 
в ответ Murr 11.02.20 15:06
Сидит Патрик. Сельский. Полностью от сохи.
Он знает, что в файлике есть клеточка из которой он должен взять что там есть
и поместив это форму нажать кнопарь. Все, ничего больше он не знает...
Просто человеко-"автомат" по перемещению данных из клеточки в форму.
Проблема - клеточка - пуста

.Ну вот тебе и тест кейс:

1) система находится в состоянии Х

2) клеточка YZне должна быть пуста


Вот и делаешь тест:

а) инициализируешь систему в состоянии Х

б) генерируешь файл

в) проверяешь клеточку YZ


Все :)

#50 
Программист коренной житель11.02.20 17:17
NEW 11.02.20 17:17 
в ответ Murr 11.02.20 15:15
Внедрять?

Да мне плевать :)

#51 
AlexNek патриот11.02.20 18:22
AlexNek
NEW 11.02.20 18:22 
в ответ Программист 11.02.20 17:12
В чем проблема?

А том что должны и А и Б должны обрабатываться в данной одной реализации. И не различными частями.


Ну так никто не рефакторит все за раз. Частями, там где это возможно.

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

Единственный выход - переписать всё с нуля, заложив правильную архитектуру вместо никакой.

#52 
AlexNek патриот11.02.20 18:41
AlexNek
NEW 11.02.20 18:41 
в ответ Программист 11.02.20 17:12
Железо для тестов симулируется довольно просто.

железо разное бывает смущ

Набросать сотню кнопочек для эмулятора: дверь открыта, воздух поступает, штырь в позиции А и т.п. вполне можно. Можно даже сэмулировать как продукт по всей цифровой цепочке проходит.

А вот с многоканальным аналогом в реальном времени с обратной связью уже не очень просто.

Засунул враппер на входы и выходы - уже не работает, так как время и так было на пределе.


Наверное ты как-то не так понимаешь слово сочетание "симуляция железа"

возможно. Только получить чистый синус нафиг не надо.

#53 
Murr патриот11.02.20 18:48
Murr
NEW 11.02.20 18:48 
в ответ Программист 11.02.20 16:58

Открываешь ексель-файл и читаешь его. В чем проблема? Если смог записать, значит и прочитать можешь.

-----

И что Я ТАМ должен читать?

Там, обычно, до десятка пагей забитых цифирьками. Что именно они обозначают Я не знаю. Патрик - тоже не знает.

Что именно Я должен в них читать?


И ты опять не хочешь понимать - кучка спагетти породила ехцел-файл.

Спагетти - не мой - унаследованный от прогера, которй свихнулся на кодинге этого спагетти...



Значит пользователь НЕ знает, есть там это или нет.

-----

Ты буквы от пустого места отличать умеешь? Вот и пользователя этому обучили.

Что означают цифро-буквы он не знает.


Ты же сам не знаешь, как отличить ошибку от корректной работы

-----

Именно.

Единственный для меня способ - редуцировать код до уровня когда Я его буду понимать.

Попутно обвешивая понятые части тестами.

Сколько-то - сделано. Остаток - слишком велик для одного.


И не знаешь как узнать правильно отработала твоя функция или нет.

-----

Нее, не знаю. Тем более, что функция - приватная и не моя.

А должен? Если - должен - то откуда Я это должен знать?


маякнуть тебе

-----

Мне - редко. В основном только по моим наработкам. Там тоже не мало, но все же объектная реализация - могу трекировать возникающие ошибки по частям.

В основном идет непосредственному начальнику, потом еще начальнику, потом по цепочке вниз...

Ко мне это доходит в виде - "в Р20 нет нужных данных".

Ну а Р20 - два поля, кнопа и файл на выходе... спок

#54 
Murr патриот11.02.20 18:56
Murr
NEW 11.02.20 18:56 
в ответ Программист 11.02.20 17:12

В чем проблема?

-----

Самая простая - и А, и Б, и В - имеют индексы - А22, Б33... значения индексов ограничиваются... размером диаппазона 8хДецимал...

Если проще - практически каждое изделие - уникально...


Частями, там где это возможно.

-----

Нормальное спагетти тебе давно не попадалось...

#55 
  moose коренной житель11.02.20 21:14
NEW 11.02.20 21:14 
в ответ Murr 11.02.20 18:56, Последний раз изменено 11.02.20 21:14 (moose)

вот и бери этих контрактников. да фак их всех разом!

муррррррррр... : )

#56 
Программист коренной житель12.02.20 09:06
NEW 12.02.20 09:06 
в ответ AlexNek 11.02.20 18:22
А том что должны и А и Б должны обрабатываться в данной одной реализации. И не различными частями.

Я все еще не понял проблему.

Предположим есть 2 детали - А и Б

И есть всего 3 варианта:

1) А и Б всегда делаются на разных рабочих местах и на этих рабочих местах установлено разное ПО (ПО все заранее знает о детали). - тут все понятно, есть только одна деталь и под нее написан софт.

2) А и Б всегда делаются на разных рабочих местах и на этих рабочих местах установлено одинаковое ПО (ПО все заранее знает о детали) - тут тоже все ясно, есть 2 детали и ПО конфигурируется под конкретную деталь

3) А и Б могут делаться на одном рабочем месте (ПО должно определить какую деталь делать) - тут тоже все ясно :) должны быть какие входные признаки для определения типа детали.


Других вариантов вроде как нет. О каком из этих 3-х вариантов ты говоришь?


Единственный выход - переписать всё с нуля, заложив правильную архитектуру вместо никакой.

Для того, чтобы переписать систему с нуля нужно четкое понимание необходимости этого действия + экономическая целесообразность :)

Никто не будет переписывать систему до тех пор, пока сопровождение обходится дешевле, чем написание новой.

#57 
Программист коренной житель12.02.20 09:10
NEW 12.02.20 09:10 
в ответ AlexNek 11.02.20 18:41
А вот с многоканальным аналогом в реальном времени с обратной связью уже не очень просто.

Это больше похоже на крупный тест всей системы. Тут другие подходы и технологии. И другая частота запуска тестов.


Для тестирования логики все это не нужно.

#58 
Программист коренной житель12.02.20 09:20
NEW 12.02.20 09:20 
в ответ Murr 11.02.20 18:48

И что Я ТАМ должен читать?

Тоже самое, что и Патрик :) Ты дам читаешь "нечто"... скажем, какую-то циферку. Какая разница "что"? Патрик же тоже не знает "что" это такое. Он знает, что в этой клетке "должна быть циферка".

Вот и твой тест должен действовать также:

а) открыл эксель файл

б) прочитал значение в поле XY

в) проверил циферка ли это.

Если циферка, то тест зеленый и Патрик доволен.

Если там пусто или не циферка, то тест красный и Патрик расстроен.


Все. Что еще тебе надо?


И ты опять не хочешь понимать - кучка спагетти породила ехцел-файл.
Спагетти - не мой - унаследованный от прогера, которй свихнулся на кодинге этого спагетти...

Это вообще не важно. Тебе надо убедиться, что этот спагетти-код породил циферку в поле XY. И всем наплевать как он это сделал.

Ты буквы от пустого места отличать умеешь? Вот и пользователя этому обучили.

Если тебя этому тоже обучили, то и ты можешь определить пусто там или нет.


Что означают цифро-буквы он не знает.

Это и не важно.

#59 
Murr патриот12.02.20 11:37
Murr
NEW 12.02.20 11:37 
в ответ Программист 12.02.20 09:20

Все. Что еще тебе надо?

-----

Мне, вообще-то, платят не за то, что циферька есть, а за то, что она есть и что она правильная...

Причем правильная ожидается даже в том случае если в оригинальном варианте она не правильная.

Да-да, даже в том случае когда ни Я, ни Патрик не знаем что она обозначает...


Вот сейчас в Р20 выяснилось, что данные по некоторым клиентам отсутствуют.

Ну да - нету ничего в клеточках...

Что именно чинить надо?

Напомню - два поля, кнопа и файл...

Внутри - спагетти... которое должно работать с другой СУБД и базой другой структуры....


И всем наплевать как он это сделал.

------

Когда - сделал - всем точно наплевать КАК.

Ты мне расскажи что тестить и как фиксить когда он НЕ сделал...



Это и не важно.

-----

Хи-хи...

Всегда упускаешь один фактор... ничего не важно - ни что есть в думпнутом ехецеле, ни как считалось... до тех пор пока станки не простаивают.

А для того чтобы они крутились - должна быть нужная Патрику цифирька...

#60 
Murr патриот12.02.20 11:39
Murr
NEW 12.02.20 11:39 
в ответ Murr 12.02.20 11:37

Но то, На что Я ругаюсь выглядит следующим образом:

- что-то было переработано...

- какие-то тесты написаны...

И теперь контрактниками все похерено... безум

#61 
Программист коренной житель12.02.20 13:01
NEW 12.02.20 13:01 
в ответ Murr 12.02.20 11:37
Мне, вообще-то, платят не за то, что циферька есть, а за то, что она есть и что она правильная...

:) Ну вот, типичная проблема Murr'а :)

Только что ты говорил, что в поле просто что-то должно быть. Теперь тебе нужно, чтобы в поле было что-то правильное, но при этом никто не знает как это правильное получается. Ну ОК, значит любое число - правильное. Ни Патрик, ни кто-либо еще не может определить правильное это число или нет, значит правильное - любое число :)


Причем правильная ожидается даже в том случае если в оригинальном варианте она не правильная.

:) Ась? У тебя там еще какой-то "оригинальный вариант" появился? :) При таких скиллах формулирования задачи не приходится удивляться двум гигабайтайтам спагетти-кода :D


Вот сейчас в Р20 выяснилось, что данные по некоторым клиентам отсутствуют.
Ну да - нету ничего в клеточках...
Что именно чинить надо?
Напомню - два поля, кнопа и файл...

Очевидно, что кроме "двух полей, кнопки и файла" есть еще как минимум "данные по каким-то там клиентам" :)


Внутри - спагетти... которое должно работать с другой СУБД и базой другой структуры....

Ну очевидно, что проблема либо в спагетти, либо в данных.


Когда - сделал - всем точно наплевать КАК.
Ты мне расскажи что тестить и как фиксить когда он НЕ сделал...

Уже 100500 раз сказал.

Циферка есть? -->> сделал

Циферки нет? -->> не сделал, надо искать почему.

Циферка есть, но не та:

Какая циферка должна быть?

- не знаю, но эта циферка не правильная. -->> эта циферка правильнная. сделал.

- такая-то циферка, получается так-то -->> не сделал, надо искать почему.


Все остальное - твои фантазии.


Всегда упускаешь один фактор... ничего не важно - ни что есть в думпнутом ехецеле, ни как считалось... до тех пор пока станки не простаивают.
А для того чтобы они крутились - должна быть нужная Патрику цифирька...

Ну вот видишь. Значит чем больше будут простаивать станки, тем быстрее у тебя будет ответ "как получить нужную Патрику циферку" :) Все просто.

#62 
Murr патриот12.02.20 13:51
Murr
NEW 12.02.20 13:51 
в ответ Программист 12.02.20 13:01

Ну очевидно, что проблема либо в спагетти, либо в данных.

-----

Ну либо в системе и еще вспышки на солнце мешают.

Какую именно часть гамна месить для фиксинга? Гамна - много...


есть еще как минимум "данные по каким-то там клиентам"

-----

Нету.

Есть два поля, кнопа и файл. Все.

"Появление" всего остального - результат копания спагетти-кода...

Но это - долго...



-->> эта циферка правильнная.

-----

Правильная, однако, та циферька, при которой произведена заказанная продукция,

Других правильных цифирек не существует.

Что именно ты натестишь - без разницы, если на выхлопе "не то"...



Теперь тебе нужно, чтобы в поле было что-то правильное, но при этом никто не знает как это правильное получается.

-----

Не мне - заводикам, чтоб производилось что заказано... именно об этом ты все время забываешь...

В остальном - да, не знают. Умеют делать то чему обучены. Обычно - bез понимания сути выполняемой работы.

#63 
Программист коренной житель12.02.20 14:17
NEW 12.02.20 14:17 
в ответ Murr 12.02.20 13:51
Какую именно часть гамна месить для фиксинга? Гамна - много...

Ты понимаешь, что для того, чтобы пофиксить багу нужно для начала ее повторить. Если ты не можешь повторить багу, то ты не можешь гарантировать, что ты эту багу пофиксил.

Этот постулат понятен?


Нету.

Ну как всегда :)

Ты сам писал:

Вот сейчас в Р20 выяснилось, что данные по некоторым клиентам отсутствуют.


Есть два поля, кнопа и файл.
Все."Появление" всего остального - результат копания спагетти-кода...
Но это - долго...

Замени этот спагети код на генератор случайных чисел. Все равно всем наплевать, что там за числа и никто не знает как они появились. Заодно и код сократится с 2Гб до пары строк.


Не мне - заводикам, чтоб производилось что заказано... именно об этом ты все время забываешь...

Мммм... т.е. там еще что-то заказано... наверное еще и данные заказа где-то есть... хотя нет... какие данные?

Там только "два поля, кнопа" и файл на выходе! Генератора случайных чисел тебе за глаза хватит!

#64 
AlexNek патриот12.02.20 16:18
AlexNek
NEW 12.02.20 16:18 
в ответ Программист 12.02.20 09:06
Предположим есть 2 детали - А и Б

вообще то - это как бы абстрактное рассуждение, чтобы было проще в описании.

А так, идея в следующем - Пока новые хотелки укладываются в выбранный алгоритм/принцип работы, то все хорошо.

Но часто бывает так, что новые хотелки идут полностью вразрез с тем, что уже сделано.


Никто не будет переписывать систему до тех пор, пока сопровождение обходится дешевле, чем написание новой.

Во.... что значит будет с нашим старым спагетти кодом? Будем добавлять новое спагетти смущ

#65 
Программист коренной житель12.02.20 16:25
NEW 12.02.20 16:25 
в ответ AlexNek 12.02.20 16:18
Но часто бывает так, что новые хотелки идут полностью вразрез с тем, что уже сделано

И что? Ну бывает.


Во.... что значит будет с нашим старым спагетти кодом? Будем добавлять новое спагетти

Ну или будем постепенно менять спагети на нормальный код ;) Сей процесс входит в рефакторинг.

#66 
AlexNek патриот12.02.20 16:39
AlexNek
NEW 12.02.20 16:39 
в ответ Программист 12.02.20 09:10
Это больше похоже на крупный тест всей системы.

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


Для тестирования логики все это не нужно.

Ну покажите мне, что нужно тестировать в этой аналоговой системе? Где найти там логику?


Ну вот другой примерчик. Есть у меня цифровой выход:0 -шатун в положении А, 1-шатун в положении Б, есть два концевика на цифровые входы. Будет ли достаточно теста когда 0 на выходе то 1 на входе А, когда 1, то единичка на входе Б?

Вроде бы логика.

#67 
AlexNek патриот12.02.20 16:46
AlexNek
NEW 12.02.20 16:46 
в ответ Программист 12.02.20 16:25
Ну или будем постепенно менять спагети на нормальный код

Замечательно, давайте начнём.

Для начала хочется чтобы намеспейсы соответствовали именам подкаталогов и чтобы не было немецких названий классов.

Согласны?


#68 
Murr патриот12.02.20 17:31
Murr
NEW 12.02.20 17:31 
в ответ Программист 12.02.20 14:17

Этот постулат понятен?

-----

Разумеется.

Так же как и черный ящик из двух полей, кнопы и файла...

И, кстати, в данной системе все так и останется - Я не буду знать правильно ли Я починил код...

Но починить надо правильно...


Ты сам писал:

-----

Да, доковырялся.


Замени...

-----

...и запусти в производство.

Хорошо что тебе не надо отвечать рубликом за брак...



данные заказа где-то есть...

-----

... в базе, структуру которой Я не знаю...


Вот сегодня доковырялся...

Есть поле, куда пишется ИД клиента. Нормальное, целочисленное. Подставляется везде где надо.

А иногда оператору лениво делать поиск клиента и он оставляет поле незаполненным.

А вмеесто заполнения поля пишет какую-нибудь фигню в поле ПсевдоИДКлиента.

Потом заполняет другое поле куда вписывает Имя Клиента ассоциируемое с клиентом...

В Р20 как раз имена клиентов потребовались.

В процесс выяснилось... отсутствие имен у клиентов, которые полностью прописаны в базе...

Фича!!! Блин...

Оператор на память помнит клентские ИДшки и вместо поиска вбивает в псевдоИД, а поле с именем - не заполняет...

В результате в файлике имени клиента нету, а есть пустая клеточка...

Ну и как это протестить и пофиксить?

Да-да - оператора убивать нельзя... и проверку на вводе добавить нельзя - не наш код...

Пришлось извращаться... потому как контрактники до таких "мелочей" не докапывались - скл отработал - значит все ест'...


#69 
Программист коренной житель12.02.20 17:52
NEW 12.02.20 17:52 
в ответ AlexNek 12.02.20 16:39
Нужно чтобы софт можно было протестировать без наличия и включения всего оборудования.

Еще раз: полноценный системный тест - это долго и дорого. Да, системные тесты надо делать. Да, симуляция оборудования - дорогая и сложная задача (я видел шкаф, который симулирует автомобиль :) и это очень дорогой шкаф). Но это не тоже самое, что юнит-тесты. Юнит-тесты тестируют логику. Они должны быть быстрыми и должны исполняться после каждой сборки. Если после каждой сборки запускать системные тесты, то ты никогда ничего не выпустишь :) (у нас на предыдущей работе все автоматизированные системные тесты работали несколько дней!)

Я это все к тому, что надо отделять мух от котлет и не смешивать понятия.

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

Если твоему шефу до лампочки, что именно он тестирует - деталь или всю конструкцию, то шеф суется в область, в которой он нихрена не понимает.


Ну покажите мне, что нужно тестировать в этой аналоговой системе? Где найти там логику?

От куда мне знать, где там логика? :) Я даже не представляю себе что за сферического коня в вакууме ты привел в качестве примера :)


Ну вот другой примерчик. Есть у меня цифровой выход:0 -шатун в положении А, 1-шатун в положении Б, есть два концевика на цифровые входы. Будет ли достаточно теста когда 0 на выходе то 1 на входе А, когда 1, то единичка на входе Б?Вроде бы логика.

Начнем с банального вопроса: что ты хочешь тут протестировать?


#70 
Программист коренной житель12.02.20 17:55
NEW 12.02.20 17:55 
в ответ AlexNek 12.02.20 16:46
Для начала хочется чтобы намеспейсы соответствовали именам подкаталогов и чтобы не было немецких названий классов.
Согласны?

Ну если хочется, то переименовывай. Сделай только code freeze чтобы потом с конфликтами не затрахаться.

#71 
Программист коренной житель12.02.20 18:12
NEW 12.02.20 18:12 
в ответ Murr 12.02.20 17:31
Разумеется.

Отлично.


Я не буду знать правильно ли Я починил код...
Но починить надо правильно...

Ну значит можно не чинить, а просто сказать, что код работает правильно и все :) Ведь проверить правильность кода все равно нельзя.


А иногда оператору лениво делать поиск клиента и он оставляет поле незаполненным.
А вмеесто заполнения поля пишет какую-нибудь фигню в поле ПсевдоИДКлиента.
Потом заполняет другое поле куда вписывает Имя Клиента ассоциируемое с клиентом...
Оператор на память помнит клентские ИДшки и вместо поиска вбивает в псевдоИД, а поле с именем - не заполняет...
Да-да - оператора убивать нельзя...

Ты же свистел, что Патрик обучен хаха


Пришлось извращаться... потому как контрактники до таких "мелочей" не докапывались

С какого ляда им докапываться до мелочей? У них есть простая задача - перевести SQL запросы. Все. Задачи "найти нестыковки в работе Патрика и требованием к системе" перед консалтерами не стоит.


скл отработал - значит все ест'...

так и есть.


У нас тут недавно история была. Приходит ко мне шеф и говорит, что мол соседняя команда взяла наш симулятор и обнаружила, что симулятор наш генерирует неправильные сообщения. Типа так нельзя и бла-бла-бла.

Я шефу и говорю, что этот симулятор - наша внутренняя программулинка, для использования вне нашей команды не заточена и генерирует все так, чтобы мы могли протестировать свой софт. Хотят использовать наше приложение - нет проблем, пусть рисуют запрос и раскрывают нам детали работы своего модуля, чтобы мы могли генерировать то, что надо. Нет запроса с деталями - мы не будем гадать что и как надо им там генерировать и пусть они все сроем идут на юххх.

И все, воплей о неправильных данных больше нет :) И мы ничего не меняли. Все спокойны и довольны :)

#72 
Murr патриот12.02.20 20:03
Murr
NEW 12.02.20 20:03 
в ответ Программист 12.02.20 18:12

Ведь проверить правильность кода все равно нельзя.

-----

Ну наконец-то начинает доходить, что спагетти надо разгребать и делать правильно работающий код...


Ты же свистел, что Патрик обучен

-----

Их на заводике под 600...

Какие-то - недоучены... какие-то - обучены... какие-то - переучены...

Видимо тот который вбивал - переучен...

И какого Патрика откуда брать, чему учить и куда сажать - не моя задача...


У них есть простая задача - перевести SQL запросы. Все.

-----

А что ты понимаешь под переводом скл?

Именно - чтобы был тот же результат выполнения.

А результата - нету... код синтаксически корректен, но получает данные из несуществующей таблички...



так и есть.

-----

Не-а... просто ошибку выполнения где-то внутри спагетти подавили... в тупую - тру-катч-игноре...

Есть простое требование - работать с базой через определенную библиотеку... она ОДНА на все приложения...

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

Мне то с присланного кода что? Кроме головняка по необходимости поддерживать дополнительный код и отсутствия

стандартной обработки ошибок - ни-че-го...

А ведь вторую неделю пишу - верните код для Оракла и Мс СКЛ и начинайте пользоваться управляемым в ран-тайме

коннектом... и тесты прогоните.

Бестолку...



Все спокойны и довольны

------

Что именно у тебя останавливается если они не получили что им надо?

#73 
AlexNek патриот12.02.20 23:55
AlexNek
NEW 12.02.20 23:55 
в ответ Программист 12.02.20 17:52
Если ты так любишь аналогии с производства,

Не, я просто хотел остаться в муркиной среде смущ


Начнем с банального вопроса: что ты хочешь тут протестировать?

А ничего смущ потому как в данном конкретном случае нет в этом смысла.

Это же вроде Вы любите все, что движется тестировать, а все что не движется толкнуть и потом тестировать. спок

Был проект в котором специально взяли стороннего писальщика юнит тестов - это у него такая специализация была. Ну так там и код так писали, чтобы его можно было тестировать.

Интеграционные тесты тоже на ночь только запускались.


#74 
AlexNek патриот12.02.20 23:58
AlexNek
NEW 12.02.20 23:58 
в ответ Программист 12.02.20 17:55
Ну если хочется, то переименовывай.

То есть это у вас не первый шаг рефакторинга - соответствие code style guide?

#75 
Программист коренной житель13.02.20 09:53
NEW 13.02.20 09:53 
в ответ Murr 12.02.20 20:03
спагетти надо разгребать и делать правильно работающий код...

Зачем? Разгребать надо, когда есть понимание, что такое правильные результат и как он получился.

А у тебя никто правильного результата не знает и никто не знает, как этот правильный результат получить :) А если никто не знает правильного результата, значит правильный результат можно назначить самому. Например заявить, что текущий результат - правильный :) И пусть докажут, что это не так.


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

Да нет, просто у вас на заводе нет никаких требований к софту. А у тех, кто пишет софт нет яиц чтобы эти требования получить.


А что ты понимаешь под переводом скл?

Был SQL-запрос со спецификой оракла - стал со спецификой другой БД.


Именно - чтобы был тот же результат выполнения.
А результата - нету... код синтаксически корректен, но получает данные из несуществующей таблички...

Тот же результат показывают тесты. Берешь старый код и видишь, что все тесты зеленые. Потом берешь новый код и видишь, что все тесты зеленые - Результат выполнения не изменился, а значит работа выполнена. Если есть красные тесты, то просто не принимаешь работу до тех пор, пока тесты не станут зелеными.

Если у вас на заводе тестов нет, правильность написанного кода у вас проверяется компилятором, а работоспособность нового кода проверяется в боевых условиях, то вами управляют долбоёбы :( И консалтеры в этом не виноваты :)


Что именно у тебя останавливается если они не получили что им надо?

Эта программа эмулирует игровой зал казино. Если наш код не работает, то останавливается работа службы безопасности казино. Поэтому перед релизом все тестируется на тестовом стенде.

#76 
Программист коренной житель13.02.20 09:55
NEW 13.02.20 09:55 
в ответ AlexNek 12.02.20 23:55
А ничего смущ потому как в данном конкретном случае нет в этом смысла.

Если ты ничего не хочешь тестировать, то, очевидно, тест не нужен.


#77 
Программист коренной житель13.02.20 10:03
NEW 13.02.20 10:03 
в ответ AlexNek 12.02.20 23:58
То есть это у вас не первый шаг рефакторинга - соответствие code style guide?

Нет конечно.


1) если есть code style guide, то от куда взялись несоответствующие им имена?

2) понятно, что code style guide мог появиться уже после того, как часть кода была написана... но в этом случае code style guide относится к новому коду.

3) применять новые правила к старому коду - может обернуться очень большими затратами, поэтому нужны очень веские причины для того, чтобы начать приводить старый код в соответствие новым code style guide


#78 
Murr патриот13.02.20 10:30
Murr
NEW 13.02.20 10:30 
в ответ Программист 13.02.20 09:53

Разгребать надо, когда есть понимание

-----

А где его, понимание, взять?

600 Патриков, каждый умеет сделать работу на своем месте.

Что они делают - они не знают.

Откуда возьмешь понимание?


И пусть докажут, что это не так.

-----

Да элементарно - из станка вылезет что-то не такое как заказал заказчик.



Был SQL-запрос со спецификой оракла - стал со спецификой другой БД.

------

Повторюсь - поменялась не только СУБД, поменялась так же структура баз.

Т.е. есть развесистый на 2-3 страницы СКЛ в котором задействовано с пару десятков таблиц.

В лучшем случае в нем упоминаются 1-2 таблицы которых НЕТ в новой базе.

Где-то в спагетти коде ошибка выполнения данного запроса тру-катч-игнорится.

Об данной специфике ребятки были предупреждены.

Что будет результатом перевода?



Берешь старый код и видишь, что все тесты зеленые.

-----

Эээ... или Я чего-то не знаю, или где-то есть тестирующий код...

Блин, 15 лет лепили спагетти без тестов, а тут оказывается тесты есть...



то останавливается работа службы

-----

Т.е. не дав что нужно соседнему отделу вы таки остановили работу службы или всего предприятия?

И таки все были этим очень довольны и никих претензий?

Не ВЕРЮ, однако... (с) Станиславский, в исполнении чукчи...



то вами управляют долбоёбы

------

Угу... только вот оговоренную зарплату Я получаю в полном объеме и вовремя...

И это... не долбоебы, а Патрики... и между собой они нормально ладят...



#79 
Программист коренной житель13.02.20 11:19
NEW 13.02.20 11:19 
в ответ Murr 13.02.20 10:30
600 Патриков, каждый умеет сделать работу на своем месте.
Что они делают - они не знают.
Откуда возьмешь понимание?

Где-то должен быть Патрик-ПМ, который говорит остальным 598 Патрикам-Рабочис, куда и что надо вбивать. Этот один уникальный Патрик-ПМ знает, как получается значение Р20. Потому что именно этот уникальный Патрик-ПМ дал указание другому Патрику-программисту накалякать спагети-код, в котором ты теперь пытаешься разобраться. Вот этого уникального Патрика-ПМа тебе надо найти и все у него узнать. Ведь Патрик-программист не сам все это это придумал :)


Да элементарно - из станка вылезет что-то не такое как заказал заказчик.

Так никто ж не знает, что там заказал заказчик :) Значит он заказал то, что вылезло из станка.


Я уж не говорю о том, что проверять правильность кода на реальном станке - полнейший долбоебизм :)


Где-то в спагетти коде ошибка выполнения данного запроса тру-катч-игнорится.
Об данной специфике ребятки были предупреждены.

Если ты ожидаешь, что консалтеры в течении 2 месяцев должны были не только перевести SQL, но и разобраться в 2Гб твоего спагетти, которое создавалось 15 лет, то ты просто наивняк.

Я так понимаю, что критерием приема была успешная компиляция. Ну ты ее получил. Чего ты еще хочешь? К пуговицам претензии есть? А с твоим спагетти разбирайся сам. Ну или плати консалтерам за то, чтобы они разбирались.


Эээ... или Я чего-то не знаю, или где-то есть тестирующий код...
Блин, 15 лет лепили спагетти без тестов, а тут оказывается тесты есть...

Еще раз, для танкистов.

Как без тестов оценить качество перевода SQL запросов?

Процесс примерно такой:

1) найти консалтеров

2) дать им задание на перевод

3) получить сделанный код

4) подписать акт приема-передачи

5) заплатить консалтерам

6) выкатить изменения на реальный завод

Итак, на стадии 4 ты должен как-то измерить проделанную работу и либо подписать акт приема-передачи, либо потребовать исправления ошибок.

Рассказывай, как ты собираешься это делать.


Т.е. не дав что нужно соседнему отделу вы таки остановили работу службы или всего предприятия?

Написано же черным по белому - "служба безопасности". Казино работает всегда, даже если служба безопасности работать не может.

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


#80 
Murr патриот13.02.20 12:24
Murr
NEW 13.02.20 12:24 
в ответ Программист 13.02.20 11:19

Этот один уникальный Патрик-ПМ знает

-----

Увы - такого нету... и тебе об этом сказали нормальным русским языком...

Последним частично знающим был не Патрик, а Фридрих...

Но когда Фридрих попытался вместить необходимые знания предмета в свою голову для анализа чего и как - у него поехала крыша и поехал он с белым билетом по больничкам...


Так никто ж не знает, что там заказал заказчик

-----

Заказчик - знает... и дока от него на заказ - есть...

Нет - детального понимания процесса перехода от доков заказчика в цифирьку-буковку в Р20.



правильность кода на реальном станке

-----

Но продукция то идет... по моей вине за 6 лет простой был минут 20-ть...



Я так понимаю, что критерием приема была успешная компиляция.

-----

Я не знаю что было критерием - Я их не нанимал...



Как без тестов оценить качество перевода SQL запросов?

-----

Получением одинаковых результатов выполнения Р20-х из двух разных баз...

Сейчас, кстати, будет сложнее - базы уже месяц как рассинхронизированы...



Рассказывай, как ты собираешься это делать.

-----

Никак. Вообще не моя задача.

Моя задача - когда все примут - сопровождать и чинить то что не работает...



Написано же черным по белому

-----

Что если Я не починю... или починю не правильно... на выходе будет не то...

и в лучшем случае - просто простой завода, а в худшем - запоротый материал и куча зря потраченного рабочего времени.

И то, и другое - потерянные деньги.

Потому у меня ответа "это соседний отдел и МОЙ код для них не пойдет" - просто не существует.


#81 
Программист коренной житель13.02.20 12:39
NEW 13.02.20 12:39 
в ответ Murr 13.02.20 12:24
Последним частично знающим был не Патрик, а Фридрих...

Да хоть Ваня! Кто-то сказал ему как формируется поле Р20.


Нет - детального понимания процесса перехода от доков заказчика в цифирьку-буковку в Р20.

Ну что тут сказать? Так вам раздолбаем и надо :)


Получением одинаковых результатов выполнения Р20-х из двух разных баз...

Это будет уже после релиза. А баблосики заплатить надо до релиза. Так что не канает такая оценка :D Думай дальше :)


Моя задача - когда все примут - сопровождать и чинить то что не работает...

Ну вот и делай свою работу. А консалтеры свою работу сделали. И акт приема-передачи подписан. Значит работа исполнена в точности с требованием заказчика :) Работаешь на идиотов? - Страдай :) Тем более, что страдать тебе осталось уже немного :)


#82 
Murr патриот13.02.20 13:09
Murr
NEW 13.02.20 13:09 
в ответ Программист 13.02.20 12:39

Работаешь на идиотов? - Страдай :)

-----

Страдай - переводе с языка страны исхода - работай... :)


А баблосики

-----

Это не ко мне - свои Я получаю во время...



По сути проблемы - у тебя рецепта решения имеющихся проблем НЕТ.

У меня - тоже. Остается - разгребать спагетти...


Следующая задача - в Р20 посчитанная сумма какой-то фигни не совпадает с ожидаемой... либо исходные не правильные, либо фильтрация... бо, суммирование идет стандартной функцией...


А консалтеры пока могут подумать над

ERROR: 42703: column "rownum" does not exist

отчетик по выполнению "переведенного" скл у меня пришел - есть инфо

- откуда коннектились

- куда коннектились

- в какой момент возникла ошибка

- сама ошибка

- выполнявшийся скл...

все то, что консалтеры похерили в своей переработке...


#83 
AlexNek патриот13.02.20 15:57
AlexNek
NEW 13.02.20 15:57 
в ответ Программист 13.02.20 10:03
если есть code style guide, то от куда взялись несоответствующие им имена?

Пока этим не будет заниматься прога, никакого толка не будет.


но в этом случае code style guide относится к новому коду.

А старый получается пусть нечитаемым спагетти так и остается.

Во всяком случае, переформатирование кода не должно, ну абсолютно никак отражаться на его работоспособности.

С переименованием, да можно отхватить. Хотя хороший код должен быть резистент к переименованию или хотя бы иметь коммент, что данный класс имеет неявные связи с тем то и тем то.


применять новые правила к старому коду - может обернуться очень большими затратами

Так Вы же кричали, что спагетти нужно обязательно рефакторить, а "правила оформления" в это значит не входят?


#84 
Murr патриот13.02.20 16:12
Murr
NEW 13.02.20 16:12 
в ответ AlexNek 13.02.20 15:57

Хотя хороший код должен быть резистент к переименованию или хотя бы иметь коммент, что данный класс имеет неявные связи с тем то и тем то.

-----

У меня голубая мечата не резистентный к переименованиям код, а хотя бы возможность начать искать тупые дубли кода в уже вынутом из спагетти...

#85 
Программист коренной житель13.02.20 16:44
NEW 13.02.20 16:44 
в ответ AlexNek 13.02.20 15:57
Так Вы же кричали, что спагетти нужно обязательно рефакторить, а "правила оформления" в это значит не входят?
Пока этим не будет заниматься прога, никакого толка не будет.

Ну как минимум человечество придумало code review :)

И таки да, можно прикрутить статический анализатор кода. Не вижу никакой проблемы.


А старый получается пусть нечитаемым спагетти так и остается.

Старый может заменять на новый по мере исправления ошибок. Не обязательно все делать одним махом.


Так Вы же кричали, что спагетти нужно обязательно рефакторить, а "правила оформления" в это значит не входят?

Рефакторить нужно то, что мешает.


#86 
AlexNek патриот13.02.20 16:45
AlexNek
NEW 13.02.20 16:45 
в ответ Murr 13.02.20 16:12
AlexNek патриот13.02.20 17:13
AlexNek
NEW 13.02.20 17:13 
в ответ Программист 13.02.20 16:44
Рефакторить нужно то, что мешает.

А Вам значит не мешает, грубо говоря, код без отступов?

Или то что в каждом новом файле оформление кода тоже совершенно различное.


Ну как минимум человечество придумало code review

Да много еще чего интересного есть спок

Так хоть бы код нормальный был

#88 
Murr патриот13.02.20 17:47
Murr
NEW 13.02.20 17:47 
в ответ AlexNek 13.02.20 16:45

А толку? Времени все одно нету... хммм

#89 
AlexNek патриот13.02.20 17:54
AlexNek
NEW 13.02.20 17:54 
в ответ Murr 13.02.20 17:47
А толку?

Быть ближе к голубой мечте бебе

#90 
Murr патриот13.02.20 17:59
Murr
NEW 13.02.20 17:59 
в ответ Программист 13.02.20 16:44

Не обязательно все делать одним махом.

-----

Я выше спрашивал что делать с переработанным каленадариком смен...

И как-то внятно не прозвучало что делать с устраивающим кодом...


И таких "календариков" уже поднакопилось с вагончик и тележку...

и встроить их НЕЛЬЗЯ... не потому что работают не так, а потому что где-то в спагетти... а то еще и в работающем коде без исходников - такое тоже ест'... может быть кусок работающий со старой версией...

Это же СПА-ГЕТ-ТИ...

#91 
Murr патриот13.02.20 18:14
Murr
NEW 13.02.20 18:14 
в ответ AlexNek 13.02.20 17:54

Блин, ближе к голубой мечте...


прожка посчитала: - £27620.81

бух. сказала надо: - £26936.61


Ну и что с этим делать?


Обрезал весь обвес в имеющемся скле - оставил без чего не посчитать...

То без чего не посчитать - разобрал на составлающие с контролем каждого этапа фильтрации...

Проверил каждую подвыборку - вроде все нормально...

161 ордер

1462 позиции...

Сумма... £27620.81 - хи-хи (нервное)...


Пар уже кончился, но еще немного дыма в черепушке есть - не все остатки мозгов дотлелi...


Завтра, однако, продолжу потрошить код - есть маленький шанс что где-то не так вычислили минус-единицу коэффициента-множителя...


#92 
AlexNek патриот13.02.20 19:16
AlexNek
NEW 13.02.20 19:16 
в ответ Murr 13.02.20 18:14

А откуда бухгалтер знает сколько должно быть?

Не может ли она это сказать для одного заказа (для 10)?

Ты не пробовал сделать excel файл со всеми твоими цифрами и ей показать?

У неё же нюх на цифры должен быть.

Ты своей логикой неделю будешь искать, а она должна сразу сказать что вот тута таких цифр не бывает. При этом, почему, она не знает. Ну не было таких никогда.

#93 
Murr патриот13.02.20 20:58
Murr
NEW 13.02.20 20:58 
в ответ AlexNek 13.02.20 19:16

А откуда бухгалтер знает сколько должно быть?

-----

НЕЗ-ЗНА-ЮЮЮ...


Не может ли она это сказать для одного заказа (для 10)?

-----

Р20 - не по заказам, а по периодам.

Дополнительную фильтрацию по клиенту в скле Я делал - моя цифирька не поменялась.

Но идея попросить по-заказные цифирьки - здравая - добавить фильтрацию по заказу и сверить не сложно.


Ты не пробовал сделать excel файл со всеми твоими цифрами и ей показать?

-----

Ну так когда Я починил ИменаКлиентов ей пересчетный файлик пересылали - эта цифирька - ответ на ту пересылку...


Ты своей логикой неделю будешь искать

-----

Ну так это означает что Я буду на неделю ближе к дембелю... спок


При этом, почему, она не знает. Ну не было таких никогда.

-----

Это Я знаю и потому не тороплюсь - мне надо:

- знать что и как считается в Р20

- понимать где подкручивать

- иметь минимальный инструментарий для быстрой проверки.


Пока Я разобрал спагетти на классы и написал минимальные тесты.

По ним проверяется сколько есть по факту в выборке.

Вроде как правильно - т.е. шарповый код работает как должен.

Значит проблема либо в данных в базе, либо в переведенном и починенном скле...

Данные - живые - по ним выполнены/выполняются реальные заказы...

#94 
AlexNek патриот13.02.20 22:52
AlexNek
NEW 13.02.20 22:52 
в ответ Murr 13.02.20 20:58
Р20 - не по заказам, а по периодам.

ну попроси по дням разбивку. Хотя бы пару дней.

какие-то заказы могут совпадать, а какие то нет. Будет хоть от чего оттолкнуться


ей пересчетный файлик пересылали

А там есть Raw дата? И просили ее глянуть на валидность остальных полей?


знать что и как считается в Р20

ну сам же сказал, что никто не знает. Но раз клиентам счета выставляют, значит что то откуда берут. Тащи бухгалтера на полиграф хаха

#95 
Программист коренной житель14.02.20 08:48
NEW 14.02.20 08:48 
в ответ AlexNek 13.02.20 17:13
А Вам значит не мешает, грубо говоря, код без отступов?

Ты это серьезно? Во-первых, студия сама устанавливает отступы. Во-вторых, настройки студии должны быть у всех одинаковые. В-третьих, если я не правлю код, то я функцию не трогаю и отступы мне не мешают.


Или то что в каждом новом файле оформление кода тоже совершенно различное.

Не мешает.

Мешает, если кто-то решит, что в каком-то файле неправильное оформление и решит исправить оформление на свой вкус. Вот это пипец как мешает.

#96 
Murr патриот14.02.20 10:04
Murr
NEW 14.02.20 10:04 
в ответ AlexNek 13.02.20 22:52

ну попроси по дням

-----

Нее, оказалось есть стандартная возможность получить отдельный заказ в деталях из системы... Вот сижу, жду...


А там есть Raw дата? И просили ее глянуть на валидность остальных полей?

-----

Есть там детальки.

А вот буха трогать не надо... это Я давно и крепко усвоил... надо решать проблему, а не дергать занятых людей...



ну сам же сказал, что никто не знает.

-----

Да.

Не было.

Но ведь Я его уже недельку ковыряю - кое-что начал понимать...

По крайней мере нет проблемы прочесть КАК считается... и можно додумкать что в результате должно быть...



Тащи бухгалтера на полиграф

-----

Ты таки хочешь чтобы меня уволили раньше срока...

Прогонять балду - могу - ИБД и никаких претензий. Особливо на фоне заваливающихся контрактников...

А вот если отсвечивать "не-по-де-лу" - пинка можно отхватить не вовремя... Ну его нафиг...


#97 
Murr патриот14.02.20 10:11
Murr
NEW 14.02.20 10:11 
в ответ Программист 14.02.20 08:48

если я не правлю код, то я функцию не трогаю и отступы мне не мешают.

-----

Певерь простой штуке - загрузив код в Студию ты уже меняешь его.

Ничего не меняя в логике, но дописав комментарий и, по случаю, убив и поставив обратно последнюю скобку получаешь переформатированный текст. Мой код станет менее понятен после таких ничего не меняющих манипуляций.


Не мешает.

-----

Бред.

В 20% случав "невозможности решения" задачи у студентов реальная проблема становилась понятной студенту после "стандартного" форматирования кода...

#98 
AlexNek патриот14.02.20 14:39
AlexNek
NEW 14.02.20 14:39 
в ответ Программист 14.02.20 08:48
Ты это серьезно?

ну не надо понимать всё так буквально.

Что сейчас может делать студия не имею никакого понятия, так как уж фиг сколько лет стоит решарпер и все правила вбиваются в него.


если я не правлю код, то я функцию не трогаю

ну это если команда хоть какая есть. А Мурка то один можно сказать.

А мне вот мешает что неправильно отформатировано смущ. Но да, в команде приходится не трогать, пока тикет на это не взял.


и решит исправить оформление на свой вкус.

Ну так вроде для это и есть правила.

#99 
AlexNek патриот14.02.20 14:43
AlexNek
NEW 14.02.20 14:43 
в ответ Murr 14.02.20 10:04
Ты таки хочешь чтобы меня уволили раньше срока...

неа.... а с кем же я тогда играться буду.хммм

Murr патриот14.02.20 15:13
Murr
NEW 14.02.20 15:13 
в ответ AlexNek 14.02.20 14:39

Что сейчас может делать студия не имею никакого понятия

-----

Может вызвать сторонний код при загрузке проекта. Любой. Прописывается вне Студии, в проекте.

AlexNek патриот14.02.20 15:20
AlexNek
NEW 14.02.20 15:20 
в ответ Murr 14.02.20 15:13
Может вызвать сторонний код при загрузке проекта.

Еще бы придумать зачем это мне нужно смущ

Murr патриот14.02.20 15:30
Murr
NEW 14.02.20 15:30 
в ответ Murr 14.02.20 15:13

И все же Я нашел невязку по суммам...


В Р20 все калькулируется исходя из данных заказа.

А потом у очередного Патрика есть возможность руками поменять рассчитанную сумму на любую другую...

Невязка - несколько заказов были просто обнулены...


А вот чего дальше делать... хммм... не знаю... вот тут уже без буха не обойдется...

AlexNek патриот14.02.20 18:54
AlexNek
NEW 14.02.20 18:54 
в ответ Murr 14.02.20 15:30
Невязка - несколько заказов были просто обнулены...

Так у тебя же сумма вроде больше была чем нужно

Murr патриот14.02.20 20:43
Murr
NEW 14.02.20 20:43 
в ответ AlexNek 14.02.20 18:54

Ну так у меня считается что там должно быть...

А результат - обнулили в ручную...

Так и получается - у меня - полные суммы, у буха - с обнулениями...

AlexNek патриот14.02.20 20:58
AlexNek
NEW 14.02.20 20:58 
в ответ Murr 14.02.20 20:43

Осталось только выяснить зачем обнулять.

Murr_0001 местный житель15.02.20 22:39
Murr_0001
NEW 15.02.20 22:39 
в ответ AlexNek 14.02.20 20:58

Не-а...

Зачем - не тот вопрос на который нужен ответ... тем более ответ Я знаю... когда прошлый раз разбирался с калькуляцией мне это пояснили - Патрик может сделать подарок клиенту... ну был большой/прибыльный заказ от клиента - почему бы не подарить мелочевку - 13.78 - в качестве поощрения агента...


Вопрос - Где в недрах базы сейчас скрывается информация об том, что цифирьку стоимости поменяли вручную... Не помню... года три прошло... просто не помню где копат'...

AlexNek патриот15.02.20 23:56
AlexNek
NEW 15.02.20 23:56 
в ответ Murr_0001 15.02.20 22:39
Где в недрах базы сейчас скрывается информация об том, что цифирьку стоимости поменяли вручную

Что то мне подсказывает что нигде. Может быть какая какая то премия.

Murr_0001 местный житель16.02.20 09:50
Murr_0001
NEW 16.02.20 09:50 
в ответ AlexNek 15.02.20 23:56

Что то мне подсказывает что нигде.

-----

В понедельник буду искать.

Посмотрю что есть в таблицах, посмотрю что есть в коде... в т.ч. в других эРах... ну напишу в суппорт вопросик...

Потом буду думать как посчитать правильно...

В общем - работы дохрена, книжку почитать некогда... безум

AlexNek патриот16.02.20 16:23
AlexNek
NEW 16.02.20 16:23 
в ответ Murr_0001 16.02.20 09:50
В понедельник буду искать.

Что то мне кажется, что эту фигню ты уже видел, но подумал, нафига такая хренотень.

Murr_0001 местный житель16.02.20 17:41
Murr_0001
NEW 16.02.20 17:41 
в ответ AlexNek 16.02.20 16:23

Вполне возможно... и даже - очень вероятно...

Скорее всего - даже пробовал изобразить объект Цены и Стоимость... но как всегда недостаток времени и избыток срочной работы не позволили довести "до ума" замысел...

Теперь придется рыть по-новой... спок

  moose коренной житель16.02.20 20:49
NEW 16.02.20 20:49 
в ответ Murr 14.02.20 20:43

вот же блать! какие суки - эти контрактники!

Murr_0001 местный житель17.02.20 15:42
Murr_0001
NEW 17.02.20 15:42 
в ответ Murr_0001 16.02.20 17:41

Ну вроде как все - контрактники спрыгнули - теперь надо разгребать что там наваяли...

По трем страничкам уже доложились - полный фэйл - одна совсем пустая, в другой - несколько полей не заполненy...

Murr_0001 местный житель18.02.20 15:05
Murr_0001
NEW 18.02.20 15:05 
в ответ Murr_0001 17.02.20 15:42, Последний раз изменено 18.02.20 15:05 (Murr_0001)

А мы перевели...


SELECT
ak.KOPF_FIRMA "site",
CASE ak.KUNR WHEN 0 THEN SUBSTR(aa.NAME,1,20) ELSE SUBSTR(ka.KU_NAME,1,20) END
"customerName",
CASE ak.AUF_OFF WHEN 0 THEN 'IN' ELSE 'CN' END "doc",
COALESCE(zk.ZK_RE_NR,-1) "documentNo",
COALESCE(zk.ZK_RE_BETRAG,0) "docValue",
COALESCE(zk.ZK_STEUER,0) "docVAT",
ROUND(ak.AUF_ENERGY_WGHT,3) "engy rate",
SUM(at.RG_ANZ) "qty",
ROUND(SUM(ak.AUF_ENERGY_WGHT*AP_WGHT_ENSRCH*at.RG_ANZ),2)
"engy",
ROUND(SUM(ap.SUM_NETTO*at.RG_ANZ),2) "net",
ak.KOPF_WA_MULTI "exch rate",
ak.KOPF_WA_CODE "curr",
ROUND(SUM(ak.AUF_ENERGY_WGHT*AP_WGHT_ENSRCH*at.RG_ANZ/ak.KOPF_WA_MULTI),2)
"localCurrencyEngy",
ROUND(SUM(ap.SUM_NETTO*at.RG_ANZ/ak.KOPF_WA_MULTI),2)
"localCurrencyNet"


FROM AUF_KOPF ak, AUF_POS ap, AUF_STAT at, ZAHL_KON zk, KUST_ADR ka, AUF_ADR aa
WHERE
FROM AUF_KOPF ak


INNER JOIN AUF_POS ap ON
ak.AUF_NR = ap.AUF_NR
AND ak.AUF_OFF IN (0,5)
INNER JOIN AUF_STAT at ON
AND ak.AUF_NR = at.AUF_NR
AND ap.AUF_POS = at.AUF_POS
AND ap.VARIANTE = at.VARIANTE
AND TO_CHAR(at.RG_NR) = REPLACE(TRANSLATE(zk.ZK_RE_NR,
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/*-+=!£$€%^&*()_?\|.,:;@{}[]#~ "',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X',NULL)
AND at.RG_NR > 0
AND at.RG_DAT BETWEEN <#= StartDate #> AND
<#= FinishDate #>
INNER JOIN ZAHL_KON zk ON
zk.ZK_HISTORY = 0
AND CASE ak.KUNR WHEN 0 THEN ak.KUNR_PSEUDO ELSE ak.KUNR END = zk.ZK_KU_LIEF_NR
LEFT JOIN KUST_ADR ka ON
AND ak.KUNR = ka.KU_NR
AND 0 = ka.KU_ADR_ART
AND 0 = ka.KU_VK_EK
AND ak.AUF_NR = aa.AUF_NR
AND 0 = ADR_ART


GROUP BY ak.KOPF_FIRMA,
CASE ak.KUNR WHEN 0 THEN SUBSTR(aa.NAME,1,20) ELSE SUBSTR(ka.KU_NAME,1,20) END,
CASE ak.AUF_OFF WHEN 0 THEN 'IN' ELSE 'CN' END,
COALESCE(zk.ZK_RE_NR,-1),
COALESCE(zk.ZK_RE_BETRAG,0),
COALESCE(zk.ZK_STEUER,0),
ak.AUF_ENERGY_WGHT,
ak.KOPF_WA_MULTI,
ak.KOPF_WA_CODE



И самое смешное - именно для этой выборки имеется написанный тест...

Murr_0001 местный житель20.02.20 20:35
Murr_0001
NEW 20.02.20 20:35 
в ответ Murr_0001 18.02.20 15:05

Твою и в душу, и в бога, и в мать... через колено на лепесточки... и чтоб повылазило...


В понедельник было сказано - все, закрыли...

Вчера вечером перегружался и забыл запустить ОутГлюк...

Сегодня вечером шеф спрашивает - а ты почту смотрел? - говорю - Нет, некогда, я и без нее уже не живой...

В почте лежит письмо - Где у тебя такой-то контрол?

А Я помню? У меня контролы, помимо общих, лежат в по-страничных дллках... а какая страница - не указано. Общие - либо в библиотеке, либо в папке ЮзерКонтрол...

Отписался.

Добавил пару вопросов

- Вот недельку назад рекомендовал откатится на корректную версию склного исполнителя... Сделали? Ну если нет, то вот архивчик - все должно идти через эту дллку...

- Я посмотрел библиотеку, нужную для Р04. Для нее нужные еще две. Вот самую последнюю сейчас тестирую и тест не проходит. Ну а раз не проходит - ничего работать не будет. Проблема - в скле использована чисто оракловская фича и аналога в постгрее нет - соответственно - сбой и никаких данных. Библиотека - общая, код должен использоваться в нескольких местах - во всех не будет работать. Вы тесты выполняете?


Ну да ладно - завтра надо придумать замену оракловскому rownum...


Murr_0002 местный житель23.02.20 18:15
Murr_0002
NEW 23.02.20 18:15 
в ответ Murr_0001 20.02.20 20:35

В тяпницу вечером меня слегка достали - не работаете, говорит шеф, ты с этими ребятами, на конечный результат...


В общем домой пришел слегка сильно расстроенных чувствах...


Это - сильно слегка - на раз просекли кошки - ни одной под руками не оказалось...

Мало того что под руками не оказалось - так они еще и моментально исчезали из любой комнаты... если Я туда заходил на минутку...

Ну да ладно - сил было ровно на сожрать ужин и завалится баиньки...


В субботу у нас был проливной холодный дождик... ну бывает такой - идет долго и весь до костей пробирает.

Две кошки сидели дома... а старшая - Жмурзика - где-то моталась...

Потом старшая пришла и устроила крик...

Мияу!!! Мииияяюууу!!!! Ми-мияяяуууу... вышел посмотреть чего случилось...

В общем кошка - мокрая до костей... т.е. - совсем, как если бы плавала...

А орала - чтобы Я не был - слегка сильно - бо, она кошка правильная и притащила большого мыхА...

Об чем и сообщала во все свое кошачье горло...

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


Ну а сегодня другая кошка - Фефешка - повторила вчерашний Жмурзиковый концерт - тоже притащила мыхА и тоже орала - Я хорошая кошка, я мыхОв ловлю, не надо рядом "слегка сильно"...

И опять убежала...


Третья кошка у меня тормознутая... т.е. мыхА принесет чутка позжее... смущ


Мне так кажется, что если меня еще по-доставать по поводу чего там контракторы не сделали - мыхОв в городе не останется... безумспок

Murr_0002 местный житель25.02.20 09:52
Murr_0002
NEW 25.02.20 09:52 
в ответ Murr_0002 23.02.20 18:15

У ребятишек наметился некоторый прогресс:


Lastly, the underlying logic of the system works off Data table manipulation. This is to say, a query returns a Data table, which then is used to iterate to make more queries to alter, add, data withint the original Data table.

Кто не понимает - 5 лет Я мудохался со "спагетти", приводя его в более-менее объектную форму.

Упоминаемые проблемы - уже давно преодолел и забыл как страшный сон.

НО! У ребятишек хватило ума взять за основу для миграции не переработанный код, а код декомпилированного ехешника с рабочей станции...

Слов - нет... хотят - пусть делают... там спагетти много... и уже отловленных и исправленных ошибок - тоже...

Murr_0002 местный житель25.02.20 18:31
Murr_0002
NEW 25.02.20 18:31 
в ответ Murr_0002 25.02.20 09:52

Все.

Ужас - закончился!

В смысле - меня сократили.

Теперь - биржа, пособие и поиск работы... до пенсии... спок

AlexNek патриот26.02.20 22:06
AlexNek
NEW 26.02.20 22:06 
в ответ Murr_0002 25.02.20 18:31

Из-за контрактников? Абидно, осталось то всего немного. Будут значит брать очередных контрактников.

Murr_0002 местный житель27.02.20 11:16
Murr_0002
NEW 27.02.20 11:16 
в ответ AlexNek 26.02.20 22:06

Из-за контрактников?

-----

Да. Сократили позицию прогера в связи с переходом на оутсоурсе.


Абидно, осталось то всего немного.

-----

Ты об чем? Все - ИДЕАЛЬНО!!!

Даже если не поставят на биржу как безработного... хотя как это сделать при сокращении Я не представляю...

мне нужно будет внести 4 таксовых платежа в ручную чтобы закрыть 10-ку...

при постановке - тоже закроют, но без взносов с моей стороны...

и все.

Об этом Я уже года полтора как не беспокоюсь.


Будут значит брать очередных контрактников.

------

Это не была моя проблема и уже не будет.

Могу только сказать, что база на 1400 таблиц, без стоящей документации, и 2 Гб спагетти что-то с нею делающее контрактниками за пару месяцев не разгребается. Даже если это команда гениев и работают на результат. Никак.

За пару лет в 5-7 рыл - да, можно наработать документацию и частично разгрести спагетти.

Вот только задачу - документировать и разгрести спагетти - никто не ставит...


Хи-хи...

У меня на сегодня проблема - отойти от состояния "в работе"...

Пару раз уже ловил себя на размышлениях "как это сделать"... смущ


LifeRider знакомое лицо27.02.20 12:21
LifeRider
NEW 27.02.20 12:21 
в ответ Murr_0002 23.02.20 18:15
В тяпницу вечером меня слегка достали - не работаете, говорит шеф, ты с этими ребятами, на конечный результат...

Там походу шефа поджарили за результат, а он все стрелки на сотрудника перевёл.

Murr_0002 местный житель27.02.20 14:10
Murr_0002
NEW 27.02.20 14:10 
в ответ LifeRider 27.02.20 12:21

все стрелки на

-----

Независимо от того КАК там все было - для меня все закончилось упрощением ситуации - не надо искать срочный контракт чтобы по окончании стать легальным безработным, а не свалившим по собственному желанию рабочим.

Теперь надо домучить документы и валить Испанию/Португалию... спок

Хотя... пока с вирусом все не успокоится - подождать... смущ

  moose коренной житель29.02.20 21:25
NEW 29.02.20 21:25 
в ответ Murr_0002 25.02.20 18:31, Последний раз изменено 01.03.20 22:45 (moose)
Все.Ужас - закончился!В смысле - меня сократили.Теперь - биржа, пособие и поиск работы... до пенсии...

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


желаю их отчетливо разглядеть и правильно сориентироваться.


зы. все будет хорошо! (с)


Бесконечный цикл гость06.03.20 20:12
NEW 06.03.20 20:12 
в ответ Murr_0002 25.02.20 18:31

Да уж, расстрил, однако...


А кошки по ходу заранее расклад чуяли и начали переход на самопропитание.

  moose коренной житель06.03.20 20:59
NEW 06.03.20 20:59 
в ответ Бесконечный цикл 06.03.20 20:12
Да уж, расстрил, однако...

да погодите, пройдет какое-то время, и мы еще получим серию тем не в духе "суки! повесить билли!...", а "философский взгляд на ооп, тдд и прочую херню, без которой так хорошо жить!"

Murr патриот07.03.20 02:45
Murr
NEW 07.03.20 02:45 
в ответ Бесконечный цикл 06.03.20 20:12

начали переход на самопропитание.

-----

Продолжают активно таскать мыхов, птицов и... перчатки.

Мыхов притаскивают даже с мышеловками...

А перчатки любит приносить Билли (черная)...

Сегодня Билли целый день шлялась по улице - погода - супер - сухо, солнечно и прохладно. От попыток отнести на спальное место бегала задрав хвост... Зато вечером пришла первая и завалилась спать почти не реагируя на окружающее...

Бесконечный цикл гость15.03.20 09:55
NEW 15.03.20 09:55 
в ответ moose 06.03.20 20:59
"суки! повесить билли!..."

Билли нельзя теперь винить - его тоже уволили. Или он сам ушел (в знак протеста против увольнения Мура или чтобы за огородом ухаживать). Посмотрим теперь куда мелкомягкие покатятся. Могли бы в честь его ухода бесплатные раздачи софта сделать или аккаунты на Ажуре раздавать.

1 2 3 4 5 6 7 все