Обсуждение:Collections — различия между версиями
Juliet (обсуждение | вклад) |
Saatchi (обсуждение | вклад) |
||
Строка 75: | Строка 75: | ||
Да, и может лучше Assert'ы заменить на вывод сообщений об ошибках?— [[Участник:Juliet|Juliet]] 12:59, 19 апреля 2009 (MSD) | Да, и может лучше Assert'ы заменить на вывод сообщений об ошибках?— [[Участник:Juliet|Juliet]] 12:59, 19 апреля 2009 (MSD) | ||
+ | |||
+ | Думаю, не стоит Assert заменять на вывод сообщений об ошибках, т.к. | ||
+ | *это в какой-то степени открывает реализацию, | ||
+ | *может испортить содержимое консоли, | ||
+ | *применение assert-ов - это уже традиция, | ||
+ | *при компиляции версии релиз assert-ы должны убираться, а вот вывод не уберешь. | ||
+ | Хотя, конечно, это будет выглядеть гораздо красивее. |
Версия 18:09, 20 апреля 2009
Комментарии
Мне кажется, много очевидных комментариев, например
{Конструктор} constructor Stack<DataType>.Create;
if IsEmpty then begin head := new SingleNode<DataType>(x, nil); tail := head; end else // if not IsEmpty
Да, пожалуй. Еще не нравится
//============================================INTERFACE========================================
Я бы вообще убрал
- Admin 22:14, 17 апреля 2009 (MSD)
Да, пожалуй.
- Сейчас конструкторов несколько, есть смысл их именовать, только надо подумать, как лучше.— Juliet 22:52, 17 апреля 2009 (MSD)
Еще не нравится
//============================================INTERFACE========================================
Я бы вообще убрал
- А IMPLEMENTATION?— Juliet 22:52, 17 апреля 2009 (MSD)
Сколько модулей?
Нельзя ли разбить модуль на модули STACK, QUEUE, ... и просто их подключать в модуле Collections.
Преимущества:
- Читаемость и удобство редактирования.
- Пространство имён и IntelliSense.
— Saatchi 18:36, 16 апреля 2009 (MSD)
Комментарии мне не жалко, можно убрать. Хотя особого вреда не вижу.
Модули.. не знаю. Назначение ж у Collections, если я правильно поняла, вполне определенное, чтоб открывать, читать, и , видимо, сравнивать, а по куче модулей лазить не очень удобно.— Juliet 18:58, 16 апреля 2009 (MSD)
Да, но по огромному модулю лазить тоже не удобно, взять к примеру PABCSystem.
— Saatchi 21:35, 17 апреля 2009 (MSD)
Ну настолько огромным он не будет. 5-6 классов в принципе. Если бы было что-то вроде заголовочного файла, чтобы интерфейс всех в одном месте, а реализация по разным...— Juliet 21:47, 17 апреля 2009 (MSD)
Есть резон и в нескольких модулях. И в одном. Пока не знаю.
По идее, в Collections можно только и писать что
type Stack<T> = StackUnit.Stack<T>;
Но переходить к определению стека придется дважды - вначале в Collections, потом - в Stack, что не есть хорошо
А мне кажется, с заголовочным файлом будет здорово.
Ну да разберемся, пока выделила несколько модулей для удобства чтения плюс к полному.— Juliet 12:22, 19 апреля 2009 (MSD)
DynArray
Что делать с Add, Insert, Delete? На лекции они были написаны для одного элемента, сейчас — в варианте с params. Можно так оставить, или для params надо отдельные методы?
Только если делать отдельные, то имхо, тело лучше оставить таким же, а не вызывать в них n раз соответствующие методы для одного элемента.— Juliet 12:30, 19 апреля 2009 (MSD)
Еще такой вопрос: для массива делать сортировку?— Juliet 12:32, 19 апреля 2009 (MSD)
Да, и может лучше Assert'ы заменить на вывод сообщений об ошибках?— Juliet 12:59, 19 апреля 2009 (MSD)
Думаю, не стоит Assert заменять на вывод сообщений об ошибках, т.к.
- это в какой-то степени открывает реализацию,
- может испортить содержимое консоли,
- применение assert-ов - это уже традиция,
- при компиляции версии релиз assert-ы должны убираться, а вот вывод не уберешь.
Хотя, конечно, это будет выглядеть гораздо красивее.