No Image

Список команд для программирования

СОДЕРЖАНИЕ
957 просмотров
10 марта 2020

Кома́нда — это указание компьютерной программе действовать как некий интерпретатор для решения задачи. В более общем случае, команда — это указание некоему интерфейсу командной строки, такому как shell.

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

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

Примеры [ править | править код ]

Ниже приводятся несколько команд для интерпретатора командной строки операционной системы UNIX (UNIX shell).

  • cd /home/pete

Команда cd изменяет расположение пользователя в дереве каталогов с текущего на каталог /home/pete.

  • echo "hello"

Команда echo выводит текст hello в поток стандартного вывода, который, в этом случае, напечатает этот текст на экране. Кавычки (заметьте: не такие, какие приняты в Википедии) необходимы для вывода нескольких слов, разделённых пробелами, однако всё зависит от конкретной реализации команды: возможен вывод нескольких слов даже без кавычек; возможно восприятие кавычек в качестве аргумента команды, то есть вывод текста вместе с ними.

  • ls -ltr /bin

Команда ls выводит список всех файлов каталога /bin в полном виде (ключ -l), отсортированных по времени (ключ -t) в обратном порядке (ключ -r).

  • chmod +755 [filename]

Команда chmod используется для предоставления доступа на чтение, запись или выполнение к файлу с именем filename. В символьной записи первая цифра указывает на права пользователя, в то время как остальные две цифры используются для указания прав групп пользователей на чтение, запись или выполнение Вашего файла. 1 — доступ к Вашему файлу на выполнение, 2 — доступ к Вашему файлу на запись, 4 — доступ к Вашему файлу на чтение. 4+1=5 означает, что к Вашему файлу имеется только доступ на чтение и выполнение, 4+2+1=7 означает, что к Вашему файлу имеется доступ на чтение, на запись и на выполнение.

12.1. Базовые команды

Первая команда, с которой сталкиваются новички

ls

Команда вывода "списка" файлов. Многие недооценивают всю мощь этой скромной команды. Например, с ключом -R, рекурсивный обход дерева каталогов, командв ls выводит содержимое каталогов в виде древовидной структуры. Вот еще ряд любопытных ключей (опций) команды ls: -S — сортировка по размеру файлов, -t — сортировка по времени последней модификации файла и -i — выводит список файлов с их inode (см. Пример 12-3).

Похожие главы из других книг

Базовые операции

Базовые операции Подготовка к работе Чтобы начать работать с CVS, вам нужно всего ничего – исполняемый модуль (cvs.exe для Windows) и всё! «Что?» – скажете вы: «мне не нужна сеть и выделенный сервер? У меня не будет множества проблем с инсталляцией?». Именно так. CVS вполне может

Базовые таблицы

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

Лекция № 7. Базовые отношения

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

Базовые понятия

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

Читайте также:  Метод фурье для волнового уравнения

Базовые и связанные размеры

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

Базовые настройки

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

Базовые размеры

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

Базовые размеры

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

Базовые библиотеки

Базовые библиотеки Изначально в информатике изучаются фундаментальные структуры данных – множества, списки, деревья, стеки; связанные с ними алгоритмы – сортировки, поиска, обхода, сопоставления с образцом. Эти структуры и алгоритмы вездесущи в разработках ПО. Нередко,

Базовые указатели

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

19.3.3. Базовые расширения

19.3.3. Базовые расширения Одно из достоинств Rails — наличие широкого набора вспомогательных методов, определенных в модуле ActiveSupport::CoreExtensions. Они «безвредны» и после добавления в основные классы становятся доступны всему приложению.Некоторые из этих методов имеют отношение

Базовые продукции XML

Базовые функции Skype

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

1.3.1. Базовые возможности

1.3.1. Базовые возможности Искать в Яндексе очень и очень просто. Вы задаете вопрос в том виде, в каком могли бы задать его приятелю, учителю, врачу, ученому. Единственное пожелание — вопрос не должен быть очень длинным и содержать множество слов. Оптимальное количество слов

Базовые размеры

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

Базовые размеры

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

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

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

С чем же связано снижение эффективности и качества ПО?

Субъективные факторы влияния на эффективность

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

Дело в том, что программист развивает чувство собственности к коду. Ведь код — это нечто, что он создал, и это нечто осязаемое (его видно на экране монитора). Программист может воспринимать код, как предмет (это я написал этот код) и как пространство (когда у меня в редакторе открыт этот код, я чувствую себя уютно). Таким образом код может быть «моим», «не моим» точно так же, как и стул или как комната. Это мой стул, и я на нем сижу (я написал этот код). Это стул Васи, и Вася им пользуется, и мне на нем сидеть эмоционально неудобно (Вася написал этот код).

Читайте также:  Как открыть файл rtf на компьютере

Я хочу подчеркнуть, что мы сейчас говорим о субъективной самоидентификации программиста с кодом, который он видит на своем экране.

