OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 15:09

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




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Среда, 29 Август, 2012 06:30 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Кстати, аналогичный подход, видимо, нужно применять и к yield - возврату значения с продолжением исполнения текущей процедуры со следующего оператора (забыл, он в Питоне вроде). Видимо "убирать йелды" нужно также на основе присваиваний?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Вторник, 15 Январь, 2013 18:44 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
В ББ сплошь и рядом гиперссылки и кнопки, а это и есть - goto. :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Четверг, 17 Январь, 2013 00:32 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Рыжий писал(а):
а это и есть - goto. :cry:
спасает только одно - необязательность исполнения этой команды.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Четверг, 17 Январь, 2013 00:56 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Рыжий писал(а):
В ББ сплошь и рядом гиперссылки и кнопки, а это и есть - goto. :cry:
И впрямь:

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

У кого-нить есть представление, как это сбацать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Воскресенье, 03 Февраль, 2013 00:28 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Не оно ли ...
http://www.insidepro.com/kk/112/112r.shtml
http://www.insidepro.com/kk/222/222r.shtml
:roll:
Цитата:
замечательная утилита WinDBG в составе Debugging Tools for Windows, так вот она позволяет записывать дамп процесса, а потом отлаживать дамп, как сам процесс.

Все равно еще обращение к файлам остается..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Пятница, 15 Февраль, 2013 15:23 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Вот ещё одну проблему зафиксирую.

Налетел тут на ошибку проектирования с условным названием "перехват контроля данных".

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Пятница, 15 Февраль, 2013 17:08 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 1488
Откуда: Украина, Киев
Или каждый нод дерева должен быть своего типа с соответствующими методами для обработки своих данных.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Пятница, 15 Февраль, 2013 18:22 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Больше статической типизации.
Она ровно для этого.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Суббота, 09 Март, 2013 10:39 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Иногда лень выделять алгоритмы из текущего контекста задачи. Например, прямо в рабочем алгоритме проще создать экземпляр и проинитить его тут же, на месте, исходя из "состояния цепочки управления" (условно говоря). То есть, обойтись без отдельного конструктора.

Ну а потом, как всегда, внезапно и совершенно в другом месте требуется отдельный конструктор, со всякими сервисами (с проверкой дублей, например). И начинаешь выдирать "с мясом" копипасту, стараясь не нарушить работу старого алгоритма.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Суббота, 09 Март, 2013 16:23 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Так значит конструкторы всё же Нужны? :twisted:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Суббота, 09 Март, 2013 19:32 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
А что такое конструктор, как не выделенный алгоритм создания экземпляра класса, под прилагающейся охраной? Вопрос "а нужен ли конструктор" относится к той же группе вопросов, что и необходимость процедур, например. Это вопрос инженерии и архитектуры, а не синтаксиса языка. Конечно, синтаксис может поддерживать построение архитектуры, но тут важнее сознательное, методичное усилие инженера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Пятница, 05 Июль, 2013 19:13 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Ещё одно наблюдение, касается сложности.

Если рассматривать программу как модель предметной области, то можно сказать так - на пути от реальности к работающей модели существует некий вакуум. Этот вакуум программист заполняет собственными усилиями. И очень часто случается так, что в этот самый вакуум попадает слишком много всего. Ведь ограничений очень мало, а к совести апеллировать бесполезно :)

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

Другими словами, наломать дров легче и быстрее, чем подумать и не спеша сделать. И этот факт я фиксирую на собственном опыте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Среда, 15 Январь, 2014 10:07 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
http://googleonlinesecurity.blogspot.ru ... fixes.html
Цитата:
Since then, we have carried out several dozen fuzzing iterations (each typically resulting in less crashes than the previous ones) over the last two years, identifying bugs of a number of different classes:
NULL pointer dereferences,
Invalid pointer arithmetic leading to SIGSEGV due to unmapped memory access,
Out-of-bounds reads and writes to stack, heap and static-based arrays,
Invalid free() calls,
Double free() calls over the same pointer,
Division errors,
Assertion failures,
Use of uninitialized memory.
Че-то мощные IDE не спасли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Суббота, 29 Март, 2014 17:57 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Не часто, но чувствительно по времени: поиск ошибки там, где её нет. Или забыл перекомпилировать, или пересборать.

Полдня поисков по всем местам от и до выявили, что ошибка HostFiles, как и ожидалось, была устранена сразу применением дельты B2, но после забыл пересобрать пускач. Полную компиляцию много раз делал, а сборку ни разу. Наверное, сказывается привычка к динамической загрузке. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Понедельник, 31 Март, 2014 05:39 

Зарегистрирован: Суббота, 16 Февраль, 2008 07:58
Сообщения: 358
Откуда: Россия, Стерлитамак
Евгений Темиргалеев писал(а):
Не часто, но чувствительно по времени: поиск ошибки там, где её нет. Или забыл перекомпилировать, или пересборать.

Уже тоже нарывался, хоть и программил на блекбоксе всего ничего. Вот пожалуй только для таких случаев и может понадобиться пошаговый отладчик (по крайней мере мне бы в нем было проще сориентироваться). Хотя отладчик при этом не пропагандирую, может быть есть и другие варианты быстро найти подобные ошибки


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Суббота, 05 Апрель, 2014 09:10 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Пётр Кушнир писал(а):
Так значит конструкторы всё же Нужны? :twisted:

Как конструкция языка - нет.
Ведь есть идиомы конструкторов:
1. Виртуальный конструктор - оно же паттерн Фабричный метод
2. Виртуальный конструктор копирования - оно же паттерн Прототип


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Часто замечаю за собой
СообщениеДобавлено: Суббота, 05 Апрель, 2014 13:00 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
Валерий Лаптев писал(а):
Пётр Кушнир писал(а):
Так значит конструкторы всё же Нужны? :twisted:

Как конструкция языка - нет.
Ведь есть идиомы конструкторов:
1. Виртуальный конструктор - оно же паттерн Фабричный метод
2. Виртуальный конструктор копирования - оно же паттерн Прототип
Конструктор может быть обеспечен и средствами фреймворка, компонентным способом.


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

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


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

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


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

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