Как стать автором
Обновить
4
0

Android Developer

Отправить сообщение

"Делегат не обязан реализовывать какой-то интерфейс, достаточно, чтобы у него были метод getValue() (и setValue() для var'ов) с определённой сигнатурой."

Не совсем так, у этих методов getValue/setValue должно быть указаноключевое слово operator.

"C android:pathPattern дела обстоят получше. В нем можно использовать . и *. Работают они точно также, как и в регулярных выражениях. К сожалению, этими двумя символами разработчики Android и ограничились."

Существует pathAdvancedPattern в котором поддерживаются больше возможностей

На счет тезиса "Существует специальный механизм обработки ссылок без scheme." - не совсем так.

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

Спасибо за статьи, очень интересно, но не понял проблему №6. В доке написано, собственно вы это и описали, что элементы блоков data, объявленные в одном intent-filter комбинируются (полностью согласен с этим). Поэтому правильно объявлять отдельные intent-filter, для уникальных ссылок, но вы почему-то наоборот объявили 2 хоста в одном фильтре, при этом описав, что так делать не нужно... Может я не так вас понял?

P.s. такой вариант как у вас (у двумя хостами в одном фильре) норм работает, если они абсолютно идентичны по другим параметрам (как path)

По-моему, это инструкция, как стать хорошим программистом)

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

Короче, нормально делай, нормально будет =)
Очень интересная статья, однако не совсем соответствует заголовку.
Проекты реально потрясные, узнал много нового.
Но было бы интересно узнать об организационной составляющей(сколько длилось сие мероприятие, сколько человек в команде твоего проекта, со сколькими людьми регулярно взаимодействуешь).
Также было бы интересно узнать о знаниях(кол прочитанных книг, кол лет работы, хотя конечно это субъективная оценка), с которыми туда стоит стучатся.
Почему отказались от 3D графики? Ведь существует замечательный three.js, на котором реализовать Вашу идею вполне легко и быстро(правда в таком случае у Вас получилась бы браузерная игра). К тому же это придало бы зрелищности благодаря OrbitControls, с помощью которого пользователь мог бы вращать модельки.
C каскадным локингом не сталкивался, поэтому спасибо, что упомянули об этом.
Вот пример в самой популярной ORM: docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#locking-optimistic-versionless
Касаемо этой части. Я имел виду, что разновидностей JPA НЕТ, и быть не может. Это же стандарт. А вот реализации да, тот же хибер отличный пример.
А никак. LockModeType.OPTIMISTIC после чтения уже ничего не проверяет. Проверка и инкремент делается только, если entity была изменена текущей транзакцией.
Ну с этим я согласился еще в предыдущем комментарии.
Если нужен более строгий контроль, используйте LockModeType.OPTIMISTIC_FORCE_INCREMENT — он всегда после чтения инкрементирует Version и делает в конце проверку, даже если entity не была изменена в текущей транзакции.
Да, тут вы правы. Но это, вроде как, понятно из моих слов в статье:
значение поле Version принудительно увеличивается на 1.

Спасибо за комментарий!
JPA работает поверх RDBMS леера, и практически все сказанное относится к последнему, и к JPA не имеет никакого отношения. Транзакционность и изолированность данных обеспечивается в первую очередь самой базой данных, а не JPA, которая играет роль лишь обертки ввиде меппера данных и генератора SQL.
Я и не говорил, что JPA обеспечивает транзакционность и изолированность данных.
JPA — это спецификация, ниже которой находятся провайдер ORM(Hibernate например) -> JDBC -> JDBC-драйвер -> База данных. Хотя в эту цепочку можно добавить и Spring Data.

Касаемо REPEATABLE READ, SERIALIZABLE вы расписали более подробно, хотя в статье я пометил их как «Коротко о...»

Разница во-первых в том, что пессимистичные блокировки проверяют соответствие на момент получения блокировки, и как правило для этого исполользуют средства RDBMS (SELECT FOR UPDATE) а оптимистичные — делают все проверки при коммите при помощи сравнения данных или маркеров изменений типа Version. А то, что вы сказали — уже следствие.
Да, действительно это следствие. Но о том, как происходит проверка я писал позже, поэтому это скорее стилистический косяк, нежели технический.
При его отсутствии многие JPA делают полное/частичное сравнение данных полей объектов.
Что? «Многие...» А можно примеры? Вы наверно имели ввиду «многие реализации этого стандарта», но в таком случае большинство Вашего негодования связано с тем, что читая JPA Вы представляете себе некую ORM.
При LockModeType.OPTIMISTIC поле Version меняется и проверяется только, если entity была изменена.

Хм… но как наша транзакция узнает, что entity была изменена другой транзакцией без сравнения полей Version. А если вы имели ввиду те транзакции, которые не меняли данных, то да вы правы. Хотя, это вроде как и так ясно. Если сильно все упростить, то Version — это версия данных.

Вообще не для этого. Это аналог WRITE LOCK для optimistic locking. Гарантирует, что прочитанная Entity не была изменена другой транзакцией до самого коммита, даже если данная транзакция ничего не меняла. Используется для каскадного трекинга изменений, когда поля самой Entity не меняются, но зато меняются ее дочерние entities.
Да, тут согласен, но тем не менее это ни как не исключает мой вариант. К слову, я бы тут добавил «когда изменение вносятся в другую сущность, связанную с исходной».

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

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Зарегистрирован
Активность