Валерий Лаптев писал(а):
Вернемся к компактности кода.
Многократно в книжках было отмечено - пишите небольшие процедуры. Возникало предложение - ограничить размер процедур. Непонятно было, какой размер процедуры должен быть - каким числом ограничивать. Седни наткнулся на совершенно законное психологическое обоснование: число Миллера. 7 +- 2.
То есть, если более 9 операторов в процедуре - красный цвет, сигнализирующий о том, что работа процедуры плохо продумана.
Ы?
Надо не запретами действовать, а наоборот, облегчать создание и сопровождение процедур. Для этого нужно продумать соответствующие средства в семантическом редакторе. Например, выделяешь кусок кода, шлеп по кнопке, и этот кусок кода уже выделен в отдельную процедуру, формальные параметры уже поставлены куда нужно и объявлены, а в теле программы появился вызов вновь созданной процедуры. Осталось только ввести в указанное место название процедуры и комментарии и сделать добавления в автоматически поддерживаемую электронную документацию.
Другой вариант: употребляешь в коде еще не созданную процедуру или функцию. Ее имя автоматически выделяется
цветом как требующее определения. Когда появляется время, щелкаешь по этому имени и сразу попадаешь в окно/вкладку создания новой процедуры или функции. Фактические параметры уже подставлены на место формальных, что помогает понять, какие именно формальные параметры нужны.
Или, например, выделяешь выражение, шлеп по кнопке, и это выражение уже выделено в функцию, осталось только дать ей имя.
Поскольку с выбором английских имен у русскоязычных программистов проблемы, то и тут можно сделать какой-нибудь мастер-генератор названий, отсекающий зарезервированные и ранее использованные слова, поддерживающий правильный стиль. Вот образцы генераторов имен:
http://www.namestation.com/Default.aspxhttp://www.google.ru/search?rlz=1C1CHMI ... 0%B8%D0%B9По умолчанию система программирования должна сама присваивать условные имена типа
procedure_12, которые программист должен заменить на более осмысленные.
Кстати, у меня вопрос: дробление кода на процедуры может привести к более медленной работе программы? Можно ли как-то количественно оценить возможное замедление? Может быть, имеет смысл уведомлять программиста о часто вызываемых процедурах, чтобы тот попытался реструктурировать программу (в последнем случае будет полезно средство автоматического поглощения процедуры)?