Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как бы вы написали? - 2 :) 
V
    Опции темы
 
Я напишу:
первый вариант [ 2 ]  [40.00%]
второй вариант [ 3 ]  [60.00%]
Всего проголосовавших: 5
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
maxipub
Дата 6.11.2014, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(SoWa @  6.11.2014,  15:23 Найти цитируемый пост)
В вашем понимании if/elseif - как раз такой внедорожник. Хардкорно. Можно сделать элегантнее, как Tesla.

У каждого свое мнение. Опять же, я лучше напишу блок if(...), чем case и break. Как минимум - стоит взглянуть на отдельный if(...), и сразу понятно о чем идет речь. Просто не пойму, в чем принципиальная разница?


Вот написать

Код
$count = sizeof($_array);
for ($i = 0; $i ++; $i < $count)


Вместо

Код
foreach ($_array AS $val)


Это я понимаю не очень красиво. И то, можно оправдать. А настаивать на обязательном применении switch вместо if при сравнении одной переменной, ИМХО, не есть однозначно правильным решением.

Цитата(SoWa @  6.11.2014,  15:23 Найти цитируемый пост)
Взаимоисключающие вещи в одном блоке кода - не круто.

Я временами такое практикую. Странный стиль, и жесткий. Но если делается что-то монументальное, где логика не меняется или меняется редко, это круто. Принцип такой, что кормишь функции все однотипные операции и ни о чем дальше не паришься, она сама разберется что с чем. Я бы показал пример, чтобы было ясно о чем идет речь, но не стану, меня тут в порох сотрут за такое, чувствую)))

Цитата(SoWa @  6.11.2014,  15:23 Найти цитируемый пост)
"как сделал бы я"

Интересно, но мне такой код не нравится.

ЗЫ: я, кстати, в примерах специально писал жесткое сравнение === чтобы меня не начали свичами тыкать, которые используют ==, ан нет...

Код
<?php

$_param['notification'] = true;

switch ($_param['notification'])
{
    case 'sms':
        echo 'WHAT!? OOPS...OMG))';
    break;
    
    //...
}

?>


 smile  smile  smile  smile 
PM MAIL   Вверх
baldina
Дата 7.11.2014, 00:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(maxipub @  6.11.2014,  11:29 Найти цитируемый пост)
Вы скажете что это неправильный подход к проектированию, лишь бы оправдать применение switch!?

не-а. скорее всего не будет ни switch, ни if

Цитата(maxipub @  6.11.2014,  11:29 Найти цитируемый пост)
Я думаю, тут суть не столько в задаче, сколько в подходе.

неправильно думаете. к тому же в вашем случае "подход" это довольно странная догма, демонстрирующая отсутствие подхода.

Цитата(maxipub @  6.11.2014,  18:06 Найти цитируемый пост)
делается что-то монументальное, где логика не меняется или меняется редко

практика показывает, что бог смеется над нашими планами. но даже если так, сделать ошибку в каскаде if легко, найти ошибку сложно. для упрощения жизни люди придумали разные подходы - структурное программирование, ООП и всякое такое. судя по вашим словам, вы это отрицаете. какие у вас способы преодоления сложности? хочется услышать что-то новенькое

Цитата(maxipub @  6.11.2014,  18:06 Найти цитируемый пост)
в примерах специально писал жесткое сравнение

ну мы-то просто отвечали на вопрос. для нормального решения нужна конкретная задача, иначе это просто спор остроконечников и тупоконечников (заметьте, не мы его затеяли  smile ).
ЗЫ: а что, вы часто практикуете намеренное смешение типов? это еще тот OMG

насчет опроса (я в нем не участвовал, посчитав вопрос незначительным, но раз пошла такая пьянка...) 
if ... return vs if ... else при прочих равных имхо дело вкуса, все зависит от того как мыслит программист в данный момент. обычно это выражается глаголами и наречиями над существительными, которым соответствуют операторы и предикаты над переменными. ну, это если программист мыслит.
PM MAIL   Вверх
Aliance
Дата 7.11.2014, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Мне одному показалось логически не верным условие от нескольких разных аргументов? Фраза
Цитата(SoWa @  6.11.2014,  13:02 Найти цитируемый пост)
// Если доставить смс, иначе если доставить почтой, иначе если доставить в понедельник, иначе если доставить сейчас. А если доставить смской в понедельник? goto используете?       

тут весьма к месту.

Если уже и есть большая необходимость в такой логике, можно это сделать через побитовые операции.
PM MAIL WWW ICQ Skype   Вверх
SoWa
Дата 7.11.2014, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Aliance, уоу, не надо побитовых операций, человек и так весь на хардкоре  smile 


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
sQu1rr
Дата 7.11.2014, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 2
Всего: 13



Цитата(maxipub @  6.11.2014,  18:06 Найти цитируемый пост)
в примерах специально писал жесткое сравнение

А еще можно так  smile 
Код

switch(true) {
    case $_param['key'] === 'asdf':
        ...
        break;
    ...
}


PM MAIL Skype GTalk   Вверх
Aliance
Дата 7.11.2014, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



switch/true это буэ  smile 
PM MAIL WWW ICQ Skype   Вверх
_zorn_
Дата 7.11.2014, 17:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Понасобирались тут smile
А ТСу я предлагаю уйти в отпуск на год и более, а потом попробовать добавить функционал в свой код.
И он сам все поймет.
PM MAIL   Вверх
maxipub
Дата 7.11.2014, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(baldina @  7.11.2014,  00:37 Найти цитируемый пост)
 какие у вас способы преодоления сложности?

Лучше вам этого не знать. Легких путей не ищем. smile smile 

Цитата(baldina @  7.11.2014,  00:37 Найти цитируемый пост)
ЗЫ: а что, вы часто практикуете намеренное смешение типов? это еще тот OMG

Стараюсь без этого, но всякое бывает... Кстати, насчет смешения назрел еще один вопрос.

Если у нас некий целочисленный положительный $user_id, который при = 0 означает что это гость, иначе - зарегистрированный посетитель, вы напишите, так:

Код
if ($user)


Или будут всякие:

Код
if ($user != 0)


Код
if ($user > 0)


??? smile 

Цитата(_zorn_ @  7.11.2014,  17:45 Найти цитируемый пост)
А ТСу я предлагаю уйти в отпуск на год и более, а потом попробовать добавить функционал в свой код.

Спасибо за пожелание, в декабре как раз улетаю. Не на год, но на два месяца. smile 
PM MAIL   Вверх
baldina
Дата 7.11.2014, 18:16 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(maxipub @  7.11.2014,  17:58 Найти цитируемый пост)
Если у нас некий целочисленный положительный $user_id

у нас обычно 
Код

if ($user->isGuest())

для нелюбителей классов
Код

if (isGuest($user))

никаких $user >
и вообще вызывающей стороне про целочисленность id знать не положено
а в реализации
Код

const GUEST_ID=0;
...
if ($user->id == GUEST_ID)
...

PM MAIL   Вверх
bars80080
Дата 7.11.2014, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(maxipub @  6.11.2014,  10:54 Найти цитируемый пост)
В компании, где я работаю, разработчик только один, так что мне тут особо не с кем "собеседоваться"

могу только посочувствовать, сам был в такой ситуации несколько лет, как результат - стагнация мозга и полное отсутствие внутреннего развития.


Цитата(baldina @  7.11.2014,  18:16 Найти цитируемый пост)
у нас обычно 
Выделить всёкод PHP
1:
    
if ($user->isGuest())

о сколько нам открытий чудных откроет этот мир


в прошлом году меня наконец накрыло божественным откровением (не без участия доппрограммистов) и я вдруг за рассуждением по поводу "ленивой" загрузки дошёл до мысли всей мощи и великолепия ООП с его наследованием. (самому интересно, насколько я в этом продвинулся). теперь потихоньку клепаю ядро, которое позволит отказаться от работы с БД совсем (к сожалению, пока ещё приходится писать под старый код). не будет никаких выборок, чтений файлов, таблиц данных и сравнений параметров с числами или строками. только работа с реестрами (коллекциями) и объектами, и ни одного участка дублируемого кода. а потом, в случае обновления любой детальки - весь проект будет моментально принимать изменения...
надо мной просто радуга сияет, когдя я об этом думаю
PM MAIL WWW   Вверх
SoWa
Дата 7.11.2014, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



bars80080, ORM изобретаете? smile
Понимаю ваши чувства - когда три года назад пересел на Python+Django писать стало одно удовольствие smile

Это сообщение отредактировал(а) SoWa - 7.11.2014, 22:39


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
bars80080
Дата 8.11.2014, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(SoWa @  7.11.2014,  22:38 Найти цитируемый пост)
ORM изобретаете?

да, последняя попытка сделать свой велик. уже чисто из чувства неудовлетворённости
PM MAIL WWW   Вверх
_zorn_
Дата 8.11.2014, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(bars80080 @  8.11.2014,  04:24 Найти цитируемый пост)
дошёл до мысли всей мощи и великолепия ООП

Мое пожелание из той же кассы smile
Ну только не в отпуск уходил, а просто все работало и ладно (лет пять наверное). Когда понадобилось кое что переделать, я пришел в тихий ужас.
Тоже городил всякие ифы где попало...

Это сообщение отредактировал(а) _zorn_ - 8.11.2014, 06:17
PM MAIL   Вверх
maxipub
Дата 10.11.2014, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 517
Регистрация: 22.10.2009

Репутация: нет
Всего: 1



Цитата(bars80080 @  7.11.2014,  21:24 Найти цитируемый пост)
могу только посочувствовать, сам был в такой ситуации несколько лет, как результат - стагнация мозга и полное отсутствие внутреннего развития.

Все относительно. Могу, например, посочувствовать наемным работникам. Имел год подобного опыта в своей жизни. smile 

Цитата(bars80080 @  7.11.2014,  21:24 Найти цитируемый пост)
дошёл до мысли всей мощи и великолепия ООП

Да, мне тоже кажется что я что-то упускаю не используя ООП. Но видать я очень долго засиделся на Паскале. Еще лет 5 купил последнюю свою книгу по ООП (PHP: объекты, шаблоны и методики программирования, Мэтт Зандстра, 2-е издание), книга вообще атас, все расписано подробно и без воды. Раз около десяти начинал ее изучение, но пройдя страниц 100-150-200, начинал путаться в основе и приходилось начинать заново. Мой центральный могз не переваривает ООП и походу уже слишком стар для перепрошивки... smile 
PM MAIL   Вверх
baldina
Дата 10.11.2014, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(maxipub @  10.11.2014,  11:32 Найти цитируемый пост)
Мой центральный могз не переваривает ООП

почитайте Гради Буча

Добавлено через 2 минуты и 23 секунды
Цитата(maxipub @  10.11.2014,  11:32 Найти цитируемый пост)
уже слишком стар для перепрошивки

и все еще задается вопросами как писать if?
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.