Автоматически разделить временные переменные в делфи
в данной статье рассматривается правильное использование временных переменных, мотивы для разделения ненадлежащего переменные, и как использовать Касталия чтобы автоматически разделить их.р><р класса="step_content ">я хотела бы затронуть вопрос, который я получаю часто от людей, которые видят Касталия впервые. Когда они смотрят на рефакторинг, они видят что-то вроде "извлечение метода" и "переименование локальных переменных", которые говорят сами за себя. То есть, вы можете выяснить, что они делают, основываясь на имени. Затем они видят "сплит временную переменную" и они не уверены, что думать. Это не очень удобный рефакторинг, и по большей части, он игнорируется, несмотря на то, что невероятно полезно.р><р класса="step_content "> р><р класса="step_content ">в общем, подобная реорганизация используется, когда "у вас есть локальная переменная, которой присваивается один раз и больше не является переменной цикла, ни собирая переменной" (Мартин Фаулер в Рефакторинг: улучшение дизайна существующего кода).р><р класса="step_content "> р><р класса="step_content ">есть много использует для локальных переменных. Некоторые из этих вариантов, естественно, потребует переменную более одного раза. Например, переменные циклов меняться каждый раз вокруг петли (например, я в для я := 0 до 10). Сбор временных переменных собрать какую-то ценность, что это за метод, обычно с рисунком, который выглядит как "SomeVar := SomeNewValue SomeVar."р><р класса="step_content "> р><р класса="step_content ">другие временные переменные используются, чтобы содержать результат кусок кода для легкой ссылки позже. Такие переменные должны быть установлены только один раз. Если они установлены более чем один раз, то это явный признак того, что переменная имеет более одного ответственность в функцию или процедуру. Это неудобно читать и трудно поддерживать, так как трудно быть уверенным в данный момент ответственность fulfulled. Каждой обязанности должна быть представлена отдельной переменной, что делает код легче читать и поддерживать.р><р класса="step_content "> р><р класса="step_content ">это где "сплит временной переменной" рефакторинга приходит. Он будет принимать переменная, которая имеет несколько обязанностей и разделить его на отдельные переменные, которые имеют уникальные функции. Давайте работать через пример:р><р класса="step_content "> р><р класса="step_content "> & мочекаменная р><р класса="step_content "> р><р класса="step_content "> & мочекаменная р><р класса="step_content ">процедура TForm1.UpdateCoordinates р><р класса="step_content ">варр><р класса="step_content "> темп: число р><р класса="step_content ">начатьр><р класса="step_content "> темп := Shape1.Вверху,
StatusBar1.Панели[0].Текст := IntToStr(темп) р><р класса="step_content "> темп := Shape1.Влево.
StatusBar1.Панелей[1].Текст := IntToStr(Фэмп) р><р класса="step_content ">конец р><р класса="step_content "> & мочекаменная р><р класса="step_content ">
<див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ">див> <див класс="блок-внутренний"> <див класс="содержание"> див> <див класс="блок-дна">див> див> див> див><див класс='embed_block_1'><див>див>див>
в этом методе, панели в строке состояния обновляются с координатами фигуры. Переменная с именем "Temp" имеет несколько функций в рамках метода. Он представляет собой как сверху, так и левые ценности. Мы можем (и должны) разделить эти обязанности. р><р класса="step_content "> р><р класса="step_content ">чтобы иметь Касталия проанализировать этот раскол, то поместите курсор на имя переменной в сплит (либо ссылку на временную сделаю, просто щелкните на нее так, чтобы курсор находится в слове "темп"). Выберите "разделенный временной переменной" из меню рефакторинга (либо из контекстного меню редактора или главного меню "Правка"). Появится диалоговое окно, сообщающее нам, что мы собираемся разбить темп, который является Целочисленным, в двух переменных, и запрашивает имя новой переменной. Мы входим ShapeLeft в качестве нового имени переменной и нажмите кнопку ОК.р><р класса="step_content "> р><р класса="step_content ">
р><р класса="step_content "> р><р класса="step_content ">после нажатия Ok, рефакторинг обозревателя с предлагаемыми изменениями. Обратите внимание, что некоторые изменения проверяются по умолчанию, другие нет. Касталия предполагает, что первая обязанность переменной оставаться с существующей переменной, а во-вторых, так быть заполнены по новой переменной. Если Вы не согласны с этим предположением, вы можете проверить и снимите эти изменения, как вы считаете нужным.р><р класса="step_content "> р><р класса="step_content ">
р><р класса="step_content "> р><р класса="step_content ">кликаем "вперед" (которая была переименована в "применить", в Касталии 2.2), а Касталия будет внести некоторые изменения. Теперь у нас есть процедура, которая выглядит так:р><р класса="step_content "> р><р класса="step_content "> & мочекаменная р><р класса="step_content ">процедура TForm1.UpdateCoordinates р><р класса="step_content ">варр><р класса="step_content "> темп ShapeLeft: целое число р><р класса="step_content ">начатьр><р класса="step_content "> темп := Shape1.Вверху,
StatusBar1.Панели[0].Текст := IntToStr(темп) р><р класса="step_content "> ShapeLeft := Shape1.Влево.
StatusBar1.Панелей[1].Текст := IntToStr(ShapeLeft) р><р класса="step_content ">конец р><р класса="step_content ">это улучшение. Конечно, некоторые дополнительные рефакторинг может сделать этот код еще лучше. Используя "переименовать локальную переменную" переименовать Temp, В что-то вроде ShapeTop будет определенное улучшение. Код мог бы быть еще более кратким путем, используя "Встроенные временной переменной", чтобы полностью исключить переменные.р><р класса="step_content "> р><р класса="step_content ">в данной статье мы узнали о надлежащем использовании временных переменных и как использовать Касталия "расщепления временной переменной" рефакторинг чтобы улучшить те области, где мы, возможно, неправильно их использовал. Более подробную информацию о других рефакторинга Касталия можно найти здесь.р><дел стиль= \ ясно:оба поплавка:нет'>дел><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная див>
Автоматически разделить временные переменные в делфи
Автоматически разделить временные переменные в делфи : Несколько тысяч советов, которые сделают вашу жизнь проще.
в данной статье рассматривается правильное использование временных переменных, мотивы для разделения ненадлежащего переменные, и как использовать Касталия чтобы автоматически разделить их.р><р класса="step_content ">я хотела бы затронуть вопрос, который я получаю часто от людей, которые видят Касталия впервые. Когда они смотрят на рефакторинг, они видят что-то вроде "извлечение метода" и "переименование локальных переменных", которые говорят сами за себя. То есть, вы можете выяснить, что они делают, основываясь на имени. Затем они видят "сплит временную переменную" и они не уверены, что думать. Это не очень удобный рефакторинг, и по большей части, он игнорируется, несмотря на то, что невероятно полезно.р><р класса="step_content "> р><р класса="step_content ">в общем, подобная реорганизация используется, когда "у вас есть локальная переменная, которой присваивается один раз и больше не является переменной цикла, ни собирая переменной" (Мартин Фаулер в Рефакторинг: улучшение дизайна существующего кода).р><р класса="step_content "> р><р класса="step_content ">есть много использует для локальных переменных. Некоторые из этих вариантов, естественно, потребует переменную более одного раза. Например, переменные циклов меняться каждый раз вокруг петли (например, я в для я := 0 до 10). Сбор временных переменных собрать какую-то ценность, что это за метод, обычно с рисунком, который выглядит как "SomeVar := SomeNewValue SomeVar."р><р класса="step_content "> р><р класса="step_content ">другие временные переменные используются, чтобы содержать результат кусок кода для легкой ссылки позже. Такие переменные должны быть установлены только один раз. Если они установлены более чем один раз, то это явный признак того, что переменная имеет более одного ответственность в функцию или процедуру. Это неудобно читать и трудно поддерживать, так как трудно быть уверенным в данный момент ответственность fulfulled. Каждой обязанности должна быть представлена отдельной переменной, что делает код легче читать и поддерживать.р><р класса="step_content "> р><р класса="step_content ">это где "сплит временной переменной" рефакторинга приходит. Он будет принимать переменная, которая имеет несколько обязанностей и разделить его на отдельные переменные, которые имеют уникальные функции. Давайте работать через пример:р><р класса="step_content "> р><р класса="step_content "> & мочекаменная р><р класса="step_content "> р><р класса="step_content "> & мочекаменная р><р класса="step_content ">процедура TForm1.UpdateCoordinates р><р класса="step_content ">варр><р класса="step_content "> темп: число р><р класса="step_content ">начатьр><р класса="step_content "> темп := Shape1.Вверху,
StatusBar1.Панели[0].Текст := IntToStr(темп) р><р класса="step_content "> темп := Shape1.Влево.
StatusBar1.Панелей[1].Текст := IntToStr(Фэмп) р><р класса="step_content ">конец р><р класса="step_content "> & мочекаменная р><р класса="step_content ">
<див класс='embed_block_0'> <див ИД="блок-google_admanager-1" класса="блок блок-google_admanager области-другие области-количество-1 Количество-1 блок-Без названия "> <див класс="блок-топ">див> <див класс="блок-внутренний"> <див класс="содержание"> див> <див класс="блок-дна">див> див> див> див><див класс='embed_block_1'><див>див>див>
в этом методе, панели в строке состояния обновляются с координатами фигуры. Переменная с именем "Temp" имеет несколько функций в рамках метода. Он представляет собой как сверху, так и левые ценности. Мы можем (и должны) разделить эти обязанности. р><р класса="step_content "> р><р класса="step_content ">чтобы иметь Касталия проанализировать этот раскол, то поместите курсор на имя переменной в сплит (либо ссылку на временную сделаю, просто щелкните на нее так, чтобы курсор находится в слове "темп"). Выберите "разделенный временной переменной" из меню рефакторинга (либо из контекстного меню редактора или главного меню "Правка"). Появится диалоговое окно, сообщающее нам, что мы собираемся разбить темп, который является Целочисленным, в двух переменных, и запрашивает имя новой переменной. Мы входим ShapeLeft в качестве нового имени переменной и нажмите кнопку ОК.р><р класса="step_content "> р><р класса="step_content ">
р><р класса="step_content "> р><р класса="step_content ">после нажатия Ok, рефакторинг обозревателя с предлагаемыми изменениями. Обратите внимание, что некоторые изменения проверяются по умолчанию, другие нет. Касталия предполагает, что первая обязанность переменной оставаться с существующей переменной, а во-вторых, так быть заполнены по новой переменной. Если Вы не согласны с этим предположением, вы можете проверить и снимите эти изменения, как вы считаете нужным.р><р класса="step_content "> р><р класса="step_content ">
р><р класса="step_content "> р><р класса="step_content ">кликаем "вперед" (которая была переименована в "применить", в Касталии 2.2), а Касталия будет внести некоторые изменения. Теперь у нас есть процедура, которая выглядит так:р><р класса="step_content "> р><р класса="step_content "> & мочекаменная р><р класса="step_content ">процедура TForm1.UpdateCoordinates р><р класса="step_content ">варр><р класса="step_content "> темп ShapeLeft: целое число р><р класса="step_content ">начатьр><р класса="step_content "> темп := Shape1.Вверху,
StatusBar1.Панели[0].Текст := IntToStr(темп) р><р класса="step_content "> ShapeLeft := Shape1.Влево.
StatusBar1.Панелей[1].Текст := IntToStr(ShapeLeft) р><р класса="step_content ">конец р><р класса="step_content ">это улучшение. Конечно, некоторые дополнительные рефакторинг может сделать этот код еще лучше. Используя "переименовать локальную переменную" переименовать Temp, В что-то вроде ShapeTop будет определенное улучшение. Код мог бы быть еще более кратким путем, используя "Встроенные временной переменной", чтобы полностью исключить переменные.р><р класса="step_content "> р><р класса="step_content ">в данной статье мы узнали о надлежащем использовании временных переменных и как использовать Касталия "расщепления временной переменной" рефакторинг чтобы улучшить те области, где мы, возможно, неправильно их использовал. Более подробную информацию о других рефакторинга Касталия можно найти здесь.р><дел стиль= \ ясно:оба поплавка:нет'>дел><дел стиль= \ ясно:оба поплавка:нет'> & мочекаменная див>
Автоматически разделить временные переменные в делфи
By russiatips
Автоматически разделить временные переменные в делфи : Несколько тысяч советов, которые сделают вашу жизнь проще.