Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  11:29[Войти] | [Зарегистрироваться]
Обсуждение темы:
Можно, но не нужно.


Последнее время я не программирую, а рaзгpебаю зaвалы которые оставили до меня покoления программистов. Чтобы внести минимальное декоративное изменение требуется исправить несколько модулей и потратить несопоставимую по сложности работу по выискиванию всех мест, в которые надо внести изменения.
Дело в том, что тем методы, которые допустимы в примерах, олимпиадах и лабах по программированию, совершенно неприемлемы при создании крупных и долгоживущих прикладных программ.
Предлагаю в этой теме публиковать примеры, как не надо программировать на Delphi, что бы потом не было мучительно больно от встречи с теми, кто исправлял твой код.

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 421 сообщение

Добавить свое сообщение

Отслеживать это обсуждение
<<<... | 201—192 | 191—182 | 181—172 | ...>>>
Всего сообщений в теме: 421; страниц: 43; текущая страница: 24


№ 191   15-04-2008 03:08 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 190« (Geo)
___________________________
Но это, опять же, не повод категорично запрещать WITH. Можно запрещать его использование для стажера Тема-то, по моему разумению в их адрес в основном и направлена. А иначе всегда можно привести примеры оправданного использования и GOTO и CopyPaste.
 Cep


№ 190   15-04-2008 02:40 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 189« (Cepгей Poщин)
___________________________
Увы, это так. Просто элементарно нет достаточного количества ресурсов для обучения в процессе работы. Я нашим тим-лидерам поражаюсь: они мало того, что сами что-то делают, но еще и просматривают результаты своих подчиненных и вылавилвают хотя бы процентов 75 ошибок.

Но это, опять же, не повод категорично запрещать WITH. Можно запрещать его использование для стажера, который еще не доказал, что понимает.
 Geo


№ 189   15-04-2008 02:22 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 188« (Geo)
___________________________
А еще лучше не пинать, а тут же двать задание на доработку, которое наглядно продемнострирует эту самую неправильность Хорошо бы, но не в каждой фирме на одного стажора можно выделить трёх мастеров. Обычно наоборот три стажора налепят, спустя год: "Тут уже всё работает, только у юзеров иногда ошибки появляются"...
 Cep


№ 188   15-04-2008 01:58 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 187« (Cepгей Poщин)
___________________________
>>> то малоопытные программисты будут хотя бы знать за что их бьют старшие товарищи :)
Малоопытных товарищей нужно пинать за неправильное использование любых конструкций, а не за использование каких-либо отдельных кончтрукций вообще. А еще лучше не пинать, а тут же двать задание на доработку, которое наглядно продемнострирует эту самую неправильность. Вот попыхтит такой товарищ над сосбтвенным неграмотным кодом и на всю жизнь запомнит, что писать надо хорошо. А плохо писать не надо.
 Geo


№ 187   15-04-2008 01:24 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 186« (Сергей Хачатуров)
___________________________
можно, но не нужно хаять with Нужно, нужно! Если все высказанные ранее аргументы не натолкнут на определенные мысли, то малоопытные программисты будут хотя бы знать за что их бьют старшие товарищи :)
 Cep


№ 186   14-04-2008 16:09 Ответить на это сообщение Ответить на это сообщение с цитированием
можно, но не нужно хаять with.

кстати я в большинстве случаев пользуюсь всплывающим списком свойств/методов класса к которому обращаюсь, вместо набирания вречную. в случае вложенных with или если свойства объекта with кот-ым что-то делаешь совпадают со свойствами класса (формы), всплывающий список содержит повторяющиеся свойства/методы, что наводит на определенные мысли...


№ 185   14-04-2008 12:51 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 184« (Cepгей Poщин)
___________________________
>>> Как бы его следовало переписать...
Это элементарно!

  repeat
    OldShift := Shift;
    if CompareFront(Text, MenuKeyCaps[mkcShift]) then Shift := Shift or scShift
    else if CompareFront(Text, '^') then Shift := Shift or scCtrl
    else if CompareFront(Text, MenuKeyCaps[mkcCtrl]) then Shift := Shift or scCtrl
    else if CompareFront(Text, MenuKeyCaps[mkcAlt]) then Shift := Shift or scAlt;
  until OldShift = Shift;


Со всеми поквитаюсь, кто мне про GOTO примеры сочинял! ;-) Это я еще не привел пример вынесения части кода в подпрограмму, дабы избежать использования WHILE TRUE DO :D


Ответ на »сообщение 183« (panda)
___________________________
>>> К Exit Ваше отношение тоже относится?
Собственно, дело не в том, какой там будет выход. Просто сам цикл WHILE TRUE DO или REPEAT UNTIL FALSE вызывают некоторое отторжение. Потому что это уже не цикл, а тот самый скрытый GOTO. Цикл все же подразумевает условие завершения, которое в таких конструкциях отсутствует.

Хотя и самому приходилось такие циклы использовать. Но по возможности стараюсь перестроить код так, чтобы их избежать.
 Geo


№ 184   14-04-2008 08:52 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 181« (Geo)
___________________________
Тем не менее это довольно распространенная конструкция в delph'овых первоисточниках:

  while True do
  begin
    if CompareFront(Text, MenuKeyCaps[mkcShift]) then Shift := Shift or scShift
    else if CompareFront(Text, '^') then Shift := Shift or scCtrl
    else if CompareFront(Text, MenuKeyCaps[mkcCtrl]) then Shift := Shift or scCtrl
    else if CompareFront(Text, MenuKeyCaps[mkcAlt]) then Shift := Shift or scAlt
    else Break;
  end;

Как бы его следовало переписать...
 Cep


№ 183   14-04-2008 08:42 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 181« (Geo)
___________________________

К Exit Ваше отношение тоже относится?

Близко, но несколько не в тему: недавно писал генератор на Python. Специально убрал управляющий флаг и поставил while True (выходы по return и yield). На мой взгляд очень даже симпатично получилось - сразу видно, что есть цикл формирования последовательности, условие возврата очередного значения и условие выхода из цикла формирования. Причем отказ от флага позволил сделать условия равнозначными:

def GenerateNextValue() :
  while True :
    UserChoice = SelectValue(...)
    if UserChioce.Button == SelectButton :
      SelectedValue = UserChoice.Value
      yield SelectedValue
    else :
      return



№ 182   14-04-2008 07:16 Ответить на это сообщение Ответить на это сообщение с цитированием
to Green:
>>> Так все-таки "не помню" или "не копался"? :)
Конструкцию WITH я начал осваивать очень давно. И, наверняка, у меня при этом были грабли. Но задавностью лет уже не помню. А в более позднее время ошибок больше не делал.

А не копался я в обоснованиях, почему WITH плохой.
 Geo


<<<... | 201—192 | 191—182 | 181—172 | ...>>>
Всего сообщений в теме: 421; страниц: 43; текущая страница: 24


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

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

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования