Как сделать легаси выше

Обновлено: 03.07.2024

Здравствуйте админ, вопрос такой, на новом ноутбуке Acer Aspire V5 хочу установить вместо Windows 8.1 операционную систему Windows 7, знаю, что для этого нужно отключить в БИОСе опцию Secure Boot и включить режим расширенной загрузки Legacy.

Действую так, вставляю в ноутбук установочную флешку Windows 7 и перезагружаюсь, жму при загрузке F2 и вхожу в БИОС UEFI, но опция Secure Boot замылена (выделена серым цветом), то есть неактивна, и непонятно, как перевести её в режим Legacy. В БИОСе моя загрузочная флешка не отображается. Если нажать F12 при загрузке ноутбука и войти в загрузочное меню, то флешка там тоже отсутствует.

Привет всем! Хочу откатить новый ноутбук Acer Aspire к заводским настройкам, но перед этим мне нужно вытащить свои файлы с рабочего стола Windows 8.1, ведь при восстановлении заводской конфигурации с диска (C:) всё удалится. Загружаю ноутбук с флешки, на которой находится операционная система Linux, но в загрузочном меню (F12) флешки нет. На вашем сайте говорят, что нужно сначала задать пароль администратора в BIOS, затем отключить опцию Secure Boot и только тогда получится загрузить ноут с флешки. Всё это как-то мудрено, не подскажите, как всё сделать правильно?

Как отключить Secure Boot на ноутбуке Acer Aspire. Как убрать пароль на БИОС ноутбука Acer


Привет друзья! Автора первого письма я хочу отговорить от замены Windows 8.1 на Windows 7, по моему мнению минусов у восьмёрки не так уж и много, чтобы вот так просто, за раз, сносить её с нового ноутбука, но, как говорится, - хозяин барин и решение за вами.

А вот автору второго письма придётся отключить Secure Boot, потому как, большая часть дистрибутивов Linux не сможет пройти протокол безопасной загрузки! Кстати, вот неплохая флешка LiveCD, которой Secure Boot будет не помеха.

С помощью нажатия клавиши F2 при загрузке заходим в БИОС UEFI, переходим на вкладку Main, выставляем опцию F12 Boot Menuв Enabled, этим действием мы разрешаем появление загрузочного меню ноутбука при нажатии клавиши F12.


Далее переходим на вкладку Security, опускаемся до опции Set Supervisor Password и нажимаем на клавишу Enter, в верхнем поле вводим пароль (потом мы его сбросим) и нажимаем Enter,


в нижнем поле вводим этот же пароль и опять жмём Enter.




и подтверждаем выбор.


Жмём F10 (сохраняем произведённые изменения) и перезагружаем ноутбук, при загрузке жмём F12 и входим в загрузочное меню, выбираем среди других устройств нашу флешку.


Убираем пароль на БИОС ноутбука Acer, возможность отключения/включения Secure Boot остаётся

Во всей этой истории есть один неприятный момент, если вдруг вы захотите попасть в БИОС ноутбука, то вам придётся ввести придуманный пароль,


как говорится, нафик надо, ведь его можно забыть.


Во втором поле ничего не вводим, просто жмём Enter,


в третьем поле также ничего не вводим, просто жмём Enter,



Вот и всё, пароль сброшен.

Нажимаем клавишу F10 для сохранения изменения настроек и перезагружаемся, возможность отключения/включения Secure Boot остаётся.

Четвертое поколение знаменитого и горячо любимого в нашей стране автомобиля появилось на свет еще в далеком 2003 году. Получившийся авто не только унаследовал общую концепцию и некоторые формы от своего предшественника, но и многократно преумножил их. Хоть по внешним размерам четвертое поколение Legacy значительно больше своего старшего брата, применение новых технологий в проектировании кузова позволили ему заполучить отличные аэродинамические характеристики, на голову превосходящие показатели прошлой генерации. Особенно сильно это проявляется на высоких скоростях в виде существенной экономии топлива, общего улучшения управляемости и устойчивости на дороге, вкупе с предсказуемостью и стабильностью практически в любых дорожных условиях.

