Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Производительность труда (N 2)

2 views
Skip to first unread message

Vladimir Tokarev

unread,
Sep 12, 2003, 3:03:04 AM9/12/03
to
* в SU.DBMS.FOXPRO
* в RU.FOXPRO
* в RU.VISUAL.FOXPRO


Здpавствуйте, All!

Сделал дополнительную главу к моему ФАКу.

Bye.

-----------------------------------------------------------------------
К материалу с темой: Continuing with "FAQ" for you...
(c) CopyLeft 2003 Владимиp Токаpев г.Южно-Сахалинск

Производительность труда


> Сравнение PRG-классов против VCX-классов.

Самый полный анализ "PRG против VCX", виданный мной, есть в сети на
http://fox.wikis.com/wc.dll?Wiki~PRGvsVCX~VFP
Этот переформатированный материал приложен ниже в таблице.
В оpигинале всего 26 пунктов.
PRG выигрывает в 13
VCX выигрывает в 6
По 7 пунктам нельзя сделать вывод "кто кого".
В т.ч. из-за того, что в одном пункте (N26) незаполнена колонка "Winner".

Около двух лет назад этот вопрос обсуждался в фидо
(Ru.Visual.Foxpro ноябрь 2001 тема: .VCX vs .PRG).
Добавлением к верхнему, на мой взгляд, будут пп 27,28 от Сергея Титова.
Тогда пункт 8(Compiler Directives) становится частным случаем
п. 27(Стандарт языка).
От меня пункт 29(Hадежность "компилятора")

Итого:
PRG выигрывает в 15 пунктах.
VCX выигрывает в 6.
По 7 пунктам нельзя сделать вывод "кто кого"
Полученное соотношение 15 - 6 можно считать оценкой в первом приближении.

Очевидно, что кратчайший путь для максимальной производительности
труда программиста, по созданию и поддержке классов, идет
через некий конвертер "PRG в VCX".
Который из верхних 6-ти пунктов (Viewing code, Property sheet,
Automated processing of the code, Using the designers,
Subclassing ActiveX controls, Intellisense)
все, кроме "Subclassing ActiveX controls", плюсует к 15-ти
преимуществам PRG подхода.

В июле 1995 года Том Реттиг дал нам утилиту PrgToVcx.PRG
в составе пакета TRUE (Tom Rettig`s Utility Extensions).
В 2000 г. утилита была улучшена Dave Lehr.
Мной последняя доведена до рабочего состояния, т.к. надежность программы
была недостаточной (оригинал 50 кб., текущее состояние - 152).

Оценить данный подход по повышению производительности труда
можно в яху-группе http://groups.yahoo.com/group/v_f_p
Цель группы - создание каркаса для быстрой разработки надежных
файл-серверных приложений на основе существующих библиотек
классов, функций, ...
Более подробно о группе смотрите в
Ru.Foxpro, Ru.Visual.Foxpro, Su.Dbms.Foxpro
сентябрь 2003
тема: Ищу коллег для совместной работы


_Таблица данных PRGvsVCX_
1.
Issue: Packaging
PRG: Single file package
VCX: Double file package
Winner: PRG has less files to keep track of

2.
Issue: Format of storage
PRG: Simple text
VCX: DBF/FPT file format
Winner: The PRG has an advantage for exchanging files as it is simple text.
PRG works better with source control software.
Для поиска стpок кода не надо осваивать дополнительные
инстpyменты типа GoFish.

3.
Issue: Compilation
PRG: Compiles to an FXP file and it can be compiled while the PRG
is read-only.
VCX: Compiles within the VCX/VCT files. If the VCX is opened read-only
the library can not be compiled.
Winner: Not sure how important compiling while read-only is, but since
the PRG can and the VCX cannot I guess the PRG wins this one.

4.
Issue: Multideveloper
PRG: Allow multiple developers to work on the same library
VCX: Using source control and each developer having their own copy,
the same can happen with the VCX.
Winner: In either case having more than one developer working on the
same library has to be well managed or else serious versioning
problems can occur. No clear winner on this point.

5.
Issue: Comparing versions
PRG: Is easily compared with previous versions using any of the many
file compare utilities.
VCX: Can also be compared but it is much more difficult to see the
differences clearly.
Winner: PRG wins this point.

6.
Issue: Hold Functions
PRG: Can contain both class definitions and function definitions
VCX: Can only store class definitions
Winner: Not sure if mixing class defs with function defs is a good thing.
If it is then the PRG wins this point.

7.
Issue: VFPLastCopyIdiom
PRG: Can use it
VCX: Cannot use it
Winner: PRG wins

8.
Issue: Compiler Directives
PRG: Can be used to include or exclude class components
(Methods/Properties?)
VCX: Cannot effect the class components
Winner: PRG Wins

9.
Issue: Comments
PRG: Easily included
VCX: Easily included
Winner: No clear winner

10.
Issue: Corruption
PRG: Being simple text types of corruption possible is less
VCX: More possible types of corruption
Winner: Not sure how important the number of types of corruption is,
if a file becomes corrupt then it really doesn't matter much
how badly it is corrupted, it must be repaired. Simple text
files can be more easily repaired if there is anything left
so I guess we have to give the PRG a point for this one.

11.
Issue: Viewing code
PRG: We can view multiple methods in a single editor window
(if the methods are short enough and located in the same part
of the file to see more than one at a time)
VCX: We can view multiple methods in separate editor windows
Winner: ~VCX advantage (this one really a matter of personal preference)

12.
Issue: Viewing code while a class is in memory
PRG: Can be done (but the code cannot be compiled as the FXP is in use)
VCX: Cannot be done, all classes in the library must be cleared from
memory before the VCX can be opened
Winner: Again, not sure how important it is to "see" the code if you
cannot edit it and compile the changes.
If seeing the code is important then the prg wins here.

13.
Issue: Choice of editors
PRG: You have a choice
VCX: You do not have a choice
Winner: PRG wins

14.
Issue: Personal Comfort
PRG: Some developers prefer this
VCX: Some developers prefer this
Winner: No clear winner

15.
Issue: Moving code from one class to another
PRG: Can copy/paste code from one class to another
VCX: Not really all that difficult to do this here by opening
the two classes and copy/paste between them
Winner: No clear winner

16.
Issue: Source Protection
PRG: Ship only the FXP
VCX: Clear the Methods field with a "REPLACE ALL Methods WITH ''"
Winner: No clear winner, decompilers work on either

17.
Issue: Certain Classes
PRG: Certain VFP base classes can only be subclassed in a PRG
VCX: N/A
Winner: PRG wins for those base classes

18.
Issue: Testing
PRG: A PRG class definition can have the testing code in the same
prg before the class is defined.
VCX: Needs an external testing prg to run a test suite
Winner: PRG wins

19.
Issue: COM Servers
PRG: Most of the recent enhancements for COM servers in VFP 7 are
only possible in a prg.
VCX: N/A
Winner: PRG wins

20.
Issue: Changing parent class
PRG: Simple edit of the DEFINE CLASS line
VCX: Requires opening the VCX as a table and editing the data or
the use of the class browser.
Winner: PRG wins

21.
Issue: Property sheet
PRG: None ( The 'Document View' might be considered the poorer cousin
of a property sheet; at least you can easily find stuff.)
VCX: Has one
Winner: VCX wins

22.
Issue: Automated processing of the code
PRG: Can be done
VCX: Easier to do because VFP enforces structure in the Methods
and Properties memos
Winner: VCX advantage

23.
Issue: Using the designers
PRG: Cannot
VCX: Can
Winner: VCX wins

24.
Issue: Subclassing ActiveX controls
PRG: Can be done but it is difficult as the determination and
entering of the runtime license is complex.
VCX: Easier to do
Winner: VCX wins

25.
Issue: Intellisense
PRG: Must create custom stuff for handling things like THIS and
THISFORM etc.
VCX: Natively handles these items
Winner: VCX wins

26.
Issue: preprocessor sensitivty
PRG: doesn't care about mismatched preprocessor directives
VCX: VFP warns when #IF is used without corresponding #ENDIF.
Ignoring this warning causes method corruption.
Fixing requires manual editing in VCX file.
Winner:

27.
Issue: Стандарт языка
PRG: Поддерживает полнее
VCX: Поддерживает слабее
Winner: PRG побеждает

28.
Issue: Размер файла приложения
PRG: Меньше, чем с VCX
VCX: Больше, чем с PRG
Winner: PRG побеждает

29.
Issue: Hадежность "компилятора"
PRG: Больше
VCX: Меньше. Т.к. появляется дополнительное устройство в
"цепи обработки".
Winner: PRG побеждает


_Примечание_
ФАК состоит из основного материала - Continuing with "FAQ" for you...
и пpиложений с темами:
Библиотека МайкроСофт для ФоксПро
Hовейшая история эхи RU.FOXPRO
Hовейшая история эхи RU.VISUAL.FOXPRO
Internet - ресурсы для работы с FoxPro
API библиотеки
ReFox - вопросы и ответы
Архивы файлов для СУБД ФоксПро
Производительность труда
- Создание "среды" для разработки программ.
- Сравнение PRG-классов против VCX-классов.

HTML веpсия матеpиала была на:
http://nsvisual.com/fox2/faq.php3 (ваpиант от января 2001 г.)
Сейчас сайт переезжает на новый адрес.

Вариант от 14.08.2001 г.
http://foxpopuli.narod.ru/tokarev/
Здесь пpиложение [Создание "среды" для разработки программ] от 08.03.2003


0 new messages