Идеальный программист. Как стать профессионалом разработки по



Download 4,8 Kb.
Pdf ko'rish
bet97/128
Sana11.02.2023
Hajmi4,8 Kb.
#910052
1   ...   93   94   95   96   97   98   99   100   ...   128
Bog'liq
robert sesil martin-idealnij programmist-1490197390

12
Сотрудничество
Программы обычно создаются группами разработчиков. Одним из
условий эффективной работы группы является профессиональное
взаимодействие участников. Быть одиночкой или отшельником в
группе непрофессионально.
В 1974 году мне было 22 года. Прошло полгода с момента брака с
моей замечательной женой Энн-Мэри. До рождения нашего первого
ребенка, Анджелы, оставался еще год. Тогда я работал в одном из
подразделений Teradyne, называвшемся Chicago Laser Systems.
Рядом со мной трудился мой приятель по средней школе Тим
Конрад. В свое время мы с ним занимались всякими интересными
вещами: собирали компьютеры в его подвале, мастерили «лестницы
Якова
[49]
» в моем, учили друг друга программировать для PDP-8 и
собирать настоящие калькуляторы из микросхем и транзисторов.
На работе мы программировали систему, которая использовала
лазеры для высокоточной обрезки электронных компонентов
(резисторов, конденсаторов и т. д.) В частности, мы нарезали
кристаллы для первых цифровых часов, Motorola Pulsar.
Программирование велось на компьютере M365, клоне Teradyne
PDP-8. Система писалась на ассемблере, а исходные файлы хранились
на магнитных лентах. Хотя мы могли править код в экранном


редакторе, процесс был достаточно сложным, поэтому для чтения кода
и предварительной правки использовались в основном печатные
листинги.
У нас не было никаких средств поиска по кодовой базе. Не было
возможности найти все места вызова заданной функции или
использования заданной константы. Как нетрудно представить, это
основательно тормозило нашу работу.
И вот однажды мы с Тимом решили написать генератор
перекрестных ссылок. Программа должна была читать ленты с
исходным кодом и выводить на печать списки всех символических
имен с указанием файла и номера строки, в которой это имя
использовалось.
Исходная программа была достаточно простой. Она читала ленту,
разбирала ассемблерный код, строила таблицу символических имен и
добавляла в нее ссылки. Программа прекрасно работала, но была
жутко медленной. Обработка главной операционной программы
(MOP) занимала около часа.
Такая скорость объяснялась тем, что растущая таблица
символических имен хранилась в одном буфере. Каждый раз, когда
программа находила новую ссылку, она вставлялась в буфер, а остаток
буфера сдвигался на несколько байт, чтобы освободить место.
Мы с Тимом не были экспертами по структурам данных и
алгоритмам. Мы никогда не слыхали о хеш-таблицах и бинарном
поиске. Мы понятия не имели, как ускорить алгоритм. Мы просто
знали, что наша программа работает слишком медленно.
Тогда мы стали пробовать одно решение за другим. Мы объединяли
ссылки в связанный список. Мы оставляли пропуски в массиве и
увеличивали буфер только после их заполнения. Мы пытались
создавать связанные списки пропусков. Мы опробовали множество
безумных идей. Мы стояли у доски в офисе, рисовали диаграммы
структур данных и занимались вычислениями для прогнозирования
быстродействия. Мы ежедневно приходили на работу с новыми
идеями. Постоянно шел интенсивный творческий обмен.
В конечном итоге мы сократили время работы программы до 15
минут, что было довольно близко к времени простого чтения ленты.
Тогда мы успокоились.



Download 4,8 Kb.

Do'stlaringiz bilan baham:
1   ...   93   94   95   96   97   98   99   100   ...   128




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish