Size: a a a

Android Architecture

2020 August 27

P

Pavel in Android Architecture
Соглашение для интерфейсов с I в начале появилось очень давно, когда только появились интерфейсы. Тогда просто классы называли как есть - без суффиков или приставок, а чтобы отличить интерфейсы, добавляли I.
Сейчас в современных пониманиях интерфейс первичен, поэтому его имя не нужно перегружать приставками. А имплементация - уже вторична и скрыта и к ней добавляют суффикс.
источник

AC

Arsen CeH9 in Android Architecture
Konstantin dmz9
у меня в проекте 7 реализаций, нейминг спам *Impl мне не зашел )))
когда много, то скорее всего у них  есть четко выраженная отличительная черта, например NetworkDataSource и DatabaseDataSource, а Impl нужен, когда отношение 1:1
источник

Kd

Konstantin dmz9 in Android Architecture
Arsen CeH9
когда много, то скорее всего у них  есть четко выраженная отличительная черта, например NetworkDataSource и DatabaseDataSource, а Impl нужен, когда отношение 1:1
ну да, так в начале и было. когда уже третий написал - пришлось порефакторить
источник

I

Igor in Android Architecture
Кстати вкину.
Если в проекте I или Impl то возможно у вас header интерфейсы и потекли абстракции.
google: header interface vs role interface

https://blog.ploeh.dk/2010/12/02/Interfacesarenotabstractions/
https://blog.ploeh.dk/2013/01/10/RoleInterfaceRoleHint/
источник

SV

Sergey Vasilchenko in Android Architecture
не понятно что мешает в студии настроить подсветку синтаксиса для интерфейсов 😆 не ищем легких путей наверн
источник

AC

Arsen CeH9 in Android Architecture
Sergey Vasilchenko
не понятно что мешает в студии настроить подсветку синтаксиса для интерфейсов 😆 не ищем легких путей наверн
и в код ревью тоже)
источник

Kd

Konstantin dmz9 in Android Architecture
а, я тоже тогда наброшу - абстрактные реализации начинаются с "A", типа "APresenter<*>"
источник

Kd

Konstantin dmz9 in Android Architecture
получается типа FooBarPresenter : APresenter<FooBar> : IPresenter <State>
источник

E

Eugene in Android Architecture
можно до кучи еще и про лямбды с контекстом вспомнить)
источник

Kd

Konstantin dmz9 in Android Architecture
мне особо эти приставки не мешают, но для автокомплита помогают на самом деле )
источник

SV

Sergey Vasilchenko in Android Architecture
венгерской нотации не хватает до кучи
источник

I

Igor in Android Architecture
Eugene
можно до кучи еще и про лямбды с контекстом вспомнить)
С контекстом это в смысле с замыканием (closure)?
источник

Kd

Konstantin dmz9 in Android Architecture
Sergey Vasilchenko
венгерской нотации не хватает до кучи
у меня еще такой есть нейминг - если где то запоминается ссылка на вьюшку - vSomeView, а обычные проперти (во фрагменте/активити) без приставки - так что почти оно
источник

AC

Arsen CeH9 in Android Architecture
Konstantin dmz9
мне особо эти приставки не мешают, но для автокомплита помогают на самом деле )
такая же хрень с префиксом m
источник

Kd

Konstantin dmz9 in Android Architecture
Arsen CeH9
такая же хрень с префиксом m
их наругал еще жека вартанов давным давно  😂
источник

E

Eugene in Android Architecture
Igor
С контекстом это в смысле с замыканием (closure)?
с контекстом активити
источник

Kd

Konstantin dmz9 in Android Architecture
Konstantin dmz9
у меня еще такой есть нейминг - если где то запоминается ссылка на вьюшку - vSomeView, а обычные проперти (во фрагменте/активити) без приставки - так что почти оно
добавлю кстати резон почему так:
в свое время понравилось котлин-синтетик использовать для обращения к вьюшкам, но между модулями он не работает (сейчас как  - не знаю, год назад точно так было).
так что в процессе отказа от синтетики пришлось как то различать вьюшки-невьюшки.
вьюбиндинга естественно нет, а snake-case просто не переношу для пропертей
источник

SO

Sergey Opivalov in Android Architecture
Konstantin dmz9
добавлю кстати резон почему так:
в свое время понравилось котлин-синтетик использовать для обращения к вьюшкам, но между модулями он не работает (сейчас как  - не знаю, год назад точно так было).
так что в процессе отказа от синтетики пришлось как то различать вьюшки-невьюшки.
вьюбиндинга естественно нет, а snake-case просто не переношу для пропертей
полгода назад тоже не работало)
источник

AC

Arsen CeH9 in Android Architecture
Konstantin dmz9
их наругал еще жека вартанов давным давно  😂
в случае с автокомплитом это работает
источник

AD

Aleksey D. in Android Architecture
Igor
А как это в dagger прокинуть, что бы по красоте в конструктор презентера инъектить?
Особенно если нужно нивелировать из FeatureModuleA в FeatureModuleB, между которым нет ссылок.
у меня в каждом P/VM есть интерфейс Coordinator, который реализуется в родителе - модуль-родитель, фрагмент-родитель (многа кода получается)
источник