singalen: (Default)
[personal profile] singalen
Ну что, я его наконец, если не доделал окончательно, то распланировал и готовлю материалы.

Скажите, коллеги, Вы бы сходили на такое?
Если Вы всё это и знаете - то людей посмотреть-себя показать?
Что добавить/удалить/прояснить в программе?
Какие у вас сейчас есть вопросы и какая боль с легаси кодом?

(дальше по-английски)

Legacy code.

Intended audience: middle to senior programmers.

1. (game: 15 min) Mud-digging fun: find not-so-trivial code smells
(samples provided)

2. Michael Feathers' questions and answers. Did you find all of them for yourself already? Really? [1]
2.1. (Speaking: 30 min)
2.2. (Discussion: 20 min)

3. (10 min) Coffee break.

4. (practice in teams: 1 h) Tools and tricks we use. Do we know how our friends examines code/ designs tests?
Task is to find a certain bug or to make a minor change.

5. (45 min) Pizza, smoking break.

6. (30 min: Discussion): Why do we write legacy code. Philosophy.

6. Test smells
6.1. (game: 15 min) Name a test smell you see.
6.2. (practice in teams: 45 min) Testing arbitrary legacy code.
(samples provided)
6.3. What does Feathers say about this case?

7. (practice in teams: 45 min) Propose a refactoring. Estimate it. Discuss.
edit: (samples provided including large-scale system UML diagram)

8. (1.5 h) Tell us about your case. Please use our new vocabularies.
8.1. (?) Some more beer?
8.2. (?) Afterparty.


[1] Feathers' questions and (some) answers:
Simpler quertions are like:
* I need to make a change, but I don't know what tests to write
* I can't get this class/method into a test harness

Harder and more painful ones:
* I don't have much time and I have to change it
* It takes forever to make a change
* We feel overwhelmed. it isn't going to get any better


[2] Participants physical requirements:
* Be there;
* Have a laptop with a SDK and your favorite IDE for one of: C/C++/Java/C# - or let us know you don't have one, so we MAY arrange some.

Participants mental requirements:
* Know a vocabulary of:
* at-least-GoF design patterns;
* refactorings;
* remind yourself Fowler's code smells (http://wiki.java.net/bin/view/People/SmellsToRefactorings);
* familiarize yourself with xUnit test smells (http://xunitpatterns.com/Test%20Smells.html);
* Know what is UML class diagram;

Bibliography
[Legacy] "Working Effectively with Legacy Code", Michael C. Feathers, ISBN: 0-13-117705-2
[xUnit] "xUnit test patterns", Gerard Meszaros, http://www.ozon.ru/context/detail/id/4127815/, ISBN: 978-5-8459-1448-4, 978-0-13-149505-0
(screened comment)

(no subject)

25/2/11 12:36 (UTC)
Posted by [identity profile] green-serpent.livejournal.com
нет. ритм-секция.
какой же рефрен без неё.

(no subject)

25/2/11 12:40 (UTC)
Posted by [identity profile] green-serpent.livejournal.com
т.е. эти две идентичные строчки были написаны специально?