Перейти к содержимому


Фото
- - - - -

Simpla (Middleware) - возможные варианты решения поставленных задач


  • Чтобы отвечать, сперва войдите на форум
61 ответов в теме

#1 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 13:26

А мне кажется, Вы сами не можете толком объяснить просто и кратко.

Как известно, админка в Simpla без лицензии не работает.
Вот простенькая задача: при отсутствии лицензии давать доступ в админку, но с ограничениями. Одно из ограничений: обрабатывать в импорте только первую порцию в 10 строк.

Решение простое без посредников:
1. Убрать проверку лицензии в simpla/IndexAdmin.php,
2. Поставить проверку лицензии в simpla/ajax/import.php, и там
вместо
$result->end = feof($f);
поставить что-то типа
if(лицензия есть)
$result->end = feof($f);
else
$result->end = true;

Проще некуда.
Было бы интересно посмотреть, как это будет выглядеть Вашим способом с посредником...

 

решено 

 

https://github.com/s...pla-demo-access


Изменено: DaVinci, 19.09.2018 - 23:16


#2 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 16:46

Иногда проще добавить простенькое условие и забыть про него. Тут даже спорить не буду. Но если все же мыслить более глобально и наперед то не всегда все так просто.
 
============
 
Если решать данную задачу то в ней собственно даже посредники не нужны. Но так как все же тема именно о них пришлось"выдумывать". Я начал с того что все же проверку лицензии надо оставить и это повлекло непредвиденные трудозатраты.
 
А именно
 
Сущность Manager
 
если мы говорим о посредниках то имеем ввиду вполне самодостаточный компонент который что то принимает преобразует, возвращает результат или передает запрос по цепочке дальше. Если мы хотим проверить наличие лицензии и полностью или частично ограничить доступ нам надо работать с сущностью Manager а именно с его instance. как выяснилось при каждом обращении $this->managers->get_manager() возвращается  новый экземпляр https://github.com/p...pi/Managers.php
 
что бы сущность была полноценной я для своего удобства вынес модель отдельно это не обязательно в данной задачи, https://github.com/s...els/Manager.php и поместим в нее проверку доступа access где собственно ей и место, попутно в качестве примера все же хотелось бы показать что можно создавать не только stdClass
 
Composer, Pipeline
 
Так же для своего удобства я все же поставил Composer для того что бы модель Manager и Pipeline подтягивать автоматически
 
Теперь можем создать Pipeline https://github.com/s.../IndexAdmin.php
 
Middleware
 
И посредник. В нем проверяем лицензию и демо доступ.
 
Config
 
Доступ в демо режиме устанавливаем в конфеге 
 
Теперь у нас есть возможность устанавливать доступы в деморежиме если лицензия истекла.
 
Import
 
Перейдем к импорту
 
 
 
До этого проверка в импорте вовсе отсутствовала. Теперь можно запустить ранее созданный посредник который мы уже использовали в IndexAdmin (это очень кстати, так как мы избавились от дублирования кода) и добавить в цепочку DemoImportMiddleware https://github.com/s...tMiddleware.php который просто обрежет файл до 10 строк
 
-------------------------
 
Задача выполнена. Возможно стоит подумать над рефакторингом но что бы мы не делали в наших посредниках, дополняли, упрощали ImportAjax это вообще не касается - в нем и строчки кода не поменялось.
 
Не надо объяснять программисту - "ты же смотри мне там до тебе делали доработки, их очень много и все они крутые, я отдал много денег, сперва разберись что там да как что бы чего не поломать"

Изменено: DaVinci, 19.09.2018 - 18:01


#3 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 17:24

Корс (он же phukortsin), не могли бы вы продемонстрировать код без использования посредников

 

Вот простенькая задача: при отсутствии лицензии давать доступ в админку, но с ограничениями.

 

- если лицензия истекла:

--- менеджеру можно дать доступ к определенным разделам админки:

------ если логин менеджера products даем доступ к разделу товары

------ если логин менеджера начинается с import-* даем доступ к разделку импорта:

--------- если логин менеджера import-all импорт обработает весь файл импорта

--------- если логин менеджера import-10 импорт обработает 10 строк файла импорта

--------- если логин менеджера import-10-reverse импорт обработает 10 строк c конца файла импорта

- очень большая просьба - ничего не меняйте в классе ImportAjax 

 

Интересно посмотреть, как это будет выглядеть Вашим способом без посредников...


Изменено: DaVinci, 19.09.2018 - 17:37


#4 phukortsin

phukortsin
  • Пользователь
  • 469 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 19.09.2018 - 18:25

1. Начать с того, что
1.1 Без посредников задача решается, как описано в первом посте темы, в 3-4 строки,
1.2 В предлагаемом решении посредник DemoImportMiddleware содержит более 30 строк (не считая комментарии и пустые строки).
1.3 Сказочка про
 

Не надо объяснять программисту - "ты же смотри мне там до тебе делали доработки, их очень много и все они крутые, я отдал много денег, сперва разберись что там да как что бы чего не поломать"

 
хорошо, но непрактична. То, что написано в посреднике, тоже надо проверять. Конкретно предоставленный посредник, насколько я понимаю, содержит минимум одну грубую ошибку и работает неправильно...
 
2. Итог пока таков:
2.1. Решение без посредников содержит на порядок меньше кол-во кода,
2.2. И в соответствии с законами программирования, большее количество кода -  больше риск ошибок.
 
Если Вам нравится подход, при котором надо писать по 30-40 строк добавочного кода вместо 3-4, дело Ваше. А по мне, такой подход несерьезен...
Сомневаюсь, что кому-то понравится Ваша схема, если он узнает, что ей требуется кода в десятки раз больше...
 
Если хотите убедить кого-то, что подход хороший, придумали бы более-менее практически полезный настоящий пример. На форуме полно разных задач, выбирайте по вкусу. Например, возьмите свеженькую

http://forum.simplac...каты-к-брендам/

Там есть где развернуться - навешать посредников на ресайз, например...

 

Пока у Вас и пример с лицензией и пример с импортом ну совсем не убедительны...



#5 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 18:28

1. Начать с того, что
1.1 Без посредников задача решается, как описано в первом посте темы, в 3-4 строки,
1.2 В предлагаемом решении посредник DemoImportMiddleware содержит более 30 строк (не считая комментарии и пустые строки).
1.3 Сказочка про
 

 
хорошо, но непрактична. То, что написано в посреднике, тоже надо проверять. Конкретно предоставленный посредник, насколько я понимаю, содержит минимум одну грубую ошибку и работает неправильно...
 
2. Итог пока таков:
2.1. Решение без посредников содержит на порядок меньше кол-во кода,
2.2. И в соответствии с законами программирования, большее количество кода -  больше риск ошибок.
 
Если Вам нравится подход, при котором надо писать по 30-40 строк добавочного кода вместо 3-4, дело Ваше. А по мне, такой подход несерьезен...
Сомневаюсь, что кому-то понравится Ваша схема, если он узнает, что ей требуется кода в десятки раз больше...
 
Если хотите убедить кого-то, что подход хороший, придумали бы более-менее практически полезный настоящий пример. На форуме полно разных задач, выбирайте по вкусу. Например, возьмите свеженькую

http://forum.simplac...каты-к-брендам/

Там есть где развернуться - навешать посредников на ресайз, например...

 

Пока у Вас и пример с лицензией и пример с импортом ну совсем не убедительны...

 

Нравиться ли вам мое решение или нет это ваше дело. о вкусах не спорят...

 

можно посмотреть на вашу реализацию выше поставленной задачи?

 

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


Изменено: DaVinci, 19.09.2018 - 18:30


#6 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 18:38

Пока у Вас и пример с лицензией и пример с импортом ну совсем не убедительны...

 

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

 

Анализировать надо в сравнении. Мое решение есть, ваше где то в воздухе повисло. О чем тут можно на данный момент вообще рассуждать.


Изменено: DaVinci, 19.09.2018 - 18:41


#7 phukortsin

phukortsin
  • Пользователь
  • 469 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 19.09.2018 - 18:53

Смотря какую задачу имеете в виду.

Если ту, что в посте #1, то решение в 3 строки дано там же вместе с постановкой задачи.

Если ту, что в посте #3, то, хорошее краткое решение, по-моему, весьма затруднительно или даже почти невозможно, поскольку Вы выдвинули условие "ничего не меняйте в классе ImportAjax". Разве что с какими-нибудь сложными извращениями...

Кстати, Ваше собственное решение благополучно МЕНЯЕТ этот класс - добавляются примерно 7 строк, которые вызывают посредников.

Насколько я понимаю, Ваше решение - надо делать через посредников - в данном примере оборачивается неоправданнно большим усложнением кода. ..

Как говорилось в одном старом фильме "Вы даете нереальные планы. Это, как его... волюнтаризм!"



#8 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 18:57

Смотря какую задачу имеете в виду.

Если ту, что в посте #1, то решение в 3 строки дано там же вместе с постановкой задачи.

Если ту, что в посте #3, то, хорошее краткое решение, по-моему, весьма затруднительно или даже почти невозможно, поскольку Вы выдвинули условие "ничего не меняйте в классе ImportAjax". Разве что с какими-нибудь сложными извращениями...

Кстати, Ваше собственное решение благополучно МЕНЯЕТ этот класс - добавляются примерно 7 строк, которые вызывают посредников.

Насколько я понимаю, Ваше решение - надо делать через посредников - в данном примере оборачивается неоправданнно большим усложнением кода. ..

Как говорилось в одном старом фильме "Вы даете нереальные планы. Это, как его... волюнтаризм!"

Мое решение в указанном классе не меняет вообще ничего. Ни строчки ни точки...

Вы соглашаетесь с тем что вы не в состоянии решить поставленную задачу?

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

Изменено: DaVinci, 19.09.2018 - 19:01


#9 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 19:03

Вы хоть понимаете что в одном файле может быть несколько классов? Или вы даже классы от файла отличить не можете?

Вас дети вероятнее всего очень любят - забавный клоун

Изменено: DaVinci, 19.09.2018 - 19:03


#10 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 19:20

Нет, ну как!!!?? Как человек не различающий Файлы от классов занимаеться веб разработкой? Я слышал денег платят за вашу работу но это ведь в сознании не помещается!!!

Нет, ну ладно не знаете консоли, хорошо, не видели композер ранее, но как вы вообще рассуждаете о каких то масштабных проектах и комментируете чужую работу??

Я прошу прощение что часто намекал о вашей низкой квалификации, но тут то она вовсе отсутствует.

Корс, вопрос снят. Раз вы позволяете себе комментировать мою работу со своим уровнем понимания происходящего я могу со своей стороны воспринимать просто как переход на личность, оскорбление. Потому со своей стороны могу сказать - Балабол, трепло и бездарь вот кто вы...


Изменено: DaVinci, 19.09.2018 - 20:43


#11 phukortsin

phukortsin
  • Пользователь
  • 469 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 19.09.2018 - 19:58

Мое решение в указанном классе не меняет вообще ничего. Ни строчки ни точки...

 

Да, ошибся, в классе не меняет, меняет в файле.

 

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

 

Просто - это понятие субъективное, спорить вряд ли стоит. Если для Вас 30-40 строк проще, чем 3-4, дело Ваше.
 

 


Чтоб не трогать класс, задачу из #1 можно решить так: в simpla/ajax/importAdmin.php

вставить
$is_licensed=...;
if(!$is_licensed)
     die(json_encode((object)array('end'=>true)));

перед

$import_ajax = new ImportAjax();
header("Content-type: application/json; charset=UTF-8");
header("Cache-Control: must-revalidate");
header("Pragma: no-cache");
header("Expires: -1");

 

Чтобы обработать условия, которые Вы навешали в #3, чуть сложнее...



#12 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 20:02

а может вы еще где то ошиблись? То что с вами ведут дискуссию и не тыкают вас носом в ваши неточности это не означает что вас не видно на сквозь


2.2. И в соответствии с законами программирования


это что за законы то такие? Что вы несете? Слух режет но я ведь продолжаю с вами дискуссию...

Ошибся, не знал и забыл...

Ой... жуть.. слов нах нет...

Изменено: DaVinci, 19.09.2018 - 20:30


#13 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 20:04

если я покажу как это решается через посредника вы решите мою задачу с тем же импортом без всяких уточнений и вопросов?

 

Хоть и не знаю, про какую задачу Вы говорите, думаю, что могу решить. Ибо задач разных с импортом приходилось решать много разных...


вы покажите исходный код своего решения?

 

Могу показать...



#14 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.09.2018 - 20:11

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

 

Где ваше решение? На что мне смотреть, на огрызки когда которые вы тут пишите и дальше догадываться что вы хотели этим сказать?

 

Вы уже ответили что вы не в состоянии решить задачу. Я прокомментировал это должным образом и дал свою оценку.


Изменено: DaVinci, 19.09.2018 - 20:13


#15 phukortsin

phukortsin
  • Пользователь
  • 469 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 20.09.2018 - 10:56

Попробую расписать точнее.

Задача 1.
При отсутствии лицензии давать доступ в админку, но с ограничением. Обрабатывать в импорте только первую порцию в 10 строк.

Решение задачи 1.

1.1. В simpla/IndexAdmin.php

 

вместо

if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $this->request->get('module')!='LicenseAdmin')
header('location: '.$this->config->root_url.'/simpla/index.php?module=LicenseAdmin');
else
{
$l->valid = true;
$this->design->assign('license', $l);
}

 

вставить

if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $this->request->get('module')!='LicenseAdmin'){
//header('location: '.$this->config->root_url.'/simpla/index.php?module=LicenseAdmin');
$_SESSION['license_valid']=0;
}else
{
$l->valid = true;
$this->design->assign('license', $l);
$_SESSION['license_valid']=1;
}

1.2. В simpla/ajax/import.php

 

вместо

 

$json = json_encode($import_ajax->import());
print $json;

 

вставить

session_start();
$result = $import_ajax->import();
if(!$_SESSION['license_valid'])
    $result->end=true;    
$json = json_encode($result);
print $json;


Задача 2.
При отсутствии лицензии давать доступ в админку, но с ограничением. Обрабатывать при экспорте только первую порцию в 10 строк.

Решение задачи 1.

2.1. Выполнить п.1.1 из решения задачи 1.


2.2. В simpla/ajax/export.php

после

$export_ajax = new ExportAjax();
$data = $export_ajax->fetch();

вставить

session_start();
if(!$_SESSION['license_valid'])
$data['end']=true;


Задача 3.
При отсутствии лицензии давать доступ в админку, но с ограничением. В админке не показывать пагинацию на тех страницах, где она обычно есть (товаров, комментариев, заказов и др.)

Решение задачи 3.

3.1. Выполнить п.1.1 из решения задачи 1.

3.2. В simpla/design/html/index.tpl

вставить в начале

{if !$smarty.session.license_valid}
{$pages_count=1}
{/if}

 

 


Решения всех трех задач аккуратно проверял на свежеустановленной Simpla 2.3.8.

По задачам 2 и 3 интересно было бы увидеть для сравнения решение с посредниками.

Что касается задачи 1, то ее решение с посредниками, на мой взгляд, очень навороченое и усложненное несоразмерно масштабу задачи. Но о вкусах, как говорится, не спорят - если нравится кому-то решение в 30-40 строк вместо 3-4, это его дело.

Хочу подчеркнуть, что разработка DaVinci, бесспорно, полезная и интересная. Но в данной конкретном примере - задача 1 - это действует как из пушки по воробьям...
 


Изменено: phukortsin, 20.09.2018 - 10:58


#16 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 20.09.2018 - 11:04

Попробую расписать точнее.

Задача 1.
При отсутствии лицензии давать доступ в админку, но с ограничением. Обрабатывать в импорте только первую порцию в 10 строк.

Решение задачи 1.

1.1. В simpla/IndexAdmin.php

 

вместо

if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $this->request->get('module')!='LicenseAdmin')
header('location: '.$this->config->root_url.'/simpla/index.php?module=LicenseAdmin');
else
{
$l->valid = true;
$this->design->assign('license', $l);
}

 

вставить

if((!in_array($h, $l->domains) || (strtotime($l->expiration)<time() && $l->expiration!='*')) && $this->request->get('module')!='LicenseAdmin'){
//header('location: '.$this->config->root_url.'/simpla/index.php?module=LicenseAdmin');
$_SESSION['license_valid']=0;
}else
{
$l->valid = true;
$this->design->assign('license', $l);
$_SESSION['license_valid']=1;
}

1.2. В simpla/ajax/import.php

вставить

session_start();
$result = $import_ajax->import();
if(!$_SESSION['license_valid'])
$result->end=true;

перед

$json = json_encode($result);
print $json;


Задача 2.
При отсутствии лицензии давать доступ в админку, но с ограничением. Обрабатывать при экспорте только первую порцию в 10 строк.

Решение задачи 1.

2.1. Выполнить п.1.1 из решения задачи 1.


2.2. В simpla/ajax/export.php

после

$export_ajax = new ExportAjax();
$data = $export_ajax->fetch();

вставить

session_start();
if(!$_SESSION['license_valid'])
$data['end']=true;


Задача 3.
При отсутствии лицензии давать доступ в админку, но с ограничением. В админке не показывать пагинацию на тех страницах, где она обычно есть (товаров, комментариев, заказов и др.)

Решение задачи 3.

3.1. Выполнить п.1.1 из решения задачи 1.

3.2. В simpla/design/html/index.tpl

вставить в начале

{if !$smarty.session.license_valid}
{$pages_count=1}
{/if}

 

 


Решения всех трех задач аккуратно проверял на свежеустановленной Simpla 2.3.8.

По задачам 2 и 3 интересно было бы увидеть для сравнения решение с посредниками.

Что касается задачи 1, то ее решение с посредниками, на мой взгляд, очень навороченое и усложненное несоразмерно масштабу задачи. Но о вкусах, как говорится, не спорят - если нравится кому-то решение в 30-40 строк вместо 3-4, это его дело.

Хочу подчеркнуть, что разработка DaVinci, бесспорно, полезная и интересная. Но в данной конкретном примере - задача 1 - это действует как из пушки по воробьям...
 

 

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

 

Если решать данную задачу то в ней собственно даже посредники не нужны. Но так как все же тема именно о них пришлось"выдумывать". Я начал с того что все же проверку лицензии надо оставить и это повлекло непредвиденные трудозатраты.

 

я вовсе не утверждал что данное решение одно из лучших или что то прочее. Но ни какой пушки тут нет, это просто функции которые отрабатывают "инкапсулированную" логику и перебрасывают запрос дальше. И даже если в таком посреднике всего 2 строчки кода который просто некуда вставить в приложении то лучше вынести этот код и дать ему соответствующее название. Это может быть посредник или метод класса, без разницы. Такой код читаешься как книга. Это очень компактное решение в сравнении с процедурным подходом.

 

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

 


Изменено: DaVinci, 20.09.2018 - 11:52


#17 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 20.09.2018 - 11:15

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


Изменено: DaVinci, 20.09.2018 - 11:16


#18 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 20.09.2018 - 11:26

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

 

https://github.com/s...censeOrDemo.php

https://github.com/s...tMiddleware.php

 

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


Изменено: DaVinci, 20.09.2018 - 11:39


#19 phukortsin

phukortsin
  • Пользователь
  • 469 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 20.09.2018 - 14:41

Дано 3 задачи и 3 решения к ним.

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

Анализировать надо в сравнении. Мое решение есть, ваше где то в воздухе повисло. О чем тут можно на данный момент вообще рассуждать.

Вам дано 3 задачи и 3 решения к ним. Не видно что-то Вашего анализа в сравнении.

Если я сомневаюсь что посредник работает должным образом я могу слепить для него тесты.

Пора б уже слепить тексты и исправить грубые ошибки...

#20 DaVinci

DaVinci
  • Фрилансер
  • 1 137 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 20.09.2018 - 14:58

Дано 3 задачи и 3 решения к ним.Вам дано 3 задачи и 3 решения к ним. Не видно что-то Вашего анализа в сравнении.Пора б уже слепить тексты и исправить грубые ошибки...

 

я не вижу вашего приложения для того что бы сравнить. не с чем сравнивать. тексты :mellow:  :huh: ? 


Изменено: DaVinci, 20.09.2018 - 14:59





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых