
Алгоритм поиска места утечки прост. Сначала мы находим последовательность действий, при выполнении которой теряется память. Затем, открываем исходный код и находим функцию, которая отвечает за выполнение этой последовательности. Если такую функцию найти сложно, то берем главную функцию программы. Найденную процедуру разделяем на контексты, компилируем и запускаем программу.
Действительно, создать качественную программу "из объектов", двигаясь "снизу вверх" (от подсистем к системе; от реализации к проекту), можно только при условии предельной простоты такой программы.
Однако, похоже, существует инерция мышления, оставшаяся с тех времен, когда все писали на низком уровне, и мысли о реализации неизбежно занимали наибольший промежуток времени. И многие программисты (конечно, не все) часто думают "снизу вверх". Больше над реализацией, чем над проектом.
Но, например, хороший архитектор никогда не проектирует дом "из квартир", а думает о нем сразу "в целом", "вписывает" в контекст окружающей среды, пользуется знаниями о готовых "стилях" (или создает свой стиль, зная о других). Хороший авиаконструктор не проектирует новый самолет "из его элементов", но пытается понять, как машина "летает в целом", или отталкивается от "принципов полета этого класса машин" и т.д., и т.п.
Мышление "снизу вверх" сродни попытке сложить организм из атомов углерода и водорода. Теоретически так сделать можно, но очень уж "многофакторно" и затратно как по времени, так и по ресурсам. И все равно, несмотря на затраты и при квалифицированной работе, получится урод + "теория неизбежности ошибок" вместо качественного продукта. За исключением, может быть, тех случаев, когда "организмом" (перепутав термины) назвали что-то предельно простое (например, 1 звено СН).
Эта парадигма создавалась из утилитарного стремления к идеалу, как в управленческом, так и в тризовском смысле. Формулировки идеальности (которые соответствуют по духу и замыслу тем, что сформулировал Генрих Альтшуллер, создавая ТРИЗ-технологии, и которые продвигали эту разработку) следующие:
1) Идеально - это когда программу сможет в отсутствие Автора не только сопровождать, но и развивать программист с меньшей квалификацией, чем Автор программы.
2) Идеально - когда добавление новой функциональности в программу не потребует внесения изменений и/или добавлений в программный код (более того, в совершенно идеальной программе увеличение функциональности приводит к сокращению кода); причём всё это без ущерба для любых параметров (например, быстродействия и т.д.).
И чтобы программы писались настолько быстро и сопровождались настолько просто, что их создание и сопровождение можно было бы поручить детям. А взрослые и умные специалисты пусть бы занялись чем-нибудь великим.


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

АНТИКРИЗИСНАЯ МИФОЛОГИЯ
Антикризисная мифология
Видеозаметка С.В. Сычева о типовых неверных антикризисных рекомендациях.
Видеозаметка опубликована на сайте
"Открытые бизнес-методики и технологии TRIZ-RI" 1 февраля 2016 г.
