Вопрос

Я работаю над довольно большой системой, разработанной другим программистом, который здесь больше не работает.

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

Но помимо забавных моментов, система в некотором роде разработана как система классов, а в некотором роде и нет, и я уже настроил версию для разработчиков и могу довольно быстро развертывать новые версии.

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

Спасибо.

Это было полезно?

Решение

Совет № 0) Действительно ли существующий код действительно плох, или он просто не соответствует вашим личным предпочтениям?Если это первое, продолжайте читать этот список.Если это последнее, сделайте несколько глубоких вдохов и потратьте по крайней мере месяц или два на то, чтобы разобраться в вещах, прежде чем решите, что вам нужно сделать это заново.

Совет № 1) Когда вы кодируете, если вы видите что-то неправильное, исправьте это.Это займет больше времени, но в конечном итоге даст вам прирост производительности по мере того, как система станет более "фиксированной".Если у вас действительно нет времени исправить это, сделайте себе одолжение и добавьте комментарий, подобный этому://TODO:переделайте вещь так, чтобы она делала x Позже, когда у вас будет время, просто найдите в своем коде "TODO:", чтобы получить список вещей, которые вам нужно сделать.Вы также можете присвоить им уровни, такие как "TODO-Высокий", "TODO-Средний", "TODO-Низкий".Если вы используете Eclipse или Zend Studio для Eclipse в качестве редактора / IDE, вы можете настроить его так, чтобы он автоматически находил и отмечал их для вас в Настройках-> Задачи.

Совет № 2) Важная вещь, которую нужно сделать, если вы надеетесь (в конечном итоге) перейти на MVC, - это отделить HTML от логики.Это означает использование шаблонов.Эта задача может занять много времени, но как только она будет выполнена, остальная часть вашего перехода будет намного проще.

Совет № 3) Постарайтесь установить условности.Пример:Имена контроллера и представления должны соответствовать URL-адресу и находиться в каталогах, соответствующих URL-адресу.URL Для редактирования Места 1234:/места / редактировать/1234 Файл контроллера:/htdocs/sitename/controllers/placesController.php Файл шаблона:/htdocs/имя_сайта/просмотры/места/редактировать.tpl

Совет № 4) Прочитайте руководства "Начало работы" по основным фреймворкам:Zend, CakePHP, CodeIgniter /Kohana, Symfony.Посмотрите, выглядит ли один из них для вас лучше другого.Спросите себя, почему вам это нравится.Сработает ли это у вас, или вам нужно внедрить свой собственный фреймворк (сомнительно).Если это вообще возможно, используйте существующий фреймворк.Он уже был протестирован на наличие ошибок сотнями или тысячами людей, и это время, которое вы сэкономите!Мне самому нравится Zend Framework, и он особенно хорош для "переходных проектов", таких как ваш, потому что вы можете брать его или оставлять по частям за раз.Я имею в виду, вы могли бы выбрать использование ТОЛЬКО объекта View от Zend или использовать ТОЛЬКО его объект DbTable.Вы вольны опустить столько из этого, сколько захотите.Это означает, что вы можете постепенно переходить в Zend-Мир в своем собственном темпе.EZ-Components работает таким же образом.

Совет № 5) Оберните классы, которые вы используете, расширив их.Например, я использую Zend_Acl, но на самом деле использую свой собственный класс Acl, который расширяет Zend_Acl.Это имеет два ключевых следствия:a) Я могу заменить Zend_Acl на что-то другое, не меняя свой код, потому что все это относится к простому старому 'Acl' b) Я могу изменить способ работы Zend_Acl в соответствии с моими конкретными потребностями, потому что я могу переопределить любые методы, которые мне нравятся в моем классе 'Acl'.

Совет № 6) Попытайтесь получить бай-ин от руководства.Объясните им, что рефакторинг на самом деле сэкономит им деньги, потому что повысит согласованность и понятность кода, что помогает снизить количество дефектов И облегчает их поиск и исправление.

Совет № 7) Попробуйте почитать книги по этой теме, такие как "Рефакторинг:Улучшение дизайна существующего кода" Мартина Фаулера

Другие советы

в zend есть хорошее соглашение об именовании:http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Они добавили префикс Zend_ ко всем своим классам, и таким образом они избегают столкновений со сторонними классами.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top