Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Стили программирования вывод

Стиль программирования – залог успеха программиста

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

Стиль программирования – это набор правил и принципов написания кода для удобного чтения и восприятия кода программы.

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

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

Но если говорить по-простому, то стиль Вы сами для себя должны определить, за исключением случаев когда, например, в организации, в которую Вы устроились программистом, уже существует свой стандартизированный стиль программирования и Вам просто необходимо его придерживаться. Это, кстати, очень хорошо, что внутри организации существуют определенные правила написания кода, так как любому сотруднику, при смене специализации (например, перевод в другой отдел), не составит труда разобраться в чужом коде.

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

Теперь перейдем непосредственно к самим правилам.

Правила хорошего стиля программирования

Комментирование

Из названия этого правила сразу понятно, что свой код нужно комментировать. Но, сразу скажу Вам, запомните следующее:

  • слишком много комментариев это – плохо;
  • непонятные комментарии это – плохо;
  • не объясняющие суть кода комментарии – это плохо.

Код необходимо комментировать там, где у программиста, читающего код, могут возникнуть вопросы, что для чего нужно и почему именно так. Другими словами, например программист, читающий код говорит «а почему здесь именно так написано, вот так намного будет лучше» и вдруг видит комментарий, что это сделано именно так потому что…. И, конечно же, сразу понимает. В разных языках программирования разный синтаксис, который обозначает комментарии, но он достаточно прост везде, например:

В Visual Basic:

Комментарии обозначаются апострофом, после которого и будет идти сам текст комментария.

В PHP:

