Лишние строчки в коде.

proWoke

Новичок
Здравствуйте. Вот у меня такой вопрос. Вот я со своим low skill в кодинге ща пишу так, что иногда остаются лишние переменные в коде, какие то строчки, может знаки какие лишние и тд, которые не играют абсолютно никакой роли в скрипте. Как с этим бороться? Просто чистить постоянно и проводить рефакторинг и стараться сразу писать правильно и грамотно да? Вопрос может глупым показаться, но мало ли, может есть какие то программы, которые показывают, что лишние а что нет. В общем такой вот вопрос.
 

proWoke

Новичок
proWoke
ты бы пример привел, чтобы стало понятно о чем речь.
Например я делаю переменную $pathtoserver = getenv ("DOCUMENT_ROOT");
Потом подключаю к файлу ещё 3 файла. И в одном из них уже есть такая же переменная. Визуальная это можно найти конечно. Ну может это автоматизированно как то, вот наверное в этом мой вопрос.
 

Adelf

Administrator
Команда форума
Ты бы лучше вместо поиска одинаковых глобальных переменных, поучился бы писать правильно. Когда все в функциях/методах такой проблемы просто нет.
 

AmdY

Пью пиво
Команда форума
proWoke
константы, статические переменные классов или namespace в php 5.3
 

AmdY

Пью пиво
Команда форума
proWoke
константы будут выдавать ошибку при совпадении
можно эмулировать нейспэйсы
class Foo {
static $var;
}
class Bar {
static $var;
}
Foo::$var;
Bar::$var;
http://php.net/namespace

В клобальной области по хорошему не должно быть ни одной меременной, кроме суперглобалов $_POST....
 

proWoke

Новичок
proWoke
константы будут выдавать ошибку при совпадении
можно эмулировать нейспэйсы
class Foo {
static $var;
}
class Bar {
static $var;
}
Foo::$var;
Bar::$var;
http://php.net/namespace

В клобальной области по хорошему не должно быть ни одной меременной, кроме суперглобалов $_POST....
Это ведь ООП? Я таким кунг фу ещё не владею.
 

AmdY

Пью пиво
Команда форума
proWoke
кун-фу - это код без использования Class, которое по сути большинством используется именно дл неймспэйсов, а не для ООП.

p.s. интересно, сколько человек на форуме может писать качественный код в процедурном стиле, я рефакторил такие проекты, но получалась каша.
 

whirlwind

TDD infected, paranoid
p.s. интересно, сколько человек на форуме может писать качественный код в процедурном стиле, я рефакторил такие проекты, но получалась каша.

Конечно каша. Как можно рефакторить без покрытия тестами? Ради острых ощущений тока.
 

tz-lom

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

whirlwind

TDD infected, paranoid
whirlwind
ну,а для начала кто сказал что там не было тестов?
А ты откуда знаешь, были в проекте AmdY тесты или нет? Вообще смысл в моем посте был по поводу тестов для проектов в процедурном стиле. Процедурный код можно функционально тестировать. Но на практике его нереально трудно тестировать модульно. А если тесты не покрывают взаимодействие связанных модулей, остается таже проблема что и без тестов: тут поправили, там отвалилось.
 

tz-lom

Продвинутый новичок
А ты откуда знаешь, были в проекте AmdY тесты или нет?
зачем вы переспрашиваете мой вопрос?
и не то чтобы нереально,правда из за отсутствия всяких DI в частностях и объектов в общем моки делать не очень удобно,поэтому разварачиваем систему на тестовый сервер,фаршируем его тестовыми данными и вперёд
отлаживать конечно когда что то сломается прийдётся всю цепочку,но это не невозможно и даже не нереально трудно
 

fixxxer

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

Вот только я такого кода не видел :)
 

AmdY

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

а вот тестить функциональный код не большая проблема, там нет завоторов которые провоцирует делать ООП на классах.
 

whirlwind

TDD infected, paranoid
Вот только я такого кода не видел :)
В апаче например есть.

это не невозможно и даже не нереально трудно
Дорого настолько что практически невозможно. С точки зрения реализации нет ничего невозможного. Вопрос в рациональности.
 
Сверху