|
|
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczmaytonТут цена вопроса - "сферический проект в вакууме" или уже имеющийся проект который писали в определённом ключе. Как можно?! Саппорт это для джуниоров. Гуру дизайна всё пишет с нуля! Гуру дизайна и совершенство архитектурной мысли постепенно переписывает плохие участки. А не продолжает говнокодить в том же стиле, как изначально была написана система. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 14:54 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
HoBTIDГуру дизайна и совершенство архитектурной мысли постепенно переписывает плохие участки. А не продолжает говнокодить в том же стиле, как изначально была написана система. Ключевое слово "постепенно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 14:57 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczКлючевое слово "постепенно". Конечно, параллельно с имеющимися, создаете класс матрицы, создаете новую форму в дополнение к существующей форме списка одного из типов сущностей, и ее уже делаете через матрицу. Кстати, порядок колонок задается просто порядком их добавления в список колонок (List<ColumnDef> columns). А пользователь естественно может переставлять колонки во View. Поскольку матрица это всего лишь ViewModel, она ничего не затрагивает из бизнес-логики. На нее легко можно перевести отдельные списки, не трогая "половину приложения". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 15:04 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
HoBTIDПоскольку матрица это всего лишь ViewModel, она ничего не затрагивает из бизнес-логики. На нее легко можно перевести отдельные списки, не трогая "половину приложения". Да, понятно, что ViewModel. Только не понятно нафига оно. ViewModel в этом случае исключительно односторонняя. Хотя ViewModel по задумке обеспечивает связь в обе стороны. Кроме этого ViewModel концепия удобна в случае внятных инструментов биндинга. Для чего она нужна, если биндинга нет - не понятно. Ну и вы нам так и не расказали свою сокровенную тайну как именно Model мапиться на ViewModel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 15:34 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczНу и вы нам так и не расказали свою сокровенную тайну как именно Model мапиться на ViewModel. Да вы оказывается кое-что понимаете. Это действительно тайна. В колонке ViewModel указывается путь по свойствам до нужного реквизита, например: Код: java 1. 2. Затем, по пути свойств определяются имена таблиц и колонок в БД. Строится запрос с JOIN'ами и из результата его выполнения заполняется матрица. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 15:58 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
HoBTIDДа вы оказывается кое-что понимаете. Снова нарываетесь на грубость. HoBTIDЭто действительно тайна. В колонке ViewModel указывается путь по свойствам до нужного реквизита, например: Код: java 1. 2. Чем это принципиально лучше type safe switch case? В коротм не нужны константы на каждое свойство. HoBTIDЗатем, по пути свойств определяются имена таблиц и колонок в БД. Строится запрос с JOIN'ами и из результата его выполнения заполняется матрица. Ну, понятно. View слой самым прямым образом влияет на доступ к данным. И теперь вы полностью подтвердили мои догадки про джуниорство. Лет 7-8 назад я дизайнил решения именно таким же образом. "Универсально", но при этом то что называется термином Over Abstracted. "Универсальность" заключается в том что, действительно один и тот же код покрывает все сущности. Это с точки зрения молодого программиста мега опупенно. Но при этом на лицо все недостатки излишней абстрагированости: - если появляются требования не задуманые изначально абстракцией, то нужно рефакторить саму абстракцию - ООП идет лесом, так как нет никакой возможности заточить разное поведение, под разные сущности. У меня, например, в проекте есть у бизнес сущностей сложное вычислимое свойство. Которое не только влияет на бизнес-процесс, но и требует специального отображения на view. И как же прикажете быть в таком Anemic View, где бизнес сущности принципиально отствутствуют? Выносить вычисления в БД? И подрезать таким образом переносимость? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 16:10 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
MonochromatiqueНо как-то хотелось думать (не приведи Бог столкнуться), что в JAVA есть эквивалент - persons.OrderBy(p=>p.name) Ещё пара месяцев и будет personList.sort((p1, p2) -> p1.name.compareTo(p2.name)); OrderBy, тоже можно забабахать со ссылкой на getter. http://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html Только в данном случае в этом пользы особой нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 20:37 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
С++ возвращается? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 20:41 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
maytonС++ возвращается? Код: plaintext 1. Угу. Java и так не дружелюбна к нубам. А теперь со стрелочками и двоеточиями будет ещё головоломнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 20:52 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Жду сахара в "девятке". Вот такую конфету. Как в "шарпах" Вместо: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. вот так писать. Код: java 1. . Сорц был нагло спизж взят мной из Хаба-хабра. И подпилен чтоб был похож на Java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 13:22 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
mayton, Берем Groovy и не ждем) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2015, 16:35 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
maytonЖду сахара в "девятке". Вот такую конфету. Как в "шарпах" Ужас. От null'ов надо избавляться, а не прятать их за синтаксическим сахаром. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2015, 01:02 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
LeonidvmaytonЖду сахара в "девятке". Вот такую конфету. Как в "шарпах" Ужас. От null'ов надо избавляться, а не прятать их за синтаксическим сахаром. +1. Мы может заменить null на NullObject в СВОЁМ коде. Но OVER9000 библиотек удалённого вызова или persistence оставляют за собой право возвращать неинициализированные части объекта (для SOAP) или null филды если это БД. Таковы реалии. Как с этим бороться - неизвестно. И вобщем-то даже не проблема с null как с "признаком" особого статуса return. А проблема с семантикой операций которые с ним разрешены. В БД к примеру nulls можно суммировать, ранжировать и сортировать и делать операции больше/меньше. Результат - будет детерминирован и никакого исключения не будет. В Java подобная семантика - непозволительна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2015, 06:35 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
mayton Код: java 1. Сорц был нагло спизж взят мной из Хаба-хабра. И подпилен чтоб был похож на JavaНасколько я могу судить по "Java SE 8. Вводный курс" Кея Хорстмана, есть isNull, nonNull и Optional. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2015, 07:47 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
maytonLeonidvпропущено... Ужас. От null'ов надо избавляться, а не прятать их за синтаксическим сахаром. +1. Мы может заменить null на NullObject в СВОЁМ коде. Но OVER9000 библиотек удалённого вызова или persistence оставляют за собой право возвращать неинициализированные части объекта (для SOAP) или null филды если это БД. Таковы реалии. Как с этим бороться - неизвестно. Изолировать null в слое взаимодействия с этими инструментами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2015, 15:30 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Usman, Если хочется такого, то есть Scala. implicit есть, ?? - при работе с option это фактически map, flatMap и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2015, 11:06 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Leonidvmaytonпропущено... +1. Мы может заменить null на NullObject в СВОЁМ коде. Но OVER9000 библиотек удалённого вызова или persistence оставляют за собой право возвращать неинициализированные части объекта (для SOAP) или null филды если это БД. Таковы реалии. Как с этим бороться - неизвестно. Изолировать null в слое взаимодействия с этими инструментами. Цена этого решения почти такая-же как "лесенка" из if. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2015, 20:43 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
LeonidvЕсли хочется такого, то есть ScalaБез "подмешивания"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2015, 21:13 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Перегрузка "+","-".... для BigDecimal всё таки нужна. Иначе финансовый софт выглядит лажово. Здесь как-бе принципы Java-ООП звучат убедительно но рука тянется за перегрузкой. +Джунгарики-нубасы подкидывают траблов. Только отвернёшся - они "запилят" double или float в финансовые величины. И ведь хочется выглядеть убедительным.... но этот BigDecimal не выглядит рефакторингом хотя-бы с эстетической точки зрения. Ты вроде точность улучшил ... а код превратился в месиво методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2015, 13:07 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Еще сахарка подкину. Код: java 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2015, 22:37 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Прошу прощения. Я сюда припёрся снова сонный и сердитый. Ох встречу я этого Гослинга - дам ему подсрачника в его джинсовый зад. А потом сниму с него очки и втопчу в асфальт. Вот пишу Код: java 1. 2. 3. и каждый рас зависаю на 5 - 15 секунд. Вспоминаю там знак ">" это аналог положительного целого или наоборот в предикате compareTo. Ну неужели не мох ты заложить в стандарте хотя-бы этот математический оператор, чортов ты бородач?! P.S. Всё аривуар. Расстроен. Пошёл пить лекарство. P.S. Извините если чо. Простужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 20:28 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
mayton Код: java 1. 2. 3. Я за то чтобы такой код не писать. Я за читаемость: if(someObj.greaterThan(anotherObject)){ if(someObj.olderThan(anotherObject)){ if(greater(someObject, thenObject)){ И в том же духе. Имя метода должно следовать предметной модели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 14:35 |
|
||
|
Пятничный Best practices.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczmayton Код: java 1. 2. 3. Я за то чтобы такой код не писать. Я за читаемость: if(someObj.greaterThan(anotherObject)){ if(someObj.olderThan(anotherObject)){ if(greater(someObject, thenObject)){ И в том же духе. Имя метода должно следовать предметной модели. прикольно, что Java-программисты называют это "читаемость". по мне читаемость - это if( someobject > otherobject ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2015, 19:54 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38555832&tid=2122562]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 378ms |

| 0 / 0 |
