Не трогайте мышь и отойдите от клавиатуры





Скачать 360.39 Kb.
НазваниеНе трогайте мышь и отойдите от клавиатуры
страница1/8
Дата публикации21.08.2013
Размер360.39 Kb.
ТипДокументы
100-bal.ru > Философия > Документы
  1   2   3   4   5   6   7   8

Не трогайте мышь и отойдите от клавиатуры


Берк Хуфнагель (Burk Hufnagel)

Вы уже несколько часов работаете над некоей неподдающейся задачей, а решения все не видно нет . Тогда вы просто идете размять ноги или направляетесь к торговому автомату, и на обратном пути ответ вдруг становится очевиден.

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

Вот вам пример из жизни. Я причесывал некий старый код и наткнулся на «любопытный» метод. Его задачей была проверка правильности формата времени в строке, который имел вид hh:mm:ss xx, где hh – это час, mm – минуты, ss – секунды, а xx имеет значение AM или PM (может не все читатели знают что это такое? :-).

Метод содержал следующий код для преобразования двух символов (представляющих час) в число и проверки нахождения его в заданном диапазоне:

try {

Integer.parseInt(time.substring(0, 2));

} catch (Exception x) {

return false;

}

if (Integer.parseInt(time.substring(0, 2)) > 12) {

return false;

}

Тот же самый код появлялся еще дважды с соответствующими изменениями в смещении символов и верхней границе, чтобы проверить правильность минут и секунд. Заканчивался метод следующими строками, проверяющими AM и PM:

if (!time.substring(9, 11).equals("AM") &

!time.substring(9, 11).equals("PM")) {

return false;

}

(Три отрицания это вынос мозга) Если ни одно из этого ряда сравнений не оказывалось не выполненным, возвращая false все сравнения из этого ряда выполнялись, метод возвращал true.

Если приведенный код кажется слишком многословным и трудным для понимания, не волнуйтесь. Мне тоже так показалось, и я решил, что обнаружен код, который стоило подчистить. Я переработал его и написал несколько блочных тестов, чтобы проверить, по-прежнему ли он правильно работает.

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

Когда я готовился к работе на следующий день, меня посетила идея: а почему бы не проверить правильность строки с помощью регулярного выражения? Через несколько минут у меня была готовая реализация, состоящая всего из одной строки кода. Вот она:

public static boolean validateTime(String time) {

return time.matches("(0[1-9]|1[0-2]):[0-5][0-9]:[0-5][0-9] ([AP]M)");

}

Смысл не в том, что в итоге мне удалось заменить 30 с лишним строк кода одной единственной. Смысл в том, что пока я не отошел от компьютера, мне казалось, что моя первая попытка была лучшим решением задачи.

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

Читайте код


Карианне Берг (Karianne Berg)

Мы, программисты – странные люди. Мы любим писать код. Но что касается его чтения, то мы обычно сторонимся этого дела. В конце концов, писать код гораздо увлекательней, а читать код трудно, иногда – почти невозможно. Особенно тяжело читать код, написанный кем-то другим. Не всегда из-за того, что он плохо написан, но потому, что другой человек думает и решает задачи иначе, чем вы. Но вы никогда не задумывались, что чтение чужого кода может помочь улучшить ваш собственный код?

Когда вы в следующий раз будете читать какой-нибудь код, остановитесь и задумайтесь. Трудно читать этот код или легко? Если трудно, то почему? Он плохо отформатирован? Система имен непоследовательна или нелогична? Несколько задач смешались в одном фрагменте кода? Возможно, выбранный язык затрудняет чтение кода. Старайтесь учиться на чужих ошибках, чтобы не повторять их в своем коде. Возможно, вас ждут сюрпризы. Например, технологии разрыва зависимостей могут быть полезны для слабого связывания, но они могут также затруднить чтение кода. А код, который одни считают элегантным, другие могут считать невозможным для чтения.

Если код читается легко, задержите на нем свой взгляд и посмотрите, нельзя ли чему-то научиться у него. Возможно, в нем применен паттерн проектирования, который вам не известен или который вы пытались реализовать ранее. Может быть, там использованы более короткие методы с более выразительными именами, чем ваши. В одних проектах open source можно найти массу примеров великолепного, понятного кода, тогда как в других вы столкнетесь с прямо противоположным! Посмотрите образцы такого кода.

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

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

Хорошая глава, все понятно, прочитал без запинок.
  1   2   3   4   5   6   7   8

Добавить документ в свой блог или на сайт

Похожие:

Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
Разработать обучающую программу, выдающую структурированную и наглядную информацию о работе клавиатуры, буфера клавиатуры, обработчиков...
Не трогайте мышь и отойдите от клавиатуры iconЛитература: Детские народные подвижные игры: Кн для воспитателей...
Игру начинает первая пара: кот ловит мышь, а та бегает вокруг играющих. В опасный момент мышь может спрятаться в коридоре, образованном...
Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
СанПиН 4 178-02). В 2009-2010 учебном году кабинет был оснащен 10 новыми ученическими компьютерами (монитор, системный блок, мышь,...
Не трогайте мышь и отойдите от клавиатуры iconКурсовой проект по дисциплине «Системы программирования и операционные системы»
Резидентный обработчик прерываний от клавиатуры с подключением до системного обработчика
Не трогайте мышь и отойдите от клавиатуры iconИстория
Системные требования: Pentium 90,Win 95/NT, 16 Мб озу, монитор с разрешением 640х480, HiColor (не менее 32 тыс цветов), 4х cd-rom,...
Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
Цель урока: освоение клавиатуры — важнейшего устройства ввода информации в память компьютера
Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
С помощью чего проще набрать текст? Двухкнопочной мыши или 102 клавишной клавиатуры?
Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
Цель: познакомить учащихся с различными устройствами ввода информации в компьютер. Изучить назначения клавиш клавиатуры
Не трогайте мышь и отойдите от клавиатуры iconКомпьютер (арм учителя: монитор+системный блок+клавиатура+мышь)
Начальный курс географии 7 кл. География. Наш дом Земля. Материки, океаны, народы и страны
Не трогайте мышь и отойдите от клавиатуры iconМузыка
Подробная информация о более чем 100 музыкальных инструментов. История возникновения инструментов, возможность прослушать каждый...
Не трогайте мышь и отойдите от клавиатуры iconЛандер Кени «О чем думает Стив»»
Гений цифровой эры, придумавший компьютерную мышь, айфон и многое другое, без чего наша жизнь была бы совсем другой
Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
«Свидетель» уже знала о том, что владеет великим сценарием и хотела присвоить ему звание Лучшего Оригинального Сценария еще до того...
Не трогайте мышь и отойдите от клавиатуры iconВ е д е н и е
Кроме того, к компьютеру могут подключаться принтер для вывода на печать текстовой и графической информации; мышь —устройство, облегчающее...
Не трогайте мышь и отойдите от клавиатуры iconКонспект занятия кружка «Компьютерный мир» 1 кл по теме «Манипулятор «мышь»
Построение парами. Переход на площадку. Построение в шеренгу. В центре площадки ребята образуют круг и делятся на две команды
Не трогайте мышь и отойдите от клавиатуры iconПрограмма по формированию навыков безопасного поведения на дорогах...
Продолжение темы Norton Utilities Программа Speed Disk. Программа WipeInfo и другие утилиты. Создание системной дискеты. Драйверы...
Не трогайте мышь и отойдите от клавиатуры iconТема урока: «Компьютер и его основные устройства». Тип урока
Опорные понятия: Периферийные устройства: системный блок, монитор, принтер, сканер, клавиатура, мышь, аудио система


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск