Найти - Пользователи
Полная версия: Дайте оценку моей программы-виселицы
Начало » Python для новичков » Дайте оценку моей программы-виселицы
1
Dima-python
Добрый день форумчане!

Я вот потихоньку осваиваю язык программирования и хотел получить критику/советы по моему корявому коду. Я буду рад услышать любой комментарий а особенно совет.

Вот я “запилил” простенькую игру виселицу на чистом коде. Какие ошибки в оформлении я допустил, и что можно в ней убрать и изменить? Спасибо!
py.user.next
В общем, алгритм работает исправно. Архитектура кода сделана заносчиво. Основ не знаешь, но уже лезешь в высокие материи. Надо убрать классы и написать всё без классов. Модули питона должны называться общепринятым образом - английские буквы, цифры и подчёркивания. Файлы программы в питоне все являются модулями, они предназначены для импортирования их. То есть для каждого файла должен соблюдаться набор правил его построения как самостоятельного модуля.

Дальше, когда ты как будто уже написал всё без классов, рассмотрим архитектуру получившегося кода. Код должен быть написан в структурной парадигме. Должна быть применена разработка “сверху вниз”, должны быть подпрограммы везде. Иначе чуть-чуть что-нибудь потребуется изменить или вылезет где-нибудь неожиданный баг, его необходимое исправление может вовлечь в себя воздействие на другие части кода в пределах той же функции. То есть когда у тебя код скопом, ну якобы ты его и так понимаешь и меньше работы и всё перед глазами, то исправлять его части очень сложно, так как в монолитном коде начинают появляться связи между его участками. Ты, например, поменял какой-то цикл, потому что он неправильно проходил, но потом вдруг узнал, что этот цикл был привязан к каким-то переменным по соседству и они вдруг стали сохранять неправильные значения из-за нового изменения. А то, что цикл и эти переменные были связаны каким-то эффектом, ты когда-то помнил, но уже давно забыл. И таких моментов при росте программы будет просто дофига. Наступит тот день, когда ты не будешь помнить содержимое своей программы из-за её выросшего размера. А потом наступит тот день, когда ты не только помнить содержимое не будешь, но когда ты её и перечитать не сможешь физически, потому что это будет огромный проект на несколько мегабайт исходников. А при этом программу делать дальше надо, у тебя нет времени её читать, у тебя есть только время её писать дальше. Поэтому писать программу нужно так, чтобы в будущем для её дальнейшей разработки её не нужно было перечитывать всю.
Rodegast
Код повеселил.
P.S. Откуда у тебя суицидальные наклонность? Ты с синем китом не связан?
Dima-python
Добрый вечер Форумчане.

Огромное спасибо за критику, особенно py.user.next за разбор полетов. Видно Классы для этой мини игры перебор, поэтому я ее немного переработал и постарался оформить как подобает. Спасибо!
Dima-python
Rodegast
Код повеселил. P.S. Откуда у тебя суицидальные наклонность? Ты с синем китом не связан?
Неа не связан) Просто простая игра, для отработки начальных навыков. Вот хочу игру Поле чудес замутить со своим барабаном и бабками с гостинцами)
py.user.next
Dima-python
поэтому я ее немного переработал и постарался оформить как подобает
Нормально. Дальше нужно много монолитного кода превратить в несколько функций и вызывать их. Одна функция должна занимать примерно не более 25 строк кода, чтобы она полностью обозревалась без промоток в редакторе и без гуляния глазами по ней вверх и вниз.
Dima-python
py.user.next
То есть надо еще доработать. Хорошо тогда этим я займусь. Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB