Всем доброго времени суток.
Краткая предыстория.
Я помаленьку увлекаюсь программированием уже много лет, с разной интенсивностью.
Соответственно как-то уже выработал привычки по написанию хорошего кода.
А в этом году поступил в крупный технический ВУЗ, на "CS"-специальность.
И столкнулся с массой людей, которые код пишут первый раз и потому пишут его "как могут".
Что заставило меня несколько задуматься о том, насколько ценны те принципы, которые я соблюдаю, уже на задумываясь об их смысле.
Представляю на суд посетителям этого форума два варианта решения простейшей задачи - построить очередь в динамической памяти, вывести, удалить. Оба на Delphi Pascal.
Мой:
{пропущено}
Не мой:
{пропущено}
Второй почти в полтора раза короче. :\
Думаю, разницу в организации кода объяснять не надо, всё очевидно.
Хотелось бы услышать мнение форумчан, какой вариант на из взгляд предпочтительнее?
(Оффтоп)
Обожаю паскаль! 8-) Первая любовь, так сказать
Это на всю жизнь.
Советов вам тут уже много дали.
Я бы сказал так:
1. Куски кода слишком маленькие, чтобы делать далеко идущие выводы
2. Различия минимальные
3. Насколько много вы собираетесь программировать? От этого зависит, что вам посоветовать.
В любом случае посоветую читать
этот блог.
Обработку ошибок тут упоминали - вот и
про нее есть.
-- 13.12.2012, 23:13 --А, и еще.
В современных версиях Delphi (а также freepascal) выделением и очисткой памяти управляет менеждер памяти. Я не знаю точно, когда он появился, но появился чуть ли не в самых первых версиях.
То есть вот такой код будет работать корректно и
без утечек памяти:
program list1;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
element=record
value: integer;
next: integer;
end;
procedure MyProc;
var
a: element;
begin
{ Перед выполнением первой инструкции менеджер памяти выделяет память под запись а }
a.value:=10; { здесь не будет access violation, потому что память под запись уже выделена}
a.next:=15;
end; {после выхода из процедуры менеджер памяти вызовет Dispose(a) автоматически }
Менеджер памяти не управляет автоматически только объектами (описываются с помощью ключевого слова
class).
Советую еще почитать две книги про Delphi. Автор одной - Марко Канту, вторая книга - авторы Пачеко и Тейксейра (
вот например).
-- 13.12.2012, 23:17 --И еще...
Эпический холивар на тему "как правильно писать код". Там много треша, выяснения отношений, меряния линейками и прочего, но и правильных мыслей тоже много.