![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 ![]() |
Устроился в одну контору программистом с испытательным сроком. Как известно, для хорошего программиста язык — это инструмент, как для слесаря пассатижи.
Сразу предупредили, что язык сложный (CachГ© ObjectScript), и до меня было много претендентов, но никто не справился. Наставником определили бывшего препода по информатике, 50+. Первое задание: морской бой. Консольный вариант: 80Г—25, мыши нет, псевдографика. Написал, показываю. Наставник негодует: — А почему у тебя координаты надо вводить? Давай позиционирование по полю противника сделаем курсором и расстановку кораблей тоже. Переделал, показываю. — У тебя всплывающие сообщения игры слишком большие, давай окошки сделаем поменьше. И у меня всегда должно быть право выбора! Уделал этот морской бой до неузнаваемости: фон псевдографикой, меню настроек фона, цвета окон, способы стрельбы, подсказки и т. д. Было бы в 90-е — продал бы его. Показываю. — Ну, я тебе троечку с минусом за эту работу поставлю, только за то, что что-то делал. — Тут оценки ставят? — Нет, это чтоб ты ощущал. Потом открывает код, и начинается самое интересное: — Нет, так не пойдёт, стиль я такой не приемлю, он нечитаемый. Эти твои скобочки только в глазах рябят. И начинает учить ходить заново: 1. Каждый оператор с новой строки! То есть запись на C++ вида int a, b, c, d; должна быть: int a; int b; int c; … 2. Если количество операторов внутри цикла или условия больше трёх — нужно выносить код в отдельную процедуру. Запись вида: if (k == 1) { f = "Фамилия"; n = "Имя"; o = "Отчество"; t = "123-45-67"; } должна выглядеть так: if (k == 1) { pr () } void pr (void) { f = "Фамилия"; n = "Имя"; o = "Отчество"; t = "123-45-67"; } 3. Имена процедур называем большим буквами, и не более восьми символов. В то же время имя процедуры должно явно отражать её действие. Переменные и функции называем маленькими буквами, названия тоже должны быть недлинными, но информативными. И тут мой наставник сразил меня наповал: — Ты же знаешь, чем отличаются функции от процедур? — Да. Функция возвращает значение, процедура — нет. — Не только! — торжественно произносит он и вопрошает, тыкая курсором в код. — Это что? — Процедура. — Нет! Это функция, ты ж ей параметры передаёшь! Я не нашёлся, что ответить. Попробовав переписать программу на этот лад, я остановился, не дойдя до середины. Я запутался в своём же коде: какая процедура откуда вызвалась и к чему относится. Фантазия на имена процедур тоже кончилась. Вряд ли мои предшественники, сколько бы их ни было, не смогли написать тот же морской бой или телефонный справочник. Пора готовить лыжи: учиться ходить задом наперёд желания нет. Читать дальше -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 14.6.2025, 13:19 | |
|