Powered by CodeIgniter

Уроки

(28)
14
16 голосов
Учиться, учиться и еще раз учиться — развитие личности идет таким путем.

Абстракция

С вашего позволения, сегодня в своих изысканиях я отойду от темы кода к вопросам философского характера. Когда меня спрашивают, каким образом мне удается создавать простой, но в тоже время очень мощный код, мне всегда хочется объяснить как. В реальности хороший код не является репликой упорядоченных знаний паттернов, выдумок и заимствований, но творится на стыке синергии личности и багажа обретенных знаний. Мы питаемся новой информацией, вместе с познаниями по программированию накапливается и жизненный опыт, и после, сквозь призму мировоззрения и мироощущения, все это дает нам конечный продукт нашего творчества.
Наиболее полезным инструментом в проектировании и разработке является инструмент, который нам всем хорошо знаком, но далеко не все предвосхищают его удобство.
Конечно же, речь идет об абстракции.
Код, как и любой другой продукт нашего творчества, является выражением нашей сущности. Обратное тоже верно, потому как рост в профессиональном плане неизбежно сопряжен с личностным ростом.
Итак, ближе к делу, как можно и нужно использовать абстракцию в программировании? Очень просто. Следует воспарить над любой задачей или проблемой как орел, оглядеть ее от края и до края и постараться разделить ее на составные части. По каким признакам происходит деление? Здесь в игру вступает системный анализ. Очень полезный предмет. Мне довелось прослушать курс системного анализа на первом курсе Магистерского Корпоративного Факультета, где, напомню, я на данный момент прохожу обучение, и где cogear является моим магистерским проектом. Да, пусть нам информация преподносилась в сфере математики и информатики, но все в нашем мире настолько взаимосвязано, что порой бывает трудно в это поверить.
Применив системный анализ и абстракцию в процессе создания ядра cogear² я достиг тех феноменальных открытий, которые многие из вас уже сейчас могут найти в репозитории проекта.
Запомните. Любую сложную проблему можно поделить на две и более простых. Уйдя от пресловутых JOIN в сторону кеширования, мы получаем возможность не ограничивать себя логикой реляционных БД и собрать адаптеры для работы, например, с MongoDB или Redis. Возможно все.
В который раз убеждаюсь, что с новой структурой движок, наконец-то, стал именно тем продуктом, который я когда-то задумывал (в 2009 году).

Еще один совет. Устали биться головой о стену, решая задачу? Отойдите от нее, займитесь другим. Сделайте что-то полезное в реальном мире, отдохните. На следующий день вы сможете посмотреть совершенно другим взглядом на тот же вопрос.

Я хочу донести до каждого посетителя сайта мысль о том, что в программировании крайне важным является наличие идеологии, философии и культуры. Иначе все это превращается либо в роботизированный труд, либо в кипы говнокода, либо еще во что-нибудь эдакое.

Запомните. Задумайтесь. Самая сильная мотивация идет изнутри.
23:45 ← 28 июля 2011 Отправить в Твиттер adminadmin  RSS comments 3

Комментарии (3) ↓

Varhal Varhal time 03:42 ← 29 июля 2011 #
Еще один совет. Устали биться головой о стену, решая задачу? Отойдите от нее, займитесь другим. Сделайте что-то полезное в реальном мире, отдохните. На следующий день вы сможете посмотреть совершенно другим взглядом на тот же вопрос.
Я хоть и не программист, но такой подход к решению задач дает реальный результат. Я сторонник простоты и когда начинашь думать о решении задачи какими то сложными способами, работает этот совет.
Вся наша жизнь состоит с решения неких задач и проблем и когда мы сможем получать удовольствие от решения, на первый взгляд, сложных задач и проблем, мы сможем в большей мере получить удовольствие от жизни.
JiLiZART JiLiZART time 06:57 ← 29 июля 2011 #
В общем то так оно и есть. Все гениальное просто :)
Isildien Isildien time 10:53 ← 29 июля 2011 #
Статья интересная, но нового ничего не узнал :(