dimrub: (Default)
[personal profile] dimrub
Читаю по наводке [livejournal.com profile] object уже третью книгу подряд. Вот они в порядке прочтения:

1. Agile software development
2. Test driven development by example
3. Refactoring (это та, которую сейчас читаю)

Мне, такому всему из себя "матерому зубру", должно быть немного неловко, но эти книги были для меня настоящим eye opener-ом. В отличие от традиционных книг по программированию, которые либо описывают конкретную технологию, либо говорят о дизайне в идеальном мире (см., скажем, Буч либо гэнг оф фор), эти книги говорят о том, как решать проблемы, с которыми большинство программистов вынуждены сталкиваться на практике в течении 90% своей профессиональной деятельности (время, потраченное на заседания, перекуры и тренинги - не в счет). Например - как быть, когда приходится иметь дело с кодом, написанным годы назад неизвестно кем, а потом поддерживающимся еще кучей народу, мало кто из которых до конца понимал, как работает код, который он изменяет. Как вести себя в условиях постоянно меняющихся требований, в условиях, когда эти новые требования тянут код в направлении, о котором не думали при певоначальном дизайне. И так далее. Очень рекомендую всем, кто еще не (и кто не дошел до всего своим умом).
Page 1 of 3 << [1] [2] [3] >>

on 2008-12-28 07:09 pm (UTC)
Posted by [identity profile] trurle.livejournal.com
Например - как быть, когда приходится иметь дело с кодом, написанным годы назад неизвестно кем, а потом поддерживающимся еще кучей народу, мало кто из которых до конца понимал, как работает код, который он изменяет
Рыдать?

on 2008-12-28 07:10 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Ну вот раньше я бы так и делал. Теперь есть шансы на альтернативу.

Змеиное масло

on 2008-12-28 07:18 pm (UTC)
Posted by [identity profile] trurle.livejournal.com
Полагаю что чудес не бывает и без рефакторинга, глубина которого зависит от запутанности кода, все равно не обойтись. Вот назвать этот рефакторинг можно по разному.

Re: Змеиное масло

on 2008-12-28 07:20 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Чудес - нет, не бывает. Бывает систематезированный подход и всякие мелкие хитрости.

Re: Змеиное масло

on 2008-12-28 07:22 pm (UTC)
Posted by [identity profile] trurle.livejournal.com
Я могу предложить одну: распечатать из базы данных отдела кадров фотографии особо отличившихся ломастеров, повесить на стенку, обвести концентрическими кругами и кидать в них оффисные дарты. Облегчает фрустрацию и тем самым облегчает переработку кода.

on 2008-12-28 07:24 pm (UTC)
Posted by [identity profile] programishka.livejournal.com
Спасибо за наводку.. Постараюсь тоже прочитать их...

Re: Змеиное масло

on 2008-12-28 07:27 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Облегчает фрустрацию

Немного

тем самым облегчает переработку кода.

А вот это, увы, совсем нет. И дело даже не в каких-то там плохих разработчиках, а в самой принятой процедуре. Ее-то мы и пытаемся изменить.
Posted by [identity profile] trurle.livejournal.com
Немного
Лучше чем ничего.
И дело даже не в каких-то там плохих разработчиках, а в самой принятой процедуре.
За 25 лет моей карьеры я ни разу не сталкивался с тем что принятая процедура, whatever it be, мешала бы чему нибудь, да и с процедурой как таковой тоже. Так что я не очень понимаю как то чего нет, может помешать чему-нибудь.
Posted by [identity profile] dimrub.livejournal.com
Вот именно принятая процедура, заключающаяся в отсутствии процедуры, и мешает.

Duck and cover

on 2008-12-28 07:36 pm (UTC)
Posted by [identity profile] trurle.livejournal.com
При команде "Атомная атака" следует, помнится, нырять под стол. Примечательно что то же самое следует делать и при попытке учредить формальную процедуры разработки и сопровождения кода.

Re: Duck and cover

on 2008-12-28 07:37 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Ну, в общем, не вижу надежды убедить написанными буквами там, где не удалось убедить сказанными словами.

Re: Duck and cover

on 2008-12-28 08:01 pm (UTC)
Posted by [identity profile] trurle.livejournal.com
Уповаю на слово!

on 2008-12-28 08:21 pm (UTC)
Posted by [identity profile] olkab.livejournal.com
Ага. Agile Programming хорошая штука, если без догматизма. У нас вот к сожалению с. Взяли от системы всё самое внешнее (ежедневные stand-ups и прочие три зелёных свистка) и думаем, что это нас спасёт. А вот хренушки.
TDD хорош именно для рефакторинга. Насколько он хорош для кода, который пишется с нуля - я пока не поняла. Если у тебя будут какие-то соображения, я бы их с удовольствием послушала. Вообще тема интересная.
Хотя, как и во всех таких делах, здравый смысл - условие хоть и недостаточное, но необходимое для хоть сколько-нибудь осмысленного применения любой системы. Вон ООР вроде тоже неплохая штука - а сколько народу на ней погорела.

