Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «рекурс»
Тестирование рекурсии 2016-08-17 08:40:37
... повод не использовать рекурсию вообще. Программы ... неподготовленные люди. Рекурсия имеет одно ...
+ развернуть текст сохранённая копия
Есть пара весомых поводов не использовать рекурсию, но это не повод не использовать рекурсию вообще. Программы, во-первых, создаются программистами для программистов, и лишь во-вторых — программистами для компьютеров. В итоге, некоторыми годными программами могут пользоваться неподготовленные люди. Рекурсия имеет одно безусловное преимущество перед итерацией — читабельность. Когда программист создает программы для себе подобных, рекурсия имеет право на существование до тех пор, пока не докажет обратного (т.е. — не будет запущена на компьютере и не поперхнется реальными данными).
Тестирование — это, по сути, создание программ для программ, позволяющее программистам отодвигать порог непреодолимой сложности в разрабатываемых приложениях. Столкнувшись на днях с необходимостью написать юнит-тест для рекурсивного метода я был неприятно удивлен необходимостью мокировать сам тестируемый метод. Альтернатива — создавать такие входные данные, которые бы позволяли протестировать все ветки рекурсии в одном тестовом методе. В перспективе вырисовывалось не снижение сложности, а наоборот — ее увеличение. Порывшись в интернетах, я обнаружил кучу информации о том, чем нехороша рекурсия, массу советов, как перейти от рекурсии к итерации, но так и не нашел на русских формах того, что искал — как тестировать рекурсивный метод. Решив, что подготовить тестовые данные для трех проходов по коду — не такая уж непреодолимая сложность, отложил эту задачу до утра. Под катом решение, пришедшее в голову за ночь, позволяющее разбивать тестирование рекурсивных методов на части. Читать дальше →
Тэги: it-систем, php, phpunit, программирование, рекурсия, тестирование
[Перевод] Удивительная история document.write 2016-07-10 18:54:23
Метод document.write — один из самых странных методов. Он вставляет HTML-код на ...
+ развернуть текст сохранённая копия
Метод document.write — один из самых странных методов. Он вставляет HTML-код на страницу сразу после себя. Точнее говоря, сразу после тега <script> , внутри которого он расположен. И только в том случае, если документ еще не был загружен полностью. А если был? Тогда страница очищается и заменяется на, что было указано.
Можно вставить строку, которая явно сломает остальную страницу:
document.write('<plaintext>')
Или можно поиграть в русскую рулетку:
if (Math.random() > 0.9)
document.write('<!--')
Читать дальше →
Тэги: document.write, javascript, бесполезный, браузеры, веб-сайтов, код, ненормальное, программирование, разработка, рекурсия
[Из песочницы] Рекурсия на PHP — алгоритм, применение 2016-04-05 11:10:22
... с иерархией и рекурсией.
Создадим ...
+ развернуть текст сохранённая копия
К написанию статьи сподвигли часы раздумий и экспериментов в области построения иерархических списков. Изначально логика обкатывалась на SQL запросах, но в последствии решил реализовать на PHP, дабы снять зависимость от СУБД. На простом примере я покажу как можно пройти от корня иерархии до каждого конечного элемента и обратно, информация скорее для новичков.
Итак, тестовая иерархия, с которой нам предстоит работать:
В базе данных имеется самая простая таблица на самом простом MSSQL сервере, тонкости подключения опустим, наша цель — разобраться с иерархией и рекурсией.
Создадим таблицу:
CREATE TABLE [dbo].[Test](
[uid] [int] IDENTITY(1,1) NOT NULL, -- уникальное поле, автоинкрементное
[pid] [int] NULL, -- это поле указывает на элемент уровнем выше, содержит uid родителя
[name] [varchar](255) NULL,
[access] [varchar](50) NULL, -- права доступа
) ON [PRIMARY]
Читать дальше →
Тэги: php, алгоритмы, древовидное, древовидные, запросы, меню, ненормальное, перечисления, поиска, программирование, рекурсивные, рекурсия, структуры
Ханойская башня 2015-09-21 21:17:29
Задача про ханойскую башню, применение Задача Ханойской башни является одной из самых известных ...
+ развернуть текст сохранённая копия
Задача про ханойскую башню, применение Задача Ханойской башни является одной из самых известных головоломок Дальнего Востока. Задача состоит в том чтобы переместить все кольца, нанизанные на один из стержней на другой стержень за наименьшее число ходов. За один ход можно Читать дальше ...
Тэги: башня, рекурсия, ханойская
OData REST API и рекурсивные запросы 2015-02-22 15:26:50
В дискуссии к предыдущей статье dezconnect поднял интересный вопрос о возможностях OData ...
+ развернуть текст сохранённая копия
В дискуссии к предыдущей статье dezconnect поднял интересный вопрос о возможностях OData выполнять рекурсивные запросы (по аналогии с SQL CTE).
В документации OData в разделе 11.2.4.2 описывается опция запроса $expand. Эта опция позволяет получать объекты вместе со связанными объектами. Например, Вы можете получить данные о компании вместе со всеми данными о ее президенте:
http://nitrosdata.com/service/testdb/company(company1)?$expand=president
Без опции $expand результат будет включать только id президента компании (или ссылку при других настройках).
http://nitrosdata.com/service/testdb/company(company1)
В 4й версии OData существенно расширены возможности опции $expand для выполнения рекурсивных запросов.
Читать дальше →
Тэги: api, javascript, odata, rest, restful, веб-разработка, запросы, интерфейсы, программирование, рекурсивные, рекурсия
Главная / Главные темы / Тэг «рекурс»
|
Взлеты Топ 5
Падения Топ 5
|