OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 25 Май, 2018 02:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 96 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 09 Апрель, 2009 15:50 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7817
Откуда: Троицк, Москва
Madzi писал(а):
... Оберон потому и появился, чтобы дать возможность программисту разбить большой, содержащий миллиарды строк код на небольшие, обозримые модули
Миллиарды?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Апрель, 2009 16:20 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 2846
Откуда: Астрахань
Madzi писал(а):
Данные всегда могут быть какие угодно, не обязательно в компьютере. Есть такой статистический раздел "Разведочный анализ данных", как раз направлен на поиск и выявление "выбросов". Кстати говоря, есть даже теория восстановления пропусков (около 15 методов). Если задача того требует, то нужно грамотно строить теоретическую базу.

И что это как не "обработка исключений"?
Давайте в каждой системе обработки данных выполнять "разведочный анализ данных". Например, в банковской системе. Да банкиры застрелятся, а денег на реализацию "разведочного анализа данных" не дадут.
Тем более, что эта задача к основной задаче обработки банковских данных имеет мало отношения (как они, очевидно, думают - потому и денег не дают).
Хотя по мне - лучше заложить "6-кратный предел прочности" (как с мостами в свое время), чем испытывать риск завала системы.

Madzi писал(а):
:) Вы как будто бы не на тематическом форуме. Оберон потому и появился, чтобы дать возможность программисту разбить большой, содержащий миллиарды строк код на небольшие, обозримые модули, независимо компилируемые и функционирующие сами по себе, и стройно объединяющиеся в общий проект. Это сделано СПЕЦИАЛЬНО чтобы ОБЛЕГЧИТЬ ЖИЗНЬ программисту. Только программисты пока кричат что "Си/++/# - круто, а Оберон - отстой" (Vlad, это я НЕ ПРО ВАС).

Ну, крики раздаются с обоих сторон... :)
Лично я предпочитаю разобраться сам в аргументах тех и других.
А модульность - это не исключительная особенность Оберона. В других-то языках - то же самое! Практически во всех языках в том или ином виде понятие модуля есть. Для тех же самых целей. Согласен, что в Обероне концепция модуля много лучше, чем в С и С++. Ну, по крайней мере, мне эта концепция гораздо больше по душе... :)

Валерий Лаптев писал(а):
Нужен формализованный аппарат.
Или явно зафиксированный документ: дисциплина обработки нештатных ситуаций. На самотек такое пускать нельзя.

Madzi писал(а):
Дык. Уже работаю над этим.

Ага!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Апрель, 2009 17:08 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7817
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
... Да банкиры застрелятся, а денег на реализацию "разведочного анализа данных" не дадут.
Тем более, что эта задача к основной задаче обработки банковских данных имеет мало отношения (как они, очевидно, думают - потому и денег не дают).
Дают. Полными пригоршнями. Только не программёрам :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Апрель, 2009 18:04 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 2846
Откуда: Астрахань
А кому?
В конечном итоге эту фичу ж в систему надо включать - вместо исключений... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Апрель, 2009 18:18 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7817
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
А кому?
В конечном итоге эту фичу ж в систему надо включать - вместо исключений... :)
Тут речь немножко о другом. Всякий "разведочный анализ..." -- это епархия специалистов по эконометрике, финансовым рискам и т.п. Они, конечно, тоже программируют, но как "непрофессионалы".
И мы благополучно вернулись к базовым тезисам Информатики-21 8)

Как ни повернешься -- обязательно туда вернешься, уж надоело даже 8)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 09 Апрель, 2009 18:36 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 2846
Откуда: Астрахань
Info21 писал(а):
Валерий Лаптев писал(а):
А кому?
В конечном итоге эту фичу ж в систему надо включать - вместо исключений... :)
Тут речь немножко о другом. Всякий "разведочный анализ..." -- это епархия специалистов по эконометрике, финансовым рискам и т.п. Они, конечно, тоже программируют, но как "непрофессионалы".
И мы благополучно вернулись к базовым тезисам Информатики-21 8)

Как ни повернешься -- обязательно туда вернешься, уж надоело даже 8)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Апрель, 2009 07:31 

Зарегистрирован: Понедельник, 25 Февраль, 2008 08:42
Сообщения: 125
А что без примеров?
У меня всякое обращение к базе с исключениями.
Как пример:

Код:
procedure TfBuy.SaveNakl(Sender: TBaseVirtualTree; aConsultant: TConsultant; IsDay: Boolean=true);
var Q: TQuery;
    D: TDatabase;
    P: PVirtualNode;
    Data: PPrice;
    S: string;
    Date: TDate;
begin
  D := TDatabase.Create(self);
  D.DatabaseName := DataBaseName;
  D.TransIsolation := tiDirtyRead;
  D.Open;
  Date := pNNPCTO.fnnpcto.dtCurrent.DateTime;
  try
    Q := TQuery.Create(Self);
    Q.DatabaseName := D.DatabaseName;
    D.StartTransaction;
      // Удалить предыдущую накладную из базы - Номер консультанта и дата накладной
      Q.SQL.Add('DELETE');
      Q.SQL.Add(Format('FROM %s B', [CDataBaseBuy[CurrentDataBase]]));
...
    D.Commit;
...
    FreeAndNil(Q);
    FreeAndNil(D);
  except on Exception do begin
      D.Rollback;
      FreeAndNil(Q);
      FreeAndNil(D);
    end;
  end;
end;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Апрель, 2009 10:01 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2930
Откуда: г. Ярославль
В BlackBox используются коды ошибок, возвращаемые SqlDB.Database. Транзакции начинаются автоматически.
Код:
   
TYPE
   Database* = POINTER TO ABSTRACT RECORD
      db*: SqlDB.Database;
      res* : INTEGER;
   END;

PROCEDURE (d: Database) Query*(IN query : ARRAY OF CHAR);
BEGIN
   ASSERT(d.db # NIL, 20);
   d.db.Exec(query);
   d.res := d.db.res;
   IF d.res = 0 THEN d.db.Commit ELSE d.db.RollBack END
END Query;


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Апрель, 2009 10:55 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 565
Откуда: Россия, Санкт-Петербург
Валерий Лаптев писал(а):
Info21 писал(а):
Валерий Лаптев писал(а):
А кому?
В конечном итоге эту фичу ж в систему надо включать - вместо исключений... :)
Тут речь немножко о другом. Всякий "разведочный анализ..." -- это епархия специалистов по эконометрике, финансовым рискам и т.п. Они, конечно, тоже программируют, но как "непрофессионалы".
И мы благополучно вернулись к базовым тезисам Информатики-21 8)

Как ни повернешься -- обязательно туда вернешься, уж надоело даже 8)

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

Я вот только одного не пойму. Зачем программистам-профессионалам знать всё о майнстриме? Не лучше ли их обучить профессиональной базе, чтобы они потом писали "правильные" программы и влияли на майнтсрим?
У нас просто студенты начиная со 2-3 курса устраиваются во всякие софто-марательные конторы, где их "обучают майнстриму", так что плохому они сами научатся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 20 Апрель, 2009 12:06 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7817
Откуда: Троицк, Москва
Madzi писал(а):
У нас просто студенты начиная со 2-3 курса устраиваются во всякие софто-марательные конторы, где их "обучают майнстриму", так что плохому они сами научатся.
Вот именно.

Еще так говорят опытные люди: "Надо стараться всё делать хорошо, хреново само получится."


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 29 Июнь, 2009 00:52 

Зарегистрирован: Среда, 14 Ноябрь, 2007 19:03
Сообщения: 1314
Ошибки нужно исправлять по ходу дела, а читателям выдавать список замеченных опечаток. :oops:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Июль, 2017 16:31 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Мадзи писал(а):
Если входные данные проверяются перед обработкой на допустимость, а также существует проверка выходных данных, то исключительным ситуациям взяться просто неоткуда.

Ос, сенсей!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Июль, 2017 17:21 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 460
prospero78 писал(а):
Мадзи писал(а):
Если входные данные проверяются перед обработкой на допустимость, а также существует проверка выходных данных, то исключительным ситуациям взяться просто неоткуда.

Ос, сенсей!

Исключительная ситуация это как раз когда не соблюдается инвариант, то есть входные или выходные данные не прошли проверку


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Июль, 2017 22:09 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1535
Откуда: Беларусь, Минск
Исключительная ситуация - это когда проверки не имеют смысла. Именно поэтому ситуация и исключительная.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 31 Июль, 2017 23:34 
Аватара пользователя

Зарегистрирован: Воскресенье, 12 Апрель, 2015 18:12
Сообщения: 1064
Откуда: СССР v2.0 rc 1
Кемет, исключение, это когда control memory block во время очередного прохода обнаружил нарушение целостности памяти и исправить не может.
А если ОС не может файл открыть -- это предусмотренная штатная ситуация и никаких трей-качев тут плодить не надо!
Это от лукавого.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Август, 2017 06:24 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 460
Valery Solovey писал(а):
Исключительная ситуация - это когда проверки не имеют смысла. Именно поэтому ситуация и исключительная.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Август, 2017 12:45 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 622
Откуда: Киев
Kemet писал(а):
На летящем пассажирском самолете генерации исключений не должно быть ни в каком виде.
Должна быть. Если из-за переполнения переменной самолёт без всяких исключений отправится на Землю, это будет не лучше, чем обработка исключительных ситуаций.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Август, 2017 13:45 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 460
Comdiv писал(а):
Kemet писал(а):
На летящем пассажирском самолете генерации исключений не должно быть ни в каком виде.
Должна быть. Если из-за переполнения переменной самолёт без всяких исключений отправится на Землю, это будет не лучше, чем обработка исключительных ситуаций.
Это не генерация исключений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Август, 2017 14:28 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 622
Откуда: Киев
Она самая. Для того, чтобы полностью исключить генерацию исключений, нужно либо пропускать ошибки, либо писать на очень специфическом языке, запускаемое не специфическом железе. Задача почти нереализуемая.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 01 Август, 2017 14:29 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 460
Это не генерация исключения, это исключение.
Но и в этом случае должны быть средства восстановления.
Кстати, в А2 есть такие зачаточные средства - если активность помечена как SAFE, то, в случае возникновения исключения будет вызван обработчик и затем активность будет перезапущена.
Можно установить свой обработчик, в котором анализировать возникшую ситуацию и информировать, исправлять проблему. После чего пытаться выполнить алгоритм вновь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 96 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB