Я бы посоветовал не использовать хэширование или сериализацию (как предлагает решение JSON). Если вам нужно проверить, равны ли два объекта, вам нужно определить, что означает «равно». Может случиться так, что все элементы данных в обоих объектах будут совпадать, или может случиться так, что ячейки памяти должны совпадать (имеется в виду, что обе переменные ссылаются на один и тот же объект в памяти), или может быть, что только один элемент данных в каждом объекте должен совпадать.
Недавно я разработал объект, конструктор которого создает новый идентификатор (начиная с 1 и увеличивая на 1) каждый раз, когда создается экземпляр. Этот объект имеет функцию isEqual, которая сравнивает это значение id со значением id другого объекта и возвращает true, если они совпадают.
В этом случае я определил «равно» как означающее, что значения идентификатора совпадают. Учитывая, что каждый экземпляр имеет уникальный идентификатор, это можно использовать для реализации идеи о том, что совпадающие объекты также занимают одно и то же место в памяти. Хотя в этом нет необходимости.
Некоторые вещи, которые мне очень помогли (в произвольном порядке)
Не зависит от языка:
Разработайте стратегию обработки ошибок заблаговременно. Что вы будете делать при возникновении условий ошибки, будете ли вы регистрировать ошибки, как? где? Какую информацию вы будете регистрировать? Будете ли вы генерировать исключения, возвращать коды ошибок?
Предположите, что ваш веб-сайт работает успешно, люди начинают его использовать, а затем он перестает работать, как быстро вы сможете понять, что пошло не так? Рассматривайте всю свою стратегию ошибок с этой точки зрения, а не только с точки зрения того, что происходит, когда вы разрабатываете, и вы контролируете ситуацию.
Уже есть хороший вопрос об отслеживании ошибок и контроле версий для отдельных разработчиков .
Что касается стиля PHP, я обычно предпочитаю следовать Zend Основные принципы . Чтобы получить совет по развертыванию, вы можете перейти к ServerFault .
Вот несколько ответов на ваш вопрос, касающийся управления проектами / передового опыта:
Начните с выбора удобной для вас среды. Я бы порекомендовал Code Igniter , CakePHP или Zend Framework . Это поможет (заставит) вас с базовой организацией вашего кода и файлов. У всех этих фреймворков есть специальные форумы с увлеченными разработчиками.
С точки зрения управления проектами я бы порекомендовал вам установить цели и вехи. Это поможет вам добиться цели, даже если вы учитесь. Установите цель, которую вы должны выполнить в этом месяце, на этой неделе и сегодня. Маленькие и простые цели, такие как «создать форму регистрации» или «задать набор домашней страницы». Так приятно проверять их. Для этого можно использовать множество инструментов, например Backpack или Basecamp (бесплатные версии) или Things (приложение для Mac).
Обязательно используйте PHP5, а не копируйте уродливый код PHP4.
Информацию о программном обеспечении для управления проектами можно найти в DotProject ( http://www.dotproject.net/ ).
О PMS (Программное обеспечение для управления проектами) вы можете ознакомиться на
[ http://www.axosoft.com] [1] .
Эта компания редактирует OnTime, очень хороший PMS.
Более того, это программное обеспечение ПОЛНОСТЬЮ бесплатное для одного пользователя!
Это программное обеспечение обеспечивает полную поддержку метода разработки SCRUM, на мой взгляд, один из лучших!