![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
||
|
|
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Свой вариант просьба не предлагать, интересует не оптимальный, а именно ваше предпочтение одного из двух.
Первый вариант:
Второй вариант:
Спасибо за голос! Не судите строго за глупый вопрос. |
||||
|
|||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
switch религия не позволяет использовать?
-------------------- Всем добра |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
SoWa, а вам придерживаться условий опроса?
|
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
maxipub, мне как-то за подобный вопрос на хабре карму слили, и теперь я атеист
Ну а если серьезно - откуда взялись такие варианты? Интересно же -------------------- Всем добра |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 14 Всего: 137 |
Как придерживаться условий опроса, если они мягко говоря кажутся странными. Ведь для таких случаев switch и придумали. Но если уж религия не позволяет писать switch и есть желание городить забор из if/elseif - то второй вариант предпочтительней конечно.
|
|||
|
||||
| s0lman |
|
|||
|
Белый и лохматый ![]() ![]() Профиль Группа: Участник Сообщений: 637 Регистрация: 1.11.2007 Где: Ukraine Репутация: 9 Всего: 29 |
Один мой друзяка как-то рассказывал, что заставили на жабаскриптовом проекте переписать все свичи на ифы -------------------- Когда я уже выучусь на волшебника? :( |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Да что там switch, я еще и ООП в разработке не использую!
Если честно, мне симпатичней инструменты более низкого уровня что ли. Они универсальны. Зачем нам switch, если if проще и универсальней? Всуньте свой switch в функцию из примера, но с несколькими параметрами (массивом с параметрами). Не выйдет... Так что я не вижу смысла мешать в свой код то switch то if, если везде без каких-либо потерь можно обойтись последним. Впрочем, ни кого и не призываю действовать так же - личное дело. ;) Продолжаем, голосуем... Всем спасибо за участие! Это сообщение отредактировал(а) maxipub - 5.11.2014, 17:59 |
|||
|
||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Я надеюсь, это сарказм? Если нет - ваше дело, вы правы, но добрый совет - не светите этим так сильно(особенно на собеседованиях или с коллегами), не так поймут. А пример про switch некорректный. Во-первых, сделать switch от нескольких аргументов - изи. Во-вторых, как уже выше сказали - разные назначения switch/if, и слово "мешать" как-то слух режет в таком контексте. Это как "мешать" классы, абстрактные классы(в свете php) и интерфейсы - зачем интерфейсы и абстрактные классы, когда есть просто классы, если так размышлять? -------------------- Всем добра |
|||
|
||||
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
В компании, где я работаю, разработчик только один, так что мне тут особо не с кем "собеседоваться". Камон:
|
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
заметьте, $_param['notification'] и $_param['call_back'] вычисляются лишь единожды конечно не скажу, что это изящно, но есть и другие способы... вы покажите конкретную задачу или её часть, тогда будет предметно. |
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 6 Всего: 12 |
Хы, почти слово в слово Это сообщение отредактировал(а) _zorn_ - 6.11.2014, 11:19 |
|||
|
||||
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Не совсем понятно, как это облегчает чтение кода? Убирает if(...), добавляя case и break... Ага... А если обрабатываемых параметров будет 10?
Я думаю, тут суть не столько в задаче, сколько в подходе. Я не стану использовать switch не при каких обстоятельствах. Выбирать между разными СУБД или между СУБД и файлами - это требует знания конкретной задачи. A wsitch или if - это уже дело вкуса, ИМХО! |
||||
|
|||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Не согласен про дело вкуса. Так же как выбор БД - это под конкретную задачу. Иначе патерны проектирования, объектно-ориентированный анализ и прочие прелести придумали теоретики от нефиг делать
И уже переходя к этой забавной задачке - ничего в примере ниже не смущает? // Если доставить смс, иначе если доставить почтой, иначе если доставить в понедельник, иначе если доставить сейчас. А если доставить смской в понедельник? goto используете?
Что выведется? В общем, вопрос уже глубже, чем "какую конструкцию использовать". Я думаю у всех участников темы появляется вопрос - вы вообще представляете, что вам надо? -------------------- Всем добра |
|||
|
||||
| maxipub |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Там не доставить сейчас или доставить в понедельник, а необходимость менеджеру перезвонить клиенту - сейчас или с понедельника. Смс и почта выполняются автоматически, звонки менеджера - человеком, это взаимоисключающие вещи в данном случае. Добавлено через 5 минут и 10 секунд
Ну это то же самое, что сказать что для города покупайте только седаны, а для села - только пикапы. Если я езжу по городу на внедорожнике, по-вашему, я уже не прав? |
||||
|
|||||
| SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
Нет нет, я к тому, что вы знаете, что можно ездить на внедорожнике по городу, и знаете что говна месить на седане - не очень.
Так вот суть в том, что в программировании доступен любой "транспорт", и не очень разумно рассекать по городу на Toyota Surf с четырехлитровым турбодизелем. В вашем понимании if/elseif - как раз такой внедорожник. Хардкорно. Можно сделать элегантнее, как Tesla. А теперь предметно мое ИМХО(если вы не против слов "как сделал бы я". Если против - скижате, больше не буду). 1) Взаимоисключающие вещи в одном блоке кода - не круто. Разнести по разным методам. Например processNotification($_param['notification']) и processCallback($_param['callback']) 2) Не знаю как у вас сейчас в системе, но есть вероятность повторного использования кода в этих условиях. Соответственно выносим куски кода в методы notifyBySms, notifyByEmail, pushCallback 3) Просто на подумать, может понравится метод - вынести методы в HashTable. Примерно так:
Теперь вам не надо ни if, ни switch. Останется нарисовать только функцию отображения множества параметров в один параметр. Но это уже не круто тоже - совать туда разные куски логики ))) -------------------- Всем добра |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |