Хочется поделиться, на мой взгляд, занимательным и небезынтересным докладом Андрея Аксёнова(автора sphinx)) — Прекращаем писать код Предупреждение: присутствует ненормативная лексика
P.S. Вроде это самый подходящий форум для данной ссылки.
Здравствуйте, Курилка, Вы писали:
К>Хочется поделиться, на мой взгляд, занимательным и небезынтересным докладом
Честно не понял, на кого ориентирован этот доклад. На разработчиков каких-то сложных алгоритмов?
С некоторыми вещами не согласен. Например, не могу я взять и выкинуть код. Вообще не могу взять и просто так сделать рефакторинг. Допустим, я на это потрачу 1 день. Зато мои изменения затронут 1000 тесткейсов в полсотне бизнес-процессов. Десяткам тестировщиков придется работать две недели над регрессионным тестированием, чтобы выяснить, что мои изменения ничего не сломали. Плюс неделя потребуется для нагрузочного тестирования, чтобы понять, что я не замедлил критически важный БП. Плюс что-то может остаться незамеченным и выстрелить в промышленной среде и придется ночью в выходной срочно править баги. Нет уж!
Здравствуйте, Курилка, Вы писали:
К>Хочется поделиться, на мой взгляд, занимательным и небезынтересным докладом Андрея Аксёнова(автора sphinx)) — Прекращаем писать код К>Предупреждение: присутствует ненормативная лексика К>P.S. Вроде это самый подходящий форум для данной ссылки.
Сначала понравилось, но ближе к концу пошло какое то отталкивание — ненормативная лексика, "трололо" и прочие приколы перестали вставлять.
Вроде и есть смысл местами + определенные поинты, на которые стоит обратить внимание (еще и мега спорный вопрос — сильно от специфики отрасли зависит).
С другой — ну вышел гиг, небрежно одетый, постоянно волосы поправляет (ля, ну собери ты их в самом деле!), матерится и несет бред про трололо — в топку такие конфы и видеокасты. Шаришь в поиске и алгоритмах — ну класс, перед аудиторией, в том числе массовой, несколько иные скиллы нужны.
Доклад в целом одобряю, но раздражает, что во многих слайдах использовано слово, смысл которого автору неизвестен. Джатаками изначально назывались поучительные истории о прошлых жизнях Будды. Гайдук, автор популярных растаманских сказок, часто использовал его у себя, но хотя бы сравнительно уместно — для обозначения историй с персонажами. Здесь же оно совсем не подходит. Это как если бы кто-нибудь короткие истории-рассказы называл бы не story, а history.
Здравствуйте, Курилка, Вы писали:
К>Хочется поделиться, на мой взгляд, занимательным и небезынтересным докладом Андрея Аксёнова(автора sphinx)) — Прекращаем писать код К>Предупреждение: присутствует ненормативная лексика К>P.S. Вроде это самый подходящий форум для данной ссылки.
Здравствуйте, alexeiz, Вы писали:
A>Автор гнёт пальцы. Принебнежительно относится к слушателям. А сам рассказывает прописные истины.
Да какие там истины?
"Не изобретайте велосипед если не надо, изобретайте если надо"
"Оптимизируйте если надо, не оптимизируйте если надо"
"делайте ... если надо, не делайте если не надо"
И это еще и вульгарным тоном хамствой и тупизной
в треш ...
Здравствуйте, Spiceman, Вы писали:
S>С некоторыми вещами не согласен. Например, не могу я взять и выкинуть код. Вообще не могу взять и просто так сделать рефакторинг. Допустим, я на это потрачу 1 день. Зато мои изменения затронут 1000 тесткейсов в полсотне бизнес-процессов. Десяткам тестировщиков придется работать две недели над регрессионным тестированием, чтобы выяснить, что мои изменения ничего не сломали. Плюс неделя потребуется для нагрузочного тестирования, чтобы понять, что я не замедлил критически важный БП. Плюс что-то может остаться незамеченным и выстрелить в промышленной среде и придется ночью в выходной срочно править баги. Нет уж!
Тут замкнутый круг какой-то. Из-за того что невозможно рефакторить и улучшать код, он будет более корявый и баговый. А поскольку код будет корявый и баговый его нельзя изменять, улучшать, потому что после каждого изменения 1000 тестировщиков будут ... потому что код корявый
Здравствуйте, Silver_s, Вы писали:
S>>С некоторыми вещами не согласен. Например, не могу я взять и выкинуть код. Вообще не могу взять и просто так сделать рефакторинг.
S_> Тут замкнутый круг какой-то. Из-за того что невозможно рефакторить и улучшать код, он будет более корявый и баговый. А поскольку код будет корявый и баговый его нельзя изменять, улучшать, потому что после каждого изменения 1000 тестировщиков будут ... потому что код корявый
Не, рефакторить надо. Но не так как говорит Аксёнов — не бойтесь выкидывать код. Чтобы сделать рефакторинг, нужно его сначала согласовать с другими участниками проекта, желательно оформить в виде задачи и согласовать трудоемкость. Ну и понятно, что если рефакторинг в простой и стопудово ничего не ломает, то можно и втихую сделать.
Здравствуйте, avishnyakov, Вы писали:
A>С другой — ну вышел гиг, небрежно одетый, постоянно волосы поправляет (ля, ну собери ты их в самом деле!), матерится и несет бред про трололо — в топку такие конфы и видеокасты. Шаришь в поиске и алгоритмах — ну класс, перед аудиторией, в том числе массовой, несколько иные скиллы нужны.
Вам таки шашечки или ехать?
Здравствуйте, alexeiz, Вы писали:
A>Автор гнёт пальцы. Принебнежительно относится к слушателям.
Отнюдь. По крайней мере послушать было интересно и не стало скучно в процессе.
A>Решил посмотреть, что за код он в своём сфинксе пишет. Особо не впечатляет, т.е. совсем не впечатляет: http://code.google.com/p/sphinxsearch/source/browse/trunk/src/sphinxexcerpt.cpp
Код как код.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, avishnyakov, Вы писали:
A>>С другой — ну вышел гиг, небрежно одетый, постоянно волосы поправляет (ля, ну собери ты их в самом деле!), матерится и несет бред про трололо — в топку такие конфы и видеокасты. Шаришь в поиске и алгоритмах — ну класс, перед аудиторией, в том числе массовой, несколько иные скиллы нужны. CC>Вам таки шашечки или ехать?
Я не фанат выбирать из двух крайностей, ни одна из которых меня не устраивает.
В данном случае эффективного фидбека для меня нет — ни ехать, ни шашечки.
Здравствуйте, Spiceman, Вы писали:
S>Не, рефакторить надо. Но не так как говорит Аксёнов — не бойтесь выкидывать код. Чтобы сделать рефакторинг, нужно его сначала согласовать с другими участниками проекта, желательно оформить в виде задачи и согласовать трудоемкость. Ну и понятно, что если рефакторинг в простой и стопудово ничего не ломает, то можно и втихую сделать.
Ты не понял. Он намекает что надо согласовать и оформить все что надо, если видно что код надо выкинуть. Обычно люди боятся как раз того, что ты перечислил.
Обычно говорят так:
не могу я взять и выкинуть код. Вообще не могу взять и просто так сделать рефакторинг. Допустим, я на это потрачу 1 день. Зато мои изменения затронут 1000 тесткейсов в полсотне бизнес-процессов. Десяткам тестировщиков придется работать две недели над регрессионным тестированием, чтобы выяснить, что мои изменения ничего не сломали. Плюс неделя потребуется для нагрузочного тестирования, чтобы понять, что я не замедлил критически важный БП. Плюс что-то может остаться незамеченным и выстрелить в промышленной среде и придется ночью в выходной срочно править баги. Нет уж!
On 09.10.2010 14:25, Spiceman wrote:
> С некоторыми вещами не согласен. Например, не могу я взять и выкинуть код. > Вообще не могу взять и просто так сделать рефакторинг. Допустим, я на это > потрачу 1 день. Зато мои изменения затронут 1000 тесткейсов в полсотне > бизнес-процессов. Десяткам тестировщиков придется работать две недели над > регрессионным тестированием, чтобы выяснить, что мои изменения ничего не > сломали. Плюс неделя потребуется для нагрузочного тестирования, чтобы понять, > что я не замедлил критически важный БП. Плюс что-то может остаться незамеченным > и выстрелить в промышленной среде и придется ночью в выходной срочно править > баги. Нет уж!
Здравствуйте, Aikin, Вы писали:
A>Здравствуйте, CreatorCray, Вы писали:
A>>>Решил посмотреть, что за код он в своём сфинксе пишет. Особо не впечатляет, т.е. совсем не впечатляет: http://code.google.com/p/sphinxsearch/source/browse/trunk/src/sphinxexcerpt.cpp CC>>Код как код. A>Я вот тоже не поянл что там в коде-то не так? Но списал на незнание Cpp.
A>СУВ, Aikin
Ну мне как-то странно показалось наличие интерфейсов с открытыми данными.
Или он другое имел в виду?
class ISnippetsQword: public ISphQword
{
public:
CSphString * m_sBuffer;
CSphVector<ExcerptGen_c::Token_t> * m_dTokens;
ISphTokenizer * m_pTokenizer;
//...
};
Это минус, да.
B>Да и вообще какой-то , ИМХО, мрачноватый код.
Я видимо слишком много видел откровенно плохого кода, поэтому на их фоне этот при беглом просмотре отвращения не вызывает.
Здравствуйте, Spiceman, Вы писали:
S>С некоторыми вещами не согласен. Например, не могу я взять и выкинуть код.
Выбрасывать код — значит переписывать с нуля. За такое нужно устраивать публичную порку.
>Вообще не могу взять и просто так сделать рефакторинг. Допустим, я на это потрачу 1 день. Зато мои изменения затронут 1000 тесткейсов в полсотне бизнес-процессов. Десяткам тестировщиков придется работать две недели над регрессионным тестированием, чтобы выяснить, что мои изменения ничего не сломали.
А если тебе надо будет фичу докинуть или баг пофиксить, то изменения не затронут ничего ?
>Плюс неделя потребуется для нагрузочного тестирования, чтобы понять, что я не замедлил критически важный БП. Плюс что-то может остаться незамеченным и выстрелить в промышленной среде и придется ночью в выходной срочно править баги. Нет уж!
Рефакторинг — самая безопасная из техник внесения изменений.
S>Видимо, Аксёнов варился в несколько другой среде.
Нет никакой "другой среды", см. выше.
Материал из Википедии — свободной энциклопедии, -_*
Здравствуйте, Spiceman, Вы писали:
S>Не, рефакторить надо. Но не так как говорит Аксёнов — не бойтесь выкидывать код. Чтобы сделать рефакторинг, нужно его сначала согласовать с другими участниками проекта, желательно оформить в виде задачи и согласовать трудоемкость. Ну и понятно, что если рефакторинг в простой и стопудово ничего не ломает, то можно и втихую сделать.
Рефакторинг всегда делается малюсенькими шажочками. Сначала, например, можно переимновать классы, функции и тд. Бывает уже этого достаточно, что бы понять что происходит. Дальше можно делить методы на части, тулом каким нибудь. Вот структуру, АПИ рефакторить это уже опасные изменения и даже юнит-тестов может не хватить.
Материал из Википедии — свободной энциклопедии, -_*