В этой статье я постараюсь описать те проблемы и пути их решения, с которыми я впервые столкнулся при работе с проектами с суточной посещаемостью 300 тысяч человек и более.
Для меня, как начинающего в этой области, было сложно найти некоторую отправную точку. Думаю, я такой не один и информация, изложенная в этой статье, пригодится кому-то еще. Сразу скажу, что когда проект работает на высоких нагрузках, то оптимизация и настройка его производится индивидуально в каждом случае, однако, используемые инструменты одинаковы.
Очевидно, что работа с проектом при таких нагрузках ведется исключительно на выделенных серверах, поэтому далее я буду учитывать, что мы имеем в своем полном распоряжении один или более выделенных сервера.
Все проводимые работы можно условно разделить на несколько фронтов – база данных, сами скрипты и организация группы серверов.
Читать далее »
Июн 22, 2009 | Автор :
Novice | 28 Комментариев
Сегодня наконец вернемся к теме шаблонов проектирования и рассмотрим такое шаблон как Итератор.
Для начала давайте рассмотрим в общих чертах некоторые ситуацию в которой этот шаблон может помочь.
Допустим, задача нашей программы – проверка работоспособности какой-то сложной системы из большого кол-во разнообразных объектов-модулей. Для этого нужно будет последовательно обратиться к каждому объекту и проверить его состояние.
В случае, если все объекты в рабочем состоянии, то и сама система тоже работает.
В этом случае нужно как-то реализовать последовательный обход всех объектов. Для этого, предварительно нужно их собрать как-то в коллекцию и организовать удобный доступ к ней через промежуточный интерфейс.
Читать далее »
Фев 22, 2009 | Автор :
Novice | 3 Комментариев
Сегодня я попробую в общих чертах описать методологию составления требований к ПО под названием VORD. Расшифровывается это как Viewpoint-Oriented Requirements Definition (“Определение требований на основе точек зрения”).
Главным принципом, положенным в основу этого метода является то, что весь необходимый функционал структурируется в соответствии с группами пользователей системы.
План написания требований методом VORD выглядит так:
- Определение всех “точек зрения” на систему. Составление списка пользователей и внешних систем взаимодействующих с системой.
- Структурирование точек зрения. Построение иерархии точек зрения.
- Документирование точек зрения.
Первый этап обычно выполняет в стиле “мозговой атаки”. Вся система условно делится на сервисы и точки зрения (пользователи системы или внешние системы, взаимодействующие с ней). Результатом этой работы становится длинный список точек зрения и сервисов.
Читать далее »
Фев 05, 2009 | Автор :
Novice | 6 Комментариев
Те, кто читал мою последнюю статью про составление требований к программному продукту и попробовали составить требования самостоятельно, должны в полной мере представить себе проблемы, возникающие в этом процессе, особенно, если ПО очень большое.
Если обобщить все проблемы, то они сводятся к двум вещам – как структурировать несколько листов текста с требованиями и как учесть все требования, необходимые конечным пользователям.
Стоит заметить, что вторая проблема стоит особо остро, когда разработчики не разбираются в предметной области, для которой пишется программа (например, систему электронных торгов на бирже). Читать далее »
Янв 14, 2009 | Автор :
Novice | 1 Комментарий
В этой статье я решил в общем виде рассмотреть такой этап разработки ПО, как составление требований. Несмотря на то, что большинство программистов пренебрегают этим этапом в своей работе, тот, кто научится выполнять этот этап самостоятельно – перейдет на совершенно новый уровень разработки ПО.
Что же такого классного в этом, я расскажу далее.
Для начала можно перечислить все абстрактные преимущества выполнения этого этапа:
- У программиста появляется больше уверенности в процессе кодирования.
- Процесс выполнения проекта становится легче отслеживать.
- В любое время можно примерно оценить время, оставшееся до конца разработки.
Для менеджеров IT проектов эти вещи, конечно же, являются скорее необходимостью, чем преимуществом, но ведь ими еще надо стать
И эта статья будет Вашим первым шагом на этом пути.
Читать далее »
Янв 05, 2009 | Автор :
Novice | 8 Комментариев
Сегодня рассмотрю один интересный антипаттерн под названием… в оригинале это звучит как “Vendor Lock-in”, но если перевести на русский, то получится что-то вроде “Запертый производителем” или “Зависимость от производителя”.
Суть этого антипаттерна заключается в том, что разрабатываемое ПО использует некоторые функционал ПО другого производителя.
Рассмотрим на явном примере – допустим, что мы разрабатываем программу – почтовый клиент с веб-интерфейсом. Если это ПО пишется на php, то наиболее вероятно, что в нем будет использована библиотека для работы с электронной почтой – phpmailer.
Читать далее »
Дек 24, 2008 | Автор :
Novice | 1 Комментарий
Фабричный метод, фабрика или виртуальный конструктор – это все шаблон проектирования, который предоставляет интерфейс для создания объектов имеющих схожие свойства своим подклассам.
Грубо говоря, фабричный метод – это обычный метод класса, который возвращает объекты при обращении к нему (создавая их при этом). Такой прием, в основном, используется для унификации архитектуры системы. Как следствие этого – объекты, порожденные фабричным методом, имеют одинаковые интерфейсы.
Читать далее »
Дек 17, 2008 | Автор :
Novice | 6 Комментариев