Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Фундаментальный вопрос.
Форумы портала PHP.SU » PHP » Программирование на PHP » Фундаментальный вопрос.

Страниц (1): [1]
 

1. Bertolomych - 02 Сентября, 2010 - 22:50:22 - перейти к сообщению
Долго ли, коротко ли, прочитав несколько десятков книжек и статей про php и JS, я более-менее научился создавать сайты. Не удержусь и сошлюсь на мое последнее творение: http://scilance[dot]com . Тоже все-таки не персональная страничка, web 2.0 с применением AJAX и все такое.
Но! Как был я быдлокодером, так и остался. Недовольство, огорчение Посмотреть на код профи приятно - например на код фреймворка (я пользовался CodeIgniter) - он напоминает аккуратную кирпичную кладку стены дома в маленьком альпийском городке. Мой же код напоминает приведенную ниже картинку. И речь идет не о том, чтобы соблюдать отступы и правильно расставлять скобки, одинаково расставлять горбы в названиях переменных и классов. Этому я более-менее научился. Речь об общей логике написания программ.
Профи пишут их как будто руководствуясь точным, рассчитанным до мелочей планом какого-то более глубокого уровня, нежели та самая блок схема работы программы, с которой рекомендуют начинать проект в самых продвинутых учебниках по программированию (о них ниже). Я сделал диаграмму! Я ей следовал! Но мой код все равно похож на лоскутное одеяло. Он состоит из сплошных затычек, заплаток и дыр.
Мне не хватает каких-то самых фундаментальных знаний о программировании.. Но где их взять? Все книжки, да и статьи, по программированию описывают синатксис, функции, ну.. некторые приемы.. Но как это все слить воедино? Я знаю что такое рекурсия! Но, ёлки-палки! Я никак не могу врубиться, куда же ее засунуть?
Или вот пример: работа над ошибками. Никак не могу понять, как профи это делают. В том же CI чуть не большинство функций вообще ничего не возвращают кроме кода ошибки. Как так?!? А для чего вообще нужны эти функции? Но ведь работает же, зараза! И как! Для меня это тайна за семью печатями...
А как научиться? Что читать? В чем секрет? Вот, собственно мой вопрос к вам, Мэтры!
2. SAD - 02 Сентября, 2010 - 23:08:35 - перейти к сообщению
А это что такое? Почему так некрасиво налазит меню на текст?
3. cHameleon - 02 Сентября, 2010 - 23:10:34 - перейти к сообщению
А у меня не налазит) у меня в ff скрипты запрещены)
4. Bertolomych - 02 Сентября, 2010 - 23:16:54 - перейти к сообщению
SAD пишет:
А это что такое? Почему так некрасиво налазит меню на текст?


оуч. Спасибо. Это я нововведение ввел - убрал скроллбар. и забыл протестить в IE...
(Добавление)

З.Ы. Но это к делу не относится, это ж вообще CSS. Улыбка
cHameleon пишет:
А у меня не налазит) у меня в ff скрипты запрещены)


ну, скрипты, если верить статистике w3c отключают около 4% пользователей.. можно их не учитывать особо.. На первых порах, по крайней мере.
(Добавление)
5. SAD - 02 Сентября, 2010 - 23:51:25 - перейти к сообщению
это у меня в ff
6. Viper - 03 Сентября, 2010 - 08:34:22 - перейти к сообщению
Bertolomych разрабы игнитера руководствовались правилами написания кода MVC. MVC не ново, но на наши просторы к простым программистам доходить начало только недавно. Также очень важно знать и понимать ООП какое оно в php5, тогда без труда поймете логику MVC и у вас не будет затычек Улыбка + учитывайте так же что в любой сложной системе могут отойти от стандартных методов MVC и использовать свои, а вы потом смотрите на код онимаете его, но без описания api самой системы мало что сможете сделать(яркий пример joomla 1.5).
7. Bertolomych - 03 Сентября, 2010 - 12:22:25 - перейти к сообщению
Viper, Спасибо! Но речь немного не о том.. С MVC я вродь знаком и ею именно и пользовался. Знаком и с ООП (не на 5+, но в целом понимаю, спасибо, кстати этому форуму во многом).
Суть вопроса в том, есть ли какая-нибудь книжка (или сайт какой-нибудь), по которой можно было бы изучить общую логику программирования как такового, а не какой-то конкретный язык? И, опять же, не какой-то конкретный подход, типа того же MVC.
Один мой знакомец учится на программиста в университете. У них там есть отдельный предмет "программирование". Не "программирование на С", а просто "программирование". И они там разбирают всякие типовые задачи, "как вообще писать программы", ту же рекурсию. Но я что-то не видел записей этих лекций (а даже если бы и увидел - они все равно на немецком, он в германии учится). Но наверняка есть же чего-нибудь в этом духе и на русском. Если бы я хотя бы знал, как такие книжки должны называться...
8. movEAX - 04 Сентября, 2010 - 00:01:57 - перейти к сообщению
"Чистый код" ( Роберт Мартин ), томики Кнута, "Технология разработки ПО" (Брауде), "Инжинерия ПО"(Соммервилл), "ОО анализ и проектирование" (Грэди Буч) - не знаю что еще посоветовать.. разве что по алгоритмизации книжку еще какую-нибудь.
9. EuGen - 04 Сентября, 2010 - 12:50:24 - перейти к сообщению
А у меня NoScript. И он все недоверенное блокирует. Неплохо бы проверять, включен ли JS у клиента и, если нет, а функционал без него ну никак нельзя сделать - сообщить что ли об этом (как, например, на рамблере это сделано).
Bertolomych пишет:
Вот, собственно мой вопрос к вам, Мэтры!

.. и килоМэтры..
По теме - наверное это больше к теоретизации процесса создания самого кода. Чтобы что-то было стройным, нужно сначала все продумать - сделать планы бизнес-логики, вытекающие из них требования к функционалу и детальные схемы (вроде UML для БД)
Для этого, помимо прочего, и опыт нужен. А судя по тому, что Вы упоминаете "заплатки" - это проблема, вызываемая неправильным планированием - в него не было заложено масштабирования. Профессионалы, как правило, предвидят большинство возможных изменений и выстраивают код как цепочку логически взаимосвязных сущностей так, чтобы потом ее было удобно и просто расширять под эти нужды.
10. Bertolomych - 13 Сентября, 2010 - 00:55:27 - перейти к сообщению
movEAX! Спасибо, будем читать.


EuGen, да-да. Уже повесил предупреждение.
Так Вы считаете, что все просто придет с опытом?

 

Powered by ExBB FM 1.0 RC1