Вчера я ужаснулся от кода, который я написал часом ранее. Не, если бы это была одна функция из сотни, которая не слишком часто вызывается, то я даже смотреть на это не смотрел. Но данный участок кода будет выполняться много раз на девайсе с ограниченными ресурсами(это я про мобильники).
Что же именно здесь не так? Мы пробегаемся по всем символам и по одному добавляем в образующийся ответ. Только как добавляем? Мы создаем новую строку с уже добавленным символом, а результаты предыдущего ответа съедает доблестный GC. То есть мы создаем, удаляем, создаем, удаляем. И так много-много раз. Вместо того, чтобы один раз создать и все сделать. Налицо синдром маляра Шлемеля.
Какой из этого можно сделать вывод? Перед тем, как решать задачу, надо подумать над ней. Это относится ко всему: проектированию, программированию, построению дизайна. И плевать, что аналогичную проблему ты уже решал и знаешь примерно, как это решалось. Если бы я посидел с ручкой в руке на минуты две больше, чем принялся печатать на клавиатуре, то сэкономил бы кучу времени. Если бы мы продумали архитектуру шесть месяцев тому назад, то не пролетели со всеми дедлайнами. А ведь с лицея учили: сначала думай, потом реализуй.
Мне одному кажется, что каждый, читая подобную заметку, думает: со мной так не произойдет, я же умный?
Комментариев нет:
Отправить комментарий