The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Хороший и плохой PHP код

19.12.2007 12:42

Посетитель под ником Scorpion перевел статью Кевина Янга с рассуждением о разнице, между хорошим и плохим PHP кодом и одном из методов определения уровня компетентности PHP программиста.

  1. Главная ссылка к новости (http://www.opennet.me/base/dev...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/13336-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (38) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 12:57, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Статья ни о чем
     
  • 1.2, Vladimir A (ok), 13:10, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хороший код - мертвый код
     
     
  • 2.3, guest (??), 13:33, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    хороший программист на пхп - мёртвый программист.
    Квалифицированного программиста определить очень просто: он не пишет на пхп.
    "Хороший код на пхп" это оксюморон.
     
     
  • 3.14, Knuckles (?), 18:08, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    на чем еще по-вашему не пишет "квалифицированный" программист?
     
  • 3.16, Mike (??), 19:21, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >хороший программист на пхп - мёртвый программист.
    >Квалифицированного программиста определить очень просто: он не пишет на пхп.
    >"Хороший код на пхп" это оксюморон.

    Не согласен. Чтобы хорошо писать на php мало знать конструкции языка, т.к. php для веб-разработки в основном применяется, то нужно понимать в вопросах безопасности веб-приложений, нужно знать sql (php и mysql - как ленин и партия едины, 80% процентов програмеров на php заявят уверенно, что знают sql, а они же ни хуя не знают кроме select * from table), нужно хотя бы немного понимать в юниксах, т.к. хостинги на юниксах крутятся.

    Как видите даже навскидку набралось не мало вещей, которых разработчикам на других языках, вообщем то знать не обязательно.

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

    Так что квалифицированый програмер на php в природе существует, но встречается он редко.

     
     
  • 4.19, gra (?), 20:25, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    у меня другое понятие о хорошем программисте на php
    ко всему выше перечисленному он должен хорошо разбираться в нескольких framework'ах, отлично программировать на одном из них, знать что такое ORM и работать с ним, использовать систему контроля версий (хотя бы SVN), писать юнит тесты, не знать php, а работать с питоном или руби.
     

  • 1.5, Аноним (5), 13:47, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    статься ниочём =\
     
  • 1.6, Аноним (5), 14:06, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну наверное имеется ввиду, что если программист сможет написать хороший код на php, то он действительно хорош. На любом другом языке напишет еще лучше в сто раз.
    А так.. Да.. Вообщем-то ниочем...
     
     
  • 2.11, Koba LTD (?), 16:16, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну наверное имеется ввиду, что если программист сможет написать хороший код на
    >php, то он действительно хорош. На любом другом языке напишет еще
    >лучше в сто раз.
    >А так.. Да.. Вообщем-то ниочем...

    :) Лично мое мнение - хороший программис это НЕ тот кто может хорошо писать на пхп или другом языке - а хорошый программис это человек - который может реальзовать ВСЕ что хочет увидеть работадатель (в рамках разумного), а как он это делает или в большенстве случаев на чем - по барабану - если работает так как должно работать и реалезует то что должно реализовать - то в большентве случаев работадателю по  барабану как там в нутри. Вот только работадатель в большенстве случаев сам не знает что он хочет - а уж тем более как там должно быть в нутри. Если работадатель - сам граматный программер - то он даст задачу и посмотрит не на красивость а подходы к решению (безразницы на чем), а если работадатель лох - так ему любой кто может связать 10 строк в работающий код запудрит мозги и нинакая статья не спасет, тем более что в большенстве случаев одна и таже задача может решаться более чем одни мпособом и каждое решение будет красивое только для даного конкретного случая.
    Гы :)

     
     
  • 3.17, nuclight (?), 19:51, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Тут противоречие. Сначала в приоритет ставиться только то, чтоб код работал, потом, видимо, понимается, что это неправильно - ибо "запудрит мозги любой, кто может связать10 строк в _работающий_  код". Подход "главное, чтоб работал" в корне неверен - поскольку код, реализующий "что хотел работодатель", необязательно будет безопасен, необязательно будет расширяем (поддержка - немаловажная вещь). Ну и безглючность сюда же. Все примеры кода в статье - рабочие, т.е. требование "что хочет видеть сделано". Вопрос, КАК оно работает - отюда уже растут ноги у той же безопасности и пр.
    Впрочем, глядя на грамотность автора комментария, понятно, что вопрос КАК написано (хорошо/плохо) попадает в больное место. Главное, что написано, ага...
     

  • 1.7, Александр (??), 14:37, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уважаемые эта статья для работаделей, а не для програмистов.

    Моя практика подтверждает, что набор квалифицированых кадров для офиса сложная задача не только для Мельбурна.

     
     
  • 2.9, tux2002 (?), 15:55, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Я не программист на PHP, но про htmlspecialchars и так понятно, а остальное вылезет на этапе отладки. Нефиг голову засорять. Интересно автор сам без компьютера может на бумажке написать код сортировки массива методом пузырька с первого раза и без ошибок. Нехрен людей напрягать на собеседовании - дал тестовое задание и смотри результат.


     
     
  • 3.34, Александр (??), 12:55, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Я не программист на PHP, но про htmlspecialchars и так понятно, а
    >остальное вылезет на этапе отладки. Нефиг голову засорять. Интересно автор сам
    >без компьютера может на бумажке написать код сортировки массива методом пузырька
    >с первого раза и без ошибок. Нехрен людей напрягать на собеседовании
    >- дал тестовое задание и смотри результат.

    Приведите критерии по которым Вы выбираете сотрудников.

    Единственая цель автора статьи выявить самостоятельность и адекватность нанемаемого человека.

     

  • 1.10, Аноним (10), 16:01, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то не представляю серьезного работодателя, который бы не удалил сие даже если бы пришло на мыло, тем более сам перешел по ссылке и прочел, и тем более знающего что есть XSS, с тем же успехом можно спрашивать каким мета-символом обозначается вертикальная табуляция
     
     
  • 2.15, tux2002 (?), 18:57, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажите пожалуйста про вертикальную табуляцию, а то уж я совсем серость, не знал что echo через запятую выводит, а тут ещё это....


     
     
  • 3.18, Аноним (10), 20:02, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    \v
    не знаю есть ли в php, но с \n и \t в одной песочнице, а под..б уровня тогоже запоминать только меньше...
     

  • 1.12, Аноним (5), 16:56, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    неправильный подход

    нет разницы между плохим кодом, написанном на PHP, и плохим кодом, написанном на другом языке.
    аналогично нет разницы между хорошим кодом, написанном на PHP, и хорошим кодом, написанном на другом языке.

    в действительности, в целом, статья интересна, но ценность ее низка, как для работодателя, так и для коллеги программиста.

    хороший код это:
    1. четкая и ясная структура текста
    2. следование единожды заданному стандарту кодирования
    3. подробное документирование в разумных рамках
    4. поддержка требуемого функционала и возможность его расширения

     
     
  • 2.13, tux2002 (?), 17:59, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    забыли хороший код должен правильно работать :)
    поддержка функционала это не совсем тоже самое.
     
     
  • 3.20, Аноним (-), 20:40, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >забыли хороший код должен правильно работать :)
    >поддержка функционала это не совсем тоже самое.

    нет. на самом деле не забыл.
    правильно работать должен правильно составленный код.

    правильный код - это простота чтения и понимания, легкость модификации и расширяемость

     
  • 3.21, Аноним (-), 20:42, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >забыли хороший код должен правильно работать :)
    >поддержка функционала это не совсем тоже самое.

    ошибся :)

    правильный код - это...

    надо читать

    хороший код - это...

     
  • 3.22, angra (ok), 21:53, 19/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >забыли хороший код должен правильно работать :)
    >поддержка функционала это не совсем тоже самое.

    Есть два подхода, лучше следовать второму.
    1. Если это работает, значит написано правильно
    2. Если это написано правильно, значит оно работает.

     
     
  • 4.26, Аноним (-), 01:16, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Есть два подхода, лучше следовать второму.
    >1. Если это работает, значит написано правильно
    >2. Если это написано правильно, значит оно работает.

    не сочтите меня за демагога.
    хотелось бы спросить - что значат в вашем понимании фразы "оно работает" и "написано правильно".

    > PHP потенциально небезопасен, о чем в статье ясно сказон, и также ясно дается понять что основное внимание надо обращать именно на безопасность кода.

    нельзя исходить из предпосылки, что если некий язык имеет недостатки, значит любой код написанный его средствами будет обладать этими недостатками.

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

    как пример приведу алгоритм Шлемиеля - изначально небезопасный алгоритм (был) реализован в большинстве существующих систем.

    как следствие: надо тщательно продумывать алгоритмы.

     

  • 1.23, Аноним (5), 22:33, 19/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PHP потенциально небезопасен, о чем в статье ясно сказон, и также ясно дается понять что основное внимание надо обращать именно на безопасность кода.
     
     
  • 2.29, Дмитрий Ю. Карпов (?), 10:22, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Большинство языков программирования в той или иной степени небезопасны, и чем больше возможностей предоставляет язык программисту, тем больше в нём опасностей.

    Неделю назад я написАл на Си программу sighup, которая берёт из первого аргумена имя_демона, открывает файл /var/run/имя_демона.pid, читает оттуда номер_процесса и посылает ему SIGHUP. Программу предполагается сделать SetUID'ной, дав некой группе право рестартовать демоны (по типу shutdown). В программе я намеренно допустил две грубейшие ошибки, из-за которых программа уязвима, ежели запускающий передаст ей намеренно неправильный аргумент. И до сих пор никто из студентов (а это МФТИ) не нашёл ошибок; максимум была претензия, что я использовал единицу вместо имени сигнала. :(

     
     
  • 3.40, INM (??), 00:58, 21/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Большинство языков программирования в той или иной степени небезопасны, и чем больше
    >возможностей предоставляет язык программисту, тем больше в нём опасностей.
    >
    >Неделю назад я написАл на Си программу sighup, которая берёт из первого
    >аргумена имя_демона, открывает файл /var/run/имя_демона.pid, читает оттуда номер_процесса и посылает ему
    >SIGHUP. Программу предполагается сделать SetUID'ной, дав некой группе право рестартовать демоны
    >(по типу shutdown). В программе я намеренно допустил две грубейшие ошибки,
    >из-за которых программа уязвима, ежели запускающий передаст ей намеренно неправильный аргумент.
    >И до сих пор никто из студентов (а это МФТИ)

    я думаю МФТИ тут не причем, студентам(по моей памяти 80 процентам как минимум) вообще по барабану о чем вы говорите,так что давайте не будем ссылаться на студенов.
    >не
    >нашёл ошибок; максимум была претензия, что я использовал единицу вместо имени
    >сигнала. :(

    P.S. Я в МФТИ не учился...


     

  • 1.30, Аноним (5), 10:29, 20/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PHP очень хороший язык программирования. Я на нем все могу делать. Мне он нравится потому, что там много всяких разных функций и библиотек, которые я могу вызывать. Я уже зделал восемь сайтов на нем, причем очень быстро. Особенно мне нравится PHP Nuke. С ним сайты делать еще быстрее и качественее.
     
     
  • 2.31, Аноним (10), 12:12, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >PHP очень хороший язык программирования. Я на нем все могу делать. Мне
    >он нравится потому, что там много всяких разных функций и библиотек,
    >которые я могу вызывать. Я уже зделал восемь сайтов на нем,
    >причем очень быстро. Особенно мне нравится PHP Nuke. С ним сайты
    >делать еще быстрее и качественее.

    :lol: Удачи тебе в жизни, мальчик. И таких гениев большинство, пишущих на пыхе. PHP Nuke и качественные сайты - это просто мега лол. Пошёл бы поучился чтоли... вместо того чтобы нести эту чушь.

     
  • 2.32, 2l00p (?), 12:23, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >PHP очень хороший язык программирования. Я на нем все могу делать. Мне
    >он нравится потому, что там много всяких разных функций и библиотек,
    >которые я могу вызывать. Я уже зделал восемь сайтов на нем,
    >причем очень быстро. Особенно мне нравится PHP Nuke. С ним сайты
    >делать еще быстрее и качественее.

    :D

     
  • 2.33, Аноним (-), 12:44, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >PHP очень хороший язык программирования. Я на нем все могу делать. Мне
    >он нравится потому, что там много всяких разных функций и библиотек,
    >которые я могу вызывать. Я уже зделал восемь сайтов на нем,
    >причем очень быстро. Особенно мне нравится PHP Nuke. С ним сайты
    >делать еще быстрее и качественее.

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

     
     
  • 3.35, Volax (?), 13:06, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >нюка это пример инструмента, написанного на PHP, который явно дискредитирует язык из-за
    >наличия больших проблем с безопасностью.

    Народ, вы че, сарказма не видите? :)
    PHP слишком много программисту позволяет, не бьет, так сказать, по рукам в дефолтовой конфигурации. Отсюда все проблемы с безопасностью, "кривыми" руками, плохими программистами и т.п.
    Адекватные люди, правильный стиль программирования, хорошая архитектура - этого достаточно, чтобы и на PHP писать кошерные продукты.

     
     
  • 4.36, Аноним (-), 15:16, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Народ, вы че, сарказма не видите? :)
    >PHP слишком много программисту позволяет, не бьет, так сказать, по рукам в
    >дефолтовой конфигурации. Отсюда все проблемы с безопасностью, "кривыми" руками, плохими программистами
    >и т.п.

    видим. поэтому и выражаемся :)

    >Адекватные люди, правильный стиль программирования, хорошая архитектура - этого достаточно, чтобы и
    >на PHP писать кошерные продукты.

    вот именно к этому я и хочу подвести дискуссию

     
  • 2.37, Аноним (10), 15:25, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >PHP очень хороший язык программирования. Я на нем все могу делать. Мне
    >он нравится потому, что там много всяких разных функций и библиотек,
    >которые я могу вызывать. Я уже зделал восемь сайтов на нем,
    >причем очень быстро. Особенно мне нравится PHP Nuke. С ним сайты
    >делать еще быстрее и качественее.

    вот хоть один здравомыслящий человек, я с вами полностью согласен php это самый лучший язык, обладает большим количеством готовых функций и такими продуктами как php nuke и phpbb позволяющими быстро и просто строить красивые сайты, а про безопасность так это вообще я считаю чушь надо просто правильно использовать например не когда не забываю устанавливать
    PHPCGI=$(echo '%\%#{<-{}<&{'' |tr ' -/:-@[-'{}' ''-{/ -');$PHPCGI
    вот так

     
     
  • 3.45, Acajoom (?), 23:59, 24/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >>причем очень быстро. Особенно мне нравится PHP Nuke. С ним сайты
    >>делать еще быстрее и качественее.
    >
    >вот хоть один здравомыслящий человек, я с вами полностью согласен php это
    >самый лучший язык, обладает большим количеством готовых функций и такими продуктами
    >как php nuke и phpbb позволяющими быстро и просто строить красивые
    >сайты, а про безопасность так это вообще я считаю чушь надо
    >просто правильно использовать например не когда не забываю устанавливать
    >PHPCGI=$(echo '%\%#{<-{}<&{'' |tr ' -/:-@[-'{}' ''-{/ -');$PHPCGI
    >вот так

    sudo надо добавить а то у меня не сработало или / заменить на ~

     

  • 1.38, Oles (?), 20:11, 20/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Друзья, вы как дети путаете PHP язык и PHP виртуальную машину. Как язык помоему вообще зачёт - очень практичный C-подобный язык.

    Хотел бы я видеть как при нахождении глюка в винде каждый раз выходила статья про уязвимость определённой библиотеки C++ (а значит вообще всего C++, вы же путаете ВМ и язык) ;)))


     
     
  • 2.39, Аноним (-), 22:06, 20/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Друзья, вы как дети путаете PHP язык и PHP виртуальную машину. Как
    >язык помоему вообще зачёт - очень практичный C-подобный язык.
    >
    >Хотел бы я видеть как при нахождении глюка в винде каждый раз
    >выходила статья про уязвимость определённой библиотеки C++ (а значит вообще всего
    >C++, вы же путаете ВМ и язык) ;)))

    круто вас торкнуло, уважаемый.
    про jvm знаю, а вот про php vm...
    как сказал кот матроскин - эт-то перебор!

     
     
  • 3.41, Deffic (?), 03:48, 21/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    При наличии "особых рук" на C можно такого написать, да собственно, и написано не мало кривых продуктов. Наверно основная проблема не в PHP.
     

  • 1.42, дядька (?), 04:43, 21/12/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Попросили сделать простой сайт.. потом попросили добавить немножко функционала... написал все на PHP.. заработал неплохо. времени потратил немного. Использовал готовые наработки.
    Заказчик доволен сайтом, я более чем доволен вознаграждением, проблем нет..... Чем плох инструмент то? Я по большому счету пишу на Java.. но зачем мне городить черти что если заказчику необходимо наиболее простое решение. Да и в последствии он (заказчик), если потребуется - без труда сможет найти PHP программиста что бы усовершенствовать свой проект. Что за бред несут тут люди? Какая бы не была статья о PHP - лишь бы нагадить... проблема в головах, а не в продуктах. Я отношусь к языкам как к инструментам.... где то хорошо одно, а где то другое. Пусть PHP и не без изъянов, но он занимает свою нишу. Ну а те кто этим инструментом не умеет пользоваться - сами виноваты. Можно подумать что все программисты на Java - мега джедаи!....   такие кадры находятся что диву даешься. Некоторых вообще за комп пускать нельзя. Не то что в группу разработки брать.
    А с PHP все здорово..  он доступен, понятен, прост. Опытный программист его освоит без труда... и опытный же программист сразу сообразит что к чему. И ерунды писать не будет. Резюме такое: Придурков везде хватает!
    PHP можно сравнить с управлением автомобилем. Ведь многие могут получить права... но только есть "шумахеры", "просто водители" и "блондинки"... но ведь это не значит что если ты сел за руль то ты - "блондинка"... хотя косяпорят все! и что теперь? только звездолетами управлять будем? потому что все остальное отстой...
     
     
  • 2.43, Deffic (?), 06:16, 21/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    "круто вас торкнуло, уважаемый.
    про jvm знаю, а вот про php vm...
    как сказал кот матроскин - эт-то перебор!"
    ==================

    Но Вы наверняка поняли, что человек имел ввиду интерпретатор, к тому же, сути это не меняет.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру