:: Visual Foxpro, Foxpro for DOS
Re: Про соглашения Visual Foxpro
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
Я бы изобразил так
SELECT f1,
f1,
f2
FROM table1 t1
INNER JOIN tab2 t2 ON t1.id1=t2.id2
WHERE expr1>0
and expr2> 0
ORDER BY f1,
f2
INTO CURSOR cursor1

Все выравнивается по левому краю секции ибо читать начинаем слева и когда ключевые слова на одном уровне проще читать или искать.
А то что данные в разных секциях не выровнены, то даже плюс. Визуально блоки лучше делятся.

Символ табуляции в коде никогда не используется.
Заменил в настройках на два пробела.



Исправлено 1 раз(а). Последнее : Taran, 25.11.20 22:06
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Такие Select-ы если и внедрять, то разве что приказами по предприятию.
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
akvvohinc

Сообщений: 4222
Откуда: Москва
Дата регистрации: 11.11.2008
sphinx
Каждый блок выравнивается по правому краю, а его содержимое - по левому:
Прежде, чем такое писать, просто необходимо давать определения - что такое "блок", а что есть "содержимое блока".
(далее еще появляются некие "служебные слова" - тоже туманное понятие)
Например, я никогда ранее не встречал, чтобы имя команды (SELECT) и ее опции обзывались блоками.

Но даже если принять, что "блок" соответствует английскому "clause", то твой пример показывает, что "блок" - это вовсе не блок, а скорее его название, ведь если слово "FROM" - блок, то о каком содержимом может идти речь?
----------

А если по сути - будет странно, если начало команды (в данном случае слово "SELECT") будет иметь больший отступ слева, чем какие-то строки ее продолжения. А так будет, если название какого-то блока окажется длиннее, чем слово SELECT.

Я представляю себе несколько подряд идущих команд SELECT, каждая из которых состоит, допустим из 10 строк, написанных с использованием подобных соглашений.
Понять, где у команд начало, а где конец, потребует немалых усилий.
SELECT
FROM Table_List_Item
WITH BUFFERING = lExpr
WHERE JoinCondition
GROUP BY Column_List_Item
UNION
ORDER BY Order_Item
INTO StorageDestination
PREFERENCE PreferenceName
NOCONSOLE
PLAIN
NOWAIT
SELECT
FROM Table_List_Item
WITH BUFFERING = lExpr
WHERE JoinCondition
GROUP BY Column_List_Item
UNION
ORDER BY Order_Item
INTO StorageDestination
PREFERENCE PreferenceName
NOCONSOLE
PLAIN
NOWAIT
SELECT
FROM Table_List_Item
WITH BUFFERING = lExpr
WHERE JoinCondition
GROUP BY Column_List_Item
UNION
ORDER BY Order_Item
INTO StorageDestination
PREFERENCE PreferenceName
NOCONSOLE
PLAIN
NOWAIT

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

Ведь что мне пришлось делать, чтобы написать команду, приведенную выше?
1) Написал SELECT
2) Написал FROM (вернулся к началу слова, добавил 2 пробела, чтобы выровнять)
3) Далее по той же схеме еще несколько строк
4) Дошел до GROUP BY и здесь выясняется, что все строки выше надо "подровнять" по текущей (сказал - "Саша, спасибо!" и сделал)
...
5) Дошел до PREFERENCE - подровнял еще раз 8 предыдущих строк (еще одно "Спасибо!")

Но где же в конце-то концов начала и концы у этих команд?

PS
Представляю себе отлаженную (и однажды выровненную) команду SELECT строк эдак на 50, в которую понадобилось добавить (или даже убавить) пару строк. А после этого еще пригласить "выравнивателя", чтобы "перевыровнить" оставшиеся 50 строк.

(спрашивать про цель, преследуемую именно таким выравниванием, не буду - надорвался, выравнивая блоки).
Ratings: 0 negative/1 positive
Re: Про соглашения Visual Foxpro
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
При желании любую идею можно "довести до абсурда". (в скобках замечу, что особенно в этом преуспевают госорганы, ппоявляющие "административное рвение").

Заниматься "шагистикой" при написании кода - сама по себе идея довольно странная. В конце концов в VFP в интерактивной среде есть кнопка "сделать п..дато" - мечта любого фотожабера.

Если вводить какой-то стандарт, то усилия следует направить на реальные проблемы. К таким, думается, относятся имена переменных памяти, тип и область их видимости. Стоило бы подумать и насчёт имён полей. Например, встречал такой подход - все имена полей начинаются с буквы Q. Сам такой подход не использую, но общался с разрабом, утверждавшим, что это очень удобно.

Также реальной проблемой является "чистое завершение" отдельной подпрограммы. То есть чтобы после завершения подпрограммы не оставалось "следов былой красоты".

Ещё одна реальная проблема - отсутствие адекватного описания назначения модуля. В заголовке надо писать как минимум название проекта, автора модуля и функциональное назначение модуля. Если передаются и возвращаются параметры, то подробно их описать: тип, содержательная часть и т.д.
Кроме того, не лишним будет краткий комментарий по тексту модуля. Здесь уже руководствоваться "здравым смыслом".

Такие подходы облегчат читаемость чужого кода. А это одна из главных проблем, так думается.

Что же касаемо всяческих отступов при написании кода и уж тем более для SELECT SQL, то это уже явный перебор, мтк. [sm128]



Исправлено 3 раз(а). Последнее : Simple777, 26.11.20 08:07
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Simple777
Ещё одна реальная проблема - отсутствие адекватного описания назначения модуля. В заголовке надо писать как минимум название проекта, автора модуля и функциональное назначение модуля. Если передаются и возвращаются параметры, то подробно их описать: тип, содержательная часть и т.д.
Кроме того, не лишним будет краткий комментарий по тексту модуля. Здесь уже руководствоваться "здравым смыслом".

Такие подходы облегчат читаемость чужого кода. А это одна из главных проблем, так думается.

Да, это пожалуй самая здравая мысль. [sm128]


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
"Когда ничего не помогает, прочти наконец инструкцию"

В Хелпе по фоксу, все давно прописано, не изобретайте паравозов
Variable Naming Conventions ну и там "See Also"
Иначе это не "ГОСТ",а "ТУ"

ЗЫ. Продам Хелп по фоксу. Дорого.


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/2 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Taran
Я бы изобразил так
SELECT f1,
f1,
f2
FROM table1 t1
INNER JOIN tab2 t2 ON t1.id1=t2.id2
WHERE expr1>0
and expr2> 0
ORDER BY f1,
f2
INTO CURSOR cursor1

Все выравнивается по левому краю секции ибо читать начинаем слева и когда ключевые слова на одном уровне проще читать или искать.
А то что данные в разных секциях не выровнены, то даже плюс. Визуально блоки лучше делятся.

Символ табуляции в коде никогда не используется.
Заменил в настройках на два пробела.

Олегыч, ну правильно понял, ну ты же молодец, если этого еще не знаешь.


------------------
"Veni, vidi, vici!"(с)




Исправлено 1 раз(а). Последнее : sphinx, 26.11.20 18:23
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
piva
"Когда ничего не помогает, прочти наконец инструкцию"
В Хелпе по фоксу, все давно прописано, не изобретайте паравозов
Variable Naming Conventions ну и там "See Also"
Иначе это не "ГОСТ",а "ТУ"

ЗЫ. Продам Хелп по фоксу. Дорого.

Ога, Вадь, пасиб.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Crispy
Simple777
Ещё одна реальная проблема - отсутствие адекватного описания назначения модуля. В заголовке надо писать как минимум название проекта, автора модуля и функциональное назначение модуля. Если передаются и возвращаются параметры, то подробно их описать: тип, содержательная часть и т.д.
Кроме того, не лишним будет краткий комментарий по тексту модуля. Здесь уже руководствоваться "здравым смыслом".

Такие подходы облегчат читаемость чужого кода. А это одна из главных проблем, так думается.

Да, это пожалуй самая здравая мысль. [sm128]

Я сегодня отправил с учетом всех замечаний Максимова. Документ еще не подписан, что-то можно подправить.



------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
akvvohinc
sphinx
Каждый блок выравнивается по правому краю, а его содержимое - по левому:
Прежде, чем такое писать, просто необходимо давать определения - что такое "блок", а что есть "содержимое блока".
(далее еще появляются некие "служебные слова" - тоже туманное понятие)
Например, я никогда ранее не встречал, чтобы имя команды (SELECT) и ее опции обзывались блоками.

Но даже если принять, что "блок" соответствует английскому "clause", то твой пример показывает, что "блок" - это вовсе не блок, а скорее его название, ведь если слово "FROM" - блок, то о каком содержимом может идти речь?
----------

А если по сути - будет странно, если начало команды (в данном случае слово "SELECT") будет иметь больший отступ слева, чем какие-то строки ее продолжения. А так будет, если название какого-то блока окажется длиннее, чем слово SELECT.

Я представляю себе несколько подряд идущих команд SELECT, каждая из которых состоит, допустим из 10 строк, написанных с использованием подобных соглашений.
Понять, где у команд начало, а где конец, потребует немалых усилий.
SELECT
FROM Table_List_Item
WITH BUFFERING = lExpr
WHERE JoinCondition
GROUP BY Column_List_Item
UNION
ORDER BY Order_Item
INTO StorageDestination
PREFERENCE PreferenceName
NOCONSOLE
PLAIN
NOWAIT
SELECT
FROM Table_List_Item
WITH BUFFERING = lExpr
WHERE JoinCondition
GROUP BY Column_List_Item
UNION
ORDER BY Order_Item
INTO StorageDestination
PREFERENCE PreferenceName
NOCONSOLE
PLAIN
NOWAIT
SELECT
FROM Table_List_Item
WITH BUFFERING = lExpr
WHERE JoinCondition
GROUP BY Column_List_Item
UNION
ORDER BY Order_Item
INTO StorageDestination
PREFERENCE PreferenceName
NOCONSOLE
PLAIN
NOWAIT

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

Ведь что мне пришлось делать, чтобы написать команду, приведенную выше?
1) Написал SELECT
2) Написал FROM (вернулся к началу слова, добавил 2 пробела, чтобы выровнять)
3) Далее по той же схеме еще несколько строк
4) Дошел до GROUP BY и здесь выясняется, что все строки выше надо "подровнять" по текущей (сказал - "Саша, спасибо!" и сделал)
...
5) Дошел до PREFERENCE - подровнял еще раз 8 предыдущих строк (еще одно "Спасибо!")

Но где же в конце-то концов начала и концы у этих команд?

PS
Представляю себе отлаженную (и однажды выровненную) команду SELECT строк эдак на 50, в которую понадобилось добавить (или даже убавить) пару строк. А после этого еще пригласить "выравнивателя", чтобы "перевыровнить" оставшиеся 50 строк.

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

И тебя услышал. Да, блок - мое определение, не раскрывает сути. Согласен. Но Таран же понял! А ты просто до абсурда довел, хотя я просил СФОРМУЛИРОВАТЬ, как правильно выразиться в докускетации, чтобы выравнять операторы SQL справа, под последнюю букву слова SELECT. Стоп, а это мысль!


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
Маленечко на всякий случай.
Выше рассматривался вопрос именования файлов. В том числе мюиспользование прописных/строчных букв.
И вроде бы все просто, Виндовс все съест.
Но! Может быть ситуация когда файлы лежат на Unix типа сервере. Допустим БД или шаблоны отчётов.
А вот там критично.
Мелочь, а бывает больно.
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Я убрал. Оставил только "английские буквы, цифры и знак подчеркивания". Остальное потер.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Лулгу вроде хотел помочь, чего спешишь
sphinx
Документ еще не подписан, что-то можно подправить

Молодежь подоспела, придержи лошадей.
Свежие мысли у ворот.
Английские буквы подождут.



Исправлено 1 раз(а). Последнее : Ydin, 26.11.20 21:57
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
lulgu
Такие Select-ы если и внедрять, то разве что приказами по предприятию.
А таки да! Я согласен. Вам нужно ехать или шашечки?
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
Taran

Сообщений: 13625
Откуда: Красноярск
Дата регистрации: 16.01.2008
Ydin
lulgu
Такие Select-ы если и внедрять, то разве что приказами по предприятию.
А таки да! Я согласен. Вам нужно ехать или шашечки?

Именно ехать, а не бренчать каждый день по одной и той же дороге как первый раз.
Select SQL это по сути целая подпрограмма, которая включает в себя непосредственно выбор данных, фильтрацию, сортировку.
Так почему бы не выделить отдельные секции с новой строки.
Накладные расходы времени ничтожны, а выигрышь налицо.
Ладно пустышка может брякнуть что угодно, а Вам то, Александр, зачем?



Исправлено 1 раз(а). Последнее : Taran, 26.11.20 22:22
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Ydin
Лулгу вроде хотел помочь, чего спешишь
sphinx
Документ еще не подписан, что-то можно подправить

Молодежь подоспела, придержи лошадей.
Свежие мысли у ворот.
Английские буквы подождут.

Свежих мыслей подкинуть нетрудно, но какой в этом смысл?
Похоже, с такими консультантами Pive свой Хелп вскоре придется переписывать, чтобы утвердили.

ЗЫ. Помнится, я как-то писал, что с GdiPlus в Фоксе можно работать намного проще и ваш FoxCharts упростится до двух классов.
Если это имеет смысл и возьметесь за эту довольно большую работу, то могу помочь как хобби.
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Taran
Ydin
lulgu
Такие Select-ы если и внедрять, то разве что приказами по предприятию.
А таки да! Я согласен. Вам нужно ехать или шашечки?

Именно ехать, а не бренчать каждый день по одной и той же дороге как первый раз.
Select SQL это по сути целая подпрограмма, которая включает в себя непосредственно выбор данных, фильтрацию, сортировку.
Так почему бы не выделить отдельные секции с новой строки.
Накладные расходы времени ничтожны, а выигрышь налицо.
Ладно пустышка может брякнуть что угодно, а Вам то, Александр, зачем?

Да ты напиши сначала этот Select с парочкойт подзапросов, хронический болтун.
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Taran
Ydin
lulgu
Такие Select-ы если и внедрять, то разве что приказами по предприятию.
А таки да! Я согласен. Вам нужно ехать или шашечки?

Именно ехать, а не бренчать каждый день по одной и той же дороге как первый раз.
Select SQL это по сути целая подпрограмма, которая включает в себя непосредственно выбор данных, фильтрацию, сортировку.
Так почему бы не выделить отдельные секции с новой строки.
Накладные расходы времени ничтожны, а выигрышь налицо.
Ладно пустышка может брякнуть что угодно, а Вам то, Александр, зачем?

С Олегом согласен по сути. Не по форме выражения мыслей. Саше Юдину я тоже руку жал и на первом сидении в автобусе он терпеливо слушал, как я побеждал биллинг. И Вадик его (биллинг) укрощал, не ржал над моими проблемами.


------------------
"Veni, vidi, vici!"(с)




Исправлено 1 раз(а). Последнее : sphinx, 26.11.20 22:46
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
sphinx
Автор

Сообщений: 31182
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
lulgu
Помнится, я как-то писал, что с GdiPlus в Фоксе можно работать намного проще и ваш FoxCharts упростится до двух классов.

Не знаю, не работал. По ГдиПлюс Макс Шанин шарил. Но он сейчас ДАВНО в СиШарпе.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Про соглашения Visual Foxpro
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
sphinx
Taran
Ydin
lulgu
Такие Select-ы если и внедрять, то разве что приказами по предприятию.
А таки да! Я согласен. Вам нужно ехать или шашечки?

Именно ехать, а не бренчать каждый день по одной и той же дороге как первый раз.
Select SQL это по сути целая подпрограмма, которая включает в себя непосредственно выбор данных, фильтрацию, сортировку.
Так почему бы не выделить отдельные секции с новой строки.
Накладные расходы времени ничтожны, а выигрышь налицо.
Ладно пустышка может брякнуть что угодно, а Вам то, Александр, зачем?

С Олегом согласен по сути. Не по форме выражения мыслей. Саше Юдину я тоже руку жал и на первом сидении в автобусе он терпеливо слушал, как я побеждал биллинг. И Вадик его (биллинг) укрощал, не ржал над моими проблемами.

Да вы хоть в Хелп для начала загляните и Тарана с собой прихватите.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 24 Владимир Максимов PaulWist  (Гостей: 22)

© 2000-2024 Fox Club 
Яндекс.Метрика