За последние 24 часа нас посетили 15713 программистов и 1631 робот. Сейчас ищут 947 программистов ...

Наболевшее в PHP

Тема в разделе "Прочее", создана пользователем kostyl, 30 апр 2009.

  1. kostyl

    kostyl Guest

    Говорим о наболевшем в разработки приложений на PHP.
    От себя хочу сказать, что никак не получается изначально спроектировать приложение, чтобы получить "чистый" код. Чистый значит без всяких лишний фичей, которые в конце разработке все чаще и чаще появляются. Возможно такая проблема возникает при изначальном неправильном проектировании либо из-за малого опыта приемов использования паттернов и всё такое, но эта проблема есть и меня она напрягает.
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Ну почему код ну никак не пишется силой мысли?!
     
  3. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    +1
     
  4. decoder

    decoder Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    469
    Симпатии:
    0
    [vs]
    Дааа... лежишь на диване и думаешь... а код в это время записывается... моя мечта... :)
     
  5. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    Проблема возникает от того, что мыслишь паттернами, а не головой и как лучше.

    Надо думать как построить приложение и потом смотреть где какой паттерн применить и нафиг он там вообще сдался, а не придумывать всё под патерны, а потом (извините за мой французкий) ебаться как бы всё это сделать.
     
  6. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    бесит делать маленькие похожие модули=)) бесит выискивать ошибки в текстах(особенно учитывая, что у меня врождённая безграмотность=) ) Добивает доделывать вёрстку за нерадивых дизайнеров. Раздражает когда цепляются к мелочам.
     
  7. kostyl

    kostyl Guest

    Возможно... За французский извиняю ;)
     
  8. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Не знаю как у Вас, у нас дизайнер делает дизайн. А верстальщик верстает. :)
    Могу посоветовать хорошую верстальщицу, всегда все в срок и аккуратно делает.

    Ну, наверное, у тебя хорошая концентрация на цели. У меня бы тогда код выглядел как-то так:

    PHP:
    1.  
    2. <php
    3. class  MegaClass{
    4.  
    5.      /**
    6.       * Умный комментарий про фиелд
    7.       * @var  tField
    8.       */
    9.      public   $field;
    10.  
    11.      public  function  __construct($field){
    12.        Блин, сцуко сраный комар!!!!!!!!1111одынодынодын!!!!
    13.        $this->field   =  $field
    14.     }
    15.  
    16.  
    17.  
    18.     public   Через час рабочий день заканчивается, не забыть купить тест на беременность function  setField($field){
    19.         интересно на php.ru написали что-нибудь новенькое? А блин я же $this->field  =  его закрыл  $field;
    20.    }
    21. }
    22. ?>
    23.  
    Ну и так далее. :)
    Впрочем если будет хорошая очишалка от мусора вполне себе будет удобно пользоваться.
     
  9. antonn

    antonn Активный пользователь

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    именно в пхп меня ничего не бесит.
    а легкость работы с массивами и регулярками просто окрыляет.
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А меня бесит, что на РНР музыку нельзя писать!
     
  11. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Kreker, можно
     
  12. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Я знаю ;) Можно попробовать даже. Правда без знаний лучше не соваться.
     
  13. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Пока что мне два момента не нравятся :)
    PHP:
    1. <?php
    2. $object->method()['key'];
    PHP:
    1. <?php
    2. class A {/* */}
    3.  
    4. class B {
    5.     protected $a = new A();
    6. }
     
  14. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    я класс работы с БД переписывал раз 15 пока не получилось то, что мне действительно надо.
    все остальное тоже раз 10. пока не осталось ядро, которое я таскаю уже 8 лет и ни разу оно не подводило.

    а так только опыт и ниче больше.

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

    а что действительно меня продвигало сильно вперед - это когда я брался за задачи в которых ниче не понимал. например организация кластера. я месяц не вылезал из докментаций, форумов, общения и т.д. пока не добился понимания того, что и как работает и взаимодействует, хотя ниче в этом не понимал абсолютно.
     
  15. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    За денюшки конечно?
     
  16. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    даааа. цену я вряжал по максимуму...
    =)
     
  17. kostyl

    kostyl Guest

    ну, к этому я уже пришел, так что дело за малым )))...
     
  18. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Честно говоря, я читал про тесты, но так и не понял, как машина может отследить неполадки по всем ветвям.
     
  19. kostyl

    kostyl Guest

    а по всем ветвям и не надо, только основной функционал и граничные условия... Вот знаешь как работает нейронная сеть? Ты учишь ее распознавать 100 образов. А потом она сама распознает 10000. Тут точно также. Если хочешь можешь кстати с ней и попробывать тестить, если тебе уж так нужно все ветви, ну или большинство...
     
  20. в TDD ты на каждый чих пишешь тест. Написал тест - написал код - проверил - и по новой.
    Суть в том, что если на 2000м повторе в фазе написания кода ты что то напортачишь, поломав логику уже написанного кода, соответствующий тест сломается, и ты это увидишь.

    Но, есть одно но, которое отталкиевает меня от правильного TDD напрочь - все вышесказанное верно, только если у тебя нет ошибок в тестах. А это тоже всего лишь код, с таким же уровнем ошибок )
     
  21. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Как можно наворачивать там, где цель оцевидна?

    Я любитель наворотов, но когда пишу не себе программирование перестаёт быть дзеном - программированием ради программирования.

    А не нравится в PHP названия функций. Что за анальный анал их придумывал? str_replace(), strtr(), substr_count(). В попецкин арбуз бы затолкать.
     
  22. kostyl

    kostyl Guest

    Если ты имеешь в виду мое слово "фичи" то они тут означают больше кривость кода, чем навороты...
    А пример можешь как бы ты хотел?
     
  23. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Да, я под фичами понял именно навороты. :)

    Чтобы одинакого str_pos(), str_sub_count(). Или strreplace(), strpos(). Просто чтобы в одном стиле. Поэтому мои любимые функции это функции для работы с массивами. :)
     
  24. String.Find() String.SubstringCounnt() String.Replace().... чтоб все по взрослому ;)
     
  25. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    флоппик, хотел написать $stringvar->replace(), но потом решил не выпендриваться. :) Кстати, некоторым проще читать справа налево:
    Код (Text):
    1. strtolower(str_replace(1, 2, $var)) vs. string.replace(1, 2).lower()
    Где-то огромный холивар на эту тему видел.

    Лично мне однофигственно, но если бы был выбор, то писал бы цепочками. Как-то логичнее потому что.