Для создания хорошо структурированного кода вам не обойтись без развитого абстрактного мышления. Помните задачи из разряда "выберите лишний объект"? Программирование во многом построено на этом.
Если хотите добиться успеха в программировании, вы должны уметь:
- находить закономерности и зависимости, отражая их в структуре кода. Конечно, можно писать длинный и запутанный код, который будет решать задачу. Но учитывайте, что хороший код должен быть еще и сопровождаемым, то есть он должен быть ПОНЯТНЫМ, а это достигается путем выделения четких логических структур, смысл которых очевиден без пояснений (комментариев);
- классифицировать сущности в форме классов и модулей с непротиворечивыми интерфейсами. Неправильный выбор базового класса может привести к серьезным проблемам в будущем. Например, в игровом приложении архитектура может быть построена таким образом, что для каждого игрового объекта создается свой класс. Классическое ООП? А теперь посчитаем. Если объектов всего 5, то ничего страшного. Но если в игре 100 различных типов объектов, то это уже 100 классов! В этом случае нужно искать другие признаки, на основе которых следует строить приложение. Все зависит от типа игры, но в качестве примера можно ограничиться двумя классами: для статических и динамических объектов, которые вольют в себя все те 100 классов. Применяйте ООП правильно;
- четко разделять приложение по уровням абстракции. Определитесь со структурой приложения. Используйте инкапсуляцию по назначению. В хорошо организованном приложении рядом с кодом графического интерфейса не может находиться
SQL
-код выборки из базы данных. Рассмотрите возможность применения паттернов (например, MVC);
- определять алгоритмы в форме процедур и функций. Избегайте побочных эффектов и ненужных зависимостей, которые являются потенциальными ошибками. Руководствуйтесь принципом единой ответственности.
Несколько советов, которые помогут вам развить абстрактное мышление:
- читайте книги об объектно-ориентированном проектировании и анализе. В качестве неплохого стартового материала могу посоветовать: Объектно-ориентированный анализ и проектирование;
- потратьте время на изучение стандартных архитектурных решений (паттернов ООП). Нет смысла тратить свое время и усилия на те задачи, для которых уже известны надежные решения. Рекомендую для ознакомления книги: Паттерны проектирования и Приемы объектно-ориентированного проектирования;
- проявляйте интерес к архитектурным решениям, принятым в чужих успешных проектах. Одного знания паттернов мало. Нужно уметь их правильно и эффективно комбинировать. Неумелое использование паттернов в большинстве случаев только ухудшит структуру кода. Учитесь на чужих примерах, источниками которых вам послужат проекты с открытым исходным кодом и статьи самих авторов об их творениях. Рекомендую книгу Идеальная архитектура. Ведущие специалисты о красоте программных архитектур;
- больше практики. Чувство уверенности при разработке программ появится у вас только при наличии опыта. Решайте разнообразные задачи и стремитесь к экспериментам.
Похожие публикации