В чём разница между быдлокодом и нормальным программированием?

FRIE

Новичок
В чем основные моменты и как вообще правильно программировать чтобы код был прост и понятен и работал быстро? Есть чё почитать желательно не где для новичнов а где именно рассказывают как писать код правильно ?
 

expellee

Новичок
Можно начать с книжки "Рефакторинг" Фаулера. Многое будет очевидно, но это и хорошо.
 

Духовность™

Продвинутый новичок
Можно начать с книжки "Рефакторинг" Фаулера. Многое будет очевидно, но это и хорошо.
Не очень хороший пример. Рефакторинг нужно использовать тогда, когда ты сам понимаешь на интуитивном уровне, КАК это ЛУЧШЕ сделать. Я видел код по Фаулеру (воспринятый буквально), так там такой звиздец был, что мама не горюй - прием "выделение метода" был понят буквально и в контроллере была куча безсмысленных методов, на каждый пшик. Они вызывали сами себя по 100 раз и разобраться было в этом нереально.

В чем основные моменты и как вообще правильно программировать чтобы код был прост и понятен
Посмотри код популярный опенсоурс проектов. Следуй стандартам программирования. Используй отступы. Не пиши по-русски латиницей. Давай четкие и ясные имена переменным и функциям на английском языке.
 

AmdY

Пью пиво
Команда форума
FRIE
в начале забудь про работал быстро. работает быстро - клёво, не работает - что же поделаешь.

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

FRIE

Новичок
Про "работал быстро" я имел ввиду не скорость разработки, а скорость выполнения сервером php кода. Я смотрел многие готовые движки с открытым кодом, и они работают очень медленно в сравнении с моим кодом, но я пишу на простом if else , с циклами, мне кажется что я быдлокодер =) Видел примеры многих скриптов написанных на классах, зачем так делают не понимаю. Хочу просто узнать как пишется идеальный код, чтобы работал быстро и был понятен.
 

craz

Нестандартное звание
работал быстро != был понятен зачастую
 

Krishna

Продался Java
Пробежался глазами, там одна вода по теории программирования, я бы хотел увидеть как конкретно грамотно писать код на php, с примерами
+1 Читай Макконнела, там то, что надо для начинающего.
Там не вода, а правда жизни. Развернуто описывать как правильно писать именно на пхп никто не будет.

Вот в этом номере есть немного общих рекомендаций в статье "Лучшая практика", но они довольно колхозные.
В качестве примера, как правильно писать код - очень советую посмотреть код проекта http://www.doctrine-project.org/
Лучше я пока не видел.
 
  • Like
Реакции: AmdY

Adelf

Administrator
Команда форума
Пробежался глазами, там одна вода по теории программирования, я бы хотел увидеть как конкретно грамотно писать код на php, с примерами
Ты хочешь всего, сразу и не напрягаясь. Может где-то в других профессиях так и можно(хотя очень сомневаюсь), но здесь не получится.
Хочешь - сиди и читай книги, код. Анализируй. Включи мозги.
Не забудь еще о том, что вероятно ты просто не можешь быть хорошим программистом. Я знаю таких. Год-полтора бьются(постоянно спрашивая у меня элементарщину) и все равно думают, что фреймворки - говно, а мое "page=ляля поэтому include ляля.module.php" гораздо лучше и быстрее работает. Поэтому я уверился, что такие люди есть. Либо не хотят, либо не могут.. хз.
 

FRIE

Новичок
Не забудь еще о том, что вероятно ты просто не можешь быть хорошим программистом. Я знаю таких. Год-полтора бьются(постоянно спрашивая у меня элементарщину) и все равно думают, что фреймворки - говно, а мое "page=ляля поэтому include ляля.module.php" гораздо лучше и быстрее работает. Поэтому я уверился, что такие люди есть. Либо не хотят, либо не могут.. хз.
Я вот как раз уже 1.5 года как в теме =) как бы и не новичёк, уже написал сайт с системой управления, и еще один раздел для одного сайта с формированием и рассчетом заказов, но это всё как бы для себя. Конечно всё что может php я еще не пробовал но для несложного сайта моих знаний вполне себе хватает. Теперь хотелось бы перед тем как создавать что-то серьезное, повысить свой уровень, и знать точно что я не быдлокодер и делаю всё "по понятиям" =)

Может курсы какие хорошие есть?
 

FRIE

Новичок
Ладно давайте так, приведите мне пример кода который считаете нормальным, может всё не так плохо? =)))
 

Adelf

Administrator
Команда форума

phprus

Moderator
Команда форума
FRIE
По моему вопрос заданный в заголовке темы несколько ортогонален вопросам из текста сообщения.
Код может быть хорошо оформлен, но все равно остаться былокодом.
Также код может быть некрасив и непонятен с первого взгляда, но быдлокодом он может и не быть.

Для меня лично основное отличие быдлокода от нормальной программы заключается в том, понимал ли разработчик что он делает или действовал методом тыка. Для быдлокода скорее характерна разработка методом тыка и перебора вариантов. А разницу между этими подходами чаще всего видно невооруженным взглядом.
Остальные отличия, такие как оформление, читаемость частично вытекают из основного, да и лечить их в случае чего проще, чем непонимание разработчиком того, что он пишет.


Если отвечать на вопрос из сообщения, то я бы порекомендовал для начала прочитать Макконнелла "Совершенный код", а уже потом переходить к книгам по рефакторингу. Но ни одна книга не заменит того, что всегда нужно понимать, что именно должен делать код, который ты пишешь.
 

A1x

Новичок
Мне нравится мысль Роберта Мартина по поводу комментариев:
Комментарий - всегда признак неудачи. Мы вынуждены использовать комментарии, потому, что нам не всегда удается выразить свои мысли без них, однако гордиться здесь нечем. [...]
Каждый раз, когда вы пишете комментарий, - поморщитесь и ощутите свою неудачу
 

Adelf

Administrator
Команда форума
Угу. У Фаулера примерно также.
Если плохой код имеет неприятный запах, то комментарии просто играют роль дезодоранта, заглушающего эти запахи :)
 

Духовность™

Продвинутый новичок
Комментарий - всегда признак неудачи. Мы вынуждены использовать комментарии, потому, что нам не всегда удается выразить свои мысли без них, однако гордиться здесь нечем. [...]
Каждый раз, когда вы пишете комментарий, - поморщитесь и ощутите свою неудачу
бредятина

Комментарии нужны и важны. Особенно, если присутствует сложная логика вычислений. Хороший комментарий, описывающий класс или метод, дает 60-80% информации о программе. Изучать программу исключительно по именам методов (а Фаулер это имеет в виду) - это не самое лучшее решение.
 

phprus

Moderator
Команда форума
A1x, Adelf, Духовность™
А в приведенных цитатах случайно каких либо важных слов не выкинуто (я не читал Фаулера и Роберта Мартина)?

А то комментарии можно разделить на два вида:
1) Комментарии кода - бесполезны, так как пересказывают код менее точным естественным языком.
2) Комментарии логики и архитектурных решений - описывают почему были приняты такие архитектурные решения, а не другие и описывают не очевидные с первого взгляда элементы алгоритма, как алгоритма, а не его реализации. Без таких комментариев сложность понимания приложения возрастает в разы.
 
Сверху