Данное поколение Legacy комплектовалось 4-х и 6-ти цилиндровыми горизонтально-оппозитными моторами. Вплоть до 2008 года самым мощным в линейке силовых агрегатов числился 2-литровый турбированный DOHC, после шел 24DOHC с 3-мя литрами объема на борту, далее — атмосферная версия упомянутого выше мотора DOHC, а замыкал список устанавливаемых в этот авто двигателей самый слабый 2-литровый SOHC. Чуть позднее перечень силовых агрегатов пополнился еще 2,5-литровые модификации атмосферного SOHC и турбового DOHC. Последний, кстати, отличался огромной удельной мощностью в 280 л.с.

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

Технические характеристики


  • Силовой агрегат бензиновый, объемом 2, 2,5 или 3 литра, мощностью от 150 до 280 л.с*;
  • Трансмиссия: АКПП или МКПП*
  • Габариты (ДхШхВ): 3050х1480х1385 мм;
  • Привод: полный;
  • Клиренс: 135 мм;
  • Тип кузова: седан или универсал*;
  • Максимально допустимая масса: 2155 кг;
  • Подвеска (передняя и задняя): независимая, многорычажная;
  • Тормоза (перед и зад): дисковые.

* — в зависимости от комплектации.

минусы Subaru Legacy 4

Основные недостатки Subaru Legacy 4-го поколения(BL/BP)

Даже невзирая на то, что автомобили данной модели производятся уже достаточно долго, но компания Subaru, имея в своем штате одних из лучших инженеров планеты, огромный опыт работы, лучшие материалы и жесткий контроль качества на всех этапах производства, не смогла уберечь свой продукт от некоторых недочетов, к коим относятся:


  • Двигатель;
  • Ходовая часть;
  • Радиатор;
  • Пыльники ШРУСов;
  • Вискомуфта дифференциала;
  • Рулевая рейка;
  • Передние ступичные подшипники.

Рассмотрим описанные недостатки немного подробнее.

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

После 3-4 лет эксплуатации Субару Легаси, практически невозможно встретить на них не порванные пыльники ШРУсов, причем эта проблема эксплуатации относится ко всем моторам и типам трансмиссии, устанавливаемых на эту модель.

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

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

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

Слабые места Субару Легаси 2003–2009 гг. выпуска


  1. Слабое ЛКП;
  2. Невысокого качества лобовые стекла;
  3. Более высокую стоимость обслуживания, по сравнению с ближайшими конкурентами Subaru;
  4. Посредственную шумоизоляцию.

Подведём итог.

Основные недочеты и минусы Субару Легаси 4(BL/BP) was last modified: 28 января, 2021 by Administrator


Subaru Legacy 2003-2009 годов выпуска. Отличный спортивный седан с постоянным полным приводом для тех мест где знают что такое зима и снег. Красивый внешне, с отличной управляемостью и большим разнообразием двигателей. Выпускался в кузовах седан (BL) и универсал (BP) и оснащался всесубаровскими оппозитными 4-х цилиндровыми двигателями как атмосфирными, так и турбированными, аналогичным дизельным мотором и собственной оппозитной атмосферной шестеркой. Признан Автомобилем Года 2003 в Японии. На базе этой модели производился универсал повышенной проходимости Subaru Outback.

Как и для большинства других моделей Субару, Легаси либо фанатично любят, либо вообще не понимают зачем она нужна. Однако Legacy совсем не типичная Subaru. Если для полноприводных Импрез или Форестеров тех лет трудно назвать реальных конкурентов, настолько нишевые это были машины, то Легаси — машина более привычная, адресованная более широкому кругу потенциальных покупателей. Традиционный субаровский постоянный полный привод, оппозитные моторы на 4 и 6 цилиндров и наличие мощных турбированных модификаций в этой модели сочетаются с красивым дизайном на любой вкус и качественным салоном (Субару тех лет отличались подчеркнуто аскетичными салонами и дизайном на любителя). Именно поэтому модель получила большое распространение в снежных странах, в частности у нас в России.

Итак, портрет Subaru Legacy










Legacy в данном кузове выпускался с 2003 по 2009 годы. В 2006 году был произведен рестайлинг, который коснулся всей нижней части кузова (крылья, бамперы, передняя и задняя оптика) и передней панели салона. При этом на первый взгляд машина изменилась незначительно. Превратить дорестайлинговую машину в рестиайлинговую простой заменой бамперов или фар, как это можно сделать на Хонде Аккорд или Мазда 6 в случае с Легаси не получится, придется менять и соседние кузовные панели.

autowp.ru_subaru_legacy_b4_5
autowp.ru_subaru_legacy_b4_8

autowp.ru_subaru_legacy_b4_1
autowp.ru_subaru_legacy_b4_9

autowp.ru_subaru_legacy_2.0_gt_touring_wagon_9

autowp.ru_subaru_legacy_2.0r_station_wagon_11

autowp.ru_subaru_legacy_2.0r_station_wagon_6
autowp.ru_subaru_legacy_b4_15

Legacy этого поколения представлен как в версиях с левым, так и с правым рулем (в Японии седан традиционно назывался Legacy B4). Моторы серий EJ20 и EZ30 с объемом 2.0 (140-280л.с.) и 3.0 (250л.с.) литра соответственно.

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

Для североамериканского рынка выпускалась версия GT с 2,5-литровым 285-сильным двигателем от американской же версии Impreza WRX STi, в последний год выпуска моторы серии EJ 25 со 177л.с. в атмосферном варианте и 285л.с. в турбированном (версия S402) устанавливались на на модель В4 для японского рынка. В Европе также был доступен двухлитровый турбодизель. Привод постоянный полный, КПП механические и автоматические, АКПП в этом поколении уже 5-ступенчатые. Японские версии отличаются от европейских помимо расположения руля в первую очередь двигателями. Японцам практически для каждой версии двигателя (атмо или турбо) предлагалось несколько вариантов форсировки. В частности версия с базовым атмосферным мотором могла быть как 140, так и 180-190 сильной версией R с дdухвальными головками блоков цилиндров, а топовая версия оснащалась 2-литроым турбированным двигателем на 260 л.с. в версии с АКПП и на 280л.с. в версии с МКПП.

В США в данном кузове максимально распространены машины с двигателями 2,5-литра в атмосферном и турбированном вариантах. Внешне американка отличается оранжевыми габаритами и указателями поворотов головных фар и чуть более вытянутым вперед передним бампером.

38556050001_original (1)

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

Стоимость на вторичном рынке 320 000 — 700 000 рублей.

Основные характеристики базовых модификаций:

Колесная база, мм ……………………………. 2670

Дорожный просвет, мм ……………………………. 150

Снаряженная масса, кг ……………………………. 1460-1495

Расход топлива у версии 2.0 турбо (260-280л.с.) ……………… город 12-20/ трасса 10-17л

Расход топлива у версии 3.0 (250л.с.)…………………………..город 12-15/трасса 9-11л

Основные конкуренты по мнению владельцев: Honda Accord, Mazda 6 (Atenza), Audi A4, Volkswagen Passat, Volvo S60.

Основные преимущества Subaru Legacy по мнению владельцев:

  • красивая внешность
  • постоянный полный привод
  • наличие мощных модификаций
  • приличная динамика
  • хорошая управляемость
  • приличная надежность
  • качественная по японским меркам отделка салона
  • теплый салон, быстро прогревается мотор
  • крепкая подвеска
  • стекла дверей без рамок
  • взаимозаменяемость узлов с другими моделями Субару

Основные недостатки Subaru Legacy по мнению владельцев:

  • высокая цена на вторичном рынке
  • высокий расход топлива
  • сложность самостоятельного обслуживание двигателя
  • более высокая стоимость обслуживания по сравнению с японскими одноклассниками

Подробности

Дизайн кузова

