Size: a a a

2020 August 01

АГ

Алексей Гевондян... in PHP
ну а хотфиксы и так в старые версии вносятся
источник

VS

Valentin Saik in PHP
Алексей Гевондян
используют старые? ну и сами себе злобные бакланы
Это в обратном порядке работает - теряешь клиентов которые на старых версиях - сам себе "баклан"
источник

АГ

Алексей Гевондян... in PHP
конечно если у тебя скопится 10 версий, и обнаружится критический баг, и надо будет поменять сразу 10 классов, то это проблема. но ведь и если просто есть версии либы - там такая же история, только там возможно мерджем можно обойтись, но тоже не всегда.
источник

АГ

Алексей Гевондян... in PHP
да, тут конечно трудность возникает... скорее всего актуальную версию надо будет держать в каталоге без префиксов версий, и тут проблема bc break никуда не денется. иначе при апдейте придется все переписывать явно на классы из других неймспейсов. а если надо остаться на старой версии, то зачем вообще апгрейдить либу...
источник

SP

Sergey Protko in PHP
Bohdan Turchyk
а потом в один прекрасный момент ты обнаружишь, что тебе надо поддерживать зоопарк версий и в каждой из версий еще и зоопарк классов
обратная совместимость не вечна. Большая часть этого заопарка удаляется относительно быстро
источник

SP

Sergey Protko in PHP
ну и как бы "старые версии" всегда можно заменить на адаптеры
источник

NO

Nex Otaku in PHP
Весь внешний код использую через простые обëртки, при любом изменении внешнего кода нужно будет только подправить сами обëртки, код приложения не затронется
источник

SP

Sergey Protko in PHP
Если речь про взаимодействие систем - типичная ошибка большинства разработчиков - желание реюзать структуры данных
источник

SP

Sergey Protko in PHP
мол надо выветси примерно то же самое + еще пара полей - добавляем поля в общую структуру и юзаем и там и там
источник

NO

Nex Otaku in PHP
При желании их можно ещë и тестами покрыть, защититься от сюрпризов
источник

SP

Sergey Protko in PHP
люди панически боятся дублирования кода
источник

SP

Sergey Protko in PHP
а вот связанности не боятся
источник

АГ

Алексей Гевондян... in PHP
да, лучше создать еще один класс без наследования, либо с композицией, чем наследник с дополнением.
источник

АГ

Алексей Гевондян... in PHP
надо использовать стат анализаторы, они эти проблемы должны выявлять.
источник

S

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

AK

Aleh Kashnikau in PHP
Sergey Protko
ты ж не мокаешь datetime
Datetime кстати исключение в случаях, когда берется "текущее время системы". Если такого нет, то мокать действительно обычно не надо.
источник

SP

Sergey Protko in PHP
Aleh Kashnikau
Datetime кстати исключение в случаях, когда берется "текущее время системы". Если такого нет, то мокать действительно обычно не надо.
Ммм... Что ты мокать собрался, объект же этот больше про точку во времени а не часы
источник

SP

Sergey Protko in PHP
Так что нет, не исключение
источник

SP

Sergey Protko in PHP
Вообще лучше избегать получения времени внутри
источник

AK

Aleh Kashnikau in PHP
Sergey Protko
Ммм... Что ты мокать собрался, объект же этот больше про точку во времени а не часы
Всякие мерзкие вещи аля возраст человека, где используется текущее время системы. Вот текущее время системы бывает нужно мокать, поэтому да исключение)
источник