Главная - Литература

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 [276] 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294

ГЛАВА 35

Где искать дополнительную информацию

Содержание

http: cc20.com/3a6O

35.1. Информация о конструировании ПО

35.2. Не связанные с конструированием темы

35.3. Периодические издания

35.4. Список литературы для разработчика ПО

35.5. Профессиональные ассоциации

Связанные темы

Web-ресурсы: www.cc2e.com

Если вы так далеко продвинулись в чтении этой книги, то уже знаете, как много написано о практике эффективной разработки ПО. Доступной информации гораздо больше, чем можно представить. Все ошибки, которые вы делаете сейчас, люди уже сделали до вас. И если вы не хотите стать мальчиком для битья, то предпочтете читать их книги, чтобы не повторять их ошибки и не изобретать велосипед.

Поскольку в этой книге упоминаются сотни других книг и статей по разработке ПО, трудно сказать, с чего начать чтение. Библиотека программиста включает в себя несколько видов информации. Основу составляют книги, объясняющие фундаментальные концепции эффективного программирования. В других более подробно рассматриваются технические, управленческие, интеллектуальные проблемы программирования. Подробные справочники по языкам, операционным системам, средам разработки и аппаратному обеспечению содержат информацию, полез-нгую для конкретных проектов.

Обычно книги последней категории представляют интерес http: ec2e.coni/3581 в рамках одного проекта; в большей или меньшей степени

они являются временными и здесь не обсуждаются. Что касается других категорий, полезно иметь библиотечку, в которой основные виды деятельности по разработке ПО обсуждаются более глубоко: книги по выработке требований, конструированию, проектированию, управлению, тестированию и т. д. В следующих разделах подробно описываются ресурсы по конструированию, а



затем предлагается обзор материалов, относящихся к других вопросам разработки ПО. В разделе 35.4 все ресурсы систематизированы и дан список литературы для разработчика ПО.

35.1. Информация о конструировании ПО

Сначала я писал эту книгу, потому что не мог найти публикаций, в которых бы всесторонне обсуждались вопросы ШШ2дтШдШ конструирования ПО. За годы, прошедшие с момента первого издания, появилось несколько хороших книг

Книга «Pragmatic Programmer» (Hunt and Thomas, 2000) заостряет внимание на деятельности, непосредственно связанной с кодированием, включая тестирование, отладку, использование утверждений и т. д. Не вдаваясь в детали кода, она знакомит с многочисленными правилами создания хорошей программы

В книге Джона Бентли «Programming Pearls», 2-е изд. (Bentley, 2000) обсуждаются искусство и наука проектирования ПО. Книга состоит из отлично написанных очерков, в которых глубокое понимание приемов эффективного конструирования сочетается с увлеченностью этой темой. В каждой своей программе я использую что-нибудь полезное из очерков Бентли.

Работа Кента Бека «Extreme Programming Explained: Embrace fiepeieimHW ссшш Об з<(ош>-Change» (Beck, 2000) определяет подход к разработке ПО, кв зкстремальиого и быст-опирающийся на конструирование. Как разъясняется в раз- рого програшйроаания см. деле 3.1, утверждения автора относительно экономики эк- с&2е.<т/$$4$. стремального программирования не подтверждаются результатами исследований, но многие из его рекомендаций полезны при конструировании независимо от того, что применяется: экстремальное программирование или другой подход.

В более специализированном труде Стива Мэгуаера «Writing Solid Code - Microsofts Techniques for Developing Bug-Free С Software» (Maguire, 1993) рассматривается практика конструирования ПО в масштабных коммерческих приложениях. Книга главным образом отражает опыт автора, приобретенный при работе над приложениями Microsoft Office. В ней также обсуждаются технические приемы программирования на языке С. Автор в целом не затрагивает вопросы объектно-ориентированного программирования, но большинство рассматриваемых тем представляет интерес в любой среде.

Брайан Керниган и Роб Пайк написали другую узкоспециализированную книгу - «The Practice of Programming» (Kernighan and Pike, 1999), в которой уделяют внимание будничным, но жизненно необходимым моментам в работе программиста, практическим аспектам программирования, сокращая разрыв между академическими знаниями в информатике и практическими навыками. В книге, предполагающей знание языков C/C++, обсуждается стиль программирования, проектирование, отладка и тестирование.



Книга Сузан Ламмерс «Programmers at Work» (Lammers, 1986) http; cc2exom/3549 переиздавалась, но ее стоит найти. Она содержит интер-

вью с высококвалифицированными программистами, в которых раскрываются их личности, профессиональные привычки и философия программирования. Среди тех, кто дает интервью, такие светила, как Билл Гейтс (основатель Microsoft), Джон Уорнок (основатель Adobe), Энди Херцфельд (ведущий разработчик ОС Macintosh), Батлер Лэмпсон (старший инженер компании DEC, теперь работающий в Microsoft), Уэйн Рэтлифф (изобретатель dBase), Дан Бриклин (изобретатель VisiCalc), и дюжина других.

35.2. Не связанные с конструированием темы

Помимо основной литературы, рассмотренной в предыдущем разделе, здесь представлены книги, не имеющие прямого отношения к теме конструирования ПО.

Обзорный материал

Ряд книг позволяет взглянуть на процесс разработки ПО с ШрМсс20Мт p3j,j,,x

Роберт Л. Гласе в работе «Facts and Fallacies of Software Engi-neering» (Glass, 2003) предлагает интересную трактовку традиционных представлений о возможном и невозможном в разработке ПО. Книга содержит много указателей на дополнительные ресурсы.

В книге «Professional Sofware Development» (2004) я рассматриваю практику разработки ПО в ее современном виде и размышляю о том, какой она должна быть в идеале.

Книга «The Swebok: Guide to the Software Engineering Body of Knowledge» (Abran, 2001) разделяет на составляющие прикладную отрасль знаний, которая занимается оптимизацией и повышением эффективности разработки ПО, и погружает в детали конструирования ПО. Именно этот труд показывает, что в нашей области значительно больше достижений, чем можно представить.

Книга Джеральда Вейнберга «The Psychology of Computer Programming» (Weinberg, 1998) наполнена замечательными анекдотами о программировании. Она несколько устарела, так как написана во времена, когда программирование считалось единственным аспектом создания ПО. Совет, прозвучавший при первом обсуждении этой книги в «АСМ Computing Reviews», актуален и сегодня:

«Каждый руководитель программистов должен иметь собственный экземпляр этой книги. Он должен читать ее, хранить у сердца, следовать ее наставлениям, а затем оставлять на своем столе, чтобы подчиненные могли ее украсть. Взамен украденным экземплярам следует подбрасывать новые, пока все не успокоятся». (Weiss, 1972).

Если вы не смогли найти «The Psychology of Computer Programming», ищите «The Mythical Man-Month» (Brooks, 1995) или «PeopleWare» (DeMarco and Lister, 1999). Обе книги убеждают в том, что программирование - прежде всего результат человеческой деятельности и лишь во вторую очередь - нечто связанное с компьютерами.



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 [276] 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294



0.0024