Comments 30
Вы правы, в полной мере такой режим работы раскрывает человеческий потенциал, когда у тебя через два дня релиз, а в проекте — мертвый конь.
PS/ В чем собственно суть самой игры?
PS/ В чем собственно суть самой игры?
Если придираться, то вы нарушили условия 2 и 3.
И 4.
Ну вы ведь понимаете, что под циклами и условными операторами подразумевались любые конструкции типа for, foreach, while, if, switch, ?, ??, goto(решать можно не только на C#) и тд.
А про четвертое условие вы могли бы подробнее рассказать? Почему вам кажется, что мы его нарушаем?
А про четвертое условие вы могли бы подробнее рассказать? Почему вам кажется, что мы его нарушаем?
Вы нарушаете 4 условие, потому что оно в общем не корректно:
1. Не определено понятие «строчки». Что это — оператор или физическая / логическая строка кода? Если строчка, то всё зависит от форматирования — можно так весь клас написать в одну строчку.
2. Не определено понятие «длина метода». Что это — тело метода или весь метод целиком?
1. Не определено понятие «строчки». Что это — оператор или физическая / логическая строка кода? Если строчка, то всё зависит от форматирования — можно так весь клас написать в одну строчку.
2. Не определено понятие «длина метода». Что это — тело метода или весь метод целиком?
Не стоит забывать про здравый смысл. Понятно, что вытягивать класс в одну строчку нельзя. Об этом, кстати сказать, даже никто и не заикнулся, ведь это логично.
Длина метода — это тело метода. Опять же, об этом снова никто не говорил, так как если считать сигнатуру метода, открывающую и закрывающую скобку, то это уже 3 строчки. Так что глупо считать по-другому.
Длина метода — это тело метода. Опять же, об этом снова никто не говорил, так как если считать сигнатуру метода, открывающую и закрывающую скобку, то это уже 3 строчки. Так что глупо считать по-другому.
Code retreat был на следующий день после лекции про функциональную парадигму, так что ограничение на количество строк/метод, насколько я понял, намекало на то, что метод должен быть вида «return something.Select(...)» — получить, обработать и отдать, чтобы не было side-эффектов, только операции над данными. Понятное дело, что цепочка LINQ-вызовов Select().Where().Distinct() это нормальная одна строчка.
«Понятное дело, что цепочка LINQ-вызовов Select().Where().Distinct() это нормальная одна строчка.»
Я не согласен. Так уменьшается читаемость. К тому же, если записать это в виде именно LINQ, то получится минимум 3 строчки:
return (select x from xxx
where something(x)
select x).Distinct();
Я не согласен. Так уменьшается читаемость. К тому же, если записать это в виде именно LINQ, то получится минимум 3 строчки:
return (select x from xxx
where something(x)
select x).Distinct();
1. Читаемость уменьшается лишь для тех, кто не привык такое читать. Для меня вот читаемость улучшается.
2. Что такое «именно LINQ»? :) спец-синтаксис — это часть LINQ, которую можно использовать, а можно и не использовать. Тем более никто не заставляет «именно LINQ» вытягивать в одну строчку.
3. Короче, надо прекращать занудствовать. Code Retreat — это про «весело», а не про формальные придирки и занудство ;)
2. Что такое «именно LINQ»? :) спец-синтаксис — это часть LINQ, которую можно использовать, а можно и не использовать. Тем более никто не заставляет «именно LINQ» вытягивать в одну строчку.
3. Короче, надо прекращать занудствовать. Code Retreat — это про «весело», а не про формальные придирки и занудство ;)
Отсутствие циклов должно было привести к push-/event-модели игры. Т.е. каждая клетка должна сообщать своим соседям, что она изменила состояние и они должны реагировать на это соответственно.
Отсутствие условных операторов должно было привести к классовому полиморфизму.
Отсутствие условных операторов должно было привести к классовому полиморфизму.
И 1.
var aliveNeighboursCount
Переменная от слова «менять». А это значение, которое нигде, никогда не меняется.
Это переменная. variable.
1. Значение этой переменной при каждом вызове метода будет разным (0-8)
2. Значение этой переменной при каждом вызове метода будет меняться с 0 на то, что вернет метод Count.
3. То, что «никогда не меняется» называется «константа». Это не константа.
1. Значение этой переменной при каждом вызове метода будет разным (0-8)
2. Значение этой переменной при каждом вызове метода будет меняться с 0 на то, что вернет метод Count.
3. То, что «никогда не меняется» называется «константа». Это не константа.
Ок, замените в коде имя это переменной на ее значение и вам станет лучше =)
Надеюсь она исчезнет вместе с вашими попытками найти любые, даже мельчайшие недостатки в коде. Это вполне допустимо как по мнению организаторов и руководителей, так и по моему мнению.
P.s Ни капли не хочу вас оскорбить или обидеть, давайте оставаться благоразумными.
Надеюсь она исчезнет вместе с вашими попытками найти любые, даже мельчайшие недостатки в коде. Это вполне допустимо как по мнению организаторов и руководителей, так и по моему мнению.
P.s Ни капли не хочу вас оскорбить или обидеть, давайте оставаться благоразумными.
Переменная, которая не изменяется = значение. В C# нет let, val или каких-то других подобных вещей, но это не значит, что от того, что компилятор не ограничил возможность изменения чего-то, это внезапно стало меняться.
«При каждом вызове метода» будет создана новая переменная (или семантика будет такой же, как при создании новой переменной, для особо придирчивых).
«Значение переменной» не будет определено до того момента, пока не вернётся результат выполнения последнего метода. Опять же, по семантике. Можно почитать про то, как оператор let определяется в простом нетипизированном лямбда-исчислении, или построить AST.
То, что никогда не меняется — это то, что никогда не меняется. «Переменные» в математике тоже никогда не меняются. Стоит различать смысл и форму, не?
Наконец, стоит помнить, что типы, синтаксис и прочее — это синтаксическая категория, и только. Важна семантика.
«При каждом вызове метода» будет создана новая переменная (или семантика будет такой же, как при создании новой переменной, для особо придирчивых).
«Значение переменной» не будет определено до того момента, пока не вернётся результат выполнения последнего метода. Опять же, по семантике. Можно почитать про то, как оператор let определяется в простом нетипизированном лямбда-исчислении, или построить AST.
То, что никогда не меняется — это то, что никогда не меняется. «Переменные» в математике тоже никогда не меняются. Стоит различать смысл и форму, не?
Наконец, стоит помнить, что типы, синтаксис и прочее — это синтаксическая категория, и только. Важна семантика.
Наш последний корпоративный сеанс code retreat показал, что написать без циклов намного проще, чем без циклов и без рекурсии.
Тут все очень сильно зависит от языка. В Java — да, сложно. В C# я думаю реализация может даже не измениться.
Какая задача была на вашем Code Retreat?
Игра «Жизнь» является традиционной при проведения CodeRetreat: coderetreat.org/facilitating/structure-of-a-coderetreat
та же Жизнь
Sign up to leave a comment.
Code Retreat или выходим из зоны комфорта