- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
private static Predicate<Token> GetMatchBracePredicate(Token token)
{
if (token is Token.BeginBrace)
return delegate(Token t) { return t is Token.BeginBrace; };
if (token is Token.BeginQuote)
return delegate(Token t) { return t is Token.BeginQuote; };
if (token is Token.BeginRound)
return delegate(Token t) { return t is Token.BeginRound; };
if (token is Token.BeginSquare)
return delegate(Token t) { return t is Token.BeginSquare; };
// ...
1.
private static Predicate<Token> GetMatchBracePredicate(Token token) { return t => t.GetType() == token.GetType(); }
2. private static bool MatchPredicate<T>(Token token) where T is Token { return typeof(T) == token.GetType(); }
1. return a;
2. return a ? true : false;
3. return a == true ? true : false;
4. if (a == true) return true; else return false;
5. if(!a == true) return false; else return true;
6. if(!a == true) return a == true; else return !a == false;
Обычно говнокодеры останавливаются на четвертом уровне сложности, и считают, что достигли вершины. Однако, есть еще пятый и шестой, а после шестого - дзен.
Периодический рефакторинг необходим всегда, потому что не всегда заранее можно сказать, по каким веткам в будущем будет бежать исполнение кода. что-то инлайнить, что-то вынести в отдельные методы и классы, к чему-то написать интерфейс...
С опытом, конечно, начинаешь некоторые вещи сразу видеть, как лучше сделать, но идеал, как водится, недостижим
"Рефакторинг -- улучшение существующего кода"
"Рефакторинг -- улучшение существующего кода"
по вашему, и по Фаулеру, я должен писать так
Например вот так плохо:
А вот так хорошо:
return a == true; //тут по идее a == false;
может мне к вам устроиться?
Дружите с ним.
Октябренок Палкин Петя
Захлебнулся при миньете
И посметрно, говорят,
Исключен из октябрят
видимо, автор хочет привязать его к пони
к жопе чтоле??
пзц вебкил, ты даже в девиациях лох
<img src="http://upload.wikimedia.org/wikipedia/commons/f/fe/Wiki-pegging.png"/> как-то так
if (night && fullMoon) {
takeSilverBullet();
killWerewolf();
if (wereWolfKilled()) {
someHouseKeeping();
}
}