Думаю, под Новый год как раз сделаю список своих самых эпичных проебов. Кажется, это будет самый полезный пост за весь год.
Dev Easy Notes - это лучший underground канал про разработку, JVM и computer science с глупыми шутками и несмешными каламбурами. Если вы увлечены программированием, интересуетесь современными технологиями и хотите быть в курсе последних новостей в мире IT, то этот канал для вас. Здесь вы найдете полезные заметки, советы, ссылки на обучающие материалы и многое другое. Канал создан для тех, кто стремится к профессиональному росту в сфере разработки программного обеспечения. Если вы хотите делиться своими знаниями, общаться с единомышленниками и расширять свой кругозор, то присоединяйтесь к нам уже сегодня! Для сотрудничества пишите по контакту @haroncode.
21 Nov, 10:13
20 Nov, 10:28
18 Nov, 06:38
private var heavy: HeavyObject? = null
fun get():HeabyObject {
if( heavy == null ){
heavy = HeavyObject()
}
return heavy
}
private var heavy: HeavyObject? = null
fun get():HeabyObject = synchronized { … }
@Volatile
private var heavy: HeavyObject? = null
fun get(): HeavyObject {
var result: HeavyObject? = heavy
if (result == null) {
synchronized(lock) {
result = heavy
if (result == null) {
result = HeavyObject()
heavy = result
}
}
}
return result!!
}
private object FieldHolder {
val field: HeavyObject = createObject()
private fun createObject(): HeavyObject = HeavyObject()
}
fun get(): HeavyObject {
return FieldHolder.field
}
08 Nov, 10:02
08 Nov, 09:41
06 Nov, 09:20
KProperty
, который позволяет получить как данные, так и название поля, что помогает на месте выдать список ошибок. А дальше через dsl прописываем условия, которым поле должно удовлетворять, и текст ошибки если не удовлетворяет.validatableOf(Person::name).isNotEmpty()
name.isNotEmpty()
04 Nov, 10:55
@Component
и все, теперь внутри класса можешь инжектить все что тебе вдумается и главное как тебе вдумается. Spring умеет инжектить и через конструктор, и через приватное поле, и через setter и даже через твою @Bean
(не спрашивайте почему Bean, интерпрайзные приколы). Далее классу проставляем аннотацию @Configuration
и все. На практике такие модули создают редко и только для всяких конфигураций. Всякие Repository и Interactor у нас являются @Component
, поэтому их Spring за тебя сам создаст и запихает куда нужно.@Scope
. Можно сделать чтобы зависимость жила пока не умрет все приложение, можно сделать чтобы зависимость жила пока живет сессия или вообще сделать scope на уровне запроса. Ну и также этой же аннотацией мы проставляем Singleton или Prototype.@Service
и @Repository
которые работают слегка по другому, но давайте не усложнять сейчас) 27 Oct, 12:53
27 Oct, 12:50
25 Oct, 11:30
24 Oct, 11:24
24 Oct, 11:11
22 Oct, 10:05
05 Oct, 12:21
01 Oct, 09:52
22 Sep, 11:12
19 Sep, 18:21
17 Sep, 08:24
16 Sep, 11:09