KDevelop4/Manual/Code generation with templates/uk: Difference between revisions

From KDE Wiki Sandbox
(Created page with "=== Створення класу ===")
No edit summary
 
(23 intermediate revisions by 2 users not shown)
Line 7: Line 7:
=== Створення класу ===
=== Створення класу ===


The most common use for code generation is probably writing new classes. To create a new class in an existing project, right click on a project folder and choose <menuchoice>Create from Template</menuchoice>. The same dialog can be started from the menu by clicking <menuchoice>File -> New from Template</menuchoice>, but using a project folder has the benefit of setting a base URL for the output files. Choose <tt>Class</tt> in the category selection view, and the desired language and template in the other two views. After you have selected a class template, you will have to specify the details of the new class.  
Найпоширенішим випадком використання створення коду за шаблоном є, ймовірно, написання нового класу. Щоб створити новий клас у вже створеному проекті, наведіть вказівник миші на теку проекту, клацніть правою кнопкою миші і виберіть у контекстному меню пункт <menuchoice>Створити з шаблона</menuchoice>. Те саме діалогове вікно може бути відкрито за допомогою меню, пункту <menuchoice>Файл -> Створити з шаблона</menuchoice>, але використання теки проекту має перевагу встановлення базової адреси для вихідних файлів. Виберіть <tt>Клас</tt> на панелі вибору категорії, бажану мову програмування та шаблон. Після вибору шаблона класу вам слід вказати інші характеристики нового класу.  


[[Image:kdevelop-template-selection.png|thumb|500px|center]]
[[Image:kdevelop-template-selection.png|thumb|500px|center]]


First you have to specify an identifier for the new class. This can be a simple name (like <code>Bus</code>) or a complete identifier with namespaces (like <code>Transportation::Bus</code>). In the latter case, '''KDevelop''' will parse the identifier and correctly separate the namespaces from the actual name. On the same page, you can add base classes for the new class. You may notice that some templates choose a base class on their own, you are free to remove it and/or add other bases. You should write the full inheritance statement here, which is language-dependent, such as <code>public QObject</code> for C++, <code>extends SomeClass</code> for PHP or simply the name of the class for Python.  
Спочатку слід вказати ідентифікатор нового класу. Це може бути проста назва (наприклад <code>Bus</code>) або повний ідентифікатор у просторі назв (наприклад <code>Transportation::Bus</code>). У останньому випадку '''KDevelop''' виконає обробку ідентифікатора і відповідним чином відокремить простір назв від назви класу. За допомогою цієї самої сторінки ви можете додати основні класи для нового класу. Ви можете зауважити, що у деяких шаблонах уже передбачено вибір основних класів. Ви можете просто вилучити зайві і/або додати інші основні класи. Тут вам слід вказати інструкцію наслідування повністю. Звичайно ж, така інструкція залежить від вибраної мови програмування, це буде <code>public QObject</code> для C++, <code>extends SomeClass</code> для PHP або просто назва класу для Python.  


[[Image:kdevelop-template-inheritance.png|thumb|500px|center]]
[[Image:kdevelop-template-inheritance.png|thumb|500px|center]]


In the next page, you are offered a selection of virtual methods from all inherited classes, as well as some default constructors, destructors and operators. Checking the check box next to a method signature will implement this method in the new class.  
За допомогою наступної сторінки ви можете вибрати віртуальні методи з успадкованих класів, а також типові конструктори, деструктори і оператори. Реалізувати метод у новому класі можна простим позначенням пунктів з підписами методів.  


Clicking <menuchoice>Next</menuchoice> brings up a page where you can add members to a class. Depending on the selected template, these may appear in the new class as member variables, or the template may create properties with setters and getters for them. In a language where variable types have to be declared, such as C++, you have to specify both the type and the name of the member, such as <code>int number</code> or <code>QString name</code>. In other languages, you may leave out the type, but it is good practice to enter it anyway, because the selected template could still make some use of it.  
Після натискання кнопки <menuchoice>Далі</menuchoice> буде показано сторінку, за допомогою якої ви можете додати до класу методи. Залежно від вибраного шаблона, методи може бути реалізовано у новому класі як змінні-елементи або може бути створено властивості з функціями встановлення та отримання значень. У мовах, де типи змінних слід оголошувати, зокрема у C++, вам слід вказати одразу тип і назву елемента, наприклад <code>int number</code> або <code>QString name</code>. У інших мовах можна не вказувати тип, але все ж варто його визначити, оскільки таке визначення може бути корисним для подальшої роботи з шаблоном.  


[[Image:kdevelop-template-members.png|thumb|500px|center]]
[[Image:kdevelop-template-members.png|thumb|500px|center]]


In the following pages, you can choose a license for you new class, set any custom options required by the selected template, and configure output locations for all the generated files. By clicking <menuchoice>Finish</menuchoice>, you complete the assistant and create the new class. The generated files will be opened in the editor, so you can start adding code right away.  
За допомогою наступних сторінок ви зможете вибрати умови ліцензування вашого нового класу, встановити нетипові параметри, характерні для вибраного шаблона, та налаштувати місце зберігання виведених даних для всіх створених програмою файлів. Натискання кнопки <menuchoice>Завершити</menuchoice> призведе до завершення роботи допоміжної програми і створення нового класу. Створені допоміжною програмою файли буде одразу відкрито у вікні редактора, отже ви зможете негайно перейти до додавання потрібного коду.  


After creating a new C++ class, you will be given an option of adding the class to a project target. Choose a target from the dialog page, or dismiss the page and add the files to a target manually.  
Після створення класу C++ програма запропонує вам додати клас до певної цілі у проекті. Виберіть у діалоговому вікні відповідну ціль або закрийте діалогове вікно і додайте файли до цілі вручну.  


If you chose the <tt>Qt Object</tt> template, checked some of the default methods, and added two member variables, the output should look like on the following picture.  
Якщо ви вибрали шаблон <tt>Об’єкт Qt</tt>, вибрали певні типові методи та додали дві змінні-елемента, результат має виглядати так, як це зображено нижче.  


[[Image:kdevelop-template-result.png|thumb|500px|center]]
[[Image:kdevelop-template-result.png|thumb|500px|center]]


You can see that data members are converted into Qt properties, with accessor functions and the Q_PROPERTY macros. Arguments to setter functions are even passed by const-reference, where appropriate. Additionally, a private class is declared, and a private pointer created with Q_DECLARE_PRIVATE. All this is done by the template, choosing a different template in the first step could completely change the output.  
Як можна бачити, дані-елементи перетворено на властивості Qt з функціями доступу та макросами Q_PROPERTY. Крім того, аргументи функцій встановлення передано з посиланнями на сталі там, де це потрібно. Крім того, оголошено закритий клас (private) та створено закритий вказівник з Q_DECLARE_PRIVATE. Все це зроблено відповідним шаблоном. Вибір іншого шаблона на першому кроці може призвести до зовсім іншого результату.  
<span id="Creating a new unit test"></span>
<span id="Creating a new unit test"></span>
=== Creating a new unit test ===
=== Створення тесту модуля ===


Even though most testing frameworks require each test to also be a class, '''KDevelop''' includes a method to simplify the creation of unit tests. To create a new test, right click on a project folder and choose <menuchoice>Create from Template</menuchoice>. In the template selection page, choose <tt>Test</tt> as the category, then choose your programming language and template and click <menuchoice>Next</menuchoice>.  
Хоча у більшості комплексів для тестування кожен з тестів має бути окремим класом, у '''KDevelop''' передбачено метод спрощення створення тестів для модулів програми. Щоб створити новий тест, наведіть вказівник миші на теку проекту, клацніть правою кнопкою миші і виберіть у контекстному меню пункт <menuchoice>Створити з шаблона</menuchoice>. На сторінці вибору шаблона у полі категорії виберіть <tt>Перевірка</tt>, потім виберіть мову програмування і шаблона та натисніть кнопку <menuchoice>Далі</menuchoice>.  


You will be prompted for the test name and a list of test cases. For the test cases, you only have to specify a list of names. Some unit testing frameworks, such as PyUnit and PHPUnit, require that test cases start with a special prefix. In '''KDevelop''', the template is responsible for adding the prefix, so you do not have to prefix the test cases here. After clicking <menuchoice>Next</menuchoice>, specify the license and output locations for the generated files, and the test will be created.  
Вас попросять ввести назву перевірки і список варіантів перевірки. Для варіантів вам слід вказати список назв. У деяких комплексах для тестування модулів, зокрема PyUnit і PHPUnit, слід назви варіантів перевірки мають починатися з особливого префікса. У '''KDevelop''' за додавання префіксів відповідає шаблон, отже вам не потрібно вказувати префікс для варіантів. Після натискання кнопки <menuchoice>Далі</menuchoice> вкажіть умови ліцензування і розташування файлів виведених даних. '''KDevelop''' виконає решту роботи у автоматичному режимі.  


Unit tests created this way will not be added to any target automatically. If you are using CTest or some other testing framework, make sure to add the new files to a target.  
Створені таким чином тести модулів не буде автоматично додано до жодної з цілей проекту. Якщо ви користуєтеся CTest або якимось іншим комплексом для тестування, не забудьте додати нові файли до цілі. У KDevelop передбачено [[KDevelop4/Manual/Tool_list/Unit_Tests|набір інструментів тестування модулів]], який інтегрується із CTest.  
<span id="Other files"></span>
<span id="Other files"></span>
=== Other files ===
=== Інші файли ===


While classes and unit tests receive special attention when generating code from templates, the same method can be used for any kind of source code files. For example, one could use a template for a CMake Find module or a .desktop file. This can be done by choosing <menuchoice>Create from Template</menuchoice>, and selecting the wanted category and template. If the selected category is neither <tt>Class</tt> nor <tt>Test</tt>, you will only have the option of choosing the license, any custom options specified by the template, and the output file locations. As with classes and tests, finishing the assistant will generate the files and open them in the editor.  
Хоча роботу засобів створення коду на основі шаблонів акцентовано на створенні класів та тестів модулів, подібну методику можна застосувати для створення будь-яких фрагментів файлів коду. Наприклад, можна скористатися шаблонами для модулів пошуку CMake або файлів .desktop. Для цього просто виберіть пункт <menuchoice>Створити з шаблона</menuchoice>, а потім позначте відповідну категорію і шаблон. Якщо шаблон не належить до категорій <tt>Клас</tt> або <tt>Перевірка</tt>, вам достатньо буде вибрати умови ліцензування, значення додаткових параметрів шаблона та розташування файлів результату. Як і для класів з тестами, на завершення роботи допоміжної програми буде створено відповідні файли і відкрито їх у вікні редактора.  
<span id="Managing templates"></span>
<span id="Managing templates"></span>
=== Managing templates ===
=== Керування шаблонами ===


From the <menuchoice>File -> New from Template</menuchoice> assistant, you can also download additional file templates by clicking the <menuchoice>Get more Templates...</menuchoice> button. This opens a Get Hot New Stuff dialog, where you can install additional templates, as well as update or remove them. There is also a configuration module for template, which can be reached by clicking <menuchoice>Settings -> Configure KDevelop -> Templates</menuchoice>. From there, you can manage both file templates (explained above) and project templates (used for creating new projects).  
Ви можете отримати додаткові файли шаблонів безпосередньо з вікна, яке можна відкрити за допомогою пункту меню <menuchoice>Файл -> Створити з шаблона</menuchoice>: достатньо натиснути кнопку <menuchoice>Отримати додаткові шаблони...</menuchoice>. У відповідь буде відкрито вікно отримання нових даних, за допомогою якого ви зможете встановити додаткові шаблони, оновити вже встановлені шаблони або вилучити непотрібні вам шаблони. Також передбачено модуль налаштовування для шаблонів. Доступ до цього модуля можна отримати за допомогою пункту меню <menuchoice>Параметри -> Налаштувати KDevelop -> Шаблони</menuchoice>. За допомогою цього модуля ви можете керувати шаблонами файлів (описано вище) і шаблонами проектів (використовується для створення проектів).  


[[Image:kdevelop-template-manager.png|thumb|500px|center]]
[[Image:kdevelop-template-manager.png|thumb|500px|center]]


Of course, if none of the available template suit your project, you can always create new ones. The easiest way is probably to copy and modify an existing template, while a short [http://techbase.kde.org/Development/Tutorials/KDevelop/Creating_a_class_template tutorial] and a longer [http://techbase.kde.org/Projects/KDevelop4/File_template_specification specification document] are there to help you. To copy an installed template, open the template manager by clicking <menuchoice>Settings -> Configure KDevelop... -> Templates</menuchoice>, select the template you wish to copy, then click the <menuchoice>Extract Template</menuchoice> button. Select a destination folder, then click <menuchoice>OK</menuchoice>, and the contents of the template will be extracted into the selected folder. Now you can edit the template by opening the extracted files and modifying them. After you are done, you can import your new template into '''KDevelop''' by opening the template manager, activating the appropriate tab (either <menuchoice>Project Templates</menuchoice> or <menuchoice>File Templates</menuchoice>) and clicking <menuchoice>Load Template</menuchoice>. Open the template description file, which is the one with the suffix either <code>.kdevtemplate</code> or <code>.desktop</code>. '''KDevelop''' will compress the files into a template archive and import the template.  
Звичайно ж, якщо потребам вашого проекту не відповідає жоден шаблон, ви можете створити новий. Ймовірно, найпростішим способом буде копіювання вже створеного шаблона з наступним внесенням до нього змін. Вам можуть допомогти короткі [http://techbase.kde.org/Development/Tutorials/KDevelop/Creating_a_class настанови] та розгорнутий [http://techbase.kde.org/Projects/KDevelop4/File_template_specification довідковий документ]. Щоб скопіювати встановлений шаблон, відкрийте вікно керування шаблонами за допомогою пункту меню <menuchoice>Параметри -> Налаштувати KDevelop... -> Шаблони</menuchoice>, виберіть шаблон, який слід скопіювати, потім натисніть кнопку <menuchoice>Видобути шаблон</menuchoice>. Виберіть теку призначення, потім натисніть кнопку <menuchoice>Гаразд</menuchoice>. Вміст шаблона буде видобуде до вказаної вами теки. Тепер ви можете почати редагування шаблона: відкривати і змінювати видобуті файли. Щойно потрібні зміни буде внесено, ви можете імпортувати ваш новий шаблон до &kdevelop;: відкрийте засіб керування шаблонами, перейдіть на відповідну вкладку (<menuchoice>Шаблони проектів</menuchoice> або <menuchoice>Шаблони файлі</menuchoice>) і натисніть кнопку <menuchoice>Завантажити шаблон</menuchoice>. Відкрийте файл опису шаблона, тобто файл з суфіксом назви <tt>.kdevtemplate</tt> або <tt>.desktop</tt>. '''KDevelop''' стисне всі файли до архіву шаблона і імпортує його дані.  


{{Note|1=When copying an existing template, make sure you rename it before importing it again. Otherwise, you will either overwrite the old template, or will end up with two templates with identical names. To rename a template, rename the description file to something unique (but keep the suffix), and change the <tt>Name</tt> entry in the description file. }}
{{Note_(uk)|1=Якщо ви копіюєте вже створений шаблон, не забудьте перейменувати його до повторного імпортування. Якщо ви цього не зробите, попередній шаблон буде перезаписано або у списку з’являться два шаблони з однаковими назвами. Щоб перейменувати шаблон, перейменуйте файл опису так, щоб він мав унікальну назву (суфікс слід зберегти), і змініть запис <tt>Name</tt> у файлі опису.}}


If you want to write a template from scratch, you can start with a sample C++ class template by [[Special:myLanguage/KDevelop4/Manual/Sessions and projects#Creating projects from scratch|creating a new project]] and selecting the <tt>C++ Class Template</tt> project in category <tt>KDevelop</tt>.  
Якщо вам потрібно створити шаблон «з нуля», ви можете почати зі зразка шаблона класу C++: [[Special:myLanguage/KDevelop4/Manual/Sessions and projects#Creating projects from scratch|створіть новий проект]] і виберіть проект <tt>Шаблон класу C++</tt> у категорії <tt>KDevelop</tt>.  


{{Prevnext2
{{Prevnext2
| prevpage=Special:MyLanguage/KDevelop4/Manual/Working with source code | nextpage=Special:MyLanguage/KDevelop4/Manual/Building_(compiling)_projects_with_custom_Makefiles
| prevpage=Special:MyLanguage/KDevelop4/Manual/Working with source code | nextpage=Special:MyLanguage/KDevelop4/Manual/Building_(compiling)_projects_with_custom_Makefiles
| prevtext=Working with source code | nexttext=Building (compiling) projects with custom Makefiles
| prevtext=Робота з кодом програм | nexttext=Збирання (компіляція) проектів з нетиповими Makefile
| index=Special:MyLanguage/KDevelop4/Manual | indextext=Back to menu
| index=Special:MyLanguage/KDevelop4/Manual | indextext=Повернутися до меню
}}
}}


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

Latest revision as of 12:59, 27 November 2014

Other languages:

Створення коду за допомогою шаблонів

У KDevelop для створення початкового коду можна використовувати шаблони. Отже, за допомогою шаблонів ви можете уникнути повторного написання поширених частин коду.

Створення класу

Найпоширенішим випадком використання створення коду за шаблоном є, ймовірно, написання нового класу. Щоб створити новий клас у вже створеному проекті, наведіть вказівник миші на теку проекту, клацніть правою кнопкою миші і виберіть у контекстному меню пункт Створити з шаблона. Те саме діалогове вікно може бути відкрито за допомогою меню, пункту Файл -> Створити з шаблона, але використання теки проекту має перевагу встановлення базової адреси для вихідних файлів. Виберіть Клас на панелі вибору категорії, бажану мову програмування та шаблон. Після вибору шаблона класу вам слід вказати інші характеристики нового класу.

Спочатку слід вказати ідентифікатор нового класу. Це може бути проста назва (наприклад Bus) або повний ідентифікатор у просторі назв (наприклад Transportation::Bus). У останньому випадку KDevelop виконає обробку ідентифікатора і відповідним чином відокремить простір назв від назви класу. За допомогою цієї самої сторінки ви можете додати основні класи для нового класу. Ви можете зауважити, що у деяких шаблонах уже передбачено вибір основних класів. Ви можете просто вилучити зайві і/або додати інші основні класи. Тут вам слід вказати інструкцію наслідування повністю. Звичайно ж, така інструкція залежить від вибраної мови програмування, це буде public QObject для C++, extends SomeClass для PHP або просто назва класу для Python.

За допомогою наступної сторінки ви можете вибрати віртуальні методи з успадкованих класів, а також типові конструктори, деструктори і оператори. Реалізувати метод у новому класі можна простим позначенням пунктів з підписами методів.

Після натискання кнопки Далі буде показано сторінку, за допомогою якої ви можете додати до класу методи. Залежно від вибраного шаблона, методи може бути реалізовано у новому класі як змінні-елементи або може бути створено властивості з функціями встановлення та отримання значень. У мовах, де типи змінних слід оголошувати, зокрема у C++, вам слід вказати одразу тип і назву елемента, наприклад int number або QString name. У інших мовах можна не вказувати тип, але все ж варто його визначити, оскільки таке визначення може бути корисним для подальшої роботи з шаблоном.

За допомогою наступних сторінок ви зможете вибрати умови ліцензування вашого нового класу, встановити нетипові параметри, характерні для вибраного шаблона, та налаштувати місце зберігання виведених даних для всіх створених програмою файлів. Натискання кнопки Завершити призведе до завершення роботи допоміжної програми і створення нового класу. Створені допоміжною програмою файли буде одразу відкрито у вікні редактора, отже ви зможете негайно перейти до додавання потрібного коду.

Після створення класу C++ програма запропонує вам додати клас до певної цілі у проекті. Виберіть у діалоговому вікні відповідну ціль або закрийте діалогове вікно і додайте файли до цілі вручну.

Якщо ви вибрали шаблон Об’єкт Qt, вибрали певні типові методи та додали дві змінні-елемента, результат має виглядати так, як це зображено нижче.

Як можна бачити, дані-елементи перетворено на властивості Qt з функціями доступу та макросами Q_PROPERTY. Крім того, аргументи функцій встановлення передано з посиланнями на сталі там, де це потрібно. Крім того, оголошено закритий клас (private) та створено закритий вказівник з Q_DECLARE_PRIVATE. Все це зроблено відповідним шаблоном. Вибір іншого шаблона на першому кроці може призвести до зовсім іншого результату.

Створення тесту модуля

Хоча у більшості комплексів для тестування кожен з тестів має бути окремим класом, у KDevelop передбачено метод спрощення створення тестів для модулів програми. Щоб створити новий тест, наведіть вказівник миші на теку проекту, клацніть правою кнопкою миші і виберіть у контекстному меню пункт Створити з шаблона. На сторінці вибору шаблона у полі категорії виберіть Перевірка, потім виберіть мову програмування і шаблона та натисніть кнопку Далі.

Вас попросять ввести назву перевірки і список варіантів перевірки. Для варіантів вам слід вказати список назв. У деяких комплексах для тестування модулів, зокрема PyUnit і PHPUnit, слід назви варіантів перевірки мають починатися з особливого префікса. У KDevelop за додавання префіксів відповідає шаблон, отже вам не потрібно вказувати префікс для варіантів. Після натискання кнопки Далі вкажіть умови ліцензування і розташування файлів виведених даних. KDevelop виконає решту роботи у автоматичному режимі.

Створені таким чином тести модулів не буде автоматично додано до жодної з цілей проекту. Якщо ви користуєтеся CTest або якимось іншим комплексом для тестування, не забудьте додати нові файли до цілі. У KDevelop передбачено набір інструментів тестування модулів, який інтегрується із CTest.

Інші файли

Хоча роботу засобів створення коду на основі шаблонів акцентовано на створенні класів та тестів модулів, подібну методику можна застосувати для створення будь-яких фрагментів файлів коду. Наприклад, можна скористатися шаблонами для модулів пошуку CMake або файлів .desktop. Для цього просто виберіть пункт Створити з шаблона, а потім позначте відповідну категорію і шаблон. Якщо шаблон не належить до категорій Клас або Перевірка, вам достатньо буде вибрати умови ліцензування, значення додаткових параметрів шаблона та розташування файлів результату. Як і для класів з тестами, на завершення роботи допоміжної програми буде створено відповідні файли і відкрито їх у вікні редактора.

Керування шаблонами

Ви можете отримати додаткові файли шаблонів безпосередньо з вікна, яке можна відкрити за допомогою пункту меню Файл -> Створити з шаблона: достатньо натиснути кнопку Отримати додаткові шаблони.... У відповідь буде відкрито вікно отримання нових даних, за допомогою якого ви зможете встановити додаткові шаблони, оновити вже встановлені шаблони або вилучити непотрібні вам шаблони. Також передбачено модуль налаштовування для шаблонів. Доступ до цього модуля можна отримати за допомогою пункту меню Параметри -> Налаштувати KDevelop -> Шаблони. За допомогою цього модуля ви можете керувати шаблонами файлів (описано вище) і шаблонами проектів (використовується для створення проектів).

Звичайно ж, якщо потребам вашого проекту не відповідає жоден шаблон, ви можете створити новий. Ймовірно, найпростішим способом буде копіювання вже створеного шаблона з наступним внесенням до нього змін. Вам можуть допомогти короткі настанови та розгорнутий довідковий документ. Щоб скопіювати встановлений шаблон, відкрийте вікно керування шаблонами за допомогою пункту меню Параметри -> Налаштувати KDevelop... -> Шаблони, виберіть шаблон, який слід скопіювати, потім натисніть кнопку Видобути шаблон. Виберіть теку призначення, потім натисніть кнопку Гаразд. Вміст шаблона буде видобуде до вказаної вами теки. Тепер ви можете почати редагування шаблона: відкривати і змінювати видобуті файли. Щойно потрібні зміни буде внесено, ви можете імпортувати ваш новий шаблон до &kdevelop;: відкрийте засіб керування шаблонами, перейдіть на відповідну вкладку (Шаблони проектів або Шаблони файлі) і натисніть кнопку Завантажити шаблон. Відкрийте файл опису шаблона, тобто файл з суфіксом назви .kdevtemplate або .desktop. KDevelop стисне всі файли до архіву шаблона і імпортує його дані.

Зауваження
Якщо ви копіюєте вже створений шаблон, не забудьте перейменувати його до повторного імпортування. Якщо ви цього не зробите, попередній шаблон буде перезаписано або у списку з’являться два шаблони з однаковими назвами. Щоб перейменувати шаблон, перейменуйте файл опису так, щоб він мав унікальну назву (суфікс слід зберегти), і змініть запис Name у файлі опису.


Якщо вам потрібно створити шаблон «з нуля», ви можете почати зі зразка шаблона класу C++: створіть новий проект і виберіть проект Шаблон класу C++ у категорії KDevelop.