[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как называется термин?
Arh
Как называется код реализующий методы?

Допустим я сделал класс и накидал в нём методов которые понадобятся.
По сути есть интерфейс и есть класс, который его реализует.

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

Получился каркас из условий и пустых методов. То есть я описал логику класса (алгоритм).

if ($this->isHello()) {
return $this->sayHello();
}


Но логика методов ещё не реализована.

public  function isHello () : bool {
// написать код, проверяющий на команду "скажи привет"
return true;
}

public function sayHello () {
$hello = '';
// написать код, который говорит "привет"
return $hello;
}


Вот как называется это ненаписанный код?)

То есть можно сказать:
1) Описан интерфейс.
2) Реализована логика работы программы.
3) Но ещё не разработан ***

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
chee
заглушка или мок-объект

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Arh
Цитата (Santehnick @ 3.06.2018 - 21:43)
todo ?

Не. todo это просто заметка на будущее.
Неважно закончена эта часть приложения или ещё нет, её как то нужно обозвать.

Допустим нужно составить ТЗ:
1) Разработать интерфейс
2) Разработать алгоритм (логику приложения, набор инструкций, набор процедур)
3) Разработать *** (содержимое методов? операции выполнения?)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
Например есть человек, который занимается архитектурой, который может все шаги предвидеть и расписать когда, какой метод должен быть выполнен.
А есть человек который реализует эти методы. Архитектор всего лишь создал пустышки, понаделал условий.
Архитектор написал интерфейс и алгоритм.
А разработчик написал *** (типа реализовал методы)

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
Это как сценарист написал сценарий типа "и тут должен выйти актёр и рассказать о себе".
А актёр уже играет сцену, что то там рассказывает. Реализует этот метод, пишет код.
Так и есть что ли "реализация методов".

1) Разработать интерфейс
2) Разработать алгоритм
3) Реализовать методы

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
twin
У нас это заглушкой называется. И не только у нас, chee уже написал.

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
называется "чувак поскорее изучи TDD"
Arh
Цитата (twin @ 4.06.2018 - 06:55)
У нас это заглушкой называется. И не только у нас, chee уже написал.

Да у нас тоже заглушка, пустышка, фейк, болванка.
Но я спрашивал как называется процесс превращения заглушки в реально работающий код.

Santehnick
Цитата
Называют это доменной моделью.

То есть "Реализовать доменную модель"?

Guest
Цитата
называется "чувак поскорее изучи TDD"

И что будет? Узнаю термин?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
S.Chushkin
Я не теоретик, но...

Описанный вариант с каркасом методов и алгоритмов у меня называется "макет".
"Заглушка" это более примитивное и короткое. (например, пустой метод)
Наполнение макета кодом называю "разработка кода". Туда входит всё, от комментариев до рефакторинга.

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
Arh
Santehnick
Цитата
Это просто недоделанная задача, которую готовят в отдельной ветке.

Любая задача недоделанная. А тут это следующий этап в разработке.

S.Chushkin
Цитата
Описанный вариант с каркасом методов и алгоритмов у меня называется "макет".
"Заглушка" это более примитивное и короткое. (например, пустой метод)
Наполнение макета кодом называю "разработка кода". Туда входит всё, от комментариев до рефакторинга.

Макет, да, это слово хорошо подходит под класс, о котором я говорю)
Потому что это уже не интерфейс, implements уже был, но ещё не законченный класс, хотя логика уже реализована, но вот *** (разработка кода) ещё нёт.
Я уже понял что такого термина нет, ну прям не хватает же)

Это как контроллер и модель в рамках одного класса. Логика и навыки может подойдёт.
Да, думаю слова "скилл" и "навык" хорошо описывает такие методы. Особенно при разработке голосового бота)

Реализовать:
1) Интерфейс
2) Логику
3) Навыки

или даже (без разницы):
1) Интерфейс
2) Навыки
3) Логику

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
chee
Цитата (Arh @ 5.06.2018 - 22:18)
Но я спрашивал как называется процесс превращения заглушки в реально работающий код.

реализация функционала по заданным интерфейсам

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
twin
Если я правильно понял, то что ты хочешь подходит под определение "контрактинг".

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Arh
chee
Цитата
реализация функционала по заданным интерфейсам

Ну это не термин)
К тому же функционалом может быть и логика (принятие решений). Да и само слово "функционал" имеет довольно размазанное понятие, это и набор функций и возможности этой же функции и гугл говорит что функционал это человек нетрадиционной ориентации =)
Я думал про "функционал". Не отражает суть. Как то размыто.

twin
Цитата
Если я правильно понял, то что ты хочешь подходит под определение "контрактинг".

Из того что я нагугли по этому слову, я ничего не понял.
"Контрактинг – критически важный этап коучинга."
Можешь своими словами объяснить?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Arh
twin
Цитата
Если я правильно понял

Ща попробую объяснить что бы все поняли о чём я говорю.

Наверное лучше на определённых сферах задач объяснить.
Я последнее время много писал всяких ботов. Сейчас для Алисы от яндекса пишу всякую муть.

Так вот, при написании бота сначала нужно продумать логику его работы.
При каких условиях он будет отвечать "да", при каких "нет" грубо говоря.
Например при вопросе "как дела" он должен "говорить" привет, а при вопросе "как дела в Крыму", он должен искать новость про крым и читать её заголовок и предлагать прочитать подробнее.

То есть это этап проектирования логики бота. Тут интерфейс класса не первичен, потому что пока даже непонятно что может бот и при каких условиях.

Так вот на этапе проектирования (уже не на доске, а в коде) пытаемся запилить логику.

protected function defineUserCommands () {

if ($this->isHello()) {
$this->addComand('sayHello');
}

if ($this->isBye()) {
$this->addComand('sayBay');
}

}


Подумали что пользователь может поздороваться и потом попрощаться. Нужно поздороваться и попрощаться. Или просто поздороваться/попрощаться.

Дальше запускаем это команды, ну допустим так.

protected function executeUserCommands () {

foreach ($this->getCommandList() as $command) {

if (method_exist($command)) {

$this->{$command}();

}

}

}


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



protected function isHello () : bool {

return true;

}

protected function sayHello () {

$this->addResponseText('Привет');

}



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

Вот когда написан такой макет, когда уже понятно что и как будет работать, вот тогда мы переходим к реализации навыков. Прикручиваем эластик для поиска, пилим массив с разными вариантами "привет". В таком духе.
Только на этой стадии становится понятно что нужен контракт "ElasticSearch" для поиска или там Logger для логгирования, ну и другие зависимости.

И получается что интерфейс класса фактически определяется после шага с проектированием логики и перед реализацией навыков (а может и после). Только в этот момент становится понятно какие методы будут у бота и какие нужно сделать публичными.

Вот если $this->sayBay(); подходит под определения навыка бота, то $this->addComand(); уже не очень. Это навык класса, который архитектор создал в виде пустышки, но его кишки ещё нереализованы. Но не говорить же "Разработана логика, но ещё не разработаны кишки")

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.