Написание благоприятного для рефакторинга кода PHP

Mathematica: нерекурсивный

fact[n_] := Times @@ Range[n]

, Который является синтаксическим сахаром для Apply[Times, Range[n]]. Я думаю, что это - лучший способ сделать это, не считая встроенное n!, конечно. Обратите внимание, что это автоматически использует сверхбольшие числа.

5
задан Charles 24 December 2012 в 21:19
поделиться

5 ответов

Модульные тесты всегда помогают мне определить места, где я нарушил код из-за рефакторинга. Модульные тесты на динамических языках (PHP, Ruby, Python и т. Д.) Помогают там, где статическая типизация на других языках (Java, C #) обычно позволяет более безопасно провести рефакторинг.

5
ответ дан 14 December 2019 в 01:10
поделиться

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

0
ответ дан 14 December 2019 в 01:10
поделиться

Что ж, лучший способ написать код, удобный для рефакторинга, - это написать слабосвязанный, очень связный код и объектно-ориентированный код.

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

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

Я бы порекомендовал вам прочитать Мартина Фаулера.

1
ответ дан 14 December 2019 в 01:10
поделиться

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

Во-вторых, и это удобно, проверьте свою IDE. В Netbeans есть возможности для рефакторинга. Вы можете искать в файле, в папке, в проекте и т. Д.

0
ответ дан 14 December 2019 в 01:10
поделиться

По возможности избегайте магии: переменные переменные, eval, ошибки маскировки с помощью @ и хранение кода в базе данных приведут к укусу.

3
ответ дан 14 December 2019 в 01:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: