parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

было тут: http://www.parser.ru/forum/?id=55319

Misha v.3 07.12.2006 17:57 / 07.12.2006 18:29

я дописал изменения, которые используются мной. заниматься составлением и поддержкой описания я не буду (лень).

кратко:

никаких подчеркиваний в именах методов/пересенных.
первая буква - маленькая.
форматирование кода обязательно. TAB-ами.

^methodName[] - имя метода
$sVar - строка
$dtVar - дата
$tVar - таблица
$hVar - hash
$iVar/$dVar - числа (исключение: итераторы небольших циклов: i,j)
$bVar - true/false
$fVar - file/image
$xVar - xdoc/xnode
$oVar - пользовательский объект
$uVar - тип неизвестен и может быть любой (метод должен разобраться сам)

с именами классов, файлами с классами и константами у меня пока не все утряслось. стараюсь так (однако старые классы - увы со старыми именами):
ClassName - имя класса
ClassName.p - имя файла с классом
$CONST - константа. префикса типа нет, но название должно говорить за себя (самому не нравицца)
ничего пока не придумал с privat методами, кое где использую префикс '_', но мне это не нравится.

- метод создания объекта класса: @create[]
- метод инициализации статического класса: @init[]
- каждый класс имеет $sClassName[имя класса] (скоро будет не нужно, в версии из cvs уже можно достать $object.CLASS_NAME)
- глобальные переменные внутри классов не используются
- все переменные в методе должны быть объявлены локальными
- у локальных переменных нет префикса '_'
- меджу методами - 3 пустых строки
- все комментарии - на английском + как правило в классах нет русских текстов (причина: многоязыность и необходимость использовать классы и на проектах с utf8 и на проектах с 1251)
- если метод ничего не возаращает - последней строкой '$result[]' я явно сообщаю об этом.
- метод не может врзвращать данные разных типов в зависимости от входных параметров.
- метод должен оканчиваться '#end @methodName[]'

может что-то забыл :)

по поводу lib.p: нам приходится поддерживать и довольно старые проекты, поэтому взять и убить метод со старым именем я не могу. приходится тащить подобное за собой, хотя возможно я таки сделаю новый статический класс (да, будет не ^trim[], а например ^lib:trim[] и т.д.) который буду использовать в новых проектах + обертку обратной совместимости. т.е. для новых проектов будет только lib.p, а для старых lib.p + lib_backward.p в котором будут создаваться операторы.

P.S. все оглавления будут убиты, т.к. на их поддержание требуются силы, а его целессообразность сомнительна, т.к. мой редактор умеет показывать все методы в файле в отдельной колоночке.