В php комментарии уже обозначаются двумя слешами (//), это если Вы хотите закомментировать одну строку, а если Вы хотите закомментировать целый кусок кода, то можно использовать /* в начале кода, который Вы хотите закомментировать и */ в конце.

Отступы и пробелы

Это означает, что для удобного и понятного чтения многие конструкции в языках программирования принято выделять с помощью, например, табуляции или пробела. Например, в конструкциях if then else.

В Visual Basic:

Здесь по блокам видно, что и где, просто это пример маленький, а если у Вас, например, 1000 строк кода и все в столбик написано, я думаю, Вы не сразу поймете, где что. Поэтому следуйте этому правилу, и у Вас сразу будет более читабельный код.

Перенос кода на новую строку

Продолжая тему читабельности кода, перейдем к переносам. Если у Вас строка кода не умещается на экране монитора, то обязательно переносите код на новую строку. Например, в том же самом Visual Basic это делается с помощью нижнего подчеркивания:

Название переменных

В некоторых организациях принято каким-то специальным образом называть переменные с помощью префиксов и так далее, чтобы было понятно, что это за переменная. Вы в свою очередь можете придумать для себя свои префиксы или просто называть переменные, которые несут в себе смысловую нагрузку, не просто называть «aaa», «bbb», «ccc» или вообще просто одной буквой. По названию переменной должно быть понятно для чего она нужна, например, если в переменной будет храниться имя пользователя, ее можно назвать name и сразу все понятно. Также многие программисты используют разный регистр в название переменных, для наглядного выделения их, например, UserName, но запомните, что регистр нужно учитывать, когда эти переменные Вы будете использовать.

Написание функций

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

Теперь давайте посмотрим, как выглядит кусок кода без использования общего стиля программирования и тот же самый код, но уже с использованием всех правил и принципов. Примеры ниже написаны на языке PHP.

Плохой стиль программирования:

Хороший стиль программирования:

Ну и где более понятно написан код? Я думаю, Вы уже поняли, что стиль программирования – это залог успеха! Соблюдайте все эти правила и принципы, и Вы будете относиться к числу программистов, которые имеют хороший стиль программирования.

Программирование. Стили программирования

Автор: Пользователь скрыл имя, 20 Ноября 2010 в 14:32, реферат

Описание работы

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

Хороший стиль программирования предполагает:

•использование комментариев;
•использование несущих смысловую нагрузку имен переменных, процедур и функций;
•использование отступов;
•использование пустых строк.

Содержание

1.Введение………………………………………………………………2
2.Программирование…………………………………………………. 3
3.Стили программирования……………………………………………3
4.Классификация стилей программирования…………………………4
5.Процедурное программирование…………………………………….5
6.Функциональное программирование………………………………. 9
7.Логическое программирование………………………………………11
8.Объектно-ориентированное программирование……………………12
9.Заключение…………………………………………………………….15
10.Список литературы……………………………………………………16

Работа содержит 1 файл

ИВТ.doc

  1. Введение………………………………………………………… ……2
  2. Программирование…………………………………… ……………. 3
  3. Стили программирования…………………………………… ………3
  4. Классификация стилей программирования…………………………4
  5. Процедурное программирование…………………………………… .5
  6. Функциональное программирование……………………………….. .9
  7. Логическое программирование…………………………………… …11
  8. Объектно-ориентированное программирование……………………12
  9. Заключение…………………………………………………… ……….15
  10. Список литературы…………………………………………………… 16

Программи́рование — процесс и искусство создания компьютерных программ и/или программного обеспечения с помощью языков программирования. Программирование сочетает в себе элементы искусства, фундаментальных наук (прежде всего математики) и инженерии.

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

Хороший стиль программирования предполагает:

  • использование комментариев;
  • использование несущих смысловую нагрузку имен переменных, процедур и функций;
  • использование отступов;
  • использование пустых строк.

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

Читать еще:  Что такое безопасный режим

В узком смысле слова, программирование рассматривается как кодирование — реализация одного или нескольких взаимосвязанных алгоритмов на некотором языке программирования. Под программированием может пониматься разработка логической схемы для ПЛИС, а также процесс записи информации в ПЗУ. В более широком смысле программирование — процесс создания программ, то есть разработка программного обеспечения.

Программирование включает в себя:

  • Анализ;
  • Проектирование — разработка алгоритма;
  • Кодирование и Компиляцию — написание исходного текста программы и преобразование его в исполнимый код с помощью компилятора;
  • Тестирование и отладку — выявление и устранение ошибок;
  • Сопровождение.

Работая над программой, программист, особенно начинающий, должен хорошо представлять, что программа, которую он разрабатывает, предназначена, с одной стороны, для пользователя, с другой — для самого программиста. Текст программы нужен прежде всего самому программисту, а также другим людям, с которыми он совместно работает над проектом. Поэтому для того, чтобы работа была эффективной, программа должна быть легко читаемой, ее структура должна соответствовать структуре и алгоритму решаемой задачи. Как этого добиться? Надо следовать правилам хорошего стиля программирования. Стиль программирования — это набор правил, которым следует программист в процессе своей работы. Очевидно, что хороший программист должен следовать правилам хорошего стиля.

Правила хорошего стиля — результат соглашения между программистами. Считается, что в соответствии с правилами хорошего стиля программный код должен поддерживать:

— отсутствие хитрых трюков и необычных конструкций.

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

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

Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется во время работы программы. Хорошая программа должна быть прежде всего надежной и дружественной по отношению к пользователю.

Надежность подразумевает, что программа, не полагаясь на «разумное» поведение пользователя, контролирует исходные данные, проверяет результат выполнения операций, которые по какой-либо причине могут быть не выполнены, например, операций с файлами.

Дружественность предполагает хорошо спроектированные диалоговые окна, наличие справочной системы, разумное и предсказуемое, с точки зрения пользователя, поведение программы.

4.Классификация стилей программирования.

Большая часть работы программиста связана с написанием исходного кода на одном из языков программирования.

Различные языки программирования поддерживают различные стили программирования (т. н. парадигмы программирования). Отчасти искусство программирования состоит в том, чтобы выбрать один из языков, наиболее полно подходящий для решения имеющейся задачи. Разные языки требуют от программиста различного уровня внимания к деталям при реализации алгоритма, результатом чего часто бывает компромисс между простотой и производительностью (или между временем программиста и временем пользователя).

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

Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».

Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.

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

Процедурные языки характеризуются следующими особенностями:

    • необходимостью явного управления памятью, в частности, описанием переменных;
    • малой пригодностью для символьных вычислений;
    • отсутствием строгой математической основы;
    • высокой эффективностью реализации на традиционных ЭВМ.

Одним из важнейших классификационных признаков процедурного языка является его уровень. Уровень языка программирования определяется семантической (смысловой) емкостью его конструкций и степенью его ориентации на программиста. Язык программирования частично ликвидирует разрыв между методами решения различного рода задач человеком и вычислительной машиной. Чем более язык ориентирован на человека, тем выше его уровень. Дадим краткую характеристику реализованным на ПЭВМ языкам программирования в порядке возрастания их уровня.

Двоичный язык является непосредственно машинным языком. В настоящее время такие языки программистами практически не применяются.

Язык Ассемблера — это язык, предназначенный для представления в удобочитаемой символической форме программ, записанных на машинном языке. Он позволяет программисту пользоваться мнемоническими кодами операций, присваивать удобные имена ячейкам и областям памяти, а также задавать наиболее удобные схемы адресации.

Язык Макроассемблера является расширением языка Ассемблера путем включения в него макросредств. С их помощью в программе можно описывать последовательности инструкций с параметрами — макроопределения. После этого программист может использовать снабженные аргументами макрокоманды, которые в процессе ассемблирования программы автоматически замещаются макрорасширениями. Макрорасширение представляет собой макроопределение с подставленными вместо параметров аргументами.

Другими словами, язык Макроассемблера представляет средства определения и использования новых, более мощных команд как последовательности базовых инструкций, что несколько повышает его уровень.

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

Язык программирования С (Си) первоначально был разработан для реализации операционной системы UNIX в начале 70-х годов. В последующем приобрел высокую популярность среди системных и прикладных программистов. В настоящее время этот язык реализован на большинстве ЭВМ.

В С сочетаются достоинства современных высокоуровневых языков в части управляющих конструкций и структур данных с возможностями доступа к аппаратным средствам ЭВМ на уровне, который обычно ассоциируется с языком низкого уровня типа языка Ассемблера. Язык С имеет синтаксис, обеспечивающий краткость программы, а компиляторы способны генерировать эффективный объектный код.

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

Синтаксис языка затрудняет программирование и восприятие составленных программ. Отсутствует и строгая типизация данных, что предоставляет дополнительные возможности программисту, но не способствует написанию надежных программ.

Ваsic(Бэйсик) (Beginners All-purpose Symbolic Instruction Code) — многоцелевой язык символических инструкций для начинающих) представляет собой простой язык программирования, разработанный в 1964 году для использования новичками. Он был разработан как простейший язык для непосредственного общения человека с вычислительной машиной. Поэтому первоначально работа велась в интерактивном режиме с использованием интерпретаторов. В настоящее время для этого языка имеются также и компиляторы.

Согласно концепциям, заложенным в Basic, этот язык в смысле строгости и стройности является антиподом языка Pascal. В частности, в нем широко распространены различные правила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа.

Basic широко распространен на ЭВМ различных типов и очень популярен в среде программистов, особенно начинающих. Существует множество диалектов этого языка, мало совместимых между собой. Basic активно поглощает многие концепции и новинки из других языков. Поэтому он достаточно динамичен, и нельзя однозначно определить его уровень.

Pascal (Паскаль) является одним из наиболее популярных среди прикладных программистов процедурным языком программирования, особенно для ПЭВМ. Разработанный в 1970 году швейцарским специалистом в области вычислительной техники профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился настолько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка — Британский стандарт языка программирования Pascal BS6192, который стал также и международным стандартом ISO 7185.

Читать еще:  Высшие и низшие языки программирования

СТИЛЬ ПРОГРАММИРОВАНИЯ;

Понятие стиль программирования представляет собой совокупность правил, которые необходимо соблюдать при написании программы. Необходимо помнить, что программа написана в «хорошем стиле» программирования, если она написана структурно, легко читаема, в ней корректно используются все «ресурсы» языка программирования и программа сопровождается полным набором тестов.

Правильно разработанные программы должны не только удовлетворять своим функциональным требованиям, но и обладать такими свойствами, как:

  • повторная используемость;
  • расширяемость;
  • устойчивость к неправильным данным;
  • системность.

Правильный стиль программирования обеспечивает наличие этих свойств.

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

Хороший стиль программирования предполагает:

· использование несущих смысловую нагрузку имен переменных, процедур и функций;

· использование пустых строк.

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

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

Сводить понятие стиля программирования только к правилам записи текста программы было бы неверно. Стиль, которого придерживается программист, проявляется во время работы программы. Хорошая программа должна быть прежде всего надежной и дружественной по отношению к пользователю.

Надежность подразумевает, что программа, не полагаясь на «разумное» поведение пользователя, контролирует исходные данные, проверяет результат выполнения операций, которые по какой-либо причине могут быть не выполнены, например, операций с файлами.

Дружественность предполагает хорошо спроектированные диалоговые окна, наличие справочной системы, разумное и предсказуемое, с точки зрения пользователя, поведение программы.

1. Что такое стиль программирования?

2. Приведите пример хорошего стиля программирования.

Стиль программирования

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

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

Элементами стиля являются: комментарии, пропуск строк, использование пробелов, выбор имен переменных и файлов, стандартные сокращения, перенос имен или литералов на другую строку, использование скобок, отступов от начала строки и др. Рассмотрим их более подробно.

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

Хорошее правило – включать комментарии в процессе написания программы. Однако хорошие комментарии написать не просто, так как они должны быть также хорошо продуманы и проработаны, как и кодировка программы. Комментарии нужны как на стадиях проектирования и отладки программы, так и позже. Существует три типа комментариев: вводные, оглавления и пояснительные.

В вводные комментарии обычно помещают информацию о назначении программы, указания по ее вызову и использованию, о ее структуре, о требуемом объеме памяти, о времени выполнения программы, дате написания программы, сведения об авторе и др.

Оглавление в виде комментариев делается в начале больших программ. Оглавление должно содержать название, размещение и функцию каждого программного модуля, снабженного именами и комментариями, указывающими его назначение.

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

Комментарии должны быть правильными с самого начала и изменяться в соответствии с изменениями программы. Очевидно, что неправильные комментарии – это хуже, чем их отсутствие, поскольку они вводят в заблуждение программиста.

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

Пробелы следует ставить везде, где это приводит к улучшению читаемости программы.

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

6 разных стилей парного программирования

Перевод статьи «Compare 6 Different Pair Programming Styles».

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

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

Все верно. Парное программирование это не просто свести вместе двоих людей и сказать им «Вперед!». С течением времени разработчики-практики выработали разные подходы для разных ситуаций. Эти подходы они создавали и совершенствовали путем проб и ошибок.

Как уровень навыков влияет на выбор стиля парного программирования

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

Имея в виду эти два уровня знаний, подумайте над такими возможными комбинациями пар:

  • эксперт-эксперт,
  • эксперт-новичок,
  • новичок-новичок.
Читать еще:  Программирование bash linux

Когда мы будем употреблять слова «эксперт» и «новичок», следует помнить, что речь идет о каком-то контексте, а не уровне знаний и опыта в целом. Значение имеет знание конкретного технического стека, знакомство с кодовой базой и даже общее знание индустрии, для которой создается ПО. У меня две степени по информатике и годы опыта в нескольких ООП-языках. Но если я завтра войду в вашу команду, работающую на GoLang, вы можете смело причислять меня к лагерю новичков до тех пор, пока я не освоюсь.

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

Парное программирование без всякой структуры

Представьте парное программирование, происходящее впервые. Элис заходит в кабинку к Бобу и говорит: «Ну, давай поработаем вместе над этим FORTRAN».

Ладно, эта маленькая история может быть и неправдой, но представьте, как это может быть на самом деле. Элис и Боб привыкли к программированию как к самостоятельной работе, и вот однажды решили поработать вместе. Они не обязательно знают какие-либо методы совместной работы, применимые для программистов, поэтому просто импровизируют, стараясь помогать друг другу.

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

Но и при таком подходе нужно понимать, что из себя представляет парное программирование, и какие ограничения с ним связаны. Оба программиста должны участвовать в решении проблемы, несмотря на то что пользоваться они будут одним компьютером. Если вы программируете, пока ваш напарник проверят свою почту, это не парное программирование. Но ваша техника может варьироваться: такие вопросы как количество клавиатур и очередность написания кода можно оговаривать по вкусу.

Водитель-штурман

Что касается уже сложившихся стилей, давайте сначала рассмотрим пару «водитель-штурман». Это, пожалуй, самый устоявшийся стиль.

Название является отсылкой к ситуации, когда два путешественника едут на машине по неизвестной им территории. Водитель сидит за рулем и фокусируется на тактических вещах, имеющих отношение к «механике» езды. Он жмет на газ и тормоз, крутит руль, следит за препятствиями на дороге и другими машинами. Штурман, в свою очередь, больше сосредоточен на картине в целом. Сколько еще нужно проехать по этой трассе, прежде чем свернуть с нее? Есть ли какие-то предупреждения в новостях о неожиданных заторах на дорогах?

Перенесите эту метафору в программирование. «Водитель» осуществляет набор кода, перемещение между файлами, базовую реализацию. А «штурман» следит за более общими идеями и ошибками. Подходит ли этот метод к выбранной архитектуре? Не дублируем ли мы уже существующую где-то реализацию? Не зашли ли мы в тупик?

Подход «водитель-штурман» хорошо работает в паре двух экспертов, которые могут меняться ролями. Также он подходит для пары эксперта и новичка. В последнем случае лучше, чтобы эксперт был штурманом, потому что штурман-новичок может сидеть пассивно, в то время как эксперт будет играть обе роли сразу.

Штурман на заднем сиденье

Следующий стиль парного программирования – штурман, сидящий сзади (в оригинале – backseat navigator. Так называют пассажира, который дает непрошеные советы водителю. – Прим. перев.). Это похоже на работу в стиле «водитель-штурман», но в данном случае «штурман», помимо стратегии, вмешивается еще и в тактику, что и вызывает ассоциации с непрошеными советами пассажиров машины.

Как и в паре «водитель-штурман», клавиатура находится у «водителя», он вводит код. Но инструкции по тактике ему дает его партнер. То есть, он говорит «водителю», когда создавать метод или открывать новый файл. Также «штурман» может указывать, как называть тесты или переменные.

Этот стиль лучше всего подходит парам «новичок-эксперт», где новичок играет роль водителя. Это дает ему возможность учиться, выполняя все так, как это делал бы эксперт.

Экскурсовод

Еще один стиль, лучше всего подходящий парам эксперт-новичок, это «экскурсовод». И снова нам поможет сравнение с вождением.

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

Так это и происходит в парном программировании в стиле «экскурсовод». «Водитель» отвечает за стратегию и тактику, он же и печатает код. Параллельно он поясняет свои действия «туристу». Сам «турист» при этом редко вмешивается в процесс.

Это хорошо работает в паре, где «водитель» – эксперт, а «турист» – новичок, в частности, абсолютный новичок. Но и при обратном раскладе это тоже работает. Вы садите новичка за клавиатуру и предоставляете ему самостоятельно сражаться с проблемой (некоторое время), а эксперт наблюдает. Затем эксперт дает фидбэк, исправляет ошибки, и процесс повторяется.

Пинг-понг

Исследование стилей парного программирования было бы неполным без упоминания «пинг-понга». Этот стиль имеет интересную черту, отличающую его от остальных.

Чтобы понять этот стиль, примите ко вниманию, что парное программирование берет начало в движении экстремального программирования. Эти ребята любят парное программирование, а также некоторые другие практики, например, модульное тестирование. Так что, встречая экстремального программиста, вы можете смело предполагать, что ему нравится программировать в паре и практиковать разработку через тестирование (TDD).

Работает это довольно просто. Первый человек пишет тест, а второй пишет код, который сможет пройти этот тест. Затем второй пишет тест, а первый пишет код. И так далее. Похоже на игру в пинг-понг.

Этот стиль исключительно хорошо подходит двум экспертам (особенно, если они эксперты в TDD). Также его довольно неплохо можно применять в паре новичок-эксперт. И, что довольно интересно, лучше всего он может сработать в паре новичок-новичок, если ваша цель – приобретение новичками практического опыта. Парное программирование в стиле «пинг-понг» протекает гладко (даже несмотря на какие-то межличностные проблемы), поскольку участники меняются местами так часто, что им постоянно приходится думать совместно.

Распределенное парное программирование (на двух компьютерах)

В заключение рассмотрим несколько «неофициальный» стиль парного программирования. В нашем мире, где команды становятся все более глобальными и распределенными, именно этот стиль может стать ключевым. Я говорю о «распределенном» парном программировании.

Экстремальное программирование зародилось в 90-е. В то время для удаленной работы требовался Citrix и dial-up модемы. Другими словами, вы не могли заниматься парным программированием иначе, чем физически сидя у одного компьютера.

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

Я думаю, что все подходы к парному программированию будут продолжать развиваться путем проб и ошибок. Но при этом я уверен, что распределенный стиль станет больше, чем просто одним из вариантов. Стили, рассмотренные нами ранее, создавались и совершенствовались долгое время. Я подозреваю, что через 20 лет мы увидим новые, более продуманные и сложные стили для удаленного парного программирования.

Ссылка на основную публикацию
Adblock
detector