- 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
bagor 19.08.2016 15:46 # −44
bot 19.08.2016 16:38 # +41
guest 26.08.2016 23:30 # −14
maxyc 25.08.2016 16:10 # +27
guesto 25.08.2016 16:11 # +9
Жаль, что PHP не нормальный ЯП
maxyc 25.08.2016 16:23 # +28
SladkiyBagorchik 25.08.2016 16:31 # +8
guesto 26.08.2016 04:00 # +27
Парадокс балба в действии.
Могу только отослать тебя к статье "фрактал плохого дизайна"
maxyc 26.08.2016 13:29 # −14
до этого visual basic 6 и delphi 5 лишь были.
guesto 26.08.2016 13:47 # −14
>> visual basic 6
это многое объясняет)
maxyc 26.08.2016 13:50 # −13
guesto 26.08.2016 14:00 # −13
inkanus-gray 26.08.2016 14:56 # −8
Фрагмент слишком маленький. Без дополнительного контекста мы не разберёмся в задаче. Мы не знаем, для чего нужны эти константы.
guesto 26.08.2016 16:48 # −13
inkanus-gray 26.08.2016 17:22 # −13
Тем не менее, считаю, что ругать программистов надо по существу, иначе рискуем получить нежелательный эффект, как пат в шахматах, когда поторопились ставить мат.
Тут код короткий. Если _dk ничего не добавит, то и обсуждать по сути нечего.
1024-- 29.08.2016 19:00 # −12
guesto 29.08.2016 19:03 # −14
--У тебя суверия и предрассудки
1024-- 29.08.2016 19:15 # −7
--Это выглядит как говно, пахнет как говно и на вкус как говно. Вероятно, это говно.
Джентльмену показывают стиральную машину.
--Это выглядит как говно, пахнет как говно и на вкус как говно. Вероятно, это говно.
Джентльмену показывают репчатый лук.
--Это выглядит как говно, пахнет как говно и на вкус как говно. Вероятно, это говно.
Сотрудник гипермаркета внимательно посмотрел на джентльмена и обнаружил, что у того лицо и очки были измазаны в говне.
inkanus-gray 26.08.2016 13:56 # −11
А в языке с полностью динамической типушнёй енумы лишены смысла. Тут ведь придётся создавать громоздкие объекты на каждый чих, а это переголова.
Хотя создатели языка могли бы прикрутить енумоподобный синтаксис в качестве сахарка при создании констант...
Смотри, что нашёл:
http://php.net/manual/ru/class.splenum.php
guesto 26.08.2016 13:59 # −13
Заметь: типичный пыхопетух не видит тут проблемы. PHP leads to brain damage.
roman-kashitsyn 26.08.2016 14:02 # −10
inkanus-gray 26.08.2016 14:44 # −13
Так что да, проблема скорее в изначальном именовании и в нескучных комментариях.
_dk 26.08.2016 21:42 # −13
guesto 26.08.2016 18:55 # −12
Есть 2 случая:
1) У нас битовые поля, и за константной стоит число. Приятнее писать foo & ZALUPA чем foo & 4. Это не тот случай.
2) Для статической проверки. Чтобы случайно не передать туда другое значение. Для этого есть енумы. Но это не тот случай.
Вопрос: так зачем же тут константа ZALUPA="ZALUPA" вместо обычного строкового литерала?
Ответ: потому что пыхопетух слышал звон, да не знает где он. Он где-то краем уха слышал что константы это хорошо, и пихает их к месту и не к месту. Потому что в пхп всё так сделано. Это часть культуры языка: рэндомно брать кусочки чужой идеологии и пихать в рендомные места.
roman-kashitsyn 26.08.2016 19:17 # −12
> зачем нужны константы?
Зачем ты мне объясняешь, для чего нужны константы, если речь шла о енумах?
Даже в унылом похапе есть смысл объявлять константы: лучше сразу увидеть ошибку интерпретатора на опечатке (ворнинги можно превратить ошибки через set_error_handler), чем думать, отчего не работает проверка прав в коде
guesto 26.08.2016 19:18 # −11
чтобы иногда местами случайно эмулировать ее с помощью костылей?
roman-kashitsyn 26.08.2016 19:23 # −11
Если уж пришлось работать с какахой, кмк, лучше попытаться выжать из неё максимум пользы, чем с умным видом ссылаться на фракталы.
guest 26.08.2016 19:24 # −13
и кидать в рантайме ошибку
как тебе такая идея?
roman-kashitsyn 26.08.2016 19:25 # −13
Гвидо уже применил, не интересно
guest 26.08.2016 19:26 # −12
Это для стат анализа
Я считаю что у каждого ЯПа должна быть своя идеология и свой подход
Если яп сознательно отказался от статической проверки то нахрена там константы?
А если не можешь без нее то не пиши на пыхе
Иначе каша
void_main 26.08.2016 19:29 # −32
CTEPTOP 26.08.2016 19:35 # −13
roman-kashitsyn 26.08.2016 19:34 # −12
> Если Вы о тайпхинтах то они в рантайме не падают
Нет, я скорее об операторах вроде "test_" + 1
> Если яп сознательно отказался от статической проверки то нахрена там константы?
Как минимум константы нужны для того, чтобы что-то можно было объявить в ОДНОМ месте и использовать в НЕСКОЛЬКИХ местах вместо литерала. Это можно сделать и переменной, но зачем, если КОНСТАНТА лучше выражает это намерение?
К слову, наличие/отсутствие статических проверок определяется не столько языком, сколько реализацией. Для JS, к примеру, есть Closure Compiler, там можно типы навешивать, которые компилятор проверяет.
guest 26.08.2016 19:42 # −13
ну это просто строгая типизация. Опять таки: статически она не проверяется.
>>константы нужны для того, чтобы что-то можно было объявить в ОДНОМ месте и использовать в НЕСКОЛЬКИХ местах вместо литерала
Чем это лучше чем использовать литерал в разных местах?
Мне правда интересно. То-есть я понимаю чем это лучше в ЯПах со стат типизацией: рефакторинг и комплишен в IDE и защита от опечатки. А в пыхе чем лучше?
>>наличие/отсутствие статических проверок определяется не столько языком
Как минимум в ЯП должен быть синтаксис для указания типов
inkanus-gray 26.08.2016 19:55 # −13
Сначала они используют один и тот же литерал в разных местах, а потом из программистов превращаются в верстальщиков...
Идеи такие:
1. Именованную константу можно поменять. Литерал же придётся менять вручную через search-replace.
2. Значение константы может быть очень длинным и сложным для запоминания. Тогда мы можем объявить константу с коротким и ясным именем.
3. И всё-таки при опечатке в названии константы выскочит хотя бы нотис. При опечатке в литерале не выскочит ничего.
guest 26.08.2016 20:15 # −12
CHANGE_TYPE_RECHANGE="CHANGE_TYPE_DELETE "?
Ты правда веришь что это хорошая идея?
2. Имя функции может быть очень длиным и сложным для запоминания, потому я всегда делаю функции заглушки
3. хотя-бы) Мы опять приходим к тому, с чего начали:
у статической проверки есть плюсы и минусы. Плюс в проверке, минус в том что больше писать.
Мы за каким-то фигом решили больше писать, оставив при этом весь яп без стат типизпции./
Или то, или другое
inkanus-gray 26.08.2016 21:25 # −13
а) STATIC_PATH = "/home/118020/data/htdocs/public/"
б) MY_HASH = "0ce5a7d54092aa07e37b88ffbe098135"
Разве плохо?
И да, каким образом сюда приплетена статическая типизация?
guest 26.08.2016 21:31 # −13
Стат. анализ позволяет делать find usage, делать refactor rename в IDE, наконец в случае ENUM он позволяет сразу видеть все множество значений и не подсатвлятьтуда недопустимное
inkanus-gray 26.08.2016 19:51 # −13
guest 26.08.2016 19:55 # −13
еще раз: чем они лучше литералов?
попробуй ответить на этот вопрос без истерик и оскорблений, и ты поймешь что константа типа FOO="FOO" имеет смысл только при наличии стат. типизации
inkanus-gray 26.08.2016 20:04 # −13
_dk 26.08.2016 21:39 # −12
guest 26.08.2016 21:41 # −14
Если хочется "собрать в одном месте" то почему не взять ЯП с енумом и стат типизацией?
guest 26.08.2016 22:39 # −13
guest 26.08.2016 23:38 # −13
а взрослые программисты умеют изучить другой язык
Когда мне надо было написать под iPhone я изучил objc примерно за месяц-другой а не стал искать под него компилятор, например, паскаля, потому что я его знаю
guest 26.08.2016 23:45 # −13
guest 26.08.2016 23:48 # −13
Впрочем плюсы стоят в стороне. Чтобы нормально выучить плюсы нужно 10 лет.
Джаву (скажем, зная C#) можно осилить за пару месяцев.
Я знал си, умел ООП, а ObjC при таком раскладе простой как три копейки.
Вот если бы я не знал си, то тады ой.
В любом случае писать проект на говноязыке просто потому что ты не способен осилить другие -- это глупо.
_dk 27.08.2016 00:03 # −13
guest 27.08.2016 00:12 # −13
_dk 27.08.2016 00:17 # −13
guest 27.08.2016 00:18 # −14
Бывают хорошие джависты и плохие
А хороших ПХПшников не бывает
И чем больше человек пишет на пхп тем больше он привыкает говнокодить
3_14dar 27.08.2016 00:25 # −13
_dk 27.08.2016 01:16 # −13
Ассоциация пхп == говнокод не верна. На пхп можно и нужно писать качественный код. Вы свой стереотип сложили из говнокода 3-5-летней давности. С тех пор пхп обзавелся всем необходимым, чтобы можно было не говнякать везде. И сейчас он вполне неплох для ЯП со слабой динамической типизацией (но мне бы больше понравилось, если бы типизация была строгой)
guesto 27.08.2016 01:32 # −13
По-прежнему нет четкого понимания в отношении типизпции: с одной стороны даже интерфейсы есть, с другой стороны она исключительно динамическая.
В стандартном API ничего полезного нет, нормальной модульности нет, пакетный менеджер наколенный, в каждом фреймворке свой мирок
Пропертей нормальных нет, потому все фигачат приватные филды с сеттерами и геттерами
Знания о БД вместо единого API размазаны по всей доктрине, чтобы новую БД добавить нужно в 20 мест вставиться
Шаблонизатор говеный
Даже джанга и та в тыщу раз лучше
dxd 27.08.2016 09:23 # −12
3_14dar 29.08.2016 21:08 # −13
_dk 26.08.2016 22:58 # −11
guest 26.08.2016 23:15 # −13
guest 26.08.2016 23:29 # −13
_dk 26.08.2016 23:31 # −13
defecate-plusplus 29.08.2016 20:39 # −13
я думал педерасты со своими баграми овладели окончательно
> До нормальной архитектуры еще пилить и пилить.
ровно то, о чем и говорит наш главный пыхохейтер
язык порочен, программисты, которые мыслят этим языком порочны, слишком долгий бекграунд говноделия
даже все новые проекты начинаются как говно, потому что проффессионалы тупо не могут иначе
_dk 29.08.2016 20:51 # −13
3_14dar 29.08.2016 21:09 # −13
Подумал что кони - это багры.
defecate-plusplus 29.08.2016 21:42 # 0
вообще, это крайне стандартная ситуация, когда сроки жмут, поэтому только нормальный язык/фреймворк/парадигмы спасают
учитывая, что пыхопроффессионалы повально не смогли даже в такую элементарную вещь, как mvc, а уж всякие "ынтерпрайзные" вещи как аспекты, IoC, модульность, слабые связи между компонентами им вообще неведомы, вот и остается, как говнокодить сразу по зеленому свистку, как проект стартует
_dk 29.08.2016 21:45 # 0
defecate-plusplus 29.08.2016 21:51 # 0
я просто ткнул в первую ссылку по запросу в гугл на "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.
мне просто нечего добавить к этому пиздецу
guesto 29.08.2016 22:06 # 0
Сам автор ПХП написал замечательную статью:
https://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html
После нее обычно все становится понятно
_dk 29.08.2016 22:14 # 0
Дальше не читал
_dk 29.08.2016 22:07 # 0
defecate-plusplus 29.08.2016 22:33 # 0
я просто смотрю в гугл
http://i1.wp.com/zenofcoding.com/wp-content/uploads/2015/11/framework_trends.png
я так понимаю, это очень по хипстерски менять каждый год фреймворки
у меня в группе фронтенда несколько человек тоже этим болеет
и если честно, я не нагуглил про симфони 3 ничего на скорую руку,
только гайды (ну как гайды, геттинг стартед)
в гайдах, кстати, никакого mvc в помине нет
зато есть java-like аннотации, засунутые в doxygen-like комментарии - очень по взрослому, зрело, я бы поязвил, что это в жабе уже 100 лет как вовсю, но на самом деле даже приятно стало - кто-то принес проффессионалам книжку из нормальных языков, кое-что в ней смогли они найти для себя
но.. и всё те же болячки рендеринга страниц на сервере, 2016 год на дворе, а пыхобляди всё ещё кипятят
я вот чего не пойму - неужели нет желания даже краем глаза посмотреть, а что же у нормальных людей сделано?
bormand 29.08.2016 22:40 # 0
А вдруг у клиента селерон 600?
defecate-plusplus 29.08.2016 22:47 # 0
_dk 30.08.2016 00:12 # +1
Вообще симфони и доктрина - это spring и hibernate джавные на пхп. И это хорошо, и это замечательно. Замечательно, что не стали изобретать то, что уже давно отладили.
Да кто же вас заставляет на сервере рендерить? Не хочешь - выкидываешь твиг, ставишь любимый клиентский фрейм и ебашишь. Никто не навязывает ничего. Не нравится твиг - выкинул, не нравится доктрина - выкинул, можешь другую орм подключить, можешь руками SQL писать, а от доктрины только управление миграциями оставить. Можешь вообще голый DI только юзать. Это просто набор компонентов, которые одинаково хорошо работают как по отдельности, так и вместе.
>и если честно, я не нагуглил про симфони 3 ничего на скорую руку,
Не знаю что вы хотели нагуглить, материала в сети - хватает. Просто никто не пишет об этом на каждом углу, не рекламирует как лару. Смысла нет. Кто осилит - те и так знают, а кто не знает - тот и или не осилит и вообще хз как оказался в рядах кодеров, или пишет на другом яп и ему насрать на пхп, симфони, также как среднему пхпешнику насрать на современные тенденции в руби.
По сф доки достаточные. Есть best practice, есть getting started, есть дока по основным компонентам, входящим в стандартную поставку. Прочая документация в phpDoc (который аналог doxygen)
>в гайдах, кстати, никакого mvc в помине нет
А вам важно что бы в гайдах об этом было написано? сф - это фрейм для больших проектов (все что не сдюжит вордпрес), архитектуру выбираете вы, а не разработчик фреймворка. Хотите мвц будет, можете mvvm, mvp, mva, adr и любой другой набор понятных и не очень букв.
void_main 30.08.2016 00:31 # −1
_dk 30.08.2016 00:33 # 0
guesto 30.08.2016 00:55 # 0
ясно-понятно
_dk 30.08.2016 00:59 # 0
defecate-plusplus 30.08.2016 10:18 # 0
конечно, когда пыхопроффессионал говорит, что ему нужны методы в модели, реализующие бизнес-логику, мне становится печально
это значит это что? что у него не было шансов почитать как надо. Потому что в даже в гайдах об этом не написано
и вот мы и подобрались к сути
если симфони с доктриной - пыхоклоны спринга и хибернейта, почему бы успешным господам сразу не писать на спринге и хибернейте?
статический, компилируемый, ошибки при сборке, вменяемые стектрейсы, пул подключений к бд, масштабирование, ci - всё уже сделано, работает хорошо, используется более серьезными ребятами, чем пыхосрань, а косты на реализацию будут близки?
не будет работать на бесплатном хостинге?
void_main 30.08.2016 18:30 # −20
Analotolievich 30.08.2016 21:02 # 0
guesto 30.08.2016 21:08 # 0
Да, а еще в Козьмодемьянске джава программеров куда меньше чем пхпистов, и платить им больше нужно
defecate-plusplus 30.08.2016 21:14 # 0
это как в душу ему плюнуть
то ли дело вёрдпрес
void_main 30.08.2016 21:15 # −20
Analotolievich 30.08.2016 21:15 # 0
void_main 30.08.2016 21:15 # −20
defecate-plusplus 30.08.2016 21:16 # −1
void_main 30.08.2016 21:17 # −28
Analotolievich 30.08.2016 21:55 # −1
void_main 30.08.2016 21:55 # −20
3_14dar 27.08.2016 00:28 # −13
А можно сделать чтобы падали?
guest 27.08.2016 00:30 # −13
Но Гвидо против
3_14dar 27.08.2016 03:05 # −13
guesto 27.08.2016 03:11 # −12
просто представь что функция
превратилась в
3_14dar 27.08.2016 04:36 # −12
guest 26.08.2016 22:34 # −13
3_14dar 27.08.2016 00:26 # −13
_dk 25.08.2016 16:33 # +28
SladkiyBagorchik 25.08.2016 17:06 # +7
guesto 26.08.2016 03:58 # +28
До хуёв охочий
inkanus-gray 26.08.2016 17:23 # −13
От этого зависит, казнить или миловать код.
guesto 26.08.2016 17:50 # −11
чтобы не опечататься и не написать строковым литералом RECRATE вместо RECREATE
inkanus-gray 26.08.2016 18:10 # −13
В PHP использование необъявленной именованной константы — это всего лишь ворнинг (точнее, даже нотис), а не еррор. Привыкайте.
_dk 26.08.2016 20:03 # −11
inkanus-gray 26.08.2016 21:26 # −13
_dk 26.08.2016 21:48 # −13
roman-kashitsyn 26.08.2016 13:54 # −10
inkanus-gray 26.08.2016 14:46 # −10
Работы — непочатый край!