KDevelop5/Manual/Sessions and projects/ru: Difference between revisions

    From KDE UserBase Wiki
    (Importing a new version from external source)
    (Importing a new version from external source)
    (27 intermediate revisions by the same user not shown)
    Line 5: Line 5:
    В этом разделе мы рассмотрим некоторые термины, как '''KDevelop''' смотрит на мир и каковы принципы работы с ним. В частности, вводится понятие ''сеансов'' и ''проектов'' и описание как можно создать проект с которым Вы будете работать в '''KDevelop'''.
    В этом разделе мы рассмотрим некоторые термины, как '''KDevelop''' смотрит на мир и каковы принципы работы с ним. В частности, вводится понятие ''сеансов'' и ''проектов'' и описание как можно создать проект с которым Вы будете работать в '''KDevelop'''.
    <span id="Terminology"></span>
    <span id="Terminology"></span>
    === Terminology ===
    === Терминология ===


    '''KDevelop''' has the concept of ''sessions'' and ''projects''. A session contains all projects that have something to do with each other. For the examples that follow, assume you are the developer of both a library and an application that uses it. You can think of the core KDE libraries as the former and '''KDevelop''' as the latter. Another example: Let's say you are a Linux kernel hacker but you are also working on a device driver for Linux that hasn't been merged into the kernel tree yet.
    '''KDevelop''' придерживается концепции ''сеансов'' и ''проектов''. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а '''KDevelop''' — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра.


    So taking the latter as an example, you would have a session in '''KDevelop''' that has two projects: the Linux kernel and the device driver. You will want to group them into a single session (rather than having two sessions with a single project each) because it will be useful to be able to see the kernel functions and data structures in '''KDevelop''' whenever you write source code for the driver &mdash; for example so that you can get kernel function and variable names auto-expanded, or so that you can see kernel function documentation while hacking on the device driver.  
    И так, возьмём последний пример. Вам требуется создать сеанс в '''KDevelop''', который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете объединить их один сеанс (вместо того, чтобы иметь два сеанса с одним проектом на каждый) потому что будет удобнее видеть функции ядра и структуры данных в '''KDevelop''' всякий раз, когда Вы пишете код для драйвера. Это даст возможность автодополнения имён функций и переменных ядра, а так же Вы сможете прочитать документацию на функции ядра в процессе написания драйвера устройства.  


    Now imagine you also happen to be a KDE developer. Then you would have a second session that contains KDE as a project. You could in principle have just one session for all of this, but there is no real reason for this: in your KDE work, you don't need to access kernel or device driver functions; and you don't want KDE class names autoexpanded while working on the Linux kernel. Finally, building some of the KDE libraries is independent of re-compiling the Linux kernel (whereas whenever you compile the device driver it would also be good to re-compile the Linux kernel if some of the kernel header files have changed).
    Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержит KDE как проект. В принципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможность пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы).


    Finally, another use for sessions is if you work both on the current development version of a project, as well as on a branch: in that case, you don't want '''KDevelop''' to confuse classes that belong to mainline and the branch, so you'd have two sessions, with the same set of projects but from different directories (corresponding to different development branches).
    В ином случае можно использовать разные сеансы для различных версий одного проекта. В этом случае Вам будет нежелательно иметь коллизии в различных реализациях одинаковых классов пересекающиеся между ветками одного проекта. Вы просто можете иметь два сеанса с похожим набором проектов, но отличающихся расположением в файловой системе в случае различных веток разработки.
    <span id="Setting up a session and importing an existing project"></span>
    <span id="Setting up a session and importing an existing project"></span>
    === Setting up a session and importing an existing project ===
    === Создание сеанса и импорт существующих проектов ===


    Let's stick with the Linux kernel and device driver example &mdash; you may want to substitute your own set of libraries or projects for these two examples. To create a new session that contains these two projects go to the <menuchoice>Session -> Start new session</menuchoice> menu at the top left (or, if this is the first time you use '''KDevelop''': simply use the default session you get on first use, which is empty).
    Давайте придерживаться примера Linux-ядра и драйвера устройства. Безусловно, Вы можете использовать в этом примере собственный набор библиотек и проектов. Чтобы создать новый сеанс, который содержит два проекта, перейдите в верхнее левое меню <menuchoice>Сеанс -> Запустить новый сеанс</menuchoice> (если Вы запустили '''Kdevelop''' впервые, то можно использовать сеанс по умолчанию, т.к. он всё равно ещё пустой).
    We next want to populate this session with projects that for the moment we assume already exist somewhere (the case of starting projects from scratch is discussed elsewhere in this manual). For this, there are essentially two methods, depending on whether the project already is somewhere on your hard drive or whether it needs to be downloaded from a server.
    Далее мы желаем добавить к сеансу два проекта. На данный момент мы считаем, что эти проекты уже где-то созданы (случай с созданием проектов с нуля описывается в следующих разделах настоящего руководства). Для этого существует два способа, в зависимости от того, где находится проект: существует ли он на локальном диске, либо же должен быть загружен с сервера.


    ==== Option 1: Importing a project from a version control system server ====
    ==== Способ 1: Импорт проекта с сервера системы управления версиями ====


    Let's first assume that the project we want to set up -- the Linux kernel -- resides in some version control system on a server, but that you haven't checked it out to your local hard drive yet. In this case, go to the <menuchoice>Project</menuchoice> menu to create the Linux kernel as a project inside the current session and then follow these steps:
    Давайте для начала предположим, что проект, который мы желаем создать — ядро Linux — находится в некоторой системе управления версиями и его локальная копия ещё не развёрнута на Вашем локальном диске. В таком случае перейдите к меню <menuchoice>Проект</menuchoice> для создания в существующей сессии проекта «ядро Linux» и выполните следующие действия:


    * Go to <menuchoice>Projects -> Fetch project</menuchoice> to import a project
    * Для импорта проекта откройте диалог из меню <menuchoice>Проект -> Загрузить проект</menuchoice>


    * You then have multiple options to start a new project in the current session, depending on where the source files should come from: You can just point '''KDevelop''' at an existing directory (see option 2 below), or you can ask '''KDevelop''' to get the sources from a repository.
    * Теперь у вас есть несколько вариантов начала нового проекта в текущем сеансе. В зависимости от того где находится исходный код, Вы можете просто выбрать существующий каталог с исходным кодом (см. способ 2) или попросить '''KDevelop''' получить исходный код из репозитория.


    * Assuming you don't already have a version checked out:
    * Предположим, что у Вас ещё не развёрнута локальная копия из репозитория проекта:
    ** In the dialog box, under <menuchoice>Select the source</menuchoice>, choose to use <menuchoice>Subversion</menuchoice>, <menuchoice>Git</menuchoice>, or one of the other choices
    ** В диалоговом окне под надписью <menuchoice>Выберите источник</menuchoice> выберите систему управления версиями <menuchoice>Subversion</menuchoice>, <menuchoice>Git</menuchoice> или иную, которую использует проект
    ** Choose a working directory as destination into which the sources should be checked out
    ** Выберите рабочую директорию в которую будет разворачиваться локальная копия из репозтитория
    ** Choose an URL for the location of the repository where the source files can be obtained
    ** Выберите URL расположения репозитория, откуда могут браться исходные файлы
    ** Hit <menuchoice>Get</menuchoice>. This can take quite a long while; depending on the speed of your connection and the size of the project. Unfortunately, in '''KDevelop''' 4.2.x the progress bar does not actually show anything, but you can track progress by periodically looking at the output of the command line command {{Input|1=du -sk /path/to/KDevelop/project}} to see how much data has already been downloaded.
    ** Нажмите кнопку <menuchoice>Загрузить</menuchoice>. Процесс создания локальной копии может занять продолжительное время в зависимости от скорости Вашего соединения и размера проекта. К сожалению в '''KDevelop''' 4.2.x индикатор состояния не показывает ничего, но Вы можете следить за процессом периодически запуская в командной строке команду {{Input|1=du -sk /path/to/KDevelop/project}}, чтобы посмотреть насколько данные уже загружены


    {{Note|1=The problem with the progress bar has been reported as [http://bugs.kde.org/show_bug.cgi?id=256832 KDevelop bug 256832].}}
    {{Note/ru|1=Проблема с индикатором состояния описывается в [http://bugs.kde.org/show_bug.cgi?id=256832 ошибке KDevelop 256832].}}
    {{Note|1=In this process, I also get the error message ''You need to specify a valid location for the project'' which can be safely ignored.}}
    {{Note/ru|1=В процессе создания локальной копии может так же появиться сообщение ''You need to specify a valid location for the project'' (от переводчика: «Вы должны указать правильное расположение для проекта» — на данный момент это сообщение в интерфейсе '''KDevelop''' не переведено на русский язык) которое может быть проигнорировано.}}


    * It asks you to select a '''KDevelop''' project file in this directory. Since you probably don't have one yet, simply hit <menuchoice>Next</menuchoice>
    * Теперь Вам будет предложено выбрать файл проекта '''KDevelop''' в выбранной директории. Так как его вероятно ещё нет, просто нажмите кнопку <menuchoice>Далее</menuchoice>.


    * Hit <menuchoice>Next</menuchoice> again
    * Нажмите кнопку <menuchoice>Далее</menuchoice> снова


    * '''KDevelop''' will then ask you to choose a project manager. If this project uses standard Unix make files, choose the custom makefile project manager
    * '''KDevelop''' попросит Вас выбрать систему автоматизации сборки проекта. Если проект использует стандартные Unix make файлы, выберите вариант «Работа с проектами на основе вручную составляемых файлов Makefile»


    * '''KDevelop''' will then start to parse the entire project. Again, it will take quite a while to go through all files and index classes etc. At the bottom right of the main window, there is a progress bar that shows how long this process has come along. (If you have several processor cores, you can accelerate this process by going to the <menuchoice>Settings -> Configure KDevelop</menuchoice> menu item, then selecting <menuchoice>Background parser</menuchoice> on the left, and increasing the number of threads for background parsing on the right.)
    * Затем '''KDevelop''' проанализирует весь проект. Это снова займёт некоторое время, необходимое для прохождения всех файлов, индексации классов и т.п. В нижней правой части главного окна есть индикатор, отображающий продолжительность процесса. (Если Ваш процессор имеет несколько ядер, Вы можете ускорить процесс индексации. Для этого пройдите в пункт меню <menuchoice>Настройка -> Настроить KDevelop</menuchoice>, затем выберите <menuchoice>Фоновый анализ кода</menuchoice> в меню левой части окна и увеличьте максимальное количество нитей в правой части окна.)


    ==== Option 2: Importing a project that is already on your hard drive ====
    ==== Способ 2: Импорт проекта, который уже находится на Вашем жестком диске ====


    Alternatively, if the project you want to work with already exists on your hard drive (for example, because you have downloaded it as a tar file from an FTP server, because you already checked out a version of the project from a version control system, or because it is your own project that exists ''only'' on your own hard drive), then  use <menuchoice>Projects -> Open/Import project</menuchoice> and in the dialog box choose the directory in which your project resides.
    В ином случае, если проект с которым Вы желаете работать уже присутствует на жёстком диске (например потому, что Вы скачали его как tar архив с FTP сервера, либо Вы уже развернули у себя локальную копию из репозитория системы управления версиями или это Ваш собственный проект, который присутствует ''только'' на Вашем жёстком диске), то используйте <menuchoice>Проект -> Открыть проект</menuchoice> и в диалоговом окне выбрать директорию в котором находится Ваш проект.
    <span id="Setting up an application as a second project"></span>
    <span id="Setting up an application as a second project"></span>
    === Setting up an application as a second project ===
    === Настройка приложения в качестве второго проекта ===


    The next thing you want to do is set up other projects in the
    Теперь Вам нужно создать другие проекты в той же сессии. Для приведённого выше примера Вы хотели бы добавить драйвер устройства в качестве второго проекта, что можно сделать, повторив в точности вышеописанные шаги.
    same session. In the example above, you would want to add the device driver as the second project, which you can do using exactly the same steps.


    If you have multiple applications or libraries, simply repeat the steps to add
    Если Вы имеете несколько приложений и библиотек, просто повторите эти шаги необходимое количество раз.
    more and more projects to your session.
    <span id="Creating projects from scratch"></span>
    <span id="Creating projects from scratch"></span>
    === Creating projects from scratch ===
    === Создание проекта с нуля ===


    There is of course also the possibility that you want to start a new project from scratch. This can be done using the <menuchoice>Projects -> New from Template</menuchoice> menu item, which presents you with a template selection dialog. Some project templates are provided with '''KDevelop''', but even more are available by installing the '''KAppTemplate''' application. Choose the project type and programming language from the dialog, enter a name and location for you project, and click <menuchoice>Next</menuchoice>.  
    Конечно же, вы можете воспользоваться новым проектом. Создать новый проект можно с помощью пункта меню <menuchoice>Проекты -> Создать по шаблону</menuchoice>, который открывает диалоговое окно выбора шаблона. Некоторые из шаблонов устанавливаются с основным пакетом "'KDevelop"', другие же можно установить вместе с программой "'KAppTemplate"'. Выберите в диалоговом окне тип проекта и язык программирования, укажите имя и местоположение вашего проекта и нажмите кнопку <menuchoice>Дальше</menuchoice>.  


    [[Image:kdevelop-project-dialog.png|thumb|500px|center]]
    [[Image:kdevelop-project-dialog.png|thumb|500px|center]]


    The second page of the dialog allows you to set up a version control system. Choose the system you wish the use, and fill in the system-specific configuration if needed. If you do not wish to use a version control system, or want to set it up manually later, choose <menuchoice>None</menuchoice>. When you are happy with your choice, press <menuchoice>Finish</menuchoice>.  
    С помощью второй странице диалогового окна вы можете настроить систему управления версиями. Выберите желаемую для вас систему и заполните соответствующие поля параметров. Если вы не хотите пользоваться системой управления версиями или хотите определить ее параметры позже, выберите пункт <menuchoice>Нет</menuchoice>. Как только определения соответствующих параметров будет завершено, можете нажать кнопку <menuchoice>Завершить</menuchoice>.  


    Your project is now created, so you can try building or installing it. Some templates will include comments within the code, or even a separate README file, and it is recommended that you read those first. Then, you can start working on your project, by adding whatever features you want.  
    Теперь ваш проект создан, вы можете попробовать собрать и установить его. В некоторых моделях предусмотрено комментарии в коде или даже отдельный файл README. Рекомендуем ознакомиться с содержанием такого файла до того, как будет начато дальнейшую разработку. После ознакомления со всеми справочными материалами можно начать работу над проектом и добавления нужных вам возможностей.  


    {{Prevnext2
    {{Prevnext2
    | prevpage=Special:MyLanguage/Kdevelop5/Manual/Meet_KDevelop | nextpage=Special:MyLanguage/KDevelop5/Manual/Working_with_source_code
    | prevpage=Special:MyLanguage/KDevelop5/Manual/Meet_KDevelop | nextpage=Special:MyLanguage/KDevelop5/Manual/Working_with_source_code
    | prevtext=Meet KDevelop | nexttext=Working with source code
    | prevtext=Знакомство с KDevelop | nexttext=Работа с исходным кодом
    | index=Special:MyLanguage/KDevelop5/Manual | indextext=Back to menu
    | index=Special:MyLanguage/KDevelop5/Manual | indextext=Обратно в меню
    }}
    }}


    [[Category:Development]]
    [[Category:Разработка/ru]]

    Revision as of 14:05, 9 September 2017

    Сеансы и проекты: основы KDevelop

    В этом разделе мы рассмотрим некоторые термины, как KDevelop смотрит на мир и каковы принципы работы с ним. В частности, вводится понятие сеансов и проектов и описание как можно создать проект с которым Вы будете работать в KDevelop.

    Терминология

    KDevelop придерживается концепции сеансов и проектов. Сеансы содержат все проекты, которые как-то связаны друг с другом. Например предположим, что Вы являетесь разработчиком как некоторой библиотеки, так и приложения, использующего её. К примеру, библиотеки KDE — это первое, а KDevelop — последнее. Другой пример: допустим что Вы хакер ядра Linux, но Вы так же работаете над драйвером устройства для Linux, который не может быть добавлен непосредственно в исходный код ядра.

    И так, возьмём последний пример. Вам требуется создать сеанс в KDevelop, который содержит два проекта: ядро Linux и драйвер устройства. Вы желаете объединить их один сеанс (вместо того, чтобы иметь два сеанса с одним проектом на каждый) потому что будет удобнее видеть функции ядра и структуры данных в KDevelop всякий раз, когда Вы пишете код для драйвера. Это даст возможность автодополнения имён функций и переменных ядра, а так же Вы сможете прочитать документацию на функции ядра в процессе написания драйвера устройства.

    Теперь представим, что Вы так же являетесь разработчиком KDE. Теперь Вы желаете иметь второй сеанс, который содержит KDE как проект. В принципе можно иметь один сеанс для всех проектов, но нет никаких основательных причин для этого: в Вашей разработке KDE Вам незачем иметь доступ к функциям ядра и драйвера и у Вас не возникает желания иметь автодополнение имён классов KDE когда Вы работаете над ядром Linux. В конечном итоге сборка множества библиотек KDE независима от пересборки ядра Linux (при этом было бы неплохо иметь возможность пересобрать ядро Linux в то время, когда происходит сборка драйвера, если в ядре изменились некоторые заголовочные файлы).

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

    Создание сеанса и импорт существующих проектов

    Давайте придерживаться примера Linux-ядра и драйвера устройства. Безусловно, Вы можете использовать в этом примере собственный набор библиотек и проектов. Чтобы создать новый сеанс, который содержит два проекта, перейдите в верхнее левое меню Сеанс -> Запустить новый сеанс (если Вы запустили Kdevelop впервые, то можно использовать сеанс по умолчанию, т.к. он всё равно ещё пустой). Далее мы желаем добавить к сеансу два проекта. На данный момент мы считаем, что эти проекты уже где-то созданы (случай с созданием проектов с нуля описывается в следующих разделах настоящего руководства). Для этого существует два способа, в зависимости от того, где находится проект: существует ли он на локальном диске, либо же должен быть загружен с сервера.

    Способ 1: Импорт проекта с сервера системы управления версиями

    Давайте для начала предположим, что проект, который мы желаем создать — ядро Linux — находится в некоторой системе управления версиями и его локальная копия ещё не развёрнута на Вашем локальном диске. В таком случае перейдите к меню Проект для создания в существующей сессии проекта «ядро Linux» и выполните следующие действия:

    • Для импорта проекта откройте диалог из меню Проект -> Загрузить проект
    • Теперь у вас есть несколько вариантов начала нового проекта в текущем сеансе. В зависимости от того где находится исходный код, Вы можете просто выбрать существующий каталог с исходным кодом (см. способ 2) или попросить KDevelop получить исходный код из репозитория.
    • Предположим, что у Вас ещё не развёрнута локальная копия из репозитория проекта:
      • В диалоговом окне под надписью Выберите источник выберите систему управления версиями Subversion, Git или иную, которую использует проект
      • Выберите рабочую директорию в которую будет разворачиваться локальная копия из репозтитория
      • Выберите URL расположения репозитория, откуда могут браться исходные файлы
      • Нажмите кнопку Загрузить. Процесс создания локальной копии может занять продолжительное время в зависимости от скорости Вашего соединения и размера проекта. К сожалению в KDevelop 4.2.x индикатор состояния не показывает ничего, но Вы можете следить за процессом периодически запуская в командной строке команду
        du -sk /path/to/KDevelop/project
        , чтобы посмотреть насколько данные уже загружены

    Примечание

    Проблема с индикатором состояния описывается в ошибке KDevelop 256832.


    Примечание

    В процессе создания локальной копии может так же появиться сообщение You need to specify a valid location for the project (от переводчика: «Вы должны указать правильное расположение для проекта» — на данный момент это сообщение в интерфейсе KDevelop не переведено на русский язык) которое может быть проигнорировано.


    • Теперь Вам будет предложено выбрать файл проекта KDevelop в выбранной директории. Так как его вероятно ещё нет, просто нажмите кнопку Далее.
    • Нажмите кнопку Далее снова
    • KDevelop попросит Вас выбрать систему автоматизации сборки проекта. Если проект использует стандартные Unix make файлы, выберите вариант «Работа с проектами на основе вручную составляемых файлов Makefile»
    • Затем KDevelop проанализирует весь проект. Это снова займёт некоторое время, необходимое для прохождения всех файлов, индексации классов и т.п. В нижней правой части главного окна есть индикатор, отображающий продолжительность процесса. (Если Ваш процессор имеет несколько ядер, Вы можете ускорить процесс индексации. Для этого пройдите в пункт меню Настройка -> Настроить KDevelop, затем выберите Фоновый анализ кода в меню левой части окна и увеличьте максимальное количество нитей в правой части окна.)

    Способ 2: Импорт проекта, который уже находится на Вашем жестком диске

    В ином случае, если проект с которым Вы желаете работать уже присутствует на жёстком диске (например потому, что Вы скачали его как tar архив с FTP сервера, либо Вы уже развернули у себя локальную копию из репозитория системы управления версиями или это Ваш собственный проект, который присутствует только на Вашем жёстком диске), то используйте Проект -> Открыть проект и в диалоговом окне выбрать директорию в котором находится Ваш проект.

    Настройка приложения в качестве второго проекта

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

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

    Создание проекта с нуля

    Конечно же, вы можете воспользоваться новым проектом. Создать новый проект можно с помощью пункта меню Проекты -> Создать по шаблону, который открывает диалоговое окно выбора шаблона. Некоторые из шаблонов устанавливаются с основным пакетом "'KDevelop"', другие же можно установить вместе с программой "'KAppTemplate"'. Выберите в диалоговом окне тип проекта и язык программирования, укажите имя и местоположение вашего проекта и нажмите кнопку Дальше.

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

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