21

Re: Яка умова краще?

quez написав:
iovchynnikov написав:

Не буду казати що такі помилки з 1 = дуже рідкі, і важко досвідченому програмісту її зробити, а IDE такі ситуації теж викриває, але у 80% такі перевірки виглядають так:

if (var == null)
   throw new NullPointerException();

Тому навіть якщо мова підтримує присвоєння у if, то там буде true і вивалиться виняток.

Але ж там буде false, що в PHP, що в с++.

Оупс, соррі, полягався на це:

muhasjo написав:

і все, цей код валідний при чому завжди рівне true

22

Re: Яка умова краще?

Я швидше напишу !isset($item) ніж буду дорівнює лупити.

Подякували: 221VOLT1

23

Re: Яка умова краще?

Я швидше напишу !isset($item) ніж буду дорівнює лупити.

Кожному своє ) Але ідея має право бути)
Взагалі я обрав варіант не присвоювати у condition і налаштував інспекції у phpstorm

Подякували: mike1

24

Re: Яка умова краще?

ktretyak написав:

Це впливає на нелогічність думки, це теж саме що міряти не "від -> до", а "до -> від".

результат то буде той самий

25

Re: Яка умова краще?

funivan написав:

Я швидше напишу !isset($item) ніж буду дорівнює лупити.

Кожному своє ) Але ідея має право бути)
Взагалі я обрав варіант не присвоювати у condition і налаштував інспекції у phpstorm

доречі як називається це правило в phpstorm для php?

26

Re: Яка умова краще?

Assignment in condition

Подякували: mike1

27

Re: Яка умова краще?

funivan написав:

Але ж там буде false, що в PHP, що в с++.

+1 Саме так там буде false і умова ніколи не буде спрацьовувати)

@221VOLT

чому б не порівнювати

    if($it!==null){
    echo $f;
    }else{
    echo $z;
    }

бувають ситуації що вам треба наприклад створити обєкт якщо його немає.

if($user === null ) { 
  $user = new User();
  $user->save();
}
echo   $user->getId();

Ви звісно можете написати

if($user !== null ) { 

} else{
  $user = new User();
  $user->save();
}

echo   $user->getId();

Але це буде дуже погано. І ще одне. для Особисто мені краще перевіряти умову на true аніж на false.

поясніть будь-ласка мені нубу чому так буде погано?
працювати ж буде так само?

-----

не треба важких редакторів які хочуть гігабайти місця на диску та гігабайти оперативки ---
ставимо легесенький малесенький Notepad++
(який "вміє" багато мов програмування та підтримує будь-яке розмалювання + можна додати будь-яку мову + багато плагінів)
http://f1.s.сайт-злодій/15iw6PTT9.png
ставимо легесенький малесенький плагін сніппети
налаштовуємо-додаємо свої сніппети які вставляються на місце курсора по одному кліку

все геніальне - просте  :)

28

Re: Яка умова краще?

про редактор, який "вміє", немаю нічого проти, але до чого тут він. Сніпети не підкажуть як краще.

поясніть будь-ласка мені нубу чому так буде погано?
працювати ж буде так само?

ну працювати то буде, але вот глянене на цей код через півроку-рік і скажете: що за г****код

29

Re: Яка умова краще?

Погано буде тому що стає більше коду в першу чергу. Його важче читати так як доводиться робити реверт умови.
Якщо юзер не дорівнюж нулл тоді нічого не робимо а в іншому випадку створюємо юзера. Це ж неможливо читати.

П.с. про сніпнети знаю але генерити поганий код в такий спосіб я не хочу. Я якось покажу плагін для сніпнетів у рнрштормі який я написав)

Подякували: 221VOLT1

30

Re: Яка умова краще?

Я якось покажу плагін для сніпнетів у рнрштормі який я написав)

да, ідею бачив, і вже давно чекаю на реліз))

31

Re: Яка умова краще?

muhasjo написав:

про редактор, який "вміє", немаю нічого проти, але до чого тут він. Сніпети не підкажуть як краще.

поясніть будь-ласка мені нубу чому так буде погано?
працювати ж буде так само?

ну працювати то буде, але вот глянене на цей код через півроку-рік і скажете: що за г****код

funivan написав:

Погано буде тому що стає більше коду в першу чергу. Його важче читати так як доводиться робити реверт умови.
Якщо юзер не дорівнюж нулл тоді нічого не робимо а в іншому випадку створюємо юзера. Це ж неможливо читати.

П.с. про сніпнети знаю але генерити поганий код в такий спосіб я не хочу. Я якось покажу плагін для сніпнетів у рнрштормі який я написав)

працювати буде так же, а коду більше на 1-2 символа, я ж не помиляюся?
не можу погодитись що його читати важче, на мою думку його легше читати (я розумію що це кому як)

imho важче читати коли є заперечення заперечення чи навіть заперечення заперечення заперечення --- мені й таке щастячко зустрічалося (також заперечення нашим мозком свідомо погано сприймається чи навіть взагалі не сприймається - це взагалі окрема тема психології)

чим меньше ми створюємо конструкцій без реальної а не видуманої потреби - тим легше нам і тим хто працюватиме з кодом після нас?


ви називаєте це (1-2 зайвих символа для спрощення читання- збільшення прозорості) говнокодом?
а де ж тут говнокод?
(а як же любителі чіпляти jquery щоб один раз блок по айді смикнути чи додати два числа чи працювати з регуляркою, як же любителі чіпляти jq-ui замість десятка строк pure css ?)

32

Re: Яка умова краще?

Останні 2 пости я говорю що не варто ось так писати. Тобто навмисне писати пусті блоки у яких не буе коду. Ви також про це ?

if($user !== null ) { 
 
} else{
  $user = new User();
  $user->save();
}

33

Re: Яка умова краще?

funivan написав:

Останні 2 пости я говорю що не варто ось так писати. Тобто навмисне писати пусті блоки у яких не буе коду.

Іноді все ж варто - наприклад, коли іде кілька перевірок, і одна вийшла ось такою "інвертованою", є сенс лишити пустий блок, а не інвертувати умову. Але в будь-якому разі якщо блок пустий, треба написати в ньому в коментарі, чому так.

Прихований текст
/* preparing parameters */
if( $data !== NULL ){
  $prepared_data = prepare($data);
} else {
  $prepared_data = "";
}

if( $additional_data !== NULL ) {
  $connection = make_some_changes( $connection, $additional_data );
} 

if( $dbase !== NULL ){
  $dbase->restore_connection($connection);
} else {
  $dbase = new DBase($connection);
}

if( $user !== NULL ) {
  /* OK, user is ready */
} else {
  $user = new User();
}

$dbase->save_data_and_log( $prepared_data, $user );
Подякували: 221VOLT1

34

Re: Яка умова краще?

@koala я згідний що це на любителя, але у топових опенсорсних проектах я не зустрічав )  Як то кажуть: сам не пишу і вам не рекомендую ;)

Подякували: koala1