Меньший объем программы
Меньший объем программы
Сохраняйте код как можно более простым
Вам кажется, что имея в два раза больше кода, ваша программа будет только вдвое сложнее. На самом деле, каждый раз, когда вы увеличиваете объем кода, сложность программы возрастает экспоненциально. Каждое маленькое дополнение, каждое изменение, каждая взаимозависимость и каждое предпочтение имеют каскадный эффект. Продолжайте безбоязненно добавлять код, и вы получите страшный Большой Ком Грязи — до того, как это заметите.
Как бороться с этой сложностью — уменьшением объема программы. Уменьшение объема программы значит меньше функций, меньше кода, меньше отходов.
Главное здесь — переформулировать любую сложную задачу, требующую много кода, в простую задачу, которая требует кода намного меньше. Возможно, вы уже не будете решать в точности ту же задачу — это нормально. Решить 80% первоначальной задачи, затратив 20% усилий — это большой выигрыш. Первоначальный вариант задачи обычно никогда не является настолько важным, чтобы затрачивать в пять раз больше времени на ее решение.
Меньший объем программы значит, что вам не придется теряться в догадках. Вместо попыток предугадать проблемы в будущем, вы решаете только сегодняшние проблемы. Почему? Страхи, которые вы питаете по поводу будущего, как правило, не оправдываются. А потому не толкайте себя в болото, пытаясь бороться с призраками.
С самого начала, мы проектировали наши продукты в соответствии с концепцией меньшего объема кода. При малейшей возможности мы разделяем сложные задачи на простые. Мы нашли решения простых задач, которые легче не только воплощать или поддерживать, но и понимать, и использовать. Все это — часть того, как мы отличаемся от конкурентов; вместо того, чтобы разрабатывать продукты, которые делают больше, мы разрабатываем те, которые делают меньше.
* Меньшим объемом программы легче управлять.
* Меньший объем программы — меньше кода, а это значит
* Меньше скучной работы по сопровождению (и более счастливый персонал).
* Меньший объем программы снижает стоимость изменений — так что вы можете быстрее адаптироваться к обстоятельствам. Вы можете менять свои решения без того, чтобы менять мегабайты кода.
* Меньше кода — меньше ошибок.
* Меньше кода — меньше техподдержки.
Какие функции оставить, а какие исключить — тут решение тоже связано с уменьшением объема программы. Не бойтесь отказать в выполнении запроса, который слишком труден. Если функция не является абсолютно критичной — вы сэкономите время и усилия, уменьшите путаницу тем, что откажетесь от нее.
Тише едешь — дальше будешь. Появилась идея — подождите неделю, прежде чем ее воплощать, посмотрите, будет ли она казаться такой же хорошей, когда шум спадет. Помаринуйте идею — и, может быть, за это время вам в голову придет еще более простое решение.
Поощряйте контрпредложения от программистов.
Вот что хорошо было бы от них слышать: «Если делать это как вы предлагаете — на это уйдет 12 часов. Но я могу сделать это за час. В таком случае программа будет делать x и не будет делать y.» Почувствуйте, как программа сопротивляется добавлению лишних функций. Научите программистов отстаивать свою точку зрения на то, как лучше написать программу.
Также ищите обходные пути вокруг необходимости написания большего количества кода. Можете ли вы изменить экран так, что он предложит клиентам альтернативный путь — без того, чтобы менять модель программы? Например, можно ли предложить пользователям загружать картинки только определенного размера — без того, чтобы производить обработку изображений на сервере?
Для каждой функции, которая попадает в вашу программу, спрашивайте себя: а нет ли другого способа ее добавить, используя меньшее количество кода? Пишите только тот код, который вам нужен, и не более того. Ваше приложение будет более поджарым — и более здоровым.
Нет кода более гибкого, чем отсутствие кода!
«Секрет» хорошего программирования совсем не в том, что именно воплотить в коде — а в том, что оставить за его рамками. В том, чтобы определить, где сильные и слабые места программы, и решить, где нужно просто оставить свободное место, вместо того чтобы заполнять его функциональностью.
— Брэд Эпплтон (Brad Appleton), инженер-программист (из There is No CODE that is more flexible than NO Code![23])
Сложность растет не пропорционально размеру
Самое важное правило разработки программного обеспечения — еще и наименее известное. Сложность программы растет не пропорционально ее размеру... И программа из 2000 строк потребует не в два раза больше времени, а гораздо больше, чем программа в половину этого размера.
— The Ganssle Group[24] (из Keep It Small[25])
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
(2.6) Как уменьшить занимаемый объем пpоинсталиpованной Win2000?
(2.6) Как уменьшить занимаемый объем пpоинсталиpованной Win2000? Можно удалить директории:• %SystemRoot%Driver Cachei386Это можно сделать в том случае, если всё оборудование уже стоит и работает. При добавлении нового оборудования система будет запрашивать дистрибутив.•
(8.7) Под W2k не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д..
(8.7) Под W2k не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д.. Многие программы, требующие непрерывного потока данных идущих на или с CD/DVD привод, нуждаются в
2.8. Как уменьшить занимаемый объем пpоинсталиpованной XP?
2.8. Как уменьшить занимаемый объем пpоинсталиpованной XP? Можно удалить директории: - %SystemRoot%Driver Cachei386 Это можно сделать в том случае, если всё оборудование уже стоит и работает. При добавлении нового оборудования система будет запрашивать дистрибутив. - %SystemRoot%system32dllcache Это
7.4. Под XP не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д..
7.4. Под XP не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д.. Многие программы, требующие непрерывного потока данных идущих на или с CD/DVD привод, нуждаются в
20.4.2. Объем памяти
20.4.2. Объем памяти Иногда нужно указать объем ОЗУ, отличный от того, который имеется на самом деле. Например, у вас чипсет Intel 810 с интегрированной видеоплатой, тогда вам нужно указать объем ОЗУ на 1 Мб меньше (а иногда даже на 2 Мб). Это связано с аппаратной особенностью
Компоненты и объем методологии
Компоненты и объем методологии Под "методологией" я понимаю то, что написано в качестве первого толкования этого слова в Американском словаре Miriam-Webster: "ряд связанных между собой методов или техник". Оксфордский словарь толкует это слово только как "изучение методов". В
Проблема вторая – большой объем информации
Проблема вторая – большой объем информации Жан-Ипполит Мишон обладал уникальной памятью. Это позволяло ему анализировать тысячи образцов почерка, их признаки и соответствующие черты характера. И сегодня каждый графолог должен в той или иной степени быть Мишоном. Во
Рассчитать объём потенциального рынка стартапа — вопрос двух-трёх дней для разработчика Денис Кочергин, сооснователь проекта « Ярмарка Мастеров»
Рассчитать объём потенциального рынка стартапа — вопрос двух-трёх дней для разработчика Денис Кочергин, сооснователь проекта « Ярмарка Мастеров» Опубликовано 07 мая 2013 В своё время я провёл несколько семинаров для стартаперов в рамках
13.6.6. Как увеличить объем текста
13.6.6. Как увеличить объем текста Вам нужно завтра сдавать курсовую работу, а материала вы не добрали? Тогда попробуем «растянуть» то, что у нас есть. Прежде всего, не забывайте о правилах оформления курсовых — они подразумевают использование шрифта размером 14 пунктов.
1.2. Производительность и объем дискового пространства
1.2. Производительность и объем дискового пространства Windows 7 уже не кажется неповоротливым монстром, пожирающим системные ресурсы вашего компьютера. Тому есть две причины. Первая причина — в Microsoft действительно уделили много внимания оптимизации системы. Например,
3.2.4. Удаление программы из меню Все программы
3.2.4. Удаление программы из меню Все программы Иногда нужно удалить ярлык программы из меню Все программы. Заметьте, удаление ярлыка не приводит к удалению программы, программа все еще останется на жестком диске и ее можно запустить, если вы знаете, как называется ее
5.2. Стандартные служебные программы: Пуск | Все программы | Стандартные | Служебные
5.2. Стандартные служебные программы: Пуск | Все программы | Стандартные | Служебные В программной группе Стандартные | Служебные находятся следующие программы:? Internet Explorer (без надстроек) — запускает IE без надстроек, что поможет в случае, если какая-то из надстроек