1

Тема: Як ефективно відслідковувати залежність між різними об'єктами проекта

Цікаво чи знає хтось про спеціальний інструмент для відслідковування залежностей між різними об'єктами проекта (конфіг-файлами, класами, функціями, вьюхами...). Знаю що для зовнішніх бібліотек є менеджери типу Composer, але мені не потрібні зовнішні бібліотеки. Мені потрібно відслідковувати новостворені об'єкти та зміни під них. І одними SVN чи Git тут не обійтись.

В мене є декілька проектів на одному й тому самому фреймворку, і коли я щось зробив в одному проекті, часто приходиться це копіювати на інший проект, і при цьому приходиться прослідковувати весь ланцюжок залежностей вручну знову і знову.

Я щось аналогічне спостерігав коли розглядав можливість прописувати це в тегах для автодокументатора, але може є щось більш зручне?

2

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

Від початку програмування всі тільки думають про те, як зробити так, щоб не копіювати код. Процедури, модулі, класи, бібліотеки - це все засоби зменшення повторюваності коду.
А ви хочете знайти засіб, який ігнорує розвиток інформатики за останні 50-60 років.

Подякували: ktretyak1

3

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

koala написав:

...Процедури, модулі, класи, бібліотеки - це все засоби зменшення повторюваності коду...

Критика прийнята, ви праві. Бо й справді здається модулі дуже добре підійдуть мені - все можна зробити ізольовано, легко перенести в інший проект...
І чому я сам до цього не додумався! =)

П.С. Виходить, що одні лише контролери і... та навіть і контролери - тобто все можна реалізувати модульно, лише бери та підключай модулі... Ого, прикольно. Щя спробую.

4

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

ktretyak написав:
koala написав:

...Процедури, модулі, класи, бібліотеки - це все засоби зменшення повторюваності коду...

Критика прийнята, ви праві. Бо й справді здається модулі дуже добре підійдуть мені - все можна зробити ізольовано, легко перенести в інший проект...
І чому я сам до цього не додумався! =)

П.С. Виходить, що одні лише контролери і... та навіть і контролери - тобто все можна реалізувати модульно, лише бери та підключай модулі... Ого, прикольно. Щя спробую.

Можна й не просто модульно, а ще й аспектно. :)

I belong to the Dead Generation.

5

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

Спробував модульний підхід, дуже сподобалось. Раніше підключав лише чужі модулі...

П.С. Інколи прозріння приходить на рівному місті.

6

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

Bartash написав:

Можна й не просто модульно, а ще й аспектно. :)

Був би вдячний, якби ви пояснили чи надали лінк на статтю, де пояснюється, як ефективно відлагоджувати нетривіальні баги в аспектно-орієнтованих програмах.

7

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

Отже розказую свою історію.
Спочатку у мене були теж такі проблеми але деякі з них я зміг вирішити.
Для прикладу у мене є клас парсера який я юзаю в 3х проектах. Коли щось міняю в одному (фіксаю баги) треба що б було все в інших.
Я почав використовувати композер і не паритись про ці штуки. Одну проблему я вирішив. Тобто я в будь який час можу оновити бібліотеку до стабільної версії .
Висновок перший. Якщо у вас юзається в 3х проектах одна і та сама штука - оформляйте її як бібліотеку і використовуйте композер.

Друга проблема яка у мене в процесі це коли наприклад треба поміняти назву методу в своїй бібліотеці. Або взагалі зробити зміни які зачеплять арі.

Ось тут і починається саме веселе. Цю штуку я вирішив частково. Я просто випускаю рефакторні скріпти (патчі чи називайте їх як хочете)

Що це за штука. Я не просто міняю назву методу і все. А пишу код який поміняє назву методу у відповідних класах.
Що це дає. Краще потратити 20 хв і будеш мати нормальні зміни у твоїх бібліотехка аніж вручну ковбасити пару годин.
Друга пробелма вирішена частково так як є такі місця у яких неможливо визначити чи необхідно міняти метод чи ні але все ж таки у більшості випадків дана ідея працює =)

Висновок другий. Випускайте патчі

8

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

funivan написав:

...Якщо у вас юзається в 3х проектах одна і та сама штука - оформляйте її як бібліотеку і використовуйте композер...

Якщо потрібні об'єкти знаходяться в одному каталозі, то я просто роблю символьний лінк (це можна робити навіть у Windows 7). Робиш зміни будь-де, і всі прилінковані ресурси між собою зразу бачать ці зміни.

9

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

ktretyak написав:
funivan написав:

...Якщо у вас юзається в 3х проектах одна і та сама штука - оформляйте її як бібліотеку і використовуйте композер...

Якщо потрібні об'єкти знаходяться в одному каталозі, то я просто роблю символьний лінк (це можна робити навіть у Windows 7). Робиш зміни будь-де, і всі прилінковані ресурси між собою зразу бачать ці зміни.

Тільки треба бути обережний, якщо видалити десь 1 об_єкт то можна не знайти його потім в жодному, а вінда про це не попереждає

x

10

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

Тільки треба бути обережний, якщо видалити десь 1 об_єкт то можна не знайти його потім в жодному, а вінда про це не попереждає

саме тому я юзаю композер. + можна під час оновлення якщо щось у тебе не стикується можна просто понизити версію =)

11

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

koala написав:
Bartash написав:

Можна й не просто модульно, а ще й аспектно. :)

Був би вдячний, якби ви пояснили чи надали лінк на статтю, де пояснюється, як ефективно відлагоджувати нетривіальні баги в аспектно-орієнтованих програмах.

Знав би - скинув. Ми цю технологію мало розглядали на парах.
Фактично, я і не бачив популярності АОП десь, окрім Java+Spring (а може, я просто відстав від прогресу :)).

I belong to the Dead Generation.

12

Re: Як ефективно відслідковувати залежність між різними об'єктами проекта

на рахунок АОП досить таки сумнівна штука в рнр, моє особисте бачення ;)