Плавные и в то же время четкие линии кузова придают автомобилю красоты и динамики. Такой дизайн нравится большинству и несмотря на возраст модели, смотрится машина достаточно современно. При этом машина однозначно узнаваемая, не похожая на другие модели. И все это справедливо и для седана, и для универсала. Субару Легаси — пожалуй тот редкий случай когда нельзя точно сказать что один из вариантов кузова смотрится лучше другого, оба очень гармоничные, оба красивы, оба узнаваемы. И это создает проблемы потенциальному покупателю, да и владельцам, потому что выбирая седан постоянно смотришь на универсал, и наоборот.

Особенно стильно смотрятся топовые версии и комплектация Blitzen, у которой иные бамперы и решетка радиатора.

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

Салон

Салон Легаси 4го поколения по-европейски стильный, особенно красиво смотрится центральная консоль на топовых версиях, где используется аудиосистема McIntoch, на передней панели применяется мягкий пластик, передние стойки кузова обтянуты тем же тканевым материалом что и крыша. задние стойки — пластиковые. Шумоизоляция средняя.


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

Как и на Хонде Аккорд, главное конкуренте, недостатком для б/у автомобиля является магнитола, совмещенная в общем блоке с климат-контролем. Поменять ее на другую будет затруднительно.В комплектациях с аудиосистемой McIntoch, ее блок вынимается отдельно и может быть заменен.

Мотор

Первое что о нем можно сказать — мотор оппозитный в любой версии. Как на Porsche. Это фишка Субару. Такой мотор имеет более низкий центр тяжести и хорошо сбалансирован по вибронагрузкам. За счет этого чисто теоретически машина должна лучше управляться, практически же это просто маркетинговый ход и влияние оппозитника на управляемость куда меньше, чем влияние настроек подвески или используемых покрышек.

Побочным эффектом такой конструкции является дорогивизна и некоторое неудобство обслуживания. И то и другое связано с наличием двух головок блока цилиндров даже на самых простых 4х-цилиндровых моторах, да еще и с развалом в 180 градусов. Механизм ГРМ тут сложнее и деталей в нем больше, чем на обычном 4х цилиндровом моторе, к тому же к самим головкам не очень удобно подлазить (хотя кто постоянно работает с Субару уже наловчились проводить все процедуры без лишнего труда).

Однако потенциальные владельцы гонятся за 3х литровыми версиями, внешне отличающимися хромированными молдингами на порогах и окантованной решеткой радиатора по периметру. И для такого выбора есть сразу два повода: во-первых, 3.0 двигатель имеет цепь в приводе ГРМ и потому надежнее, во-вторых, постоянный полный привод съедает часть мощности и с базовыми версиями мотора никакого спорта от этой машины не ждите — тот еще овощ, а турбомоторы страдают высоким расходом топлива и менее надежны. Кроме того приятным бонусом будут все те же молдинги на порогах, другая решетка радиатора и сразу хорошая комплектация салона.

Про турбоверсии подробности лучше почитать на специализированных форумах. Это совсем другие по характеру машины и совсем другая стоимость обслуживания. Люди с Субару-вирусом в крови сразу скажут, что если и брать Легаси, то только турбовую и только на механике. если уж очень хочется, можно и на автомате, но только турбовую. Это будет та самая Субару-гонка, быстрая, резкая. НО прожорливая, более дорогая в содержаии и с огромным транспортным налогом (в любой версиии турбомотор выдает больше 250лс, поэтому транспортный налог будет по максимальной ставке и даже когда машине будет 10 лет и налог сократится вдвое, все равно его сумма будет очень приличная для бу машины купленной по цене Лады). Кроме того, турбо выбирали явно не для того чтобы ездить медленно, поэтому общий износ машины будет выше. Вывод: да, машина очень быстрая, однако в содержании и по расходу — все равно что многолитровые моторы V6 или V8, при меньшем ресурсе. Поэтому турбо рекомендуем брать только если Вы уже больны Субару-вирусом (правда тогда Вы и так уже будете ездить на турбосубару и не будете читать этот текст :)). В противном случае если нужна хорошая динамика, лучше купить ту же Audi S4 V8 4.2, BMW 330 xDrive, Passat W8, Volvo S60R, они такие же дорогие в содержании, не уступают, а некоторые и превосходят турбосубару в динамике, при этом моторы с большим ресурсом, значительно выше уровень салонов и комплектаций, ну и престиж марки. Если же гонка не нужна, то старайтесь найти атмосферную Субару.