Программист, работая, может ощущать что этот код «его» или «не его». Эта самоидентификация с кодом довольно важна. Если человек считает, что код «его», то он:

  • не будет ощущать отторжения (нечто вроде «свое говнецо не так сильно воняет»)
  • общее эмоциональное ощущение программиста будет приподнято. Он будет ощущать себя в зоне комфорта и «у себя дома» (подумайте как он себя будет ощущать, работая с «чужим» кодом… 8 часов в день… несколько месяцев подряд)
  • у него возникнет чувство хозяина и владельца (еще примитивнее: чувство вожака, все-таки в основном программисты — мужчины). Эти чувства провоцируют мужчину к проявлению инициативы, ответственности и проактивной позиции по отношению к объекту собственности (к коду, в нашем случае)
  • в «моем» коде не страшно делать рефакторинг. Нечто вроде «это моя собственность, и я делаю с ней все, что хочу»
  • дорабатывая «свой» код, программист сделает ровно столько изменений в коде, сколько нужно для внесения необходимых корректировок и поддержания архитектуры кода. А вот если код был бы «чужим», то программист скорее всего постарался бы внести минимум необходимых изменений. Добавляя функционал, но не поддерживая архитектуру, он скорее всего «прилепил» бы новый функционал сбоку к уже существующему.
  • людям свойственно осторожничать в чужом/новом месте: если от программиста потребуется внести существенные изменения в «чужой» код, то он потратит много времени на ознакомление с кодом (попытается сделать этот код «своим») и банально будет ощущать себя более скованным в эмоциональном плане, внося нужные изменения. В худшем случае он просто «прилепит» свой код к уже существующему (см. предыдущий пункт)
  • правя «чужой» код, мы эмоционально затрагиваем его владельца. Сознательно или подсознательно, но программисты признают право собственности других программистов на участки кода точно так же, как в семье за обеденным столом негласно признается место за каждым членом семьи. Сознательно садясь на «чужой» стул за столом, вы ощущаете дискомфорт из-за оказанного эмоционального влияния на «владельца» стула.

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

Объективные факторы

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

Конкретика и постановка задачи

Что же имеем? Теоретическое идеальное состояние для проекта было бы: все программисты объективно знают весь код и все программисты считают весь код «своим». Но скажите мне, пожалуйста, может у одной зубной щетки быть 2 хозяина? К сожалению, нет. Любой программист «трогая», внося изменения в код, делает этот код более «чужим» в глазах автора кода («текущего» владельца).
Цель: каждый программист должен работать (максимум возможного времени) с кодом, который он знает, и который он считает «своим». Вот такого результата уже возможно добиться.

Решение задачи

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

О! Написано так, как будто я писал

О! Смотри, а он тоже жигулевское пиво любит, и диван у него такой же мягкий как у меня дома! Мне здесь уютно!

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

Читайте также:  Турник торнео как крепить к стене

Одним из решений было бы заставить всех программистов думать одной и той же логикой, насаждать одну и единственно правильную логику (или детализировать требования к оформлению кода вплоть до того, когда использовать while , а когда использовать foreach ). Но ведь это утопия. К тому же, все люди разные, и зачем «клонировать» 10 программистов под копирку.
Лучше культивировать взаимопонимание среди программистов и помогать им знакомиться с логикой своих коллег-программистов. В частности, code reviews, могут весьма хорошо заставить программистов узнать логику друг друга. Волшебство code review в том, что программисту Васе достается в руки код, написанный программистом Петей, но Вася не должен ничего в нем править. Он лишь изучает труд Пети и после этого рассказывает Пете свои мысли (Вася предлагает Пете что-то изменить в обеденном стуле Пети, но сам стул не трогает). Пока Вася и Петя общаются, они успевают понять как и что обоим из них нравится. Таким образом в будущем Вася, видя код Пети, уже будет ощущать себя намного уютнее, зная логику Пети.

Вопросы рационализации

Как же найти баланс между тем, чтобы программисты продолжали развитие проекта, но в тоже время всегда работали над кодом, который они чувствуют «своим»? Ответ на такой вопрос будет очень сильно зависеть от контекста. Я вам лишь покажу 2 самых радикальных метода, и вряд ли эти 2 крайности когда-либо будут уместны для использования в живой ситуации, скорее вам нужно будет найти баланс между этими 2 противоположностями.

Способ №1. Разделение ответственности и «личные комнатушки»

Если специфика вашего проекта позволяет:

  • четко разбить проект на несколько подзадач, практически невзаимосвязанных друг с другом
  • иметь незаменимых программистов (если программист уйдет, то проект разрушится или очень сильно пострадает),

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

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

Плюсы:

  • можно обойтись без документации внутри-норковых процессов. Т.к. одну норку поддерживает один программист, то он все это может удержать у себя в голове
  • программисты практически не тратят время на коммуникацию
Способ №2. Форум

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

Комментировать
957 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector