|
|
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
Что-то калькулятор, встроенный в мозг сбойнул при делении 30/4= 7.5 Видно совсем квалификацию потерял :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 11:21 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
угу, прям в душу заглянул. На мой взгляд, качество ПО за последние лет 5 сильно упало, и продолжает падать . Причем во всех областях. Надо ввести закон, чтобы программисты обязательно добивались работоспособности своих программ на машинах типа p133 32 MB. :) Чтобы программисты БД запросики свои зело оптимизили. Чтобы программисты С++ вконце концов начали думать головой, а не тем, на чем сидят, или нафик ваще из отрасли. Хожу по сайтам типа codeproject, codeguru, sourceforge. Зачастую все больше вижу тихого ужаса, и все меньше чего-нить стоящего. Развращает быстрая железка, позволяет девелопить спустя рукава... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 12:13 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
Vdimas, Предположим, собрались мы, и озадачились вопросом. "Робяты, что ж мы делаем, мы ж не ведаем, что творим! Хотим поднять качество нашего ПО. Какие мероприятия для достижения этой задачи нам надо наметить?" Что бы Вы нам ответили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 16:31 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
а кто мешеает перейти на ассемблер и делать все самим? от круты форм до клиент-сервисных систем? использование процессора=100% и уже низя будет пенять на Билла. потом к исполняемой задаче добавить еще одну, чё проц между нажатиями на клаву стоит-простаивает? потом еще одну... потом получится 3 , далее 3.11 и 95 ... 98 ... МЕ........ а у меня была тут феня - не сделаЛ rst.Close вовремя.... все работало..... пока в не захотел сделать очень красиво.... сделал... раньше синий экран, счас - привет Билу.... с неделю бился - две формы с подформами как три сосны - все наглядно , все правильно. хорошо , что SQL.ru есть и Лох тут есть Присваивать Nothing - необязательно, но крайне желательно. Если есть что-нибудь типа Close - тоже лучше ручками вызывать вспомнил ..... навтыкал ..... и счас тащуся.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2003, 19:46 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
2 Лифчик Прошу извинить что пишу не сразу, часовые пояса слишком разные. Я бы не сказал, что поумнел, просто добавилось опыта, но не ума:). А пропорция 7.8 раза относится в к трудоемкости разработки, сам расчет с распечаткой шел, если не изменяет память дня 2. А поводу красивых решений... Это касалось, как и сейчас, настоящих профи. И тогда существовали рядовые программеры, которые не слишком озабочивались (или не могли) эффективностью. На моей памяти на Мир-1 (до СМ-4) геофизики крутили обсчет 10 суток, на СМ-4 по двое суток. Подозреваю, что эффективностью и красотой там не пахло. С другой стороны да, красиво, быстро, но экономить на на железе смысла нет. С моей кочки зрения, программер такой квалификации, который пишет красивые программы, должен стоить, даже по нашим меркам, не меньше 1000$. И сравним со стоимостью персоналки. По поводу секретарши - все верно, но тут никуда не деться, экономить две-три сотни баксов на системном блоке бессмысленно, а монитор все равно менять раз в 3-4 года. Кстати, об экономии :) Дней 10 назад жена позвонила, попросила поставить ей принтер (ну срочно надо было, пока тамошних мальчиков вызовешь). Поставил, говорят, посмотри, нам еще три дали. Захожу и отвисает челюсть -стоят три полноразмерных HP-5100dtn. У них все управление - 9 человек, т.е на 7 человек эти три принтера. И сетки нет! На мое робкое замечание, что такие у нас стоят по одному на этаж и как-то очередей не наблюдается, развели руками и сказали - что дали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 01:49 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
2 Varan Я же говорю - старым дедовским способом. Написал че-нить, проверь на медленной машине на адекватность, сразу узкие места найдешь. Зачастую вполне очевидные, но незаметные невооруженным глазом на быстрых машинах. Когда большое количество таких мелочей копиться в большом проекте - ясен пень снижается общая производительность. Это самый простой способ и не занимает много времени. В моем подходе один недостаток - не у всех есть доступ к старым машинам. Гораздо более тяжелый другой способ - все время задаваться супер-целью нахождения максимально эфективного результата. Способ неэффективный, т.к. как известно только 10% от общего кода занимают 90% общего времени выполнения, т.е. отлавливать надо именно "узкие" места. Зачастую опытный программер видит эти узкие места издалека. Но все чаще наблюдаю картину, когда какой-нить чел хвастается только тем фактом что он СДЕЛАЛ и у него ЗАРАБОТАЛО. :) В далекие 92-е этот вопрос даже не обсуждался, всегда стоял вопрос КАК ЗАРАБОТАЛО, т.к. техника подхода требовала. Не думаю, что сейчас этот вопрос утратил актуальность. Если в средней оптово-розничной фирме 30-50 одновременно работающих девочек строчат как из пулемета накладные (каждая по 300 и более строк), база пухнет по нескольку метров в день, то тут призадумаешься. Можно идти в лоб и покупать какой-нить супер-пупер 4-х головый сервак за $5000, а можно и pIII обойтись (это все происходило в 2001-м). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 02:20 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
Да вы че ? Нашли о чем ностальгировать ! Был просто кошмар. Пишешь, сдаешь на пробивку. На следующий день получаешь перфокарты, сдаешь на счет. На следующий день получаешь листинг с ошибками. Исправляешь, сдеешь на счет На следующий день получаешь листинг с ошибками. ... И так до получения результата. То что сейчас делается в течении часа, занимало месяц ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 10:25 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
Vdimas, А если потенцальные ошибки заложены не только "в коде", а в самой идее, в архитектуре проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 11:11 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
2 Varan Если под архитектурой ты понимаешь схему базы и алгоритмы обработки, то ты прав. Приходиться изворачиваться, - не помню, что бы у меня хотя бы один проект был полностью нормализован - всегда есть избыточность в угоду быстродействию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 16:19 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
Vdimas,\r "Если под архитектурой ты понимаешь схему базы и алгоритмы обработки, то ты прав."\r Да, но меня в данном вопросе интересует следующее - как надо проектировать БД, чтобы уменьшить число ошибок, упростить отладку, увеличить наглядность?\r Ты вот тут (можно на "ты", фото посмотрел, вроде не старый) говорил о том, что при использовании объектно-ориентированного подхода при написании интерфейса приходится мыслить как бы в одном стиле, а при проектировании схемы БД, написании запросов - в другом.(если я правильно понял). Я тут несколько книг прочел про объектно-ориентированное программирование - вроде, все здраво - вот тебе методика борьбы со сложностью - модульность, инкапсуляция, наследование, полиморфизм. Хотелось бы попробовать это применить, но вот только не вижу я, как это при использовании БД можно применить. Программы примеров из этих книг либо вообще не взаимодействуют с БД, либо взаимодействуют, но базовые принципы ООП при моделировании данных не используются. Короче, налицо какой-то разрыв - с одной стороны явно идет рекламная кампания этого ООП, а с другой - реально при разработке БД это ООП применить нельзя.\r Прошу прощения за сумбурный текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 16:46 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
А что вам мешает при проектировании базы мыслить "объектно" ? А отражение объектов на реляционную базу чисто формальная процедура, которая может быть выполнена различными способами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 19:19 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
при проектировании баз мешает в основном причина проектирования - заказчик. на начальном этапе не знает что хочет(как правило ему надо КИНГУРУ) на последнем включается аппетит надо то и то и это, но за прежнин деньги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2003, 19:31 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
2 Varan Процитирую себя же из той же ветки: Какие сейчас наиболее популярные направления борьбы со cложностью: 1. Entity engin - использует БД как просто место хранения состояний объектов. О таких вещах, как ограничение целостности, речь не идет. Мощь встроенных инструментов БД практически не используется. Зато очень удобно проектировать бизнесс-логику произвольного уровня сложности. 2. База сама в себе. Интерфейс с пользователем - через набор хранимых процедур, инкапсулирующих всю необходимую логику приложения. Часто применяемый подход настоящих "зубров" БД. И совершенно не получается именно так спроектировать простейшую бухгалтерскую систему, где можно настраивать формулы и алгоритмы для автоматического расчета проводок, потому как на VB или чем-то подобном бухгалтер вполне может написать расчетный скрипт, а вот на Transact SQL - никогда! К тому же, полное проектирование приложения на стороне БД требует гораздо большей квалификации ... <кусь> 3. Смешанный тип - часто используется в 3-х звенке. Что удобно вычислять на сервере БД - вычисляют на БД, что не удобно - то на сервере приложений. При взгляде на такое приложение вообще обычно трудно выделить такие понятия как "концепция приложения". Зачастую больше подходит "писанина", потому как большинство проблем решены "по месту" (так собирались первые автомобили). Не программный продукт, а сборник компроммиссов. Толкаемые Microsoft "современные" решения как раз из этой области. Приходиться задействовать гораздо больше людей, чем если бы это было нужно используя варианты 1 или 2. Выбери себе подходищий вариант. В наиболее чистом виде связка ООП-СУБД - это п.1. Очень популярный сейчас способ. Для каждого объекта задаются операции: создания, редактирования, удаление. Сам объект проецирует эти операции на вызов соотв. хранимых процедур или же на динамическое формирование и выполнение соответствующих запросов. Обычно в базе хранят состояния объектов, т.е. то, что ты считаешь нужным сохранить об объекте, чтобы потом адекватно его восстановить. При изменении свойств объекта более правильным считаю именно формирование динамических батчей, а не вызов процедур, для того, чтобы на сервер слать только обновленные поля. Для этих целей и нужен некий енжин, который представляет из себя набор базовых классов и поддерживающих средств для автоматизации этого процесса. Поищи в и-нете по entity engine, тонна материала и различных точек зрения. Народ пока "зреет" ... Да, если хватает людей, причем ситуация такова, что есть "полный" набор узкоспециализированных спецов: (БД, ООП, GUI), однозначно пишите 3-х звенку. (п.3.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2003, 00:05 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
один из примеров: http://intersystemskorea.co.kr/analysts/2001symp/Israel/Tony_Grover_BuildingDBIndepApps.ppt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2003, 02:30 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
Да, если хватает людей, причем ситуация такова, что есть "полный" набор узкоспециализированных спецов: (БД, ООП, GUI), однозначно пишите 3-х звенку. И как только выберете 3-х звенку людей станет нехватать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2003, 09:28 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
vdimas, all Спасибо, за информацию. Буду думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2003, 11:11 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
вообщето грамотней писатьв том варианте , которыйобеспечивает максимальную производительность при минимуме затрат. 3 вариант самый оптимальный : если кусок будет оптимальнее работать на сервере значит дожен там работать. если на клиенте значит та ему и сидеть. часы делать часовщик, пирожное булочник, каждому свое. нефик писать клиентскую часть со всем интерфейсом на сервере Зачастую больше подходит "писанина", потому как большинство проблем решены "по месту" (так собирались первые автомобили). Не программный продукт, а сборник компроммиссов. неправильное понимание. дела. не сборник компромисов , а грамотное разделение на выполнение . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2003, 12:36 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
2Шкуренко по поводу «неправильно» я как раз размышлял о том, «правильно» ли иметь возможность циклических ссылок. («Автоподхват» объекта ссылкой на себя – простейшая циклическая ссылка). Вопрос таков: если даже помыслить механизм отслеживания «иерархии» ссылок, можем ли мы однозначно сказать, в каком случае объект надо разрушить при разрушении вызвавшего его (изначально) объекта (т.е. все оставшиеся ссылки на объект – его собственные порождение по иерархии), а в каком – нет? Скорее всего, вопрос логически невнятен. И видимо приходится всегда иметь дело с возможностью циклической ссылки. (Кстати «автоподхват» хорош для реализации MIDI интерфейса – например легко держать по экземпляру справочников на строку формы, с возможностью ручного копирования данных, не заботясь об организации коллекции или массива ссылок на порожденные формы в родителе). Я нигде не говорил, что Set Anything = Nothing разрушает объект. Просто это явный вызов «обнуления» ссылки. Кстати и дергать «библиотеки» я думал с тем, чтобы при их «отключении» вычистить глобальные переменные библиотек (видимо именно VBA), в которых, вероятно и остаются инициализированные (например) конструкцией {If chkBox Then} объектные ссылки. Да вот «отключить» библиотеку (ее средствами) похоже нельзя. - Простите за VBA–шный взгляд на работу библиотек (как VBA модулей). А в целом – вопрос оптимизации, мне кажется, не в том, как строить и разрушать объекты, а как строить и разрушать «представления» объектов – т.е. именно ту часть объекта, которая необходима в данном куске кода. Тогда под объектом можно понимать структуру, позволяющую бесконечную деталировку, а под представлениями - уровни деталировки – то, что мы называем объектом сегодня. Вопрос именно в механизме (обобщенном) позволяющим определять, какую часть объекта достаточно построить (в памяти), чтобы вернуть например некоторое запрашиваемое свойство, или выполнить некий метод объекта. Или же позволять в явном виде манипулировать требуемыми представлениями из текста программы (объявлять «глубину» при создании). Последнее представимо сегодня в виде «ручной» реализации «представлений» как РАЗЛИЧНЫХ объектов, с ручным вызовом нужных исходя из контекста. Но вряд ли это интересно, если объекты не столь сложны, что покушаются на всю доступную память. Т.ч. это скорей мыслимая специфическая техника, чем некая панацея (избавления этапа исполнения от безумного создания и разрушения замков в стиле озверевшего джина из «понедельника»). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 14:51 |
|
||
|
Модули класса. Все ли так просто.
|
|||
|---|---|---|---|
|
#18+
>«правильно» ли иметь возможность циклических ссылок.\r \r Нас не спрашивают правильно или не правильно. Таковы правила игры VB/VBA и COM объектов.\r \r >Вопрос таков: если даже помыслить механизм отслеживания «иерархии» ссылок, можем ли мы однозначно сказать, в каком случае объект надо разрушить при разрушении вызвавшего его (изначально) объекта (т.е. все оставшиеся ссылки на объект – его собственные порождение по иерархии), а в каком – нет?\r \r Почитай внимательно все посты этого топика. Ведь писали же и ЛП и vdimas, что COM объекты сами решают когда пришло время им умереть (Счетчик ссылок = 0) и мы не можем просто-так взять и уничтожить объект. Мы можем только "подчистить хвосты" . Ну а если нам лень их подчищать, то можно и избавиться от циклических ссылок.\r (См. /topic/43786) .\r Метод хорош при организации отношений Parent-Child.\r \r На следующие части твоих вопросов отвечу когда все обдумаю!\r Продолжение следует...\r >И видимо приходится всегда иметь дело с возможностью циклической ссылки.\r \r Не приходится, а скорее придется. \r -Ты видишь суслика?\r -нет.\r -И я нет. А он ЕСТЬ!\r \r >хорош для реализации MIDI интерфейса – например легко держать по экземпляру справочников на строку формы, с возможностью ручного копирования данных, не заботясь об организации коллекции или массива ссылок на порожденные формы в родителе\r \r очепятка MIDI - MDI, но все поняли и так. Очень непонятно написано. А! Наверное так, если я правильно тебя понял. Имеется справочник. Для него существуют две формы или более. Одна из них это форма в виде списка( видим список элементов с ограниченным числом полей: id, name etc). А другая это форма элемента (видим только один элемент но поля уже все). А как тогда отслеживать открытие для одного элемента двух форм. Хм... Ну можно у форм элементов создать Public методы типа GetID() и бежать по коллекции Forms(). Но нужно бегать по всем формам, в коллекции бы мы точно знали какие формы открыты. Но это уже дело вкуса! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2003, 17:48 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32234758&tid=1679860]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
107ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 452ms |

| 0 / 0 |