Вопреки распространенному мнению далеко не все Субару нужно заправлять 98м бензином. Высокооктановые топлива нужны только для моторов с высокой степенью сжатия (в частности турбомоторов), базовые модели двигателей по рекомендации завода производителя следует заправлять как и большинство машин бензином АИ 95. Поэтому выбирая Субару не с форсированным двигателем не стоит беспокоиться о дополнительных тратах на дорогой 98й бензин, также как не стоит заливать его в базовые модели ради увеличения мощности — их двигатели банально не расчитаны на такое октановое число, пользы от такой диеты точно не будет.

Кстати такая путаница с бензином может служить своеобразным индикатором при покупке машины. Во многих объявлениях владельцы подчеркивают что заправляют машину только 98м бензином. При том что как минимум в половине случаев мотор расчитан совсем на другой бензин. Это заставляет задуматься насколько вообще адекватно предыдущий владелец подходил к эксплуатации своей машины, если за все время не заглянул ни в мануал, ни в каталог и не увидел какое топливо нужно лить в двигатель. То же самое касается и моторных масел. Некоторые владельцы заявляют (а может и на практике так делают) что используют очень дорогие, максимально технологичные масла. Но в данном случае дорогое не значит подходящее. Даже самое лучшее моторное масло с неправильно подобранным коэффициентом вязкости будет хуже бюджетного варианта, но соответствующего требованиям двигателя, а в результате может быть не только повышенный угар самого масла, но и сниженная защита деталей двигателя. Так что при покупке будьте внимательны к заявлениям продавца.

КПП

На Легаси устанавливались как МКПП, так и АКПП. Поскольку моторы взаимозаменяемы с другими моделями Субару, то и КПП тоже, зачастую люди меняют эти агрегаты что является несомненным плюсом. Коробки надежны, однако АКПП традиционно для Субару вялый и это чувствуется даже на турбоверсиях. хотя за счет добавления 5 ступени коробка работает шустрее чем на предыдущем поколении модели.

Подвеска и рулевое управление

Надежная, крепкая, энергоемкая, многорычажная — все что нужно для активной езды по плохим дорогам. Для России — идеальный вариант. И если так же Хондовская подвеска славится своей высочайшей прочностью и цепкостью, но все-таки жестковата на неровностях, в Субару настройки более комфортные, поэтому езда по плохим дорогам более уверенная — наверное сказывается раллийный опыт.

Безопасность

В плане безопасности этот кузов Legacy получил 4 звезды в рейтинге EuroNCAP, это высокий показатель для машины начала 2000х и по этому параметру Subaru на уровне конкурентов, в том числе европейских.

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

Стоимость ремонта и обслуживания

Обслуживание Legacy чуть дороже чем у японских и некоторых европейских конкурентов и это вызвано исключительно особенностями конструкции (сложно подлезть к свечам, больше деталей в механизме ГРМ, две головки блоков цилиндров, полноприводная трансмиссия). При этом по запчастям и по частоте посещений сервиса машина вовсе не обременительная, все сопоставимо с другими японскими машинами этого сегмента. Поэтому за исключением стоимости замены ремня ГРМ, замены свечей и необходимости обслуживать в целом очень надежную полноприводную трансмиссию, машина не дорогая. Сделано все крепко, надежно, ресурс всех деталей очень высокий. Некоторые просчет конструкции двигателя и не самая высокая надежность 4х цилиндровых двигателей компенсируется высокой надежностью коробок передач и полного привода, в отличии от большинства конкурентов он позволяет подолгу буксовать в снегу или грязи, из машин-конкурентов подобное поведение своим владельцам прощает только Audi A4 quattro. Запчастей полно, много дубликатов вполне приличного качества и по доступной цене. Однако на обслуживании двигателя экономить не стоит, он не самый крепкий, поэтому чтобы он жил долгой и счастливой жизнью масло надо заливать качественное и вовремя (для России сервисные сроки рекомендуется сокращать до 5-7 тысяч километров в зависимости от условий эксплуатации. Если выполнять регламентное обслуживание, машина не потребует существенных вложений.

Резюме

Комфортный автомобиль спортивной направленности, на котором приятно ездить летом и еще приятнее снежной зимой. Стильная внешность с любой версией кузова, боковые окна без рамок и фирменные оппозитные моторы (как у Porsche) добавляют уникальности, сохраняя практичность. Любит покушать, да и в обслуживании несколько дороже японских конкурентов, но в замен готов предложить то, чего нет у других.

Что такое legacy или унаследованная система

Picture1

  • устаревшие технологии;
  • неоднородную архитектуру,
  • недостаток или даже полное отсутствие документации.

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

На самом деле, легаси-система — это не так уж страшно, и вот почему. Если система жила все эти десять лет и до сих пор работает, значит, какой-то толк от нее есть. Может быть, она приносит хорошие деньги (в отличие от вашего последнего стартапа на новейших технологиях). Кроме того, код такой системы относительно надежен, если он смог так долго выживать в продакшне. Поэтому вносить в него изменения нужно с осторожностью.

Прежде всего, нужно понять две вещи:

  1. Мы не можем неуважительно относиться к системе, которая зарабатывает миллионы, или к которой обращаются тысячи людей в день. Как бы плохо она ни была написана, этот отвратительный код дожил до продакшна и работает в режиме 24/7.
  2. Раз эта система приносит реальные деньги, работа с ней сопряжена с большой ответственностью. С самого начала ясно, что это не стартап в стол, а то, чем пользователи будут работать уже завтра. Это подразумевает и очень высокую цену ошибки, причем дело здесь не в претензиях клиента, а в реальном положении вещей.

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

Что со всем этим делать

Picture2

Для успешной работы с унаследованными системами нам придется много пользоваться приемами reverse engineering.

Прежде всего, нужно внимательно читать код, чтобы точно понимать, как именно он работает. Это обязательно — ведь достаточной документации у нас, скорее всего, не будет. Если мы не поймем хода мыслей автора, мы будем делать изменения, последствия которых окажутся не вполне предсказуемыми. Чтобы обезопасить себя от этого, нужно вникать еще и в смежный код. И при этом двигаться не только вширь, но и вглубь, докапываясь до самого нутра. Откуда вызывается метод с ошибкой? Откуда вызывается вызывающий его код? В легаси-проекте “call hierarchy” и “type hierarchy” используется чаще, чем что бы то ни было другое.

Конечно, придется проводить много времени с отладчиком — во-первых, чтобы находить ошибки, и во-вторых, чтобы понять, как все работает — потому что логика обязательно будет такой, что по-человечески прочитать ее мы не сможем. Собственно говоря, дебажить нужно будет вообще все, в том числе и open source-библиотеки. Даже если проблема где-то в Spring, значит, придется отлаживать и, возможно, пересобирать Spring, если возможности его обновить не окажется. Именно так нам неоднократно приходилось делать, причем не только со Spring.

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

Используя эти приемы, рано или поздно вы начнете более или менее понимать код. Но чтобы ваши усилия не пошли прахом, вы должны обязательно сразу же документировать результаты своих изысканий — для этого я советую рисовать блок-схемы или диаграммы последовательности (sequence diagrams). Конечно, вам будет лень, но делать это точно нужно — через полгода без документации вы сами в этом коде будете копаться как в первый раз. А если через полгода с кодом будете работать уже не вы, ваши последователи будет очень благодарны вам за имеющуюся документацию. Кстати, зачастую для себя и для бизнеса документацию нужно готовить разную: в вашей, рассчитанной на инженеров, представители бизнеса ничего не поймут. Им потребуется что-то понятное, описывающее функционирование системы на верхнем уровне. И наконец, нужно не забывать самим пользоваться этой документацией и читать ее. Однажды, решив проблему после двух дней героической борьбы, мы обнаружили собственный документ, подробно описывающий точно такой же случай.

А руками?

Picture3

Не переписывать!

Вместо этого реализуйте новый функционал в том же стиле, в каком написан остальной код. Другими словами, если код старый, не стоит поддаваться соблазну использовать новые красивые технологии — такой код потом будет очень тяжело читать. Например, вы можете столкнуться с ситуацией, которая была у нас — часть системы написана на Spring MVC, а часть — на голых сервлетах. И если в части, написанной на сервлетах, нужно дописать еще что-то, то дописываем мы это так же — на сервлетах.

Бизнес-интересы и рефакторинг

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

Тестирование

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

  • верификация, когда реализованный функционал фичи проверяется в отдельной ветке;
  • стабилизация, когда проверяется ветка релиза, в которой все фичи слиты вместе;
  • сертификация, когда все то же самое прогоняется еще раз на немного других тест-кейсах в сертификационном окружении, максимально приближенном к продакшну по характеристикам железа и конфигурации.

И только после прохождения всех этих трех фаз мы можем делать релиз. Кто-то наверняка считает, что сертификация — лишняя фаза, так как на стадии стабилизации все уже выяснено, но наш опыт говорит о том, что это не так — иногда во время регрессионного теста, который прогоняется по второму кругу на другой машине, что-нибудь да вылезет.

DevOps и релиз

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

Организация кода

Очень важно выстроить правильную branching strategy. Основные модели бренчинга давно описаны на сайте того же Atlassian, их можно адаптировать под ваши нужды. Главное — ни в коем случае не коммитить изменения сразу в транк: должны быть stable trunk и feature branches. Я советую делать релизы из релизных веток, а не из транка. То есть у вас есть транк, от которого отходят ветки на конкретные фичи, соответствующие тикетам в Jira. Когда вы закончили разработку в спринте, вы собираете отдельную релизную ветку из готовых фич и ее сертифицируете. Если же что-то пойдет не так, из такой ветки можно будет легко устранить то, что по какой-то причине из релиза в итоге выпадает. Когда же релиз произошел, релизная ветка вливается в stable trunk.

Контроль качества кода

И наконец, code review — это, казалось бы, достаточно очевидная практика, к которой прибегают почему-то далеко не во всех проектах. Очень хорошо, если каждая часть кода проверяется более чем одним человеком. Даже в очень сильной команде в процессе code review обязательно обнаруживаются какие-то косяки, а если смотрят несколько человек, количество выявленных косяков возрастает. Иногда самое страшное находит третий или четвертый reviewer. Но во избежание как саботажа, так и излишнего фанатизма, необходимо договориться, сколько review достаточно для того, чтобы считать фичу готовой.

Для проверки можно использовать пул-реквесты (конечно, если у вас Git), далее есть Crucible и FishEye — оба прикручиваются к Jira. И наконец существует очень удобный инструмент Review Board, который работает и с SVN, и с Git. Он позволяет послать запрос на проверку кода, который соберет в себе все изменения в данном feauture branch.

Как этим управлять

Picture4

Подбор команды

Самое первое, что должен помнить Team Lead или PM при наборе людей в проект — далеко не всем разработчикам подходит работа с легаси-системами. Даже если человек пишет замечательный код, не факт, что он сможет целыми днями сидеть с дебаггером или документировать чужой код. Для работы с легаси, кроме технических навыков, требуются еще определенные личностные качества — хорошее чувство юмора, самоирония и, конечно же, терпение. На эти качества нужно обращать внимание при подборе людей в команду, а если кто-то не сошелся с легаси характерами, то не воевать с ним, а заменять. Замена человека в проекте в подобном случае не волчий билет, а облегчение и для него, и для команды.

Глупые вопросы

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

В работе с легаси-системами действительно важен правильно выстроенный, понятный и прозрачный процесс: Jira (или аналог) обязательно должна отражать реальное положение дел в данный момент. Все требования должны быть ясно сформулированы, а процессы четко прописаны. Вся эта Jira-бюрократия точно окупится, сильно снизив степень энтропии в проекте. Так, когда к вам придет заказчик и потребует срочно сделать новую фичу, вы сможете просто показать заполненное расписание. Тогда он легче сможет понять, что чем-то придется пожертвовать.

Что касается эстимэйта (вы же используете Planning Poker, правда?), то оценивать всегда нужно с запасом, чтобы быть готовым к сюрпризам — как мы уже говорили, влияния в незнакомом нам коде зачастую неясны, и порой может вылезать что-то совершенно неожиданное и в неожиданных местах. Так, у нас в проекте был случай, когда изменения в простом CSS сломали часть бизнес-логики: кто-то поставил в JS проверку на цвет элемента интерфейса.

Бизнес, tech debt и SWAT

При работе с легаси-системами нужно стараться противостоять потоку бизнес-требований, которые заказчик будет вам непрерывно поставлять. Заказчик не всегда осознает риски, связанные со стабильностью системы, поэтому вам придется постоянно о них напоминать. Бороться с этими рисками можно двумя способами: балансированием бизнес и стабилизационных задач в каждом спринте или отдельными стабилизационными проектами. Оптимальным кажется баланс 70 на 30, когда 30 % времени каждого спринта вы занимаетесь стабилизацией. Впрочем, заказчик скорее всего не даст вам сделать все, что вы хотите — поэтому записывайте технический долг по мере обнаружения. Из этого tech debt вы будете брать задачи на вышеупомянутые 30 %. А может, заказчик согласится на стабилизационный проект, особенно если вы покажете ему tech debt в ответ на вопрос, почему все в очередной раз упало.

Примеры оптимизации

А теперь вкратце расскажу о способах оптимизации, которыми мы пользовались в разное время.

Во-первых, нужно уйти от традиции ежедневных перезапусков, если так было принято в проекте. Однако делать это нужно, конечно, с осторожностью — продолжать проверять логи и следить за всем, что может привести к падению системы, и бороться с этим. У нас была система, которые перезапускалась каждую ночь, т. к. не могла прожить и двух суток из-за memory и других leaks — теперь же она совершенно стабильно работает от релиза до релиза две-три недели (за редкими исключениями, о которых мы обычно узнаем в 4 утра).

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

Очень важный момент — проход по всем логам и составление отдельного эпика. Бывают, конечно, заказчики, которые долго не дают доступа к продакшн-логу. У нас, например, так продолжалось полгода, после чего случился переломный момент, когда нас самих попросили посмотреть логи продакшна. Просмотр затянулся на всю ночь. В системе, работавшей, как считалось, штатно и стабильно, нормальные логи попадались лишь иногда — в основном же записи были со сдвигом вправо и начинались с “at”. Это были сплошные стектрейсы, и их набиралось на десятки мегабайт в сутки. Конечно, мы завели эпик в Jira и создали тикеты на отдельные exceptions. Затем нам пришлось несколько месяцев выбивать время на стабилизационный проект. В итоге мы исправили множество ошибок, о которых никто не догадывался, и сделали логи информативными. Теперь любой стектрейс в них — действительно признак нештатной ситуации.

Еще советую обращать внимание на третьесторонние зависимости как на front-end (Google Tag Manager, Adobe Tag Manager и т. п.), так и на back-end. Например, если у нас на странице есть JavaScript со сторонних ресурсов, нужно посмотреть, завернуты ли эти скрипты в try..catch блоки. У нас были случаи, когда сайт падал из-за того, что ломался какой-то скрипт на стороне. Также важно предусматривать возможность недоступности любых внешних ресурсов.

Ну и последнее: следите за всем, за чем только можно, и грамотно агрегируйте логи. Ведь у вас может быть 12 продакшн-серверов, и вас могут попросить их логи посмотреть, что точно нужно делать не через tail. Мы использовали ELK — связку Elastic search – Logstash – Kibana. Очень полезен мониторинг: мы навесили Java Melody на все серверы и получили огромное количество новой информации, на основании которой многое исправили, осчастливив заказчика.

Читайте также: