2019 Ч. Фаулер Программист



Download 4,51 Mb.
Pdf ko'rish
bet45/125
Sana17.07.2022
Hajmi4,51 Mb.
#815348
1   ...   41   42   43   44   45   46   47   48   ...   125
Bog'liq
Программист-фанатик ( PDFDrive )


Часть II . Инвестируя в свой продукт
Какие эквиваленты этим вещам существуют у разработчиков про-
граммного обеспечения? Скажем, как обстоят дела с неясными мо-
ментами твоего основного языка программирования, на которые 
ты редко обращаешь внимание? Поддерживает ли выбранный язык 
регулярные выражения? Ведь это мощная и катастрофически игнори-
руемая функция многих программных сред. Зачастую разработчики 
не пользуются ими просто потому, что им не хватает знаний. Резуль-
татом становится многострочный код, который потом требуется 
поддерживать.
Эти же правила применимы к API или к библиотекам функций 
выбранного тобой языка. Не научившись работать с многочислен-
ными инструментами окружения, ты вряд ли сможешь применить 
их в ситуации, когда они действительно потребуются. Попробуй, 
к примеру, разобраться, как функционирует в выбранной среде 
разработки многопоточное программирование. А как у тебя об-
стоят дела с библиотеками потоков ввода-вывода, API сетевого 
программирования или наборами служебных программ для работы 
с коллекциями или списками? Большинство современных языков 
программирования предлагает богатые и мощные библиотеки для 
всех упомянутых областей, но разработчики предпочитают освоить 
только небольшую часть из них, что негативно влияет на эффектив-
ность написания кода.
Чтение с листа
. Для профессиональных музыкантов, записываю-
щихся в студии, способность играть с листа имеет первостепенное 
значение. Однажды пришлось принять участие в записи рекламного 
ролика для 
Blockbuster
(она специализируется на прокате видеокас-
сет). Большой оркестр играл быструю мелодию, а я не только соли-
ровал на саксофоне, но и исполнял партию второго альта. В первый 
раз я увидел ноты в момент начала записи. Сначала мы сыграли соли-
рующую партию, потом — сопровождающую. При малейшей ошибке 
все музыканты были бы вынуждены начать с начала, и не забывайте 
про стоимость аренды студии.
Что для разработчика программного обеспечения означает умение 
читать с листа код? Или технические требования? Или проектное 
решение? Искать код для подобных упражнений лучше всего в со-
обществах разработчиков ПО с открытым исходным кодом. У тебя 


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

нет! Сервер приложений в беспроводной сети 
перестал работать

и мы теряем заказы!
Именно в такие моменты 
у меня возникают самые творческие экспромты. Я делаю сумасшед-
шие вещи, такие как восстановление потерянных данных вручную пу-
тем повторной передачи по беспроводной сети пакетов из бинарного 
файла системного журнала. Никто не рассчитывает, что ты способен 
на подобные вещи, особенно под горячую руку. Такая способность 
к резким и быстрым решениям напоминает приходящую на помощь 
в нужный момент магическую силу.
Отличным способом заострить свой ум и улучшить способности 
к импровизации при написании кода является практика с самосто-
ятельно наложенными ограничениями. Выбери простую программу 


78
Download 4,51 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   125




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