Приклад ідеальної роботи

Приклад ідеальної роботи

За версією Мухи І. П.

Ця інформація допоможе збільшити ваші шанси здати лабки та ДКР в Ірини Павлівни. В першій сесії ви познайомитесь зі структурним та модульним програмуванням. Багато кому не буде зрозуміло, що це взагалі таке, але й ті з вас, хто вже має досвід у програмуванні, можуть нафакапати на вимогах нашого викладача. Варто зауважити, що Ірина Павлівна дуже "чітка". У роботі з нею в мене склалось враження, що вона дотримується певних патернів і майже на 100% поводить себе логічно. Тому не варто демонізувати її, боятись та особливо сперечатись. Одного засвоєного матеріалу може бути недостатньо при неправильному оформленню задачі, чи не виконанні її умови.

Тому ось мої рекомендації, які допоможуть вам отримувати задоволення від заліків її лабок та ДКР у першій сесії. Приклади мовою програмування Java, що не змінює актуальність даних порад.

1)    Варто дотримуватися одного стандарту у написанні коду. Змінні, функції та все інше пропоную писати у CamelCase форматі. Наприклад назва змінної maxNumber, чи булевий тип isEven, а функції - readNumberFromConsole. Назва має описувати сутність того, для чого вона створена. Притримання всіх Кодових угод (Code Conventions) є надлишковим, але основи, перелічені вище, ви маєте виконувати, щоб не виникало зайвих питань. Кому цікаво знати більше, можете погуглити Code Conventions для своєї мови, все одно доведеться це зрозуміти.

2)    Уникайте глобальних змінних. Ви можете писати на високорівневих, об'єктноорієнтованих мовах програмування, таких як Java, C# чи С++. При написанні програми структурно чи модульно, всі змінні повинні бути створені в функції main. Якщо ж вам потрібно отримати доступ до змінної в іншій функції, то передайте її як вхідний параметр. Іншими словами, ви маєте приймати та повертати змінні, якщо це потрібно, а не мати глобальний доступ до них.

Bad practice:

Good practice:

3)    Відразу уточніть, які лабораторні дозволено писати на яких мовах програмування. Якщо викладач не дозволив використовувати Java, то не пишіть на Java. Якщо ж у когось вже є досвід у продакшн розробці якоюсь мовою, він може спробувати домовитись писати на ній, що полегшить іншим також домовитись за цю мову. Особливо це відноситься до заочників. Ті, хто на заочній формі з досвідом, можуть показати свої минулі задачі по даному матеріалу, і вам не потрібно буде витрачати час на написання частини з них, якщо домовитеся ^_^.

4)    Знайте, що ви пишете. Ви маєте бути в змозі описати кожне слово у вашій програмі, розпочинаючи з import, закінчуючи функціями, доступними вам мовою. Якщо ви використовуєте функцію класу String з Java: “Hello”.toUpperCase(); то ви маєте знати, що вона робить. Ви маєте добре орієнтуватись в коді. Викладач може попросити зробити зміну в програмі, тому будьте до цього готові.

5)    Вивід на консоль має бути відформатованим. Консольний інтерфейс має бути МІНІМАЛЬНИМ для розуміння і ЛЕГКИМ для читання виводу. Не пишіть довгих виводів в консоль типу ”Please, input x number”, напишіть “x :”. Цього достатньо, щоб викладач зорієнтувався, що потрібно написати в консоль.

Ось приклад виводу записів з файлу задачі з другої сесії:

Аналогічно, потрібно виводити двовимірні масиви у відформатованому вигляді. Вам це стане в нагоді у першому семестрі:

6)    Не використовуйте мовні засоби для обходу умови задачі. Якщо поставлено завдання відсортувати масив чисел array, то краще зробити це бульбашкою, ніж використати нативну функцію Arrays.quickSort(array). За задумом викладача, ми маємо отримати досвід у написанні власних алгоритмів та вивчити ті інструменти, які нам не очевидні. Саме тому потрібно строго слідувати темі лабораторної роботи й старатись розкрити якнайточніше саме її.

7)    Перші задачі будуть писатись у структурному вигляді, тобто у вашій функції main будуть for/while/if і т. д. Зчитування та вивід в консоль теж можуть бути в main. З пройденою темою “функції”, вам потрібно все розбивати на них. В main мають залишитись лише оголошення змінних та виклик інших функцій. Ініціалізацію, вивід масивів, етапи виконання задачі та зчитування з консолі варто винести в окремі функції. Тут також має місце бути принцип Single Responsibility. Кожна функція має відповідати за одну конкретно поставлену задачу. Якщо задачі можна розбити, то зробіть це, і викликайте функції в функціях. Ось варіант, який би з великим шансом не викликав у Ірини Павлівни питань:

8)    Приготуйте вхідні дані. Не займайтесь створенням та заповненням масиву 3*4 вручну. Краще ініціалізувати його статичними або псевдовипадково згенерованими значеннями (якщо це визначено умовою задачі). Можете мати поруч функцію заповнення масиву “руками” для власного спокою, але краще писати код так, щоб можна було швидко продемонструвати, що ваша програма працює коректно.

 

Report Page