Программистские книжки
Dec. 28th, 2008 08:51 pmЧитаю по наводке
object уже третью книгу подряд. Вот они в порядке прочтения:
1. Agile software development
2. Test driven development by example
3. Refactoring (это та, которую сейчас читаю)
Мне, такому всему из себя "матерому зубру", должно быть немного неловко, но эти книги были для меня настоящим eye opener-ом. В отличие от традиционных книг по программированию, которые либо описывают конкретную технологию, либо говорят о дизайне в идеальном мире (см., скажем, Буч либо гэнг оф фор), эти книги говорят о том, как решать проблемы, с которыми большинство программистов вынуждены сталкиваться на практике в течении 90% своей профессиональной деятельности (время, потраченное на заседания, перекуры и тренинги - не в счет). Например - как быть, когда приходится иметь дело с кодом, написанным годы назад неизвестно кем, а потом поддерживающимся еще кучей народу, мало кто из которых до конца понимал, как работает код, который он изменяет. Как вести себя в условиях постоянно меняющихся требований, в условиях, когда эти новые требования тянут код в направлении, о котором не думали при певоначальном дизайне. И так далее. Очень рекомендую всем, кто еще не (и кто не дошел до всего своим умом).
1. Agile software development
2. Test driven development by example
3. Refactoring (это та, которую сейчас читаю)
Мне, такому всему из себя "матерому зубру", должно быть немного неловко, но эти книги были для меня настоящим eye opener-ом. В отличие от традиционных книг по программированию, которые либо описывают конкретную технологию, либо говорят о дизайне в идеальном мире (см., скажем, Буч либо гэнг оф фор), эти книги говорят о том, как решать проблемы, с которыми большинство программистов вынуждены сталкиваться на практике в течении 90% своей профессиональной деятельности (время, потраченное на заседания, перекуры и тренинги - не в счет). Например - как быть, когда приходится иметь дело с кодом, написанным годы назад неизвестно кем, а потом поддерживающимся еще кучей народу, мало кто из которых до конца понимал, как работает код, который он изменяет. Как вести себя в условиях постоянно меняющихся требований, в условиях, когда эти новые требования тянут код в направлении, о котором не думали при певоначальном дизайне. И так далее. Очень рекомендую всем, кто еще не (и кто не дошел до всего своим умом).
no subject
on 2008-12-29 07:57 am (UTC)А про TDD и commitment to thorough testing я так думаю: CTTT это правильная, но несколько абстрактная и абсолютно неконтролируемая штука, которая сильно зависит от личного восприятия каждого отдельного программиста. TDD загоняет этот самый commitment в некие рамки, т.е. превращают абстрактную штуку в простую, полезную и "сьедобную" схему.
И с рефакторингом, кстати, такая же штука. Методы, описываемые в книге просто помогают мальчикам и девочкам делать свою работу. Есть очень умные мальчики и девочки, которые и без книжки сразу узнают кривой код, и с легкостью решают проблемы и наводят красоту (см. твой план рефакторинга из 4х пунктов ниже), а есть такие, которым нужна помощь. Помощь старшего товарища или умной книжки, которая систематизирует и упрощает процесс. Книжка, в целом, полезнее и дешевле. Старший товарищ, как fallback, тоже тут.
And then again, без фанатизма ;-)
no subject
on 2008-12-29 10:26 am (UTC)