Jump to content
  • 0

Как принято называть такие функции?


Zverushka
 Share

Question

Как правильнее или как принято называть такие функции в языках программирования?

Функция, которая проверяет условие и в зависимости от него исполняет код?

 

Например, есть функция, которая проверяет, сколько товаров в корзине, и если их много, то устанавливает скролл, а если мало, то удаляет скролл.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

Как правильнее или как принято называть такие функции в языках программирования?

Функция, которая проверяет условие и в зависимости от него исполняет код?

 

Например, есть функция, которая проверяет, сколько товаров в корзине, и если их много, то устанавливает скролл, а если мало, то удаляет скролл.

Может предикат, http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%B8%D0%BA%D0%B0%D1%82. Если товаров в корзине много то функция возращает true, если мало то false, и в зависимости от того что она возвращает выполняется какое либо условие, обычно такие функции называют с приствкой is - isScroll. Если конечно я вас правильно понял

 

upd: а декоратор это вроде как паттерн ооп http://learn.javascript.ru/decorators

Edited by xzarxzes
Link to comment
Share on other sites

  • 0

Функция, которая проверяет условие и в зависимости от него исполняет код?

обычно, это разбивают на две функции. Первая проверяет условие, вторая что-то делает в зависимости от проверки первой (или не делает ничего)

 

if (isFile()) {    doSomething()}
https://github.com/nervgh/angular-file-upload/blob/v0.5.7/examples/image-preview/directives.js#L39 Edited by nerv
Link to comment
Share on other sites

  • 0

согласен со Switch74, потому что если называть общепризнанными названиями, то их надо еще знать, а тот кто не знает - не поймет, поэтому называйте так, что бы было понятно по смыслу и звучанию, и не только вам, но и другим, например: CountProductToScroll согласен, длинное название - зато понятное.

Link to comment
Share on other sites

  • 0

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

Я назвала ее так.

Сама функция содержит следующий код:

 

  function checkAndSetCartScroll() {    console.log("checkAndSetCartScroll");    if (getNumCartItems() >= 3) {      if (!isHaveScroll(cartItemsCont)) {        createCartScroll();      } else {        cartScrollBottom();      }    } else {      if (isHaveScroll(cartItemsCont)) {        destroyCartScroll();      }    }  }
На мой взгляд вроде удачное название, но вроде я не первый раз сталкиваюсь с такой проблемой, когда функция сложносочиненная :-D, и в ней прослеживается 2 основных действия. По сути это как бы функция мониторинга состояния, которая на определенных событиях мониторит элемент и корректирует его состояние. Как там это принято же... listen чтоли, типа она слушает состояние... Edited by Zverushka
Link to comment
Share on other sites

  • 0

updateScroll()

Декоратор

кстати о декораторах. Поймал себя на мысли, что они "получаются" в случае, когда класс наследует от другого класса и вызывает внутри себя метод родителя (супер метод):

 

http://learn.javascript.ru/play/xPS3cb

как же сложно копипастить :D

Edited by nerv
Link to comment
Share on other sites

  • 0
updateScroll()

 

Предлагаешь такое название?

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

 

    $(cart).perfectScrollbar('update');

А эта более глобальная.. updateCartScroll(). При том кстати я хотела такую создать для обновления скролла чисто, без проверки условий. Но так вышло, что пока она не пригодилась и я не сделала..

Edited by Zverushka
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy