Приветствую! Программируя все больше на РНР (Mysql, JS) я начинаю замечать, что пишу как-то неправильно. В смысле я знаю большинство функции, их использование и много решений мелких задач, из которых строятся полноценные скрипты. Но вот стадия проектирования приложения, таблиц, оптимизация, рефракторинг и много других плюшек я не понимаю, и не использую в полной мере. Посоветуйте что-л. почитать именно по этим хорошим навыкам. Желательно не такие фундаментальные труды как Искусство Программирования Кнутта, к нему я перейду чуть позже. Спасибо!
Мало только что-то читать, надо ещё и думать головой... Нету какой-то идеальной методики, просто надо больше думать и меньше писать. (но при этом надо научиться понимать что именно ты пишешь.) Любой программист когда начинает учиться проводит 99% времени за написанием кода, любой опытный проводит 99% планируя что он будет писать. Со временем это приходит, а вот как это ускорить я не знаю...
опыт, практика. но важней всего умение наладить внутренний диалог. благодаря этому можно очень точно и подробно представлять себе логику и процессы даже масштабных систем. Опять же благодаря этому проще писать программы, ибо легче и быстрее вырабатываются критерии решения задачи, а как следствие элегантнее и универсальнее будут алгоритмы.
Vladson Я ж не напишу "посоветуйте чего подумать", это будет слишком абстрактно. А так понятно, что читая я предполагаю осмысление прочитанного и возможно использование осмысленного. igordata Но я сомневаюсь, что в наш информационный век все эти области каждый индивид вырабатывает обособленно от уже имеющегося опыта. По крайней мере чужой опыт предоставляет выбор, помогает выработать определенные навыки или же "наставляет на путь истинный", помогая найти уникальное и приемлемое (для отдельного индивида) решение какой-л. задачи. В следствии вышесказанного, прося "чего-л. почитать" я имею в виду использование чужого опыта. И не вижу в этом ничего плохого.
Neka как бы то ни было (точнее даже если есть, не думаю что её кто-то знает, ибо уметь писать код, и уметь учить людей писать код, это разные вещи...) Поспрашивай лучше на форумах не программистов а педагогов...
Neka давайте определимся, о чем мы говорим. Если для вас опыт - это чекбоксы с квадратными скобками, или там "грамотное" написание SQL запросов - то это вобще не тема для вопросов, а что называется "маст хэв". Если вы хотите отловить и насытиться чужим опытом в более глобальных масштабах, то это уже из области как раз проектирования, а там в принципе не программистские сферы уже. Т.е. сначала выстраивается модель "что откуда куда", потом она опускается на уровень по-ниже "что откуда куда и в каком виде" а потом уже это оседает на программистский уровень "как". программистский уровень ВЕСЬ берется из гугла с полпинка. А вот логика - самое сложно. Если вы хотите рости, а не кодить циклы до конца дней (не важно, хобби это или работа), то придется отказаться от программирования. Такая вот судьба злодейка. Но к счастью никто вам не запретит кодить то, что вы там напридумывали. Но процесс придумывания и ПРОдумывания от кода не зависит. Задача решается. А код - один из способов. Код вторичен по отношению к решению. А к задаче - так и вобще третичен. Именно по этому программисты любят жевать сопли по поводу какую задачу на каком языке лучше решать. Т.к. это вобще три разных понятия - флуда и флема и троллинга может быть много. Если бы можно было в таких вопросах однозначть сказать "делайте так" или "не делайте сяк" - все было бы просто, не было бы разговоров, не было бы столько языков, не было бы вопросов про "опыт". И вот если вы вдруг стали за собой замечать что вы программируя делаете что-то "неправильно" то тут же надо сесть и озадачится, а что именно вас не устраивает, поковыряться в себе, выработать критерии, сформулировать задачу и лезть в гугл. Что тут можно "почитать"?.. не знаю. В какой области? Почитайте топик 440Hz про онлайновую игрушку. Это опыт. Т.е. чтобы ответить тебе на вопрос, что тебе посоветовать из опыта почитать (а опыт - это не теоретизирование, это реальные решенные задачи и итог их решений), то сначала надо спросить что тебе интересно, куда ты движешься, чем занимаешься, к чему хочешь придти. Ну или хотя бы "что ты считаешь интересным?"
о чистоте кода и рефакторинге http://www.ozon.ru/context/detail/id/3159814/ http://www.ozon.ru/context/detail/id/1308678/ о шаблонах проектирования http://www.books.ru/shop/books/693675 http://www.williamspublishing.com/Books ... 579-6.html ооп/ооа http://www.williamspublishing.com/Books ... 401-9.html http://www.williamspublishing.com/Books ... 597-9.html о итеративной разработке http://www.ozon.ru/context/detail/id/3105480/
Тут как в жизни. Плохой код будет плохо работать. Мастера пишут код вот так не потому, что это дорогой сердцу подход, а потому что эффективно, потому что это лучший вариант. Небоскребы строят из стали и бетона не потому, что они чище и красивее дерева. Поэтому надо писать, писать и писать! Именно в результате писанины родились те паттерны и приёмы в книгах. Иногда можно обнаружить, что сам дошел до какого-то хорошего приёма, описанного в книгах.
[vs] чувааак =) "писать, писать, писать" не сделают из говнокодера имбапрогера. чтобы рости нужно решать сегодня задачи сложнее чем вчера. это универсальное правило.