Говорим о наболевшем в разработки приложений на PHP. От себя хочу сказать, что никак не получается изначально спроектировать приложение, чтобы получить "чистый" код. Чистый значит без всяких лишний фичей, которые в конце разработке все чаще и чаще появляются. Возможно такая проблема возникает при изначальном неправильном проектировании либо из-за малого опыта приемов использования паттернов и всё такое, но эта проблема есть и меня она напрягает.
Проблема возникает от того, что мыслишь паттернами, а не головой и как лучше. Надо думать как построить приложение и потом смотреть где какой паттерн применить и нафиг он там вообще сдался, а не придумывать всё под патерны, а потом (извините за мой французкий) ебаться как бы всё это сделать.
бесит делать маленькие похожие модули=)) бесит выискивать ошибки в текстах(особенно учитывая, что у меня врождённая безграмотность=) ) Добивает доделывать вёрстку за нерадивых дизайнеров. Раздражает когда цепляются к мелочам.
Не знаю как у Вас, у нас дизайнер делает дизайн. А верстальщик верстает. Могу посоветовать хорошую верстальщицу, всегда все в срок и аккуратно делает. Ну, наверное, у тебя хорошая концентрация на цели. У меня бы тогда код выглядел как-то так: PHP: <php class MegaClass{ /** * Умный комментарий про фиелд * @var tField */ public $field; public function __construct($field){ Блин, сцуко сраный комар!!!!!!!!1111одынодынодын!!!! $this->field = $field } public Через час рабочий день заканчивается, не забыть купить тест на беременность function setField($field){ интересно на php.ru написали что-нибудь новенькое? А блин я же $this->field = его закрыл $field; } } ?> Ну и так далее. Впрочем если будет хорошая очишалка от мусора вполне себе будет удобно пользоваться.
Пока что мне два момента не нравятся PHP: <?php $object->method()['key']; PHP: <?php class A {/* */} class B { protected $a = new A(); }
я класс работы с БД переписывал раз 15 пока не получилось то, что мне действительно надо. все остальное тоже раз 10. пока не осталось ядро, которое я таскаю уже 8 лет и ни разу оно не подводило. а так только опыт и ниче больше. очень рекомендую уделять особое внимание теоритическим исследованиям (алгоритмы) и написанием маленьких тестов. а что действительно меня продвигало сильно вперед - это когда я брался за задачи в которых ниче не понимал. например организация кластера. я месяц не вылезал из докментаций, форумов, общения и т.д. пока не добился понимания того, что и как работает и взаимодействует, хотя ниче в этом не понимал абсолютно.
Честно говоря, я читал про тесты, но так и не понял, как машина может отследить неполадки по всем ветвям.
а по всем ветвям и не надо, только основной функционал и граничные условия... Вот знаешь как работает нейронная сеть? Ты учишь ее распознавать 100 образов. А потом она сама распознает 10000. Тут точно также. Если хочешь можешь кстати с ней и попробывать тестить, если тебе уж так нужно все ветви, ну или большинство...
в TDD ты на каждый чих пишешь тест. Написал тест - написал код - проверил - и по новой. Суть в том, что если на 2000м повторе в фазе написания кода ты что то напортачишь, поломав логику уже написанного кода, соответствующий тест сломается, и ты это увидишь. Но, есть одно но, которое отталкиевает меня от правильного TDD напрочь - все вышесказанное верно, только если у тебя нет ошибок в тестах. А это тоже всего лишь код, с таким же уровнем ошибок )
Как можно наворачивать там, где цель оцевидна? Я любитель наворотов, но когда пишу не себе программирование перестаёт быть дзеном - программированием ради программирования. А не нравится в PHP названия функций. Что за анальный анал их придумывал? str_replace(), strtr(), substr_count(). В попецкин арбуз бы затолкать.
Если ты имеешь в виду мое слово "фичи" то они тут означают больше кривость кода, чем навороты... А пример можешь как бы ты хотел?
Да, я под фичами понял именно навороты. Чтобы одинакого str_pos(), str_sub_count(). Или strreplace(), strpos(). Просто чтобы в одном стиле. Поэтому мои любимые функции это функции для работы с массивами.
флоппик, хотел написать $stringvar->replace(), но потом решил не выпендриваться. Кстати, некоторым проще читать справа налево: Код (Text): strtolower(str_replace(1, 2, $var)) vs. string.replace(1, 2).lower() Где-то огромный холивар на эту тему видел. Лично мне однофигственно, но если бы был выбор, то писал бы цепочками. Как-то логичнее потому что.