Кто не знает, чего бы ему еще почитать по программированию, советую посмотреть на замечательный сайт ProgrammingBooks, а именно на вот эту страницу. Смотрим список книг, вспоминаем о том, какие из этих книг уже были прочитаны и беремся читать остальные. Я из всей первой страницы прочел всего 1 книгу - Design Patterns, буду наверстывать.
Ну что ж, свершилось - сегодня я получил первый осмысленный пингбек. :) Посмотрим, что будет дальше.
После долгих месяцев работы под линуксом перелез обратно на винду. Все же винда привычнее. Да от QIP’а и Total Commander’а отказаться сложно.
О том, что я ставил себе линукс, я ни капли не жалею - очень интересная система, для админов и программистов многое сделано удобнее, чем под виндой: настройки в файлах, жесткая структура директорий (бинарники в bin, библиотеки в lib), репозитории… Для простого пользователя линукс, пожалуй, удобнее лишь своими репозиториями - для того, чтобы установить тот же LAMP нужно поставить всего несколько пакетов и этим всем сразу же можно пользоваться. От этого всего сложно отказаться, но…
Но линуксовый GUI меня достал - тормозной и либо нелогичный в некоторых местах (KDE), либо ненастраиваемый (Gnome). Пример - когда я перетаскиваю файл из файлового менеджера на kicker (на панель задач) я хочу, чтобы программа, над которой висит курсор мыши открывалась и я мог продолжать перетаскивать файл дальше (может это где-то в KDE и настраивается, но я не нашел). Пример - в гноме можно, выбрав отдельный файл, указать программу, с помощью которой этот файл будет открываться, а вот программы, которая бы показывала все такие связи - нет (опять же - может такая прога где-то и есть, но почему ее нет в стандартном гноме - загадка). Да еще и тормозит у меня гуи в линуксе по сравнению с виндой. Очень тормозит.
Несколько сумбурный пост получился… Итог этого всего такой: теперь у меня винда и я с нетерпением жду KDE 4.
Разговор сегодня в универе:
- Паш, у тебя ж есть убунта?
- Ага.
- Последняя?
- Ага.
- О, круто. А у тебя убунту или кубунту?
- И то и другое есть.
- На DVD?
- Да.
- Офигенно, слуш притащи завтра кубунту. А то затрахался с мандривой.
:)
Что-то я затянул немного выполнение лабораторных работ некоторых по универу, нужно исправляться. Сегодня решил вернуться ко второй лабе по ООП. Задание таково:
“Разработать объектно-ориентированную библиотеку для работы со структурами данных по одной из нижеперечисленных тем в соответствии с нижеуказанными требованиями. Свойства и методы для классов разработать в соответствии с известными определениями соответствующих структур данных. Составить тесты для проверки работоспособности библиотеки. Составить программу, демонстрирующую возможности разработанной библиотеки.”
Требования - хрен с ними, а вот тема мне попалась интересная: “Сетевые базы данных (ввод/вывод, навигация)”. Когда я это задание читал в первый раз - я впал в ступор. Потом оклемался, но когда видишь такое задание как-то не по себе становится…
Сетевая бд - это бд, в которой для связи записей используются графы (граф, по курсу структур данных, - это сеть). Т.е. здесь, в отличии от иерархических бд, связи получаются “много к многим” (а там - “один ко многим”).
Поговорил немного с преподами о задании, итог получился такой - “нам не нужна универсальная бд, сделай несколько таблиц статических и связывай их”. Говорил действительно немного - минуты полторы, так что кроме фразы выше я ничего особо не услышал. Сегодня решил хоть чего-нибудь напроектировать, чтобы в пятницу показать преподам и убедится, правильно ли я делаю, или нет. Мысля сейчас такая: есть отдельные таблицы (неважно, как представленные) и есть какой-нибудь класс Relation, который их связывает. Собственно, это очень напоминает обычную иерархическую бд (таблица - связующая таблица - таблица), но как это оформлять по другому я пока что не представляю.
Сел за комп, закодил… Получилось такая фигня:
class Masseur : public Record {
public:
Masseur();
virtual ~Masseur();
private:
char* _name;
char* _surname;
char* _fathername;
char* _qualification;
Date _birthday;
};
class Service : public Record {
public:
Service();
virtual ~Service();
private:
char* _name;
char* _part;
int _duration;
double _price;
};
class MasseurServiceRelation : public Relation {
public:
MasseurServiceRelation();
virtual ~MasseurServiceRelation();
private:
void add(Masseur*, Service*);
void remove(Masseur*, Service*);
void remove(Service* service);
void remove(Masseur* masseur);
};
Сейчас сижу и думаю, правильным ли путем я иду…
PS. А первые две таблицы очень напоминают паттерн ActiveRecord, на правда ли? :)





Последние комментарии