Size: a a a

Programming Offtop

2020 December 11

AD

Aleksey D. in Programming Offtop
Igor
Попробуй TDD
по-моему это очень сложно положить на кусок легаси без тестов

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

(

( in Programming Offtop
Aleksey D.
по-моему это очень сложно положить на кусок легаси без тестов

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

d

dimiii in Programming Offtop
Алексей Овсянников
Увы, не подскажу
А какой опыт вообще?
источник

d

dimiii in Programming Offtop
Aleksey D.
по-моему это очень сложно положить на кусок легаси без тестов

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

ML

Mikhail Levchenko in Programming Offtop
Aleksey D.
как перестать решать задачи с наскока?)
Мне помогло расписывать их в любом иерархическом outliner или даже просто на листочке. Важно делать это кратко и использовать повелительные глаголы. Останавливаться в уточнении деталей следует только тогда, когда сделать действие быстрее чем его записать в тетрадочку. Ну или тогда, когда информации не хватает для того чтобы расписать действие (но тогда нужно обязательно расписать что конкретно нужно добыть и что из этой инфы должно стать известно) Пример:

```
* Проветк: Покрыть тестами экран
  ** Накатать бойлерплейт
   *** Бойлерплейт для класса теста
   *** Бойлерплейт для робота
   *** Бойлерплейт для слоя интеракций
  ** Создать тест на функциональность Х
   *** Замокать запрос А
   *** Замокать запрос Б
   *** Замокать запрос С
   *** Добавить открытие экрана и сетап
   *** Добавить экшн
     **** Написать экстеншн для клика на ресайклер
   *** Добавить проверку А
   *** Добавить проверку Б
```
источник

AD

Aleksey D. in Programming Offtop
Mikhail Levchenko
Мне помогло расписывать их в любом иерархическом outliner или даже просто на листочке. Важно делать это кратко и использовать повелительные глаголы. Останавливаться в уточнении деталей следует только тогда, когда сделать действие быстрее чем его записать в тетрадочку. Ну или тогда, когда информации не хватает для того чтобы расписать действие (но тогда нужно обязательно расписать что конкретно нужно добыть и что из этой инфы должно стать известно) Пример:

```
* Проветк: Покрыть тестами экран
  ** Накатать бойлерплейт
   *** Бойлерплейт для класса теста
   *** Бойлерплейт для робота
   *** Бойлерплейт для слоя интеракций
  ** Создать тест на функциональность Х
   *** Замокать запрос А
   *** Замокать запрос Б
   *** Замокать запрос С
   *** Добавить открытие экрана и сетап
   *** Добавить экшн
     **** Написать экстеншн для клика на ресайклер
   *** Добавить проверку А
   *** Добавить проверку Б
```
то есть по текущей логике составить чек-лист по которому потом вычленить что-то новое и неподходящее и сверять?
хм, годно, аки мануальный тест-кейс
источник

AD

Aleksey D. in Programming Offtop
dimiii
Едва ли это возможно, работать с легаси без косяков. Дай конкретный пример что ли, интересен всегда такой опыт.
опыт - куча вопросов к дизайнеру от двух платформ, которые превратились в отдельный чатик в телеге по задаче со всеми вытекающими 🙂
- а как это теперь показать?
- может, это лучше удалить?
- и т.д. 🙂
источник

AD

Aleksey D. in Programming Offtop
(
ну так ты делаешь так, чтобы было легко
в итоге просто все в кучу и хер поймешь, что уже ок, а что еще не ок
источник

ML

Mikhail Levchenko in Programming Offtop
Aleksey D.
то есть по текущей логике составить чек-лист по которому потом вычленить что-то новое и неподходящее и сверять?
хм, годно, аки мануальный тест-кейс
ну можно так, да. В общем, вся магия для меня заключилась в том чтобы расписывать на бумаге, а не представлять в голове. Чуть чуть замедляешь мысль и успеваешь обдумать происходящее.

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

AD

Aleksey D. in Programming Offtop
Mikhail Levchenko
ну можно так, да. В общем, вся магия для меня заключилась в том чтобы расписывать на бумаге, а не представлять в голове. Чуть чуть замедляешь мысль и успеваешь обдумать происходящее.

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

AA

Andrey Akimov in Programming Offtop
Mikhail Levchenko
ну можно так, да. В общем, вся магия для меня заключилась в том чтобы расписывать на бумаге, а не представлять в голове. Чуть чуть замедляешь мысль и успеваешь обдумать происходящее.

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

AM

Andrew Mikhaylov in Programming Offtop
Andrey Akimov
блин, звучит очень годно, даж намереваюсь попробовать. У меня сейчас аналогичная ситуация - жестко страшное легаси, которое писали косорукие бомжи. На элементарные задачи типа добавить кнопку или что-то незначительное поменять в логике трачу просто уйму времени, потому что тут просто пиздец. Обязательно надо попробовать твой варик
Уже представляю себе следующее поколение разработчиков на проекте, которые будут всем рассказывать "писали косорукие бомжи, один из которых ещё и в аутлайнер декомпозицию до атомов делал"))))
источник

d

dimiii in Programming Offtop
Разрабам rubymine лучи добра!
источник

U

Unat in Programming Offtop
Разрабам Golang лучи добра!
источник

AM

Andrew Mikhaylov in Programming Offtop
Unat
Разрабам Golang лучи добра!
Ты в слове "поноса" сделал много ошибок
источник

AN

Alexander Nozik in Programming Offtop
Разрабам вообще лучи добра! За исключением отдельных уродов.
источник

U

Unat in Programming Offtop
Andrew Mikhaylov
Ты в слове "поноса" сделал много ошибок
Думаешь, @dimiiix не ошибся и взаправду лучи добра посылал, а я тренд неправильно понял?
источник

d

dimiii in Programming Offtop
Не. в этот раз порадовали старика, но я все равно на vscode ухожу
источник

U

Unat in Programming Offtop
минуточку, сейчас я шестерёнками отщулкну
источник

U

Unat in Programming Offtop
Да, я обманулся. Попутал с https://www.redmine.org/
источник