-
Notifications
You must be signed in to change notification settings - Fork 174
Насоки към авторите и редакторите
Авторите на книгите от поредицата "Programming Basics" (Основи на програмирането) се съгласяват да следват настоящите насоки, за да се уеднакви стилът на писане.
Целта на книгите е да се ползват като учебник за курсовете "Programming Basics" в СофтУни.
-
Следваме слайдовете от курса "Programming Basics" в СофтУни: https://github.com/SoftUni/Programming-Basics-Resources/tree/master/CSharp-Course-SoftUni.
-
Можем да добавяме и допълнителна информация, не сме 100% вързани за слайдовете.
-
Ползваме GitBook платформата, защото тя е много подходяща за open-source книги: https://www.gitbook.com/book/software-university-foundation/programming-basics-csharp-bg/details.
-
Лицензът е CC-BY-NC-SA.
Ползваме Markdown форматиране в GitBook платформата. Където не става с Markdown, слагаме HTML (примерно за входа и изхода в условията на задачите).
Всички елементи от кода (имена на променливи, keywords, имена на файлове и подобни) форматираме като код ограден ляв апостроф. Пример:
В C# можем да повтаряме команди с
for
цикъл. Операторътfor
повтаря група команди няколко пъти.
C# кодът се форматира по стандартния за markdown езика начин, като езикът е "cs". Пример:
for (var i = 1; i <= 100; i++)
{
Console.WriteLine(i);
}
Често пъти при подсказките към задачите искаме да дадем screenshot с кода вместо самия код, за да избегнем възможността за copy / paste. В тези случаи трябва да се взима screenshot от Visual Studio (с default светла тема), за да е оцветен правилно кода. Ето добър пример:
Ето лош пример с некоректно форматиране:
Понякога нарочно замъгляваме част от кода, за да накараме читателят да мисли, вместо да преписва на сляпо кода:
Примерните вход и изход при задачите за упражнения се форматират като в примера по-долу с използване на HTML тагове и по-конкретно <br>
за слизане на нов ред. Ето пример:
Вход | Изход | Вход | Изход | Вход | Изход |
---|---|---|---|---|---|
2 10 20 |
30 | 3 -10 -20 -30 |
-60 | 4 45 -20 7 11 |
43 |
- Правим картинките като
PNG
и се стараем да са с добър контраст. - Размерът (width) да не е по-малък от 640px.
- Да не се ползва JPG, защото чупи качеството на изображението.
- Резолюцията (DPI) трябва винаги да е 96:
- При картинки с код - размерът на шрифта трябва да е като този на картинката (използван е zoom 125%, но при различните устройства може да е друго число).
- Темата на Visual Studio e светлата.
- Картинките се организират в папка assets, като всяка глава си има своя папка. Обръщаме внимание на именуването на картинките - нека в заглавието присъства информация за номера и името на задачата или примера, за които е използвана картинката, както и поредността й. Пример за добро именуване на файл:
13.Fibonacci-01.png
.
Пример:
Когато взимаме картинки от слайдовете, се стараем да ползваме цветовете от PPTX шаблона за картинки. Трябва да се получи нещо такова:
Пишем в множествено число. Пример:
Да разгледаме кода на примерната програма. На първия ред забелязваме декларацията „
using System;
”. Тя служи за ...
Заглавията следват структурата на слайдовете. Слагайте повече подзаглавия, за да е по-хубаво структуриран текстът.
- Heading 1 - заглавие на глава от книгата
- Heading 2 - заглавие на секция от дадена глава
- Heading 3 - заглавие на под-секция от дадена глава
Важни забележки, на които искаме да обърнем специално внимание, се правят със следния HTML код:
<table><tr><td><img src="/assets/alert-icon.png" style="max-width:50px" /></td>
<td>Тази книга ви дава само <b>първите стъпки към програмирането</b>. Тя обхваща
съвсем начални умения, които предстои да развивате години наред докато достигнете
до ниво, достатъчно за започване на работа като програмист.</td>
</tr></table>
Резултатът е нещо такова:
Не променяйте HTML кода. Той е внимателно написан, за да се визуализира коректно на лаптоп, таблет, телефон и като PDF).
Можем да вмъкваме YouTube видео клипчета в книгата със следния HTML код:
<div class="video-player">
Гледайте видео-урок по тази глава тук: <a target="_blank"
href="https://www.youtube.com/watch?v=LgT10WCBw0M">
https://www.youtube.com/watch?v=LgT10WCBw0M</a>.
</div>
Горният код ползва малко JavaScript, който се изпълнява в GitBook при рендиране на книгата в HTML формат. В GitHub не се изпълнява, както и при PDF рендиране. Така в PDF се показва текст в стил "гледайте видео тука + link", а при HTML формат на книгата, се появява YouTube video player с page width (responsive) размери (width: 100%, height: изчислява се по формат 16/9). При преглеждане на страницата с GitHub markdown viewer, се появява линк към видеото.
Вход | Изход |
---|---|
3 |
$ $$ $$$
|
За примерните задачи и задачите за упражнение, в заглавията да се ползва Heading 3 и винаги да се изписва по следния начин: Задача:<наименование> или Пример:<наименование>.
Пример:
###Задача: числата от N до 1 в обратен ред
###Пример: числата от N до 1 в обратен ред
Секциите на самата задача, като 'вход', 'изход', 'насоки и подсказки', 'тестване в Judge системата', форматираме с H4
. Пример:
####Тестване в Judge системата
Тествайте решението си тук: https://judge.softuni.bg/Contests/Practice/Index/514#11
Тествайте решението си тук: https://judge.softuni.bg/Contests/Practice/Index/514#11
Форматирането на ключови фрази, понятия, думи в текста се правят bold. Това подобрява четимостта на текста.
Пример:
for -> for
**for**
Където предстои промяна, слагайте маркер [TODO], примерно [TODO: update judge link]. Ще ползваме TODO маркер за моменти, които не можем да поправим на момента или са обект на дискусия. Засега просто ги отбелязвайте.
Пример:
[TODO: update judge link]
Ако използваме TODO
маркер в някой от скрийншотите, коректният начин на изписване е следния:
// TODO: ...
За всички теми: да се тества какво става на таблет / телефон и да се измисли как да се адаптира съдържанието. Най-честият източник на проблеми за responsive design са таблиците. Избягвайте много колони в таблиците. Повечето могат да се направят на няколко отделни таблици с по-малко колони. Знам, че в оригиналните MS Wоrd файлове ползваме много колони, за да спестим място. Обаче тази книга трябва да е четима от телефон и по-добре да помислим за това. След тестване установихме, че е по-добре да се ползва markdown
Пример:
Вход | Изход | Вход | Изход | Вход | Изход |
---|---|---|---|---|---|
2 10 20 |
30 | 3 -10 -20 -30 |
-60 | 4 45 -20 7 11 |
43 |
| Вход | Изход | Вход | Изход | Вход | Изход |
| :--- | :--- | :--- | :--- | :--- | :--- |
| 2<br>10<br>20 | 30 | 3<br>-10<br>-20<br>-30 | -60 | 4<br>45<br>-20<br>7<br>11<br> | 43 |
Когато имаме име на метод в текста, ползваме ()
или (…)
, за да улесним читателя. Примерно Math.Truncate
-> Math.Truncate(…)
. Първото изглежда като property. Второто е очевидно, че е метод, защото има някакви параметри в скобите.
Пример:
Math.Truncate(...)
След предлог в българския език винаги следва кратък член. Грешно:
"на последният ред".
Вярно:
"на последния ред".
Пълен член се слага, ако фразата отговоря на въпроса "кой"? Пример
"операторът == сравнява две стойности".
Въпрос: кой? Отговор: "операторът ==".
Кратък член се слага, ако фразата отговаря на въпроса "кого?". Пример:
"чертане на първия стълб" -> "на кого?" -> кратък член.
Пример за неправилно форматиране:
if (num > 1000)
{ bonusScore = num * 0.10; }
В слайдовете може да е дадено така, защото не стига пространството, но в книгата нямаме това ограничение.
Правилно:
if (num > 1000)
{
bonusScore = num * 0.10;
}
Заглавията в български език са в стил "Главна буква, следвана от само малки". Коректен пример:
"Входна единица".
Некоректен пример:
"Входна Единица".
Заглавията, които съдържат въпрос, трябва да завършват на "?", примерно това е грешно заглавие:
"Какво представлява while цикълa".
Това е правилно заглавие:
"Какво представлява while цикълът?"
И трябва да е с пълен член, защото отговаря на въпроса "кой?"
В / във и с / със. В български език се ползва предлог "във" единствено, когато следващата дума започва с буквата "в". Аналогично "със" се ползва, когато следващата дума след предлога започва с буквата "с". Коректен пример:
"на входа се подават x1, y1, x2, y2, x3, y3 в този си ред".
Грешен пример:
"на входа се подават x1, y1, x2, y2, x3, y3 във този си ред".
Вижте последна версия на книгата в нейния сайт: https://csharp-book.softuni.bg.