Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

---|Ветка была без названия|---   Найти похожие ветки 

 
lipskiy   (2002-04-11 12:12) [0]

Господа программеры! Есть идея создания на этом сайте отельного ресурса - базы процедур и функций на Delphi. Эта идея возникла у меня и у VID, и мы предложили ее Мерлину. Оказалось, что это давно планируется, но у Мерлина нет свободного времени, чтобы это сделать. Он предложил сделать такую базу нам самим, а он предоставит дисковое пространство.

Суть базы функций в следующем.
Хочется иметь ресурсы, которые можно просто брать и использовать, не утруждая себя поисками, обсуждениями, вниканиями и пр. Эти ресурсы должны быть в виде обычных юнитов, просто подключаемых к проекту. Каждый юнит содержит набор функций определенной тематики с кратким описанием. Сами функции могут быть совершенно любыми, в первую очередь, вероятно это будут функции из FAQ - наиболее часто используемые.
Базу может пополнять кто угодно и всегда (через форму) своими функциями, как в кладовке.

Как вам такая идея?
И кто может написать такую форму для сайта?


 
Виктор Щербаков   (2002-04-11 12:29) [1]

Хорошая идея. Но сначала несколько общих вопросов:
1.Могут ли функции быть взаимозависимыми (т.е. вызывать другие функции этого же модуля).
2.Каковы правила оформления исходника (ведь бывает читать невозможно)
3. Если базу сможет беспрепятственно пополнять каждый, то возможно попадание туда некачественного кода или дублирующего или просто бесполезного. Получится то же что в кладовке.

Мое мнение: нужен чел, который бы следил за состоянием этой базы и наводил в ней порядок. Возможно кто-то из мастеров согласится, или из наиболее продвинутых?


 
gek   (2002-04-11 12:39) [2]

Да, наверное надо сделать.
Идея хорошая.
Смотрящий вероятно тоже необходим.


 
VID   (2002-04-11 12:57) [3]

TO Виктор Щербаков:
1. Наверное да, но главное что бы не вызывались из другого модуля. Ну а если ОЧЕНЬ надо, то необходимо будет предупредить пользователя о том , что Функция X ссылается на модуль А, итп.
2. Правила оформления исходника... ну для начала можно не особо нагружать особмыми правилами, главное что бы комментариев побольше было...
3. Видимо всё-таки будет нуобходим кто-то,кто будет проверять функции и процедуры на правильность, корректность и прочее.

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

В этом случае работа "смотрящего" заключается в "разгрузке" временного хранилища функций, т.е. в постепенной проверке поступающих функций и переводе их оттуда в хранилище "сертифицированных" :) функций, с последующим иерархическим распределением этих функций.

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


 
wicked   (2002-04-11 13:02) [4]

можно добавить?...
имхо просто НЕОБХОДИМО будет сделать полнотекстовый "умный" поиск по таким модулям... а иначе очень скоро такое скопление исходников превратится просто в кучу...


 
Виктор Щербаков   (2002-04-11 13:14) [5]

wicked © (11.04.02 13:02)
А я говорил про правила оформления кода неспроста. Скажем простое требование: вставлять форматированные комментарии в начале каждой функции, упростит задачу программного поиска.


 
wicked   (2002-04-11 13:22) [6]

2 Виктор Щербаков ©
гм... а если я помню только, что где-то видел кусочек наподобие
SHBrowseForFolder(<blah-blah>);
или
lfOrientation := ?
вот оно - full text необходим...


 
lipskiy   (2002-04-11 13:31) [7]

Фоматирование кода, имхо, обязательно.
Обязательно для каждой функции - имя автора и дата последней модификации.

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

Вот, например, такой формат.

//_Функция набора телефонного номера модемом
// Автор: lipskiy {мыло, аська по желанию}
// Проконтролировано: [Имя Мастера]
// Дата:
{
Текст описания функции, как ей пользоваться (формат параметров), какими Дельфями поддерживается, какие системные модули требует, на какие юниты из этой базы ссылается, на какие функции из этого юнита ссылается.
}
Function TelephonCall(Number:string);
begin
end;

При поиске функций выводится список строчек, содержащих //_ - только название функции. Кнопка подробного просмотра выводит полное описание, еще кнопка выводит всю функцию для просмотра.



 
wicked   (2002-04-11 13:34) [8]


> При поиске функций выводится список строчек, содержащих
> //_ - только название функции. Кнопка подробного просмотра
> выводит полное описание, еще кнопка выводит всю функцию
> для просмотра.

имхо напоминает древообразные форумы... может попроще сделать?...


 
lipskiy   (2002-04-11 13:43) [9]

Может и попроще!
Для этого мы и завели эту тему здесь, давайте, предлагайте!


 
wicked   (2002-04-11 13:53) [10]

может я и надоел кое-кому со своими идеями (hi Merlin :)...
я предлагал сделать чего-то вроде code snippets - типа изюминки программирования, маленькие секреты - не готовые модули, а куски программ, процедуры, реализации алгоритмов, шаблоны не более, чем, скажем, 300 - 500 строк, с комментариями, которые человек мог бы вставить в свою программу, подогнать под свои нужды и т. д... соответственно, с полнотекстовым поиском - в таком варианте без него просто не обойтись...


 
lipskiy   (2002-04-11 13:58) [11]

Немножко не то.
> подогнать под свои нужды и т. д...
вот без этого бы лучше обойтись, имхо.
Лучший вариант - как API, вызвал и получил, а как оно внутрях устроено - разбираться чтоб не было прямой необходимости.


 
wicked   (2002-04-11 14:04) [12]


> Лучший вариант - как API, вызвал и получил

тогда автора придётся заставлять сопровождать свой код...
а в моём случае - as is и no warranties... ;)


 
VID   (2002-04-11 14:12) [13]

TO lipskiy: ха, думаю, что прочитв твой последнее предложение
"...Лучший вариант - как API, вызвал и получил, а как оно внутрях устроено - разбираться чтоб не было прямой необходимости"
DIGITMAN будет особо рад :)))

TO ALL:

В общем идея преоразилась слегка:
Итак, метод хранения данных:
создаётся таблица с полями: Тип, Автор, Дата, Проверил, текстКода, список_использованных_функций_и_процедур, тематическая_принадлежность.
Под "типом" понимается тип приводимого кода: функция или процедура.
Каждая запись в этой таблице = одной функции или процедуре.

Метод представления данных:

Саначала даются ссылки на разделы: WinApi, БазыДанных, VCL, итд.
Каждый линк ссылается на соответствующую тематическую страницу, в которой будут перечислены названия функций, автор, дата, и проверивший:
Например:
--------------------------------------
Функция: PhoneCall(Number:Integer):Boolean;
Автор: somebody
Дата : 01.01.5651
Проверил: кто-то
Используемые функции:.....
--------------------------------------
Кликнув на название функции, открывается её исходный текст.

вот приблизительно в таком виде должны быть отображены функции на странице. Если страницы не хватает, то появятся ссылки "1 2 3 4..."

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


 
Виктор Щербаков   (2002-04-11 14:12) [14]

lipskiy © (11.04.02 13:58)
Да действительно. Лучше сделать что-то вроде библиотеки мастаков. Многим пойдут на пользу испытанные в разных ситуациях, надежные, эффективные и хорошо документированные функции. А советы и шаблоны - для этого, ИМХО, лучше FAQ.

wicked © (11.04.02 14:04)
> тогда автора придётся заставлять сопровождать свой код...

И как? :)))
Я же говорю, специальный чел или их группа, проверяющие качество кода, смогут свести кол-во глюков до приемлимого. К тому же, в разработке одной функции должны принимать участие несколько разработчиков (по возможности). Надежность от этого повысится.


 
VID   (2002-04-11 14:18) [15]

да, конечно же ещё надо добавить краткое описание функции, что бы оно тоже отображалось в группе сведений о функции


 
Merlin   (2002-04-11 14:36) [16]

По опыту своему скромному, могу посоветовать. Начните с простого, и двигайтесь к сложному. Попытка с первого раза создать нечто универсальное и супер-пупер класное, как правило, заканчивается неудачей.
Вы уже наговорили на неделю работы Perl/PHP программисту :)


 
lipskiy   (2002-04-11 14:40) [17]

2 Виктор Щербаков

> Лучше сделать что-то вроде библиотеки мастаков.
> А советы и шаблоны - для этого, ИМХО, лучше FAQ.

Стопудово именно так! Кесарю - кесарево, слесарю - слесарево.
База должна содержать готовые к употреблению вещи, а не полуфабрикаты.

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

Дело за малым - поскольку мы с VID уже выяснили, что делать веб-формы и подобные веб-базы мы с ним не умеем, то осталось только
НАЙТИ ЛЮДЕЙ СРЕДИ ФОРУМЦЕВ И НЕ ТОЛЬКО, КТО СМОГ БЫ ЭТО НАПИСАТЬ.
АУ!

И Merlin прав, надо сначала сделать хоть что-то и простенькое, но даже простенькое сможет сделать только тот, кто хоть что-то уже в этом направлении умеет :)


 
VID   (2002-04-11 14:47) [18]

Да, я согласен... но с другой стороны, в основе дела, должна лежать универасальная технология, что бы потом легче было дорабатывать...

с другой стороны, кто сказал что это дело одного дня ?

действительно, "...НАДО НАЙТИ ЛЮДЕЙ СРЕДИ ФОРУМЦЕВ И НЕ ТОЛЬКО, КТО СМОГ БЫ ЭТО НАПИСАТЬ"


 
vuk   (2002-04-11 14:49) [19]

http://www.torry.net/dpfl/home.html


 
VID   (2002-04-11 14:58) [20]

TO vuk: ну и что ? у нас зато будет на русском языке :)))


 
VID   (2002-04-11 14:59) [21]

Хотя спору нет, ресурс хороший, я уже пару функций себе стянул :)


 
vuk   (2002-04-11 15:05) [22]

Намек понят не до конца. :o) Если уж браться за реализацию, то можно посмотреть, учесть опыт, такскзть... :o)


 
VID   (2002-04-11 15:10) [23]

а-а... ну это хорошо :) только в конечном счёте стрницу ваять не мне и не lipskiy... я тут всего-лишь приблизительный вариант предлагал...


 
wicked   (2002-04-11 16:04) [24]


> только в конечном счёте стрницу ваять не мне и не lipskiy...

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


 
lipskiy   (2002-04-11 16:43) [25]

По указанной vuk ссылке по сути лежит то, что и предлагается, это да. Но вот интерфейс тот лично мне не нравится.
Во-первых, не нужно сразу же отображать код функций, искать неудобно да и грузится долго будет.
Во-вторых, недостаточная разветвленность и неподробные описания и комментарии.

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

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

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


 
Dimka Maslov   (2002-04-11 16:59) [26]

Можно сделать и не библиотеку функций, а нечто вроде библиотеки подсказок (как например programming tips на http://www.swissdelphicenter.ch/en/tipsindex.php). Фактически это всё-таки библиотека функций, а не целых модулей. Для каждой такой подсказки указывается краткое описание, что делает, какие параметры и кто автор. К ним это отсылается через формы, потом они пишут, что мы сначала проверим, а потом разместим и вас уведомим, что разместили. При этом они ещё смотрят, чтобы функции не повторялись. Мне кажется что такой раздел можно и сделать для начала.


 
lipskiy   (2002-04-11 17:10) [27]

Вот это уже значительно ближе к истине! (about Dimka Maslov)
Хороший момент - функция и пример ее использования.
Насчет проверки уже говорилось - да, это бы обязательно хотелось иметь. Но тут надо спросить мнение мастеров - будут ли они этим заниматься?

Насчет проверено / не проверно можно сделать еще, например так.
Не отдельную базу для всех и отдельную для проверенных, а просто в описании функции - одно из полей - метка, "печать" мастера, типа "протестировано и одобрено". А при хождении по дереву иметь опцию - показывать все, только проверенное, только непроверенное.



 
Dimka Maslov   (2002-04-11 17:25) [28]

Скажу и несколько слов про реализацию того, что сказано мной выше. Для этого требуется простая форма (не сложней чем здесь для ответа на вопрос). Далее скрипт, стоящий за этой формой посылает только письмо по почте ответственному за мероприятие (назовём его модератором). Модератор тестирует код сам или пересылает другому. При тестировании определяется работоспособность при различных параметрах, назначается раздел, в котором она будет находиться, а также то, что такой функции в списке нет. Проверенные модераторами функции размещаются на сайте (этот процесс можно и автоматизировать, чтобы упрастить жизнь модераторов).


 
Torry   (2002-04-11 17:28) [29]

To Dimka Maslov:

Просто для информации:

http://www.swissdelphicenter.ch/en/tipsindex.php существует в виде программы-оболочки и небольшой БД (на 600 tips). Выпущено как часть нашего DVD (4 релиз). Условия лицензии: только как часть CD or DVD Edition of Torry"s Delphi Pages.

Занимает около 6-7 Мб в развернутом виде. Ежели Саймон (веб-мастер вышеуказанного сайта) даст согласие на публикацию этого как отдельного продукта (сразу оговорюсь - я на эту тему с ним говорить не буду в виду сходства позиций по проблемам лицензий для подобных продуктов), то, думаю, это можно было бы сделать в рамках "Мастеров".


 
lipskiy   (2002-04-11 17:38) [30]


> посылает только письмо по почте ответственному за мероприятие

Позвольте не согласится с "только".
Будет продуктивнее, если код будет сразу публиковаться, но с постомодерированием. При этом по подписи мастера можно сразу узнать - протестировано или нет.
Модераторы - живые люди и денег за эту работу не получат, так что нагрузка на них высокая будет.
А если публиковать сразу, то рядом с каждой функцией можно сделать поле комментариев, куда любой сможет написать о том, работает это или нет, и м.б. как можно исправить/оптимизировать. Таким образом и модераторам/мастерам работа значительно упростится - к моменту тестинга они уже смогут иметь некую доп. инфу.


 
MAxiMum   (2002-04-11 17:41) [31]

А я думаю, что каждый пускай делает сам и думает сам. А если не может, то в хелпе и Инете ищет. Вот!


 
lipskiy   (2002-04-11 17:44) [32]

2 MAxiMum
Спасибо за мнение, но такой подход, имхо, глупый.
Вы же не пишете себе ОС сами, а пользуетесь готовым продуктом.
Если каждый все с нуля делать будет - все будет стоять на месте!


 
Dimka Maslov   (2002-04-11 17:58) [33]

>lipsky
Конечно, лучше, когда всё сразу публикуется и комментируется, однако это усложнит задачу на начальном этапе, ибо сказал Merlin " Вы уже наговорили на неделю работы Perl/PHP программисту :)".
Вот и получается, что можно упрастить работу программистов, но нагрузить модераторов, и наоборот. В этом и нужно искать компромисс.


 
VID   (2002-04-11 18:49) [34]

TO Dimka Maslov: Лучше однажды программеры потрудяться, чем потом всё время модератор будет париться :)
А вообще, дополнительное поле, типа "Проверено/не проверено" - это хорошая мысль.

НО ДО СИХ ПОР НЕЯСНО КТО БУДЕТ СОЗДАВАТЬ СТРАНИЦУ ?


 
Dimka Maslov   (2002-04-11 19:38) [35]

>VID
Всё-таки да, пусть программисты парятся неделю, чем модераторы долгое время.

Действительно, кто-же будет создавать страницу? Здесь форум про Delphi и у подавляющего большинства сайты размещены на бесплатных хостингах, где CGI или нет или нет вообще, следовательно, изучать всё это неинтересно, а потому мало кто здесь возьмётся за такую задачу. Тем не менее это весьма интересная задача и решать её надо тем у кого хоть какой-то, но опыт в программировании CGI имеется. Например у меня. А у кого ещё?


 
lipskiy   (2002-04-11 19:43) [36]

Ок! Один чел есть!!! Г-н Dimka Maslov - спасибо!
А это сложно сделать одному?
Я могу, к сожалению, помочь только советами - как организовать структуру и интерфейс.


 
Dimka Maslov   (2002-04-11 19:59) [37]

Не могу сказать, сложно или нет, все мои познания в PHP отражены в гостевой книге у меня на сайте, одному тут не справиться, несомненно нужен помощник. Кроме того есть злые люди, которые будут мне мешать заниматься благим делом во имя строительства мостов. И ещё. Данная задача требует умения работать с базами данных, чего у меня нет. Можно обойтись и без них, но это совсем другая история.


 
VID   (2002-04-11 20:14) [38]

TO Dimka Maslov: База данных нужна. В данном случае можно использовать НЕ "клиент-сервер", а обычные локальные таблицы. Я на фоксе легко такие приложения делал, а вот на дельфи опыта нету. Но можно попробовать.

Хотя, насколько я понимаю, в конце-концов cgi-скрипты должны быть отправлены на этот сайт, а значит их там будут проверять на работоспособность... И им решать какую технологию базы данных использовать (какая им удобнее). ПОЭТОМУ МОЖЕТ ВОПРОСОМ СОЗДАНИЯ CGI-СКРИПТА, ДЛЯ РАБОТЫ С БД, ЛУЧШЕ ЗАНЯТЬСЯ КОМУ-НИБУДЬ ИЗ МОДЕРАТОРОВ ?

А опыт программирования cgi у меня на уровне 1-2 занятий... лекционных.


 
lipskiy   (2002-04-11 20:16) [39]

А без БД не обойтись? Можно же просто - функция = файл + ссылка на него.


 
Dimka Maslov   (2002-04-11 20:19) [40]

>VID
Вся трудность именно в том, что работать с базой данных надо из Пёрла или ПХП, вот тут уже я не справлюсь, а всё остальное сделать можно, правда работа с БД - основа данного мероприятия.



Страницы: 1 2 3 4 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.006 c
3-88375
Hamster
2002-05-03 07:35
2002.05.27
как проверить наличие таблицы в базе ?


3-88346
nikulin
2002-04-30 15:51
2002.05.27
КАК?????


1-88464
ivan_dishlenko
2002-05-17 13:42
2002.05.27
Компонент ругается


1-88565
Коля
2002-05-16 14:44
2002.05.27
Мастеря, помогите еще разок =)


3-88386
Makss
2002-05-04 10:10
2002.05.27
ICQ!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский