'

Проектирование и дизайн ПО

Понравилась презентация – покажи это...





Слайд 0

Проектирование и дизайн ПО Дмитриев Андрей Владиславович andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru 2007


Слайд 1

Как написать программу, которую невозможно поддерживать? Зачем писать сложные программы? Методика работы инженера. Как написать сложную программу? Сопроводительная документация.


Слайд 2

Зачем писать сложные программы? Никто не сможет поддерживать ваш код. Вас не смогут уволить. В глазах других разработчиков вы будете выглядеть как чрезвычайно опытный программист.


Слайд 3

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


Слайд 4

Выбор имен переменных Овладение искусством выбора имен переменных – залог успеха в запутывании программы. Односимвольные переменные: f, t, h,… Креативные опечатки: setDoubleValue(), setDuobleValue(). Внесение абстракции: doStuff(), handleThatNow(), doAgain(), … А.К.Р.О.Н.И.М.Ы.: clrMgmSmmf(). Используйте символы «_».


Слайд 5

Широкий выбор имен для одинаковых методов Одна и та же функциональность может быть представлена различными именами: show(), display(), printOnScreen(), paint(), …


Слайд 6

Используйте термины из фильмов и иностранные слова Тот, кто не видел этого фильма, недостоин писать программы: klingons, hobbitese, pluraloj, …


Слайд 7

Переиспользуйте переменные int price = getPrice(); printReport(price); … price = getOranges(); Особенно полезно это делать в длинных методах.


Слайд 8

«Почти стандартные» имена Используйте имена, похожие на известные: public void prit(String s){ System.out.println(String s); }


Слайд 9

Инновационные комментарии while(true) { arr[i++] = calculateValue(i); /* этот цикл d = i--; * должен выполняться до if (d==0){ * тех пор, System.exit(0); * пока d не } * равно нулю */ revalidate(arr[i]); } Сколько операторов внутри цикла?


Слайд 10

«Подробная» документация Скажите неправду в комментариях к программе. Указывайте «как», а не «почему». Избегайте описывать «очевидное» и наоборот: int tmp; //новая временная переменная. //содержит целые числа. //при завершении метода она пропадает! char c = s.substring(i, s.length()-3); //тут все просто.


Слайд 11

Используйте придуманные термины Слово кажется вам забавным? Используйте его в комментариях как термин: snafucated.


Слайд 12

Полное доверие к данным Никогда не проверяйте получаемые данные. Этим вы продемонстрируете что полностью доверяете своим клиентам.


Слайд 13

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


Слайд 14

«Подписывайте» свои классы Реализуйте пустой интерфейс “MadeByMe” и помечайте им все свои классы. Настаивайте на том, чтобы каждый член команды делал также: MadeByIvan, MadeByGrisha, MadeByKatya…


Слайд 15

Глобальные переменные Использование глобальных переменных продемонстрирует что вы кристально ясно понимаете этот код. Это также потребует кристального понимания от других инженеров….


Слайд 16

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


Слайд 17

Используйте литералы Вместо именованных констант всегда используйте значения: for (int i = 0; i < 100; i++) { … } Это заставит программиста разбираться в программе глубже и находить все места использования, если вдруг данное значение нужно будет поменять.


Слайд 18

Сокращайте объем исходного кода public class SimpleSummer { public long sum(intstart, int stop){ long acc = 0; for(int i=start;i<=stop;i++){ acc += i; return acc; } }


Слайд 19

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


Слайд 20

{} Не используйте скобки там где это можно не делать: if (value == 0) value = 100; При добавлении второй строчки в тело блока нужно будет быть внимательным.


Слайд 21

Тестирование Никогда не пишите тестов. Не оценивайте производительность и не тестируйте.


Слайд 22

Выводы Чтобы стать незаменимым человеком, достаточно немного изменить программу.


Слайд 23

Q&A


Слайд 24

Дмитриев Андрей Владиславович andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru 2007 Спасибо!


×

HTML:





Ссылка: