OberonCore
https://forum.oberoncore.ru/

Часто замечаю за собой
https://forum.oberoncore.ru/viewtopic.php?f=86&t=3793
Страница 2 из 2

Автор:  Владислав Жаринов [ Среда, 29 Август, 2012 06:30 ]
Заголовок сообщения:  Re: Часто замечаю за собой

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

Автор:  Рыжий [ Вторник, 15 Январь, 2013 18:44 ]
Заголовок сообщения:  Re: Часто замечаю за собой

В ББ сплошь и рядом гиперссылки и кнопки, а это и есть - goto. :cry:

Автор:  Valery Solovey [ Четверг, 17 Январь, 2013 00:32 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Рыжий писал(а):
а это и есть - goto. :cry:
спасает только одно - необязательность исполнения этой команды.

Автор:  Info21 [ Четверг, 17 Январь, 2013 00:56 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Рыжий писал(а):
В ББ сплошь и рядом гиперссылки и кнопки, а это и есть - goto. :cry:
И впрямь:

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

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

Автор:  Рыжий [ Воскресенье, 03 Февраль, 2013 00:28 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Не оно ли ...
http://www.insidepro.com/kk/112/112r.shtml
http://www.insidepro.com/kk/222/222r.shtml
:roll:
Цитата:
замечательная утилита WinDBG в составе Debugging Tools for Windows, так вот она позволяет записывать дамп процесса, а потом отлаживать дамп, как сам процесс.

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

Автор:  Иван Кузьмицкий [ Пятница, 15 Февраль, 2013 15:23 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Вот ещё одну проблему зафиксирую.

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

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

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

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

Автор:  Ярослав Романченко [ Пятница, 15 Февраль, 2013 17:08 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Или каждый нод дерева должен быть своего типа с соответствующими методами для обработки своих данных.

Автор:  Info21 [ Пятница, 15 Февраль, 2013 18:22 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Больше статической типизации.
Она ровно для этого.

Автор:  Иван Кузьмицкий [ Суббота, 09 Март, 2013 10:39 ]
Заголовок сообщения:  Re: Часто замечаю за собой

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

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

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

Автор:  Пётр Кушнир [ Суббота, 09 Март, 2013 16:23 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Так значит конструкторы всё же Нужны? :twisted:

Автор:  Иван Кузьмицкий [ Суббота, 09 Март, 2013 19:32 ]
Заголовок сообщения:  Re: Часто замечаю за собой

А что такое конструктор, как не выделенный алгоритм создания экземпляра класса, под прилагающейся охраной? Вопрос "а нужен ли конструктор" относится к той же группе вопросов, что и необходимость процедур, например. Это вопрос инженерии и архитектуры, а не синтаксиса языка. Конечно, синтаксис может поддерживать построение архитектуры, но тут важнее сознательное, методичное усилие инженера.

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

Ещё одно наблюдение, касается сложности.

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

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

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

Автор:  Пётр Кушнир [ Среда, 15 Январь, 2014 10:07 ]
Заголовок сообщения:  Re: Часто замечаю за собой

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 не спасли.

Автор:  Евгений Темиргалеев [ Суббота, 29 Март, 2014 17:57 ]
Заголовок сообщения:  Re: Часто замечаю за собой

Не часто, но чувствительно по времени: поиск ошибки там, где её нет. Или забыл перекомпилировать, или пересборать.

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

Автор:  adva [ Понедельник, 31 Март, 2014 05:39 ]
Заголовок сообщения:  Re: Часто замечаю за собой

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

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

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

Пётр Кушнир писал(а):
Так значит конструкторы всё же Нужны? :twisted:

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

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

Валерий Лаптев писал(а):
Пётр Кушнир писал(а):
Так значит конструкторы всё же Нужны? :twisted:

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

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/