|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
>Kpblc
Я как понимаю: Есть 100 секций программы и в каждой применяется 10-15 одинаковых функций. Я сгласен, что создав библиотеку из этих 10-15 функций мы делаем более совершенной программу. Но это только при условии, что универсализм как ты его описал есть компромис между легкостью в работе программиста и эксплуатационными качествами готового продукта. Если ты как программист будешь тянуть одеяло на себя и думать только о своих ощущениях при работе с текстом программы "звездолет" не то что не поднимится в космос, он не оторвется от взлетной площадки. Все будет работать, я подчеркиваю, но результат будет выглядеть как ракета весом в 1000 тонн с полезным грузом на борту в 1 кг. С увеличением функций в библиотеке, функций лиспа в теле программы будет все меньше и меньше, пока они не исчезнут вообще. Появится новый уровень языка, хотя сам лисп не такой уж и низкий. Да я буду делать тоже, что и ты, только где-то в глубине мозга будет биться творческий червячок, пока не сдохнет окончательно от безнадеги. Сейчас людей знающих ассемблер раз, два и обчелся. Скоро и лисп станет языком низкого уровня. Что такое "красивое решение"? Вот я смотрю на текст программы и вижу, как она красива. Как все оригинально придумано, как ловко решены проблемные моменты. Как компактно сделаны функции - ничего лишнего. У тебя Kpblc были такие моменты в работе? Как сделать так, чтобы знания и опыт, выраженный в тысячах сделанных функций перетек в качество новых программ? Не стал разменной монетой в погоне за длинным рублем, а научил, как делать настоящие вещи. Я понимаю всех, кто каждый день пишет программы и вынужден повторяться, но неужели моральная усталость убила в вас художников? Я тоже люблю бабло срубить по быстрому, но вот если при этом и качество выдать на гора, то это будет вааще! Каждая функция это микропрограмма с конечной целью. Можно добиться этой цели разными путями, но среди всех есть путь наиболее рациональный и грамотный. Надо эти пути понимать и распространять это понимание среди других. В них заложена красота решения задачи. Но вы на мои вопли особо внимание не обращайте. Если появляется инструмент, позволяющий писать в день не одну, а 10 к примеру программ, то это деньги! А поскольку за красоту программ никто не платит, так и фиг с ней. Вот когда наступит кризис, вот тогда и разгребать его будем. Последний раз редактировалось Supermax, 12.11.2007 в 23:54. |
||||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Ни хрена не понимаю. Понимаю, однако, что "Готовые функции" совсем не то, что "Готовые программы". В готовой программе можно определить прикладное назначение кода, про готовую функцию так не скажешь. Функция для программиста, программа для проектировщика. Библиотека функций - неизвестно для кого. Что из этого следует? А то и следует, что предлагаемая здесь стратегия не для меня. И лучше не соваться, а то будет гав.
|
|||
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826
|
Не понял, какие ошибки? Сам пытаюсь прописывать в коментах, чего куда ссылается и даже какие проги используют эту функцию. Иначе через месяц в свой же проге не разберусь. А если сделать "автоматический механизм связывания", то этож будет еще полезнее чем тэги (может просто - ключевые слова?). Скачав нужную мне функцию, в придачу к ней тянутся все используюмые подфункции в ней. Таким образом обычному пользователю не надо будет тащить эту кучу мусора о которой говорит Supermax, на этом уже и поучится можно будет. Если б это дело еще и в проект как то собиралось (*.prj в редакторе VisualLISP).
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Я пока предполагаю, что обязательной частью комплекта библиотеки должен стать настоящий файл справки в формате CHM (HLP Microsoft скоро убьет). В справке будет и дерево, и ключевые слова, и гиперссылки. В том числе могут быть ссылки на внешний файл с действующим исходным текстом. Здесь мы имеем все изобретенные возможности для поиска. Я упоминал также про CMS MODx. Если использовать её для публикации в Интернет, то для каждой страницы можно создать "облако тегов", которое позволяет автоматически вставлять сборник ссылок на "родственные", связанные функции. Плюс, конечно поиск встроенными средствами по индексированной БД, а не Gooogle. Пока сам я (исключительно из-за "лени" по созданию HELP) работаю так. 1. Конечно же я не помню всех своих функций. А если и помню, то не полагаюсь на память, а всегда открываю в SourceExplorer. 2. Если надо - ищу в нем же, по фрагментам текста. Получаю список файлов, можно каждый просмотреть (список сохраняется до следующего поиска). 3. Часто пользуюсь многофайловым поиском в VisualLISP. Он сделан очень неплохо, держит список найденного, позволяет щелчком загрузить требуемый файл. |
|||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Цитата:
Почему вреда будет больше - да потому, что появятся лайт сборки "только то, что нужно для данной программы", при этом, естественно, никто не будет отслеживать версийность этих функций и заменять, при корректировке основной либы. Подгрузка вспомогательных функций в подавляющем большинстве случаев осуществляется одномоментно с использующей их программой. Т.е., при загрузке нескольких таких лайт сборок рано или поздно возникнет конфликт, когда очередная подгрузка перепишет уже определённую функцию на более старый релиз и это вызовет проблемы. Почему я за то, чтобы такой механизм был, несмотря на его вредоносность - я абсолютно убеждён, что нельзя мешать человеку совершать глупости. Ну кроме случаев, когда это касается меня лично. Есть люди, которые всё равно будут "резать себе пальцы", ну так пусть хотя бы не плачут, что "ножик тупой, йод не щиплет...". Цитата:
Код:
В принципе, тегов может быть больше, чем одна система - например, таким же образом можно хранить линки на вложенные функции (только первый уровень) и, при необходимости строить каскадный список всех задействованных. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Alaspher, лично мне будет проще полную библиотеку протащить и не мучаться, вручную пересобирая fas. Вон, doslib таскают же целиком, несмотря на то, что используется оттуда 2-3 функции, и ничего
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Про глобальные переменные - сложнее, поскольку они встречаются в теле функции. Их надо выискивать и тоже добавлять ник в имя. Я очень опасаюсь, что модернизация функции может привести к появлению в ней дополнительного аргумента, что приведет к неспособности существующих программ работать с такой функцией. Наверное надо чтобы имя функции содержало нечто вроде контрольной суммы, по которой можно оценить взаимозаменимость. В таком случае вообще можно и без ников обойтись, поскольку новая функция будет отличаться именем от старой. Накладок не будет. В больших КБ совсем не обязательно на каждом рабочем месте держать огромную библиотеку функций, достаточно сделать выборку и держать маленькую библиотечку. Вот так и овцы будут и волки. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Supermax, глянь на http://www.arcada.com.ua/forum/viewtopic.php?t=435 - идеи, кстати, ruCAD;овские до мозга костей
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Пока что вроде говорили про библиотеку, то есть а) Куча организованных как-то LSP в файловой системе б) Файл проекта, который позволяет из кучи LSP сделать один FAS в) Документация в том или ином виде. Теперь об этой гипотетической БД. Да, можно подобную базу организовать. В принципе. Но детали в реализациях. Если уж это коллективное творчество, то надо делать удаленный сервер в Интернет с соответствующим доступом. Всякие локальные таблицы не пойдут - их невозможно будет синхронизировать. А вот файлы - можно. Всё это выльется в весьма серьезное приложение. Про библиотеку можно будет забыть. Займемся разработкой очередной CMS. Но ничего этого делать не надо. Обычный файл справки решает все вопросы поиска - если правильно его делать, вовремя присваивать ключевые слова (теги), ставить гиперссылки. Есть и специальные системы для разработки, системы контроля версий. Но незачем нам с этим связываться. Есть и штуки, наподобие WIKI-педии. Нам и это не требуется. Есть и программы, в которых можно хранить "что угодно". Сделать программу, которая может выбрать из библиотеки только используемые функции можно. Но пусть этим VBA-шники занимаются - там иного пути нет. Пусть "нельзя мешать совершать глупости", но и помогать тоже не следует. Может не будем усложнять? Или уж тогда нужна не идея, а готовое решение. Может быть оно есть? |
|||
|
||||
Готового решения нету, но есть идея...
Можно совместить все предложения и за счет увеличения времени загрузки программы, каждый раз при загрузке, оценивать все теги в программах и подгружать толко необходимые функции из библиотеки. Т.е. при загрузке программы, использующей библиотеку, она сканируется на наличие вызовов библиотечных функций и подгружаются только они. В итоге, у каждого на компьютере есть полная библиотека, все необходимые для работы программы функции, всегда загружены.. Здесь, очень поможет система индексации библиотеки, для правильной загрузки взаимосвязанных.. |
||||
|
||||
Регистрация: 11.10.2004
e•burg
Сообщений: 755
|
Цитата:
Цитата:
в) Документация, в идеале, в виде единого хэлпа для локального использования и описание функций при публикации в Форуме. Цитата:
Несколько лет назад, я применял "load on demand", но чем больше я этим занимался, тем очевиднее становилась порочность этого пути. Даже если отбросить вопрос обработки ситуации с потерей необходимого файла, само то, что плодится море маленьких файликов, которые надо подгружать, уже делает путь неинтересным. Честно говоря, написать код сколь-нибудь ощутимо загружающий память современного компа при простой загрузке..., лично я не возьмусь - у меня такие большие функции не получаются. Да и держать несколько сот отдельных файликов, компилить их... - загрузить одну библиотеку намного удобнее. Ну отъест она лишних полмегабайта памяти - вот уж трагедия... |
|||
|
||||
Для начала, предлагаю в разделе Downloads\разное\программы создать подразделы "макросы AutoLisp" "макросы VBA". В "макросы AutoLisp" создать подраздел "функции AutoLisp" а в этом подразделе взять оглавление книги Полещука "AutoLisp и Visual Lisp в среде AutoCAD" и сделать из него дерево, поскольку все уже привыкли к его классификации. В подразделы этого дерева класть с описанием имеющиеся функции.
Это только начало. Надо чтобы на сайте была опция "скачать все функции" и выбор в каком виде скачать. Вот тут для любителей конструктора лего и найдется работенка, а мне и просто Downloads-a хватит. |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
В полном соответствии с законом о сроках, изложенном в "САПР на базе AutoCAD...." обещанный мною "день-другой" обернулся в две недели.
Выкладываю нулевую версию библиотеки. Это инсталляция прототипа библиотеки DWGruLispLib. Предназначена для того, чтобы посмотреть как примерно это должно быть сделано. Основной компонент пока - справочная система, в которой излагается общая концепция и правила разработки библиотеки. Все это для обсуждения и для привлечения желающих надеть на себя ярмо. Для примера включены и "Addons" - дополнительные компоненты, которые можно использовать по желанию. Пока там пара примеров из ruCAD (XMLmenu и XMLstorage), а также полностью рабочая библиотека ruCAD. Но о том, как это использовать пока нет ни слова. Кто знает - тот знает. После знакомства призываю желающих включиться в разработку. То есть "чисто конкретно" записываться и предлагать взять на себя какую-то часть. Болельщикам - вести себя по усмотрению. PS. В последний момент DLL исключил, а то не пройдет по размеру вложение. PPS. Если это объявление считать хорошей новостью, то будет и плохая. |
|||
|
||||
ShaggyDoc, да продлятся ваши дни до бесконечности!
Вижу способ организации работы над библиотекой. 1. Кладете данный файл в Download, но сперва зарегистрируйтесь, например, как ShaggyDoc-2 и под этим ником кладете этот файл. 2. Активным лицам, облеченным вашим доверием вы сообщаете пароль на редактирование данного файла. Что-то типа модераторов вложения получится. Собственно поэтому и надо его выложить с отличным от вашего ником. 3. Открываем чистую тему, ссылку на которую пишем прямо в txt файле справки. В ней мы будем выслушивать и анализировать разные идеи. 5. Чтобы положить свой лисп в библиотеку, его надо сначала выложить в тему и от туда он уже одним из модераторов вложения будет перенесен в тело самой библиотеки. Корректировка самой структуры тоже будет осуществляться модераторами вложений. Хотите сами все делайте, хотите - просто приглядывайте, за модераторами. В общем, не очень напряжное занятие. Предложение на модераторство сами инициируйте, как на всех порядочных сайтах делается. По такой системе можно и альтернативный проект развивать. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Только-только скачал, еще не смотрел. Но "будет и плохая" настораживает...
--- Добавлено: Есть несколько предложений (сразу, с ходу). Возможно, меня закидают камнями, но тем не менее. - снять требование записи форматирования кода напрямую в файл; - снять требование ввода команд, опций и системных переменных в верхний регистр; - при обработке ассоциированных списков с возможностью использования в качестве ключа строкового значения обязательно использовать один (единый) регистр (например, нижний) для корректного срабатывания (assoc) без доп.обработки списка. --- Добавлено 2: Темой дело не обойдется, боюсь. <Удалил>. Надо еще разок подумать...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 27.11.2007 в 16:52. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,856
|
Еще не вечер. Supermax, пойми, тут одной темой не обойдется хотя бы потому, что функций будет немеряно. В результате будет нечто типа "Поиска справочной литературы" старого образца. Оно надо?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Всплывает также старый спор о самодостаточности этих функций. Надо прямо в названии, сразу за dwgru ставить или SD или SV самодостаточная или связанная функция. Если самодостаточная, то ее можно вставлять в программу без боязни, если связанная, значит она связана с какими-то еще функциями из библиотеки. На такие функции надо давать комментарии с указанием перечня использованных внешних функций.
|
||||
|
||||
Есть много хороших функций, которые применяются внутри вновь созданной функции, но они из "чужих" библиотек. Там свои правила "правописания", а копировать их содержимое под другим именем или писать типа (defun dwgru-aaa-bbb (/) 2CB) где 2СB имя функции из другой библиотеки, как-то смешно. Как быть?
И вообще, что делать с вполне приличными, написанными весьма грамотно функциями конкретных авторов? У меня много есть "не моих" функций, которыми я могу вполне легально поделиться с общественностью, но получается в эту библиотеку вставить не могу. |
||||
|
||||
Ну тут напрашивается тот же вариант, что и с блоками. Сопровождаемые авторами функции или не сопровождаемые.
Те, что сопровождаемые - строго по правилам библиотеки написаны. Те, что не сопровождаемые - отдельной кучей или с пометками в справке самой библиотеки. |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как связать две функции | Holon | Программирование | 11 | 30.07.2007 13:32 |
Имя Layout'а из результата функции vla-get-activelayout | kp+ | Программирование | 4 | 16.08.2005 07:58 |
Странности функции rtos | FWA | Программирование | 2 | 16.02.2005 11:37 |