Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 128 129 130 131 132 133 134 135 136 [137]
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47946
Мы с Хвостом где-то определились что ФП и ООП это развернутый на 90 градусов механизм
повторного переиспользования кода.
31 июл 20, 16:12    [22176297]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
забыл ник
Member

Откуда:
Сообщений: 3367
mayton
Мы с Хвостом где-то определились что ФП и ООП это развернутый на 90 градусов механизм
повторного переиспользования кода.

Да вроде нет.
Все что в них общего - это то что на них можно писать программы.
ФП = часть ООП(как ты говоришь развернутая на 90 градусов) + математическая основа + много еще чего - перфоманс(местами)

Миф про их перпендикулярность давно циркулирует и основан на подходе к expression problem.

Грубо говоря в ООП расширение функционала происходит через механизм интерфейсов, нужно что-то добавить - пишем новую имплементацию. В ФП же есть изначальный набор DATA OBJECT - и над ними определяются операции посредством паттерн-матчинга.
В случае ООП легко добавить новую имплементацию но невозможно добавить новую операцию в интерфейс. В ФП наоборот - можно добавлять кучу операций, но если нужно добавить новый DATA TYPE - то печаль. Но в ФП это легко решается через ad-hoc полиморфизм и type class pattern. А вот в ООП с этим проблемка... в последнее время появился подход Object Algebras но он бойлерплейт, да и врядли поместится в оперативку среднестатического индуса.
31 июл 20, 16:27    [22176304]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
mayton
Member

Откуда: loopback
Сообщений: 47946
Мне очень странно что дрейф в части сильная-типизация и всякая-другая-чуть-слабее постоянно
продолжается. NodeJS, Groovy, Python постоянно рождают новые и новые решения на слабых типах.

И этот процесс бесконечен. Хочется спросить. Люди! Вам что действительно лень на этапе проектирования
просто подумать о том какой тип здесь будет лежать и получить больше гарантий в будущем. Или из-за
сиюминутной лени или бох весть какого предположения о будущих ИЗМЕНЕНИЯХ (!) просто декларировать
вариативный тип. Да еще и такой что сузить нельзя даже до типажей или агрегирующих типов.

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

Ну вобщем вот это меня печалит. Как будто колесо обучаемости осталовилось и крутанулось назад.
Как будто школьники в школах перестали учить операции с дробями. И если им встречается 2/3 - они
берут калькулятор и делят два на три.
31 июл 20, 17:10    [22176338]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Valentin Kolesnikov
Member

Откуда:
Сообщений: 3312
Zzz79
Вообщем вытащил из тред пула конекшн,наконец то достучался до нужной базы ,взял нужное значение

теперь задача все это грамотно реализовать- так как аргумент по которму я буду искать в бд значение и само значение нужно записать в хмл стрингу
<?xml version="1.0" encoding="UTF-8"?><PROPERTIES><PROPERTY NAME="CUSTOM_DICTIONARY_NAME" VALUE=""/><PROPERTY NAME="CUST_DIC_CAPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_COMPONENT_TYPE" VALUE="combobox"/><PROPERTY NAME="CUST_DIC_DYNAMIC_FILTER" VALUE=""/><PROPERTY NAME="CUST_DIC_HIDDEN_FILTER" VALUE="CODE='year' and (BEGIN_DATE is null or BEGIN_DATE &lt; CURRENT_DATE) and (END_DATE is null or END_DATE &gt; CURRENT_DATE)"/><PROPERTY NAME="CUST_DIC_ITEM_CAPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_ITEM_CODE" VALUE="year"/><PROPERTY NAME="CUST_DIC_ITEM_DESCRIPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_NAME" VALUE="doc/dic/custom/data"/><PROPERTY NAME="CUST_DIC_STATIC_FILTER" VALUE=""/><PROPERTY NAME="CUST_FIELD_FOR_CONTEXT_SEARCH" VALUE=""/></PROPERTIES>


эта строка в джейсоне и вот отсюда мне надо взять значение VALUE="CODE"='year' по нему найти значение в бд и подставить вот сюда
"CUST_DIC_ITEM_CAPTION" VALUE="ГодЗаДва" и сюда
"CUST_DIC_ITEM_DESCRIPTION" VALUE="ГодЗаДва"

хз как это делать лучше ,но чую попляшу щас с бубном


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


Пример получения данных из xml:


        Map<String, Object> object = U.fromXmlMap("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
              + "<PROPERTIES>\n"
              + "   <PROPERTY NAME=\"CUSTOM_DICTIONARY_NAME\" VALUE=\"&quot;/\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_CAPTION\" VALUE=\"ГодЗаДва\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_COMPONENT_TYPE\" VALUE=\"combobox\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_DYNAMIC_FILTER\" VALUE=\"&quot;/\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_HIDDEN_FILTER\" VALUE=\"CODE='year' and (BEGIN_DATE is null or BEGIN_DATE &lt; CURRENT_DATE) and (END_DATE is null or END_DATE &gt; CURRENT_DATE)\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_ITEM_CAPTION\" VALUE=\"ГодЗаДва\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_ITEM_CODE\" VALUE=\"year\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_ITEM_DESCRIPTION\" VALUE=\"ГодЗаДва\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_NAME\" VALUE=\"doc/dic/custom/data\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_STATIC_FILTER\" VALUE=\"&quot;/\"/>\n"
              + "   <PROPERTY NAME=\"CUST_FIELD_FOR_CONTEXT_SEARCH\" VALUE=\"&quot;/\"/>\n"
              + "</PROPERTIES>");
        U.get(object, "PROPERTIES.PROPERTY.5.-VALUE");
        // ГодЗаДва
        U.get(object, "PROPERTIES.PROPERTY.7.-VALUE");
        // ГодЗаДва


Хорошего вам дня!
1 авг 20, 07:00    [22176470]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 560
Valentin Kolesnikov
Zzz79
Вообщем вытащил из тред пула конекшн,наконец то достучался до нужной базы ,взял нужное значение

теперь задача все это грамотно реализовать- так как аргумент по которму я буду искать в бд значение и само значение нужно записать в хмл стрингу
<?xml version="1.0" encoding="UTF-8"?><PROPERTIES><PROPERTY NAME="CUSTOM_DICTIONARY_NAME" VALUE=""/><PROPERTY NAME="CUST_DIC_CAPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_COMPONENT_TYPE" VALUE="combobox"/><PROPERTY NAME="CUST_DIC_DYNAMIC_FILTER" VALUE=""/><PROPERTY NAME="CUST_DIC_HIDDEN_FILTER" VALUE="CODE='year' and (BEGIN_DATE is null or BEGIN_DATE &lt; CURRENT_DATE) and (END_DATE is null or END_DATE &gt; CURRENT_DATE)"/><PROPERTY NAME="CUST_DIC_ITEM_CAPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_ITEM_CODE" VALUE="year"/><PROPERTY NAME="CUST_DIC_ITEM_DESCRIPTION" VALUE="ГодЗаДва"/><PROPERTY NAME="CUST_DIC_NAME" VALUE="doc/dic/custom/data"/><PROPERTY NAME="CUST_DIC_STATIC_FILTER" VALUE=""/><PROPERTY NAME="CUST_FIELD_FOR_CONTEXT_SEARCH" VALUE=""/></PROPERTIES>


эта строка в джейсоне и вот отсюда мне надо взять значение VALUE="CODE"='year' по нему найти значение в бд и подставить вот сюда
"CUST_DIC_ITEM_CAPTION" VALUE="ГодЗаДва" и сюда
"CUST_DIC_ITEM_DESCRIPTION" VALUE="ГодЗаДва"

хз как это делать лучше ,но чую попляшу щас с бубном


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


Пример получения данных из xml:


        Map<String, Object> object = U.fromXmlMap("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
              + "<PROPERTIES>\n"
              + "   <PROPERTY NAME=\"CUSTOM_DICTIONARY_NAME\" VALUE=\"&quot;/\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_CAPTION\" VALUE=\"ГодЗаДва\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_COMPONENT_TYPE\" VALUE=\"combobox\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_DYNAMIC_FILTER\" VALUE=\"&quot;/\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_HIDDEN_FILTER\" VALUE=\"CODE='year' and (BEGIN_DATE is null or BEGIN_DATE &lt; CURRENT_DATE) and (END_DATE is null or END_DATE &gt; CURRENT_DATE)\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_ITEM_CAPTION\" VALUE=\"ГодЗаДва\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_ITEM_CODE\" VALUE=\"year\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_ITEM_DESCRIPTION\" VALUE=\"ГодЗаДва\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_NAME\" VALUE=\"doc/dic/custom/data\"/>\n"
              + "   <PROPERTY NAME=\"CUST_DIC_STATIC_FILTER\" VALUE=\"&quot;/\"/>\n"
              + "   <PROPERTY NAME=\"CUST_FIELD_FOR_CONTEXT_SEARCH\" VALUE=\"&quot;/\"/>\n"
              + "</PROPERTIES>");
        U.get(object, "PROPERTIES.PROPERTY.5.-VALUE");
        // ГодЗаДва
        U.get(object, "PROPERTIES.PROPERTY.7.-VALUE");
        // ГодЗаДва


Хорошего вам дня!


а если шаблон поменяют и вместо 5 проперти нужное значенете будет на 9?

а так решение красивое - но оно не масшабируемое- никто не будет считать номер проперти,нужен ее поиск по названию
3 авг 20, 09:32    [22176860]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1095
Похоже, тебе еще предстоит открыть для себя XPath, в котором решение будет выглядеть примерно так:

/PROPERTIES/PROPERTY[@NAME='CUST_DIC_ITEM_CAPTION']/@VALUE


Сообщение было отредактировано: 3 авг 20, 10:02
3 авг 20, 10:04    [22176874]     Ответить | Цитировать Сообщить модератору
 Re: Где взять опыт?)  [new]
Zzz79
Member

Откуда:
Сообщений: 560
Alexander A. Sak
Похоже, тебе еще предстоит открыть для себя XPath, в котором решение будет выглядеть примерно так:

/PROPERTIES/PROPERTY[@NAME='CUST_DIC_ITEM_CAPTION']/@VALUE

выглядит кошерно)
3 авг 20, 10:25    [22176889]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 128 129 130 131 132 133 134 135 136 [137]
Все форумы / Java Ответить