- 1
- 2
- 3
- 4
- 5
const CHANGE_TYPE_ADD = 'add';//add elem in groups
const CHANGE_TYPE_CHANGE = 'change';//add elem
const CHANGE_TYPE_RECHANGE = 'rechange';//edit elem
const CHANGE_TYPE_EDIT = 'edit';//delete element from groups
const CHANGE_TYPE_DEL = 'del';//delete element
Жаль, что PHP не нормальный ЯП
Парадокс балба в действии.
Могу только отослать тебя к статье "фрактал плохого дизайна"
до этого visual basic 6 и delphi 5 лишь были.
>> visual basic 6
это многое объясняет)
Фрагмент слишком маленький. Без дополнительного контекста мы не разберёмся в задаче. Мы не знаем, для чего нужны эти константы.
Тем не менее, считаю, что ругать программистов надо по существу, иначе рискуем получить нежелательный эффект, как пат в шахматах, когда поторопились ставить мат.
Тут код короткий. Если _dk ничего не добавит, то и обсуждать по сути нечего.
--У тебя суверия и предрассудки
--Это выглядит как говно, пахнет как говно и на вкус как говно. Вероятно, это говно.
Джентльмену показывают стиральную машину.
--Это выглядит как говно, пахнет как говно и на вкус как говно. Вероятно, это говно.
Джентльмену показывают репчатый лук.
--Это выглядит как говно, пахнет как говно и на вкус как говно. Вероятно, это говно.
Сотрудник гипермаркета внимательно посмотрел на джентльмена и обнаружил, что у того лицо и очки были измазаны в говне.
А в языке с полностью динамической типушнёй енумы лишены смысла. Тут ведь придётся создавать громоздкие объекты на каждый чих, а это переголова.
Хотя создатели языка могли бы прикрутить енумоподобный синтаксис в качестве сахарка при создании констант...
Смотри, что нашёл:
http://php.net/manual/ru/class.splenum.php
Заметь: типичный пыхопетух не видит тут проблемы. PHP leads to brain damage.
Так что да, проблема скорее в изначальном именовании и в нескучных комментариях.
Есть 2 случая:
1) У нас битовые поля, и за константной стоит число. Приятнее писать foo & ZALUPA чем foo & 4. Это не тот случай.
2) Для статической проверки. Чтобы случайно не передать туда другое значение. Для этого есть енумы. Но это не тот случай.
Вопрос: так зачем же тут константа ZALUPA="ZALUPA" вместо обычного строкового литерала?
Ответ: потому что пыхопетух слышал звон, да не знает где он. Он где-то краем уха слышал что константы это хорошо, и пихает их к месту и не к месту. Потому что в пхп всё так сделано. Это часть культуры языка: рэндомно брать кусочки чужой идеологии и пихать в рендомные места.
> зачем нужны константы?
Зачем ты мне объясняешь, для чего нужны константы, если речь шла о енумах?
Даже в унылом похапе есть смысл объявлять константы: лучше сразу увидеть ошибку интерпретатора на опечатке (ворнинги можно превратить ошибки через set_error_handler), чем думать, отчего не работает проверка прав в коде
чтобы иногда местами случайно эмулировать ее с помощью костылей?
Если уж пришлось работать с какахой, кмк, лучше попытаться выжать из неё максимум пользы, чем с умным видом ссылаться на фракталы.
и кидать в рантайме ошибку
как тебе такая идея?
Гвидо уже применил, не интересно
Это для стат анализа
Я считаю что у каждого ЯПа должна быть своя идеология и свой подход
Если яп сознательно отказался от статической проверки то нахрена там константы?
А если не можешь без нее то не пиши на пыхе
Иначе каша
> Если Вы о тайпхинтах то они в рантайме не падают
Нет, я скорее об операторах вроде "test_" + 1
> Если яп сознательно отказался от статической проверки то нахрена там константы?
Как минимум константы нужны для того, чтобы что-то можно было объявить в ОДНОМ месте и использовать в НЕСКОЛЬКИХ местах вместо литерала. Это можно сделать и переменной, но зачем, если КОНСТАНТА лучше выражает это намерение?
К слову, наличие/отсутствие статических проверок определяется не столько языком, сколько реализацией. Для JS, к примеру, есть Closure Compiler, там можно типы навешивать, которые компилятор проверяет.
ну это просто строгая типизация. Опять таки: статически она не проверяется.
>>константы нужны для того, чтобы что-то можно было объявить в ОДНОМ месте и использовать в НЕСКОЛЬКИХ местах вместо литерала
Чем это лучше чем использовать литерал в разных местах?
Мне правда интересно. То-есть я понимаю чем это лучше в ЯПах со стат типизацией: рефакторинг и комплишен в IDE и защита от опечатки. А в пыхе чем лучше?
>>наличие/отсутствие статических проверок определяется не столько языком
Как минимум в ЯП должен быть синтаксис для указания типов
Сначала они используют один и тот же литерал в разных местах, а потом из программистов превращаются в верстальщиков...
Идеи такие:
1. Именованную константу можно поменять. Литерал же придётся менять вручную через search-replace.
2. Значение константы может быть очень длинным и сложным для запоминания. Тогда мы можем объявить константу с коротким и ясным именем.
3. И всё-таки при опечатке в названии константы выскочит хотя бы нотис. При опечатке в литерале не выскочит ничего.
CHANGE_TYPE_RECHANGE="CHANGE_TYPE_DELETE "?
Ты правда веришь что это хорошая идея?
2. Имя функции может быть очень длиным и сложным для запоминания, потому я всегда делаю функции заглушки
3. хотя-бы) Мы опять приходим к тому, с чего начали:
у статической проверки есть плюсы и минусы. Плюс в проверке, минус в том что больше писать.
Мы за каким-то фигом решили больше писать, оставив при этом весь яп без стат типизпции./
Или то, или другое
а) STATIC_PATH = "/home/118020/data/htdocs/public/"
б) MY_HASH = "0ce5a7d54092aa07e37b88ffbe098135"
Разве плохо?
И да, каким образом сюда приплетена статическая типизация?
Стат. анализ позволяет делать find usage, делать refactor rename в IDE, наконец в случае ENUM он позволяет сразу видеть все множество значений и не подсатвлятьтуда недопустимное
еще раз: чем они лучше литералов?
попробуй ответить на этот вопрос без истерик и оскорблений, и ты поймешь что константа типа FOO="FOO" имеет смысл только при наличии стат. типизации
Если хочется "собрать в одном месте" то почему не взять ЯП с енумом и стат типизацией?
а взрослые программисты умеют изучить другой язык
Когда мне надо было написать под iPhone я изучил objc примерно за месяц-другой а не стал искать под него компилятор, например, паскаля, потому что я его знаю
Впрочем плюсы стоят в стороне. Чтобы нормально выучить плюсы нужно 10 лет.
Джаву (скажем, зная C#) можно осилить за пару месяцев.
Я знал си, умел ООП, а ObjC при таком раскладе простой как три копейки.
Вот если бы я не знал си, то тады ой.
В любом случае писать проект на говноязыке просто потому что ты не способен осилить другие -- это глупо.
Бывают хорошие джависты и плохие
А хороших ПХПшников не бывает
И чем больше человек пишет на пхп тем больше он привыкает говнокодить
Ассоциация пхп == говнокод не верна. На пхп можно и нужно писать качественный код. Вы свой стереотип сложили из говнокода 3-5-летней давности. С тех пор пхп обзавелся всем необходимым, чтобы можно было не говнякать везде. И сейчас он вполне неплох для ЯП со слабой динамической типизацией (но мне бы больше понравилось, если бы типизация была строгой)
По-прежнему нет четкого понимания в отношении типизпции: с одной стороны даже интерфейсы есть, с другой стороны она исключительно динамическая.
В стандартном API ничего полезного нет, нормальной модульности нет, пакетный менеджер наколенный, в каждом фреймворке свой мирок
Пропертей нормальных нет, потому все фигачат приватные филды с сеттерами и геттерами
Знания о БД вместо единого API размазаны по всей доктрине, чтобы новую БД добавить нужно в 20 мест вставиться
Шаблонизатор говеный
Даже джанга и та в тыщу раз лучше
я думал педерасты со своими баграми овладели окончательно
> До нормальной архитектуры еще пилить и пилить.
ровно то, о чем и говорит наш главный пыхохейтер
язык порочен, программисты, которые мыслят этим языком порочны, слишком долгий бекграунд говноделия
даже все новые проекты начинаются как говно, потому что проффессионалы тупо не могут иначе
Подумал что кони - это багры.
вообще, это крайне стандартная ситуация, когда сроки жмут, поэтому только нормальный язык/фреймворк/парадигмы спасают
учитывая, что пыхопроффессионалы повально не смогли даже в такую элементарную вещь, как mvc, а уж всякие "ынтерпрайзные" вещи как аспекты, IoC, модульность, слабые связи между компонентами им вообще неведомы, вот и остается, как говнокодить сразу по зеленому свистку, как проект стартует
я просто ткнул в первую ссылку по запросу в гугл на "model repository service php" и что я вижу?
http://laravel.io
You don't really perform ANY logic in the services. Logic should belong to models. Services are like glue for models. Services simply call methods in the models to perform an operation.
мне просто нечего добавить к этому пиздецу
Сам автор ПХП написал замечательную статью:
https://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
После нее обычно все становится понятно
Дальше не читал
я просто смотрю в гугл
http://i1.wp.com/zenofcoding.com/wp-content/uploads/2015/11/framework_trends.png
я так понимаю, это очень по хипстерски менять каждый год фреймворки
у меня в группе фронтенда несколько человек тоже этим болеет
и если честно, я не нагуглил про симфони 3 ничего на скорую руку,
только гайды (ну как гайды, геттинг стартед)
в гайдах, кстати, никакого mvc в помине нет
зато есть java-like аннотации, засунутые в doxygen-like комментарии - очень по взрослому, зрело, я бы поязвил, что это в жабе уже 100 лет как вовсю, но на самом деле даже приятно стало - кто-то принес проффессионалам книжку из нормальных языков, кое-что в ней смогли они найти для себя
но.. и всё те же болячки рендеринга страниц на сервере, 2016 год на дворе, а пыхобляди всё ещё кипятят
я вот чего не пойму - неужели нет желания даже краем глаза посмотреть, а что же у нормальных людей сделано?
А вдруг у клиента селерон 600?
Вообще симфони и доктрина - это spring и hibernate джавные на пхп. И это хорошо, и это замечательно. Замечательно, что не стали изобретать то, что уже давно отладили.
Да кто же вас заставляет на сервере рендерить? Не хочешь - выкидываешь твиг, ставишь любимый клиентский фрейм и ебашишь. Никто не навязывает ничего. Не нравится твиг - выкинул, не нравится доктрина - выкинул, можешь другую орм подключить, можешь руками SQL писать, а от доктрины только управление миграциями оставить. Можешь вообще голый DI только юзать. Это просто набор компонентов, которые одинаково хорошо работают как по отдельности, так и вместе.
>и если честно, я не нагуглил про симфони 3 ничего на скорую руку,
Не знаю что вы хотели нагуглить, материала в сети - хватает. Просто никто не пишет об этом на каждом углу, не рекламирует как лару. Смысла нет. Кто осилит - те и так знают, а кто не знает - тот и или не осилит и вообще хз как оказался в рядах кодеров, или пишет на другом яп и ему насрать на пхп, симфони, также как среднему пхпешнику насрать на современные тенденции в руби.
По сф доки достаточные. Есть best practice, есть getting started, есть дока по основным компонентам, входящим в стандартную поставку. Прочая документация в phpDoc (который аналог doxygen)
>в гайдах, кстати, никакого mvc в помине нет
А вам важно что бы в гайдах об этом было написано? сф - это фрейм для больших проектов (все что не сдюжит вордпрес), архитектуру выбираете вы, а не разработчик фреймворка. Хотите мвц будет, можете mvvm, mvp, mva, adr и любой другой набор понятных и не очень букв.
ясно-понятно
конечно, когда пыхопроффессионал говорит, что ему нужны методы в модели, реализующие бизнес-логику, мне становится печально
это значит это что? что у него не было шансов почитать как надо. Потому что в даже в гайдах об этом не написано
и вот мы и подобрались к сути
если симфони с доктриной - пыхоклоны спринга и хибернейта, почему бы успешным господам сразу не писать на спринге и хибернейте?
статический, компилируемый, ошибки при сборке, вменяемые стектрейсы, пул подключений к бд, масштабирование, ci - всё уже сделано, работает хорошо, используется более серьезными ребятами, чем пыхосрань, а косты на реализацию будут близки?
не будет работать на бесплатном хостинге?
Да, а еще в Козьмодемьянске джава программеров куда меньше чем пхпистов, и платить им больше нужно
это как в душу ему плюнуть
то ли дело вёрдпрес
А можно сделать чтобы падали?
Но Гвидо против
просто представь что функция
превратилась в
До хуёв охочий
От этого зависит, казнить или миловать код.
чтобы не опечататься и не написать строковым литералом RECRATE вместо RECREATE
В PHP использование необъявленной именованной константы — это всего лишь ворнинг (точнее, даже нотис), а не еррор. Привыкайте.
Работы — непочатый край!