on 2008-12-28 08:22 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
TDD хорош именно для рефакторинга. Насколько он хорош для кода, который пишется с нуля - я пока не поняла.

Очень хорош. Причем TDD в чистом виде только для нового кода и применим :).

on 2008-12-28 08:28 pm (UTC)
Posted by [identity profile] olkab.livejournal.com
Ну вот я как раз и не поняла, насколько осмыслен TDD в чистом виде. Каков должен быть уровень TDD-зма? Какова осмысленная пропорция функций кода к количеству тестов? Мы с этим игрались в предыдущей конторе, но именно игрались. В реальных проектах я этого не видела.

on 2008-12-28 08:29 pm (UTC)
Posted by [identity profile] white-lee.livejournal.com
Насчет agile - существует такая организация, Usability Professionals' Association, и в Израиле у нее есть свое отделение (примерно тысяча членов). Они раз в два-три месяца устраивают большое сборище на темы юзабилити и рядом. Вот 12-го января будет сборище на тему Agile. Как именно это связано с юзабилити, я пока что плохо понимаю, но если интересно - милости просим. Бесплатно :). Только надо учесть, что публика в основном не программистская, со всеми вытекающими.

on 2008-12-28 08:30 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Тогда очень рекомендую 2-ю книжку. Она тонюсенькая совсем, за пару дней можно асилить.

on 2008-12-28 08:35 pm (UTC)
Posted by [identity profile] olkab.livejournal.com
Книжки я читала уже (не эту правда). Но так и не уяснила. Видимо, не запряжёшь - не узнаешь. Впрочем, интерес мой сейчас чисто вегетерианский, т.к. в последний раз я программировала что-то год назад, а сейчас только наблюдаю.
В компанию ко всем перечисленным очень хорошо идёт Continuous Integration, и если вы ещё не там, то я тебе с удовольствием подкину линки (я это, собственно, сейчас и настраиваю в конторе).

on 2008-12-28 08:35 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
К сожалению, возможности выбираться на тусовки ограничены, а то бы может и выбрался.

on 2008-12-28 08:36 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Ну да, это тоже хорошая вещь, и как раз с TDD очень хорошо сочетается. Стараюсь именно в этом направлении двигать.

on 2008-12-28 08:45 pm (UTC)
Posted by [identity profile] olkab.livejournal.com
Ага. Злые мейлы "а вот ты, поганец, сделал чек-ин, и всё навернулось" очень способствуют.
Единственное что, эти все игрушки требуют (как, впрочем, и многие другие) определённого уровня программеров. Что, к сожалению, дано не всегда.
Вы, кстати, на чём ваяете - на Java или C++? Java к TDD ласковее.
Есть ещё (в ту же копилку) довольно изящный functional testing framework FIT - http://msdn.microsoft.com/en-us/magazine/cc163841.aspx. Мы проверяли, это вполне нормально функционирует.

on 2008-12-28 08:47 pm (UTC)
Posted by [identity profile] dimrub.livejournal.com
Мы пишем на плюсах, используем гугльтест - очень сильная система для юнит тестинга.

on 2008-12-28 08:51 pm (UTC)
Posted by [identity profile] olkab.livejournal.com
Спасибо. Надо будет посмотреть.
Наши взяли какой-то невнятный cppunit, ну да бог им судья, они ж всё равно ни хера не слушают.
А в FIT ты загляни при случае - он занятный.

on 2008-12-28 08:54 pm (UTC)
Posted by [identity profile] meharher.livejournal.com
Мне в программистской практике довелось больше заниматься рефакторингом, может поэтому и философия разработки у меня всегда была эволюционной.
Однажды мне пришлось добавлять некий замысловатый фичер в систему, после тщательного изучения системы мне удалось добавить сотню-другую строчек кода и стереть полторы тысячи без потери предыдущей функциональности. Так что рефакторинг изучал на практике. В упомянутой книжке открытий для себя не нашел, но книжка и впрямь славная.


Re: Змеиное масло

on 2008-12-28 08:56 pm (UTC)
Posted by [identity profile] meharher.livejournal.com
В рефакторинге очень мне помогал ClearCase.
Изучая историю и разработчиков, узнаешь кто на какие глупости горазд.
Да и слишком частые интеграции всегда сопряжены с ляпами и искривлениями начального дизайна.
Очень помогает при анализе начальной логики и отклонений от нее.
Page 1 of 3 << [1] [2] [3] >>

Profile

dimrub: (Default)
Adventures of a somewhat curious character

September 2013

S M T W T F S
12 345 67
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 30th, 2025 10:20 pm
Powered by Dreamwidth Studios