четверг, 23 ноября 2017 г.

Небольшая записка об использовании утверждений.

Утверждения - это давно всем известная методика управления сложностью программного обеспечения. Но очень не многие программисты действительно серьезно воспринимают этот подход. Почему так происходит? На мой взгляд это связано с тем, что любой нормальный программист не любит писать лишний код, из - за этого можно услышать такие фразы "Утверждения мусорят код" и все в этом духе.
Я люблю утверждения! Все, что я здесь напишу - это мое субъективное мнение, так что если оно не совпало с Вашим, прошу прощения.
Утверждения это совсем не тесты! Очень важно это понимать и не использовать утверждения так же как вы используете тесты, также если вы используете утверждения это совсем не значит, что вам не нужно писать тесты! Для меня утверждения - это способ доказать себе что я получил то что я ожидал получить. Основная польза от утверждений заключается не в том, чтобы доказать работу программы а в том чтобы быть уверенным, что программа не сделает лишних действий.
Ну вроде бы все что касается теории и все чем я хотел поделиться я рассказал. Теперь приведу некоторые правила, следуя которым можно составить систему использования утверждений в исходном коде программ.

1. Утверждение после присвоение значения переменной.

Если Вы присваиваете какой нибудь переменной значение задайте себе вопрос какое это значение, какого типа, какие пределы будут у этого значения? Ниже и далее функция утверждения будет абстрактной.
<?php

$new_var = something_strange_function();
assert('=', true, is_array($new_var) || is_null($new_var));
В этом примере мы может быть и не знаем что должна вернуть функция something_strange_function, но мы точно знаем что нам нужен только массив или Null.

2. Утверждение перед циклами\условиями.

Перед вызовом функции или условием обязательно проверьте, что параметры с которыми работает цикл такие, какие вам нужны.
<?php

assert('>', 0, count($peoples));
assert('<', 100, count($peoples));
if (count($peoples) > 3) {
   echo '2 сопровождающих';        
} else {
   echo '1 сопровождающий';    
} 

3. Утверждения после циклов и условий.

Пример писать не будут но утверждения также необходимы после циклов и условий, чтобы проверить то, что работа циклов и условий прошла в правильном направлении.

Также утверждения должны стоять после и перед вызывами функций или методов классов. Думаю на этом все.

Комментариев нет:

Отправить комментарий

Mysql настройка режима

Для настройки режима mysql не обязательно править конфиги можно выполнить команду mysql > set global sql_mode = 'STRICT_TRANS_TAB...