Skip to content
rigidus edited this page Feb 11, 2011 · 10 revisions
  • 11.02.10 Четверг

Проектирование системы мгновенных сообщений, 
основанной на ajax и web-sockets
  • 10.02.10 Среда

Переписан сериализатор группы - добавлены отступы
для человекопонятности, попутно исправлен баг с 
полями, оставшимися в старых файлах - явно удаляем
ненужные поля, оставляя поля о которых сериализатору
ничего неизвестно, например fullfilter.
Добавлена библиотечная функция re-assoc для работы с
такими нечеткими структурами данных.
Приблизительное проектирование oauth - системы открытой
авторизации.
  • 09.02.10 Вторник

Исправлена ошибка в dtd
Удаление полей :key и :id более ненужных из классов
группы, сериализаторов и отображений.
  • 08.02.10 Понедельник

Исправлен баг в выгрузке, который приводил к частичной
неработоспособности фильтров в 1 клик, если выгрузка
проводилась не из пакета '#:eshop - фильтры не могли
найти свои сервисные функции в пакете по умолчанию.
  • 07.02.10 Воскресенье

Перелинковка
  • 06.02.10 Суббота

Сео-тексты на фильтрах по брендам
  • 05.02.2010 Пятница

Сео-тексты на страницах групп
  • 04.02.2010 Четверг

Выложил обновление на сервак.
Поправил блок "Производители" на странице групп, которые 
до этого правил Федор, чтобы выводился сворачиваемый
список производителей. 
Исправил проявившиеся баги:
— Валера в общую папку положил xls-файлы, в именах файлов которых были 
  пробелы, русские буквы и символы амперсанда. Из-за того что на 
  сервере другая базовая локаль дропбокс начал глючить при перекачке 
  не только этих файлов, но и всех остальных. Это привело к ряду 
  сложно обнаружимых багов, также не работал парсер. На эту ошибку ушло
  довольно много времени.
— сброс состояния маршрута продукта и группы при компиляции шаблонов, 
— падение на страницах запрашиваемых с фордлинка
— падение поискового модуля, из-за того что он запрашивал свойство 
  active у объектов (например фильтров) которые его не имеют. 
— дупликат символа маршрута для страницы выгрузки (маршрут "gateway"
  перезаписывался на "gateway/", а нужно было добавлять, а не 
  перезаписывать.
и еще много разных не очень интересных багов, которые я уже не помню
  • 03.02.2010 Среда

Закончил xls-парсер. Тестирование
  • 02.02.2010 Вторник

Написание парсера XLS-файлов для загрузки из них оптгрупп и 
опций. Не закончил.
  • 01.02.2010 Понедельник

Мерждинг с Федором, совещание.
  • 30.01.2010 Воскресенье

Рефакторинг. Изменил все что связано с хранением и обработкой
опций продукта - теперь слот opgroups хранит группы опций, каждая
из которых является объектом opgroup и содержит в себе список 
объектов option. Внес изменения во все места, где происходила 
работа с опциями, в т.ч. в (де)сериализатор и отображение.
  • 29.01.2010 Суббота

Рефакторинг. Объединил все хэш-таблицы в одну *storage*, избавился
от лишних пакетов - теперь большая часть функциональности находится
в пакете eshop.
  • 28.01.2010 Пятница

Изоляция выгрузки. Теперь выгрузка проходит в своем пространстве
данных, и только если все прошло успешно - данные на сайте
обновляются. Раньше данные обновалялись на лету, что приводило к
ошибкам в данных, если выгрузка была прервана в результате ошибки.
  • 27.01.2010 Четверг

Удаление id и parent-id групп в классе групп, сериализации и
десериализации.
  • 26.01.2010 Среда

Исправление ошибки сериализации групп - не все поля правильно
сериализовались в файлы.

Федор изменил способ генерации yml - теперь нам не нужны id групп и
их можно удалить.
  • 25.01.2010 Вторник

Проблема - исчезли имена продуктов после выгрузки. Исправлена
выгрузка - realname для новых продктов берется из поля name в
выгрузке, для старых - остается без изменений.

Новая выгрузка-по-частям правильно обрабатывается и на старом сайте
(с Артемом отлаживали)
  • 24.01.2010 Понедельник

Измененения в выгрузке — товаров стало так много, что они не
пролезают за один проход. Сделал выгрузку в несколько проходов,
вместо пожарных костылей, как предлагал Федор - теперь мы можем
выгружать любое количество товаров за любое кол-во проходов.

Исправил ошибку, связанную с active=nil при изменении поля в товаре
(значение поля отвергалось как ошибочное из-за ошибки в макросе
записи, ошибка не возвращалась)

Сделал для Валеры команду "сохранить все в файлы"
(trans:store-to-files)

Федор сделал небольшие изменения в javascript-корзине (она не
работала, если куки были неправильными или их не было)
  • 23.01.2010 Воскресенье

Сделал рефакторинг выгрузки, чтобы она стала более понятной и было
проще делать изменения.
  • 22.01.2010 Суббота

Cyrill Gorcunov зашел на наш проект с хабра и нашел в нем одну и ту
же функцию (get-date-time), повторяющуюся в нескольких пакетах, о чем
написал мне в письме. Очевидно при переносе со старого сайта так
осталось. Дублирующийся кусок удалил, теперь (get-date-time)
находится в пакете service
  • 21.01.2010 Пятница

Процедура миграции со старого сайта - добавлено корректная
трансляция старых опций в объект опций продукта нового сайта. Также
переносим и REALNAME

В паджинаторе ошибка - не отображается последняя страница. Поставил
временный костыль - страница отображается, но нет скрытия
промежуточных pages - добавлю несколько позже.
  • 20.01.2010 Четверг

В процедуре десериализации теперь заполняем поле объекта продукта
REALNAME значение поля NAME, если в файле REALNAME равно NIL или
пустой строке.

Устранено падение отображения продукта в случае, если это
непривязанный ни к одной группе продукт (PARENT==NIL)

Добавлены в репозиторий шаблоны, стили и скрипты

Перестали отображаться картинки продуктов. Как выяснилось, это
из-за того что Федор вынес их из папки Дропбокса, соответственно пути
к ним изменились. Поправил.

Новое поле объекта группы PIC теперь будет содержать картинку
группы, отображаемую на странице родительской группы. Изменил объект
группы, сериализацию и десериализаю и процедуру вывода группы на
страницах.

Валера сказал перенести description и short-description продуктов
со старого сайта на новый - переписал миграцию.

Настроил отображение 404-страницы (она теперь отдается правильно,
раньше отдавался стандартный белый hunchentoot-шаблон)

Вставил забытое поле realname в десериализацию продукта.
  • 19.01.2010 Среда

Возникла проблема корректного сохранения фильтров, относящихся к
группе в файл группы. Федор предложил хранить строку фильтра в
специальном поле внутри объекта группы, что является плохим
инженерным решением. Вместо этого реализовал недеструктивное
сохранение файла группы, в котором изменяются только те поля, которые
присутствую в объекте группы.

Реализован протокол обработки ошибок десериализации, теперь при
возникновении проблем с данными, поднятыми из файлов десериализатор
бросает ошибку, которая обрабатывается на верхнем уровне (например
WRONG-PRODUCT-SLOT-VALUE) и может быть проигнорирована, помечена,
записана в лог, скорректирована или другим образом исправлена.

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

Федор изменил левое меню так, чтобы в нем не отображались
неактивные и пустые группы.
  • 18.01.2010 Вторник

Федор изменил выгрузку, чтобы ACTIVE зависел от кол-ва продуктов на
складе. Продукт активен, если кол-во не нулевое.

Также изменен шаблон, теперь неактивные продукты на новом сайте
выводятся без кнопки "купить".
  • 17.01.2010 Понедельник

Новый шаблон для 404 страницы

Рефакторинг - использование относительных путей к шаблонам и
данным.
  • 13.01.2010

В письме менеджеру русифицированы сообщения о покупке:
"cash" ⟶ "Наличными", "card" ⟶ "Кредитной картой",
"credit" ⟶ "Безналичный расчет", "bank" ⟶ "банковским переводом",
"auto" ⟶ "Самовывоз", "courier" ⟶ "Курьер"
  • 11.01.2010

Для валеры добавлена новая команда в консоль
(trans:realname-from-name), транслирующая NAME в REALNAME, для
продуктов, у которых REALNAME не заполнено
Clone this wiki locally