[{"channel_id":1215056194,"post_id":7802,"date":1785178695000,"forwards":"4","views":"159","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a><br><br>#DevLife","text_length":32,"media":{"root":"\/013\/eh4AAEJJbEgAAAAAocSrhbVSllk.Zh9rG-OwOEvO_NyzQ19g_AI.AkhsSUIAAB56amesz73bmb9Zkl6O1Dy2tI__xQI","photo":{"thumbs":{"m":{"w":320,"h":320,"hash":"EayZAiAS5KKV2abYeA5iFA&ts=1785278060"},"x":{"w":800,"h":800,"hash":"nf1kauIaESaEkSKTd_8pPw&ts=1785278060"},"i":{"bytes":"AoACg|CGe4kePZ8oDdTUMAMREiMOPb\/69Oz+Y7U5Ag4AFNroNNFqK7JgmcOcqB26VSd5LqQuSPxNXZZEWxLooDyDa2BVCHIjY5x6Cp2BGnYTsqLFKwI6Lgf1oqCHH2fBznPUdaKdhNof9jAAY3OVHGcH\/Gq6PvbaCQM9RmrhTyox+83BjkYHWoUC+YcjO7kilYehZjsSsWwS7geQcYqtcxC2KgybieeAR\/WrHnkwNsPCjGKpSx+YFZ3J+pNDXcFqSAbo1KZyTRTba3AnRwG8snqDRSBleKdjGEzznjNWF4U+p70UVaZLHxuqlkXO3PNJKVdcYI7A0UVLKWhJE5SNV5AX070UUVaIZ\/\/Z"}}}}},{"channel_id":1215056194,"post_id":7801,"date":1785064233000,"forwards":"6","views":"335","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5210952531676504517\/thumb.webp?hash=lW-oBXaKtqG91KkYpU0InQ&ts=1785278060' alt='\u274c'> <b>ThreadLocal + Virtual Threads = \u0443\u0442\u0435\u0447\u043a\u0430 \u043f\u0430\u043c\u044f\u0442\u0438<\/b><br><br>\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0435\u0440\u0435\u0448\u043b\u0438 \u043d\u0430 virtual threads, \u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ThreadLocal, \u0442\u043e \u0443 \u0432\u0430\u0441 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0438\u043b\u0430.<br><br>ThreadLocal \u0445\u0440\u0430\u043d\u0438\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 ThreadLocalMap \u2014 \u043f\u043e \u043e\u0434\u043d\u043e\u0439 map \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0440\u0435\u0434. \u041a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0434\u043e\u0432 \u0431\u044b\u043b\u043e 200 \u0432 \u043f\u0443\u043b\u0435, \u044d\u0442\u043e \u0431\u044b\u043b\u043e \u0442\u0435\u0440\u043f\u0438\u043c\u043e. \u041a\u043e\u0433\u0434\u0430 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0442\u0440\u0435\u0434\u043e\u0432 \u0441\u043e\u0442\u043d\u0438 \u0442\u044b\u0441\u044f\u0447, \u043a\u0430\u0436\u0434\u044b\u0439 \u043d\u0435\u0441\u0451\u0442 \u0441\u0432\u043e\u044e map, \u0438 heap \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0433\u043e\u0440\u0435\u0442\u044c. \u041f\u043b\u044e\u0441 \u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c: ThreadLocal.set() \u0432 \u0433\u043b\u0443\u0431\u043e\u043a\u043e\u043c call stack \u2014 \u044d\u0442\u043e \u043d\u0435\u044f\u0432\u043d\u043e\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 .remove(). \u0412 try-finally \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<br><br>Java 21 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0437\u0430\u043c\u0435\u043d\u0443 \u2014 ScopedValue. <br><br>\ud83d\udd39 <b>\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u044f<\/b><br><br>ScopedValue.where(TENANT_ID, tenant).run(() -&gt; { ... }) \u2014 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043e \u043a scope, \u0430 \u043d\u0435 \u043a \u0442\u0440\u0435\u0434\u0443. \u0412\u044b\u0448\u043b\u0438 \u0438\u0437 \u0431\u043b\u043e\u043a\u0430 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e .remove(), \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u00ab\u0437\u0430\u0431\u044b\u043b \u043f\u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c\u00bb.<br><br>\u0418\u043c\u043c\u0443\u0442\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0434\u0438\u0437\u0430\u0439\u043d\u0443. \u041d\u0435\u043b\u044c\u0437\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c .set(). \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0434\u0440\u0443\u0433\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u0441\u043e\u0437\u0434\u0430\u0451\u0442\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 scope. \u042d\u0442\u043e \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u0446\u0435\u043b\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0431\u0430\u0433\u043e\u0432 \u0441 \u00ab\u043f\u0440\u043e\u0442\u0435\u043a\u0430\u043d\u0438\u0435\u043c\u00bb \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0430 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438.<br><br>\u041b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0441\u0442\u044c. \u0412\u043d\u0443\u0442\u0440\u0438 \u043c\u0430\u0441\u0441\u0438\u0432 \u0432\u043c\u0435\u0441\u0442\u043e HashMap. \u041f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0435 \u0432 100k+ \u0442\u0440\u0435\u0434\u043e\u0432 \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u0449\u0443\u0442\u0438\u043c\u0430\u044f.<br><br>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441\u043e StructuredTaskScope: \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u0440\u0435\u0434\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442 scoped values \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f. \u041d\u0435 \u043d\u0443\u0436\u043d\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442.<br><br>\u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0432\u043e\u0434: \u0435\u0441\u043b\u0438 \u0432\u044b \u043c\u0438\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0435 \u043d\u0430 virtual threads, \u0430\u0443\u0434\u0438\u0442 ThreadLocal \u2014 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0448\u0430\u0433. ScopedValue \u043f\u043e\u043a\u0430 preview, \u043d\u043e API \u0441\u0442\u0430\u0431\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0438 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u043e. \u041a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0441\u0442\u043e\u0438\u0442 \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c ThreadLocal \u043d\u0430 ReentrantLock-protected shared state \u0438\u043b\u0438 ScopedValue \u0442\u0430\u043c, \u0433\u0434\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 tenant ID, request context, trace ID \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 per-request \u0434\u0430\u043d\u043d\u044b\u0435.<br><br><b>\u2550\u2550\u2550\u2550\u2550\u2550 \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u2550\u2550\u2550\u2550\u2550\u2550<br><\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/W7oT6g\"><b>\u0412\u0430\u043a\u0430\u043d\u0441\u0438\u0438<\/b><\/a><b> \u2022 <\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/uddI1Q\"><b>\u0417\u0430\u0434\u0430\u0447\u0438<\/b><\/a><b> \u2022 <\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/CaEBfg\"><b>\u0421\u043e\u0431\u0435\u0441\u044b<\/b><\/a><br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a> <br><br>#CoreJava","text_length":1754},{"channel_id":1215056194,"post_id":7800,"date":1785049810000,"views":"236","fwd_from":[],"text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5271589197789028205\/thumb.webp?hash=8AWbcxOQ1Thst9cjlaWZWw&ts=1785278060' alt='\ud83d\ude33'> <b>Documentation Driven Development \u0437\u0432\u0443\u0447\u0438\u0442 \u043a\u0430\u043a \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u043c\u043e\u0434\u043d\u044b\u0439 \u0442\u0435\u0440\u043c\u0438\u043d.<\/b> \u041f\u043e\u043a\u0430 \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u0448\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 AI.<br><br>\u0410\u0433\u0435\u043d\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0442\u0435\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u043c\u0443 \u0434\u0430\u043b\u0438. \u0415\u0441\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043d\u0435\u043f\u043e\u043b\u043d\u0430\u044f \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430, \u043e\u043d \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0434\u043e\u0434\u0443\u043c\u044b\u0432\u0430\u0442\u044c \u2014 \u043e\u0442\u0441\u044e\u0434\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u0434.<br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5213083028728871250\/thumb.webp?hash=7t9_9y6JjxU---OvuZCO1Q&ts=1785278060' alt='\ud83d\udd18'> \u041d\u0430 \u043a\u0443\u0440\u0441\u0435 <a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/1fwYZg\"><b>\u00ab\u0418\u0418 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb<\/b><\/a> \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u0442 \u0410\u0440\u0441\u0435\u043d\u0438\u0439 \u0425\u0430\u0440\u043b\u0430\u043d\u043e\u0432. \u041e\u043d \u043f\u043e\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442, \u0447\u0442\u043e\u0431\u044b \u0430\u0433\u0435\u043d\u0442 \u043f\u043e\u043d\u0438\u043c\u0430\u043b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438.<br><br><i>\u0422\u0430\u043a\u0436\u0435 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0443: Claude, DeepSeek, Qwen \u0438 \u0434\u0440\u0443\u0433\u0438\u0435<\/i> <img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5395444784611480792\/thumb.webp?hash=mh_OHWDIkdpohbhkucnpOg&ts=1785278060' alt='\u270f\ufe0f'><blockquote>\u0412\u043f\u0435\u0440\u0435\u0434\u0438 7 \u043d\u0435\u0434\u0435\u043b\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u043c. \u0412\u0435\u0431\u0438\u043d\u0430\u0440\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0432\u0436\u0438\u0432\u0443\u044e \u0438 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u043f\u0438\u0441\u0438.<\/blockquote>\u0421\u0442\u0430\u0440\u0442\u0443\u0435\u043c 31 \u0430\u0432\u0433\u0443\u0441\u0442\u0430. <b>\u0414\u043e \u043a\u043e\u043d\u0446\u0430 \u0438\u044e\u043b\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c\u0441\u044f \u043f\u043e \u0440\u0430\u043d\u043d\u0435\u0439 \u0446\u0435\u043d\u0435<\/b>, \u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u043c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0431\u0435\u0441\u0441\u0440\u043e\u0447\u043d\u044b\u043c <img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5260697555863374527\/thumb.webp?hash=OzCwm4U7MgCGBSaxdpy_hQ&ts=1785278060' alt='\ud83d\ude00'><br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5341698465812465685\/thumb.webp?hash=HjeRd4QmMYM8Nfv73WAOcQ&ts=1785278060' alt='\ud83d\udd17'> <a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/1fwYZg\"><b>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043d\u0430 \u043a\u0443\u0440\u0441\u0435<\/b><\/a><br><br><b><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5445283293056475189\/thumb.webp?hash=InyHI4DMWbqBY7zwdQGQlg&ts=1785278060' alt='\ud83c\udfc3\u200d\u2640\ufe0f'><\/b><b> <\/b><a href=\"https:\/\/t.me\/proglib_academy\" target=\"_blank\" rel=\"noreferrer nofollow\">Proglib Academy<\/a>","text_length":834,"media":{"root":"\/001\/eB4AAEJJbEgAAAAAq4OQTQ-XANs","photo":{"thumbs":{"m":{"w":256,"h":320,"hash":"q6diqbbTBjkw2RLClTy_tA&ts=1785278060"},"x":{"w":640,"h":800,"hash":"d_V2aq5v1hPBF83lkQup3A&ts=1785278060"},"y":{"w":1024,"h":1280,"hash":"KeyhDEkFsCFqQZWenrGt6A&ts=1785278060"},"w":{"w":1080,"h":1350,"hash":"hIX5ErlzNqPJulSprEJtYg&ts=1785278060"},"i":{"bytes":"AoACA|DNz7CkNSRKSDgqOnWnGEkk705+tAENFSPEUGdyn6VHQA5XZehxml81\/wC9QI3YZCMR6gU0qVbDDB9KAHeZIe5pGLNy1au4J8q4AHGKhu3Bt2GeeP50AUlkwgH9AaazZfNFFAFqS8UvkLkc1FLcGSLacZPX25oooA\/\/2Q=="}}}}},{"channel_id":1215056194,"post_id":7799,"date":1785049809000,"views":"86","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5190716144721340004\/thumb.webp?hash=3PvvxrfHFIHi6-o6e635cg&ts=1785278060' alt='\ud83d\ude2e\u200d\ud83d\udca8'> \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0434\u0430\u0432\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0430 \u0431\u044b\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0443-\u0442\u043e \u0435\u0449\u0451 \ud83d\udc47","text_length":107},{"channel_id":1215056194,"post_id":7798,"date":1784880844000,"forwards":"1","views":"124","comments":"1","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a><br><br>#DevLife","text_length":32,"media":{"root":"\/012\/dh4AAEJJbEgAAAAAM927-geEooo","photo":{"thumbs":{"m":{"w":320,"h":306,"hash":"cj-43G45WftmRvuJCuV6Ag&ts=1785278060"},"x":{"w":640,"h":612,"hash":"em5sN1DikjIUwXC25e6AMg&ts=1785278060"},"i":{"bytes":"AmACg|DVkGTxKUPoCKaUbqsrnjpx\/hWJdkyXjk9d2KD58HIcrnjINAGwFmJ5Lj6MMfyp6pIR80jqfTIP9KS4mWGJWZsAkDNZAvLhpWxLkc44oA2lRlbJkYjJ4OKKz7S5OX8+XjjGaKAM6Y5u2P8AtVdIB4YAj3rNZv3ufepjcSeo\/KgRoXkolsFB6hgD+VQvBvO9ByByKgSUvC+7H3h\/Wkj+Xpk0AJKDkYOMUU8En5XBxjrxRSGRmxl3Z3J+ZpfsU395PzNFFMCSK0lETgsvUf1pRZyf3loopAKbOXuyfmaKKKAP\/9k="}}}}},{"channel_id":1215056194,"post_id":7797,"date":1784810951000,"forwards":"6","views":"243","text":"<b><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5452069934089641166\/thumb.webp?hash=rIgeqpjlzQPoR54SRz_mGQ&ts=1785278060' alt='\u2753'><\/b><b> \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0432 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u0445?<\/b><br><br>\u041e\u0434\u0438\u043d \u0438\u0437 \u043d\u0435\u0434\u043e\u043e\u0446\u0435\u043d\u0451\u043d\u043d\u044b\u0445 \u0441\u043a\u0438\u043b\u043b\u043e\u0432 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u2014 \u044d\u0442\u043e \u0443\u043c\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0443\u044e \u0433\u0440\u0430\u043d\u0438\u0446\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438. \u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u00ab\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043e\u0432\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u043c \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435, \u0440\u043e\u0436\u0434\u0430\u044e\u0442\u0441\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c.<br><br>\u0420\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438 \u0442\u0435\u043c\u0443 \u2014 \u0434\u0435\u0440\u0436\u0438 \u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0443 \ud83d\udc47<br><br>\ud83d\udd39 <b>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Service Boundary<\/b><br><br>\u042d\u0442\u043e \u043a\u043e\u043d\u0442\u0440\u0430\u043a\u0442 \u043d\u0430 \u0442\u0440\u0438 \u0432\u0435\u0449\u0438:<br><br>\u2014 \u0437\u0430 \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441 <b>\u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442<\/b>;<br>\u2014 \u043a\u0430\u043a\u0438\u043c\u0438 <b>\u0434\u0430\u043d\u043d\u044b\u043c\u0438<\/b> \u043e\u043d \u0432\u043b\u0430\u0434\u0435\u0435\u0442;<br>\u2014 \u043a\u0430\u043a \u043e\u043d <b>\u043e\u0431\u0449\u0430\u0435\u0442\u0441\u044f<\/b> \u0441 \u0441\u043e\u0441\u0435\u0434\u044f\u043c\u0438.<br><br>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e: HR \u043d\u0435 \u043b\u0435\u0437\u0435\u0442 \u0432 \u0444\u0438\u043d\u0430\u043d\u0441\u044b, \u0430 \u0441\u043a\u043b\u0430\u0434 \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0440\u043f\u043b\u0430\u0442\u0430\u043c\u0438. \u0422\u0430\u043a \u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u0432\u043e\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b.<br><br>\ud83d\udd39 <b>4 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 <\/b><br><br><b>1. Business Capability First<\/b><br><br>\u0420\u0435\u0436\u044c \u043f\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c, \u0430 \u043d\u0435 \u043f\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u043b\u043e\u044f\u043c. OrderService, PaymentService, UserService, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0431\u0438\u0437\u043d\u0435\u0441 \u0434\u0443\u043c\u0430\u0435\u0442 \u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435.<br><br><b>2. Single Responsibility<\/b><br><br>\u041e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441 \u2014 \u043e\u0434\u043d\u0430 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c. \u0415\u0441\u043b\u0438 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0435\u0441\u0442\u044c \u0441\u043e\u044e\u0437 <b>\u0438<\/b>, \u044d\u0442\u043e \u0443\u0436\u0435 \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u044b\u0439 \u0437\u0432\u043e\u043d\u043e\u0447\u0435\u043a \ud83d\udea8<br><br><b>3. Data Ownership<\/b><br><br>\u0423 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0441\u0432\u043e\u044f \u0411\u0414. \u0411\u0435\u0437 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. Shared database = shared pain. <br><br><b>4. Loose Coupling<\/b><br><br>\u0422\u043e\u043b\u044c\u043a\u043e API, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0447\u0443\u0436\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c.<br><br>\ud83d\udd39 <b>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043d\u0442\u0438\u043f\u0430\u0442\u0442\u0435\u0440\u043d <\/b><pre>\/\/ \u274c \u0411\u0438\u0437\u043d\u0435\u0441-\u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043c\u0435\u0448\u0430\u043d\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0435<br>@Service<br>public class BadOrderService {<br>    public String processOrderAndPayment(int id) {<br>        String order = orderRepository.findById(id)<br>            .orElse(&quot;Order not found&quot;);<br>        String paymentStatus = &quot;Payment Successful&quot;; \/\/ \ud83d\udea8 \u0447\u0443\u0436\u0430\u044f \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u044c<br>        return order + &quot; | &quot; + paymentStatus;<br>    }<br>}<\/pre>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0431\u0435\u0437\u043e\u0431\u0438\u0434\u043d\u043e, \u043f\u043e\u043a\u0430 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043b\u0430\u0442\u0435\u0436\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043b\u0430\u0442\u0451\u0436\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430 \u0438\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c retry-\u043b\u043e\u0433\u0438\u043a\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u043f\u043b\u0430\u0442\u044b. \u0422\u0443\u0442 \u0438 \u043d\u0430\u0447\u043d\u0443\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<br><br>\ud83d\udd39 <b>\u0421\u043e\u0432\u0435\u0442\u044b \u0438\u0437 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438<\/b><br><br>\u2192 <b>\u041d\u0430\u0447\u043d\u0438 \u0441 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430<\/b>. \u041d\u0435 \u0434\u0440\u043e\u0431\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0437\u0430\u0440\u0430\u043d\u0435\u0435. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0439\u043c\u0438 \u0434\u043e\u043c\u0435\u043d, \u043f\u043e\u0442\u043e\u043c \u0440\u0435\u0436\u044c \u043f\u043e \u0448\u0432\u0430\u043c.<br>\u2192 <b>\u0421\u043b\u0435\u0434\u0438 \u0437\u0430 chatty communication<\/b>. \u0415\u0441\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u0435\u043b\u0430\u0435\u0442 10 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043a \u0441\u043e\u0441\u0435\u0434\u044f\u043c \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441, \u0433\u0440\u0430\u043d\u0438\u0446\u0430 \u044f\u0432\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0430 \u043d\u0435 \u0442\u0430\u043c.<br>\u2192 <b>\u0418\u0437\u0443\u0447\u0438 DDD<\/b>. Bounded Context \u0438\u0437 Domain-Driven Design \u044d\u0442\u043e \u043b\u0443\u0447\u0448\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0445 \u0433\u0440\u0430\u043d\u0438\u0446. \u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0446\u0438\u044f \u043e\u043a\u0443\u043f\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e<br><br><b>\u2550\u2550\u2550\u2550\u2550\u2550 \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u2550\u2550\u2550\u2550\u2550\u2550<br><\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/W7oT6g\"><b>\u0412\u0430\u043a\u0430\u043d\u0441\u0438\u0438<\/b><\/a><b> \u2022 <\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/uddI1Q\"><b>\u0417\u0430\u0434\u0430\u0447\u0438<\/b><\/a><b> \u2022 <\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/CaEBfg\"><b>\u0421\u043e\u0431\u0435\u0441\u044b<\/b><\/a><b><br><\/b><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a> <br><br>#CoreJava","text_length":2087},{"channel_id":1215056194,"post_id":7796,"date":1784747716000,"forwards":"2","views":"480","fwd_from":[],"text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5240204600446818776\/thumb.webp?hash=yadsZL1YsouQ9_tE9zfKCg&ts=1785278060' alt='\ud83e\udd22'> <b>\u0427\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Claude Code, \u0442\u0435\u043c \u0437\u0430\u043c\u0435\u0442\u043d\u0435\u0435 \u043e\u0434\u043d\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430<\/b>: \u043a\u043e\u0434\u043e\u0432\u0430\u044f \u0431\u0430\u0437\u0430 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430 \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<br><br>\u0413\u0434\u0435-\u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u044b, \u0433\u0434\u0435-\u0442\u043e \u0438\u0445 \u0437\u0430\u0431\u044b\u043b\u0438. \u0413\u0434\u0435-\u0442\u043e \u0430\u0433\u0435\u043d\u0442 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0433\u0434\u0435-\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441 \u043d\u0435\u0439 \u043d\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u0435\u0442\u0441\u044f.<br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5474438063637669983\/thumb.webp?hash=Z4F-YfiQnmHSYMTtTvKbJw&ts=1785278060' alt='\u26a0\ufe0f'> <b>\u0418 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 Claude Code.<\/b> \u041e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u043e\u043c\u0443 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430.<br><br><b>\u0417\u0430\u0432\u0442\u0440\u0430 \u043f\u043e\u043a\u0430\u0436\u0435\u043c<\/b>, \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c AI \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u043d\u0435 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0432 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0445\u0430\u043e\u0441\u0430.<br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5413879192267805083\/thumb.webp?hash=F1cD_6Y78CgcC4elZg7-BQ&ts=1785278060' alt='\ud83d\uddd3'> <b>23 \u0438\u044e\u043b\u044f, 19:00 \u041c\u0421\u041a<\/b><br>\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e. 60 \u043c\u0438\u043d\u0443\u0442 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 + 30 \u043c\u0438\u043d\u0443\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432.<br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5271604874419647061\/thumb.webp?hash=hN1C6cCgAKq-QGFKqDq1WQ&ts=1785278060' alt='\ud83d\udd17'> <a href=\"https:\/\/t.me\/proglib_academy_webinar_bot?start=tr14341\" target=\"_blank\" rel=\"noreferrer nofollow\"><b>\u0417\u0430\u043d\u044f\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0432\u0435\u0431\u0438\u043d\u0430\u0440\u0435 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442<\/b><\/a><br><br><b><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5445283293056475189\/thumb.webp?hash=InyHI4DMWbqBY7zwdQGQlg&ts=1785278060' alt='\ud83c\udfc3\u200d\u2640\ufe0f'><\/b><b> <\/b><a href=\"https:\/\/t.me\/proglib_academy\" target=\"_blank\" rel=\"noreferrer nofollow\">Proglib Academy<\/a>","text_length":685,"media":{"root":"\/013\/dB4AAEJJbEgAAAAAocSrhbVSllk","photo":{"thumbs":{"m":{"w":320,"h":320,"hash":"RVGCQsHYSA3ea2ocnEkxmA&ts=1785278060"},"x":{"w":800,"h":800,"hash":"pD9ikEC1fSbADTFS5gLiKw&ts=1785278060"},"y":{"w":1080,"h":1080,"hash":"Du0qm9q3LqY26Ve9MWHq3g&ts=1785278060"},"i":{"bytes":"AoACg|DQjiTyFbywxwO1J+6z\/qOPXbTZYzJZRqHKHjkVnyI0Miq08j7j\/eIxTbdyUlY0cx5\/49\/\/AB2l\/d4\/1H6VlRXDCMBnbOf71S73bkTYz230rs0UDRlij8hmEYU4z0oqODd9hk3HJ55zmitIN2MpJJjbqVotPjZOvAqlbySTOTwxxz06Vcu1DafHnoCD+lZyxABTjnvU2vctOwxhtdhj7rGlYtuBA+lSiNRnjrUZX1PC4pWKUrbGrAMWDj60UQnNjIfrRVQ2Mp7g3lzWqRmVVIxUX2WL\/n5X8v8A69FFNoE2H2WL\/n5X8v8A69N+xxc\/6UvPt\/8AXoopWHzNE6+XDavGJVYnNFFFXFENn\/\/Z"}}}}},{"channel_id":1215056194,"post_id":7795,"date":1784747716000,"views":"49","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5445283293056475189\/thumb.webp?hash=InyHI4DMWbqBY7zwdQGQlg&ts=1785278060' alt='\ud83c\udfc3\u200d\u2640\ufe0f'> \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u0441\u0442\u0451\u0442, \u043d\u043e \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0435\u0439 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u043a\u043e\u0434\u043e\u0432\u0430\u044f \u0431\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u0442\u0435\u0440\u044f\u0435\u0442 \u0435\u0434\u0438\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c. <br><br><b>\u041d\u0438\u0436\u0435 \u2014 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0432\u0435\u0431\u0438\u043d\u0430\u0440 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u26a0\ufe0f<\/b>","text_length":175},{"channel_id":1215056194,"post_id":7794,"date":1784708142000,"forwards":"4","views":"484","comments":"1","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a><br><br>#DevLife","text_length":32,"media":{"root":"\/003\/ch4AAEJJbEgAAAAAYkaf8LY08Ig","photo":{"thumbs":{"m":{"w":320,"h":112,"hash":"EU7plh6bJ4Foa8gkBSaq0A&ts=1785278060"},"x":{"w":800,"h":279,"hash":"yooSFk0PUtI3hUsw9kfQJA&ts=1785278060"},"i":{"bytes":"AOACg|DUJwT+8I59KN3I\/ecf7tPIfP3hj6UYf++PyoAjD5H+tJ+i05WAwN5P1FOIf+8PyoIfA+YflQAB1JAB60Uqhh94g0UAf\/\/Z"}}}}},{"channel_id":1215056194,"post_id":7793,"date":1784624156000,"forwards":"2","views":"459","text":"<b><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5341715473882955310\/thumb.webp?hash=G6j5mwkoTx23lsm96daEnQ&ts=1785278060' alt='\u2699\ufe0f'><\/b><b> JaCoCo<\/b><br><br>\u0415\u0441\u043b\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 IDE \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0443\u0436\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 JaCoCo. \u042d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0430.<br><br>\u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 IntelliJ IDEA, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439, JaCoCo \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0430\u043d\u0430\u043b\u0438\u0437\u0443 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f:<br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5206607081334906820\/thumb.webp?hash=0QcGCueWzjhUtMG8ARdB1w&ts=1785278060' alt='\u2714\ufe0f'> \u041c\u043d\u043e\u0433\u043e\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u044b\u0435 \u043e\u0442\u0447\u0451\u0442\u044b \u2014 HTML \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, XML \u0438 CSV \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438<br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5206607081334906820\/thumb.webp?hash=0QcGCueWzjhUtMG8ARdB1w&ts=1785278060' alt='\u2714\ufe0f'> \u0411\u0435\u0441\u0448\u043e\u0432\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 (Maven\/Gradle)<br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5206607081334906820\/thumb.webp?hash=0QcGCueWzjhUtMG8ARdB1w&ts=1785278060' alt='\u2714\ufe0f'> \u0413\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043a CI\/CD \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441 Jenkins, GitLab CI \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u043c\u0438<br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5206607081334906820\/thumb.webp?hash=0QcGCueWzjhUtMG8ARdB1w&ts=1785278060' alt='\u2714\ufe0f'> \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438\u0437 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b \u0438 \u043f\u0430\u043a\u0435\u0442\u044b<br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5206607081334906820\/thumb.webp?hash=0QcGCueWzjhUtMG8ARdB1w&ts=1785278060' alt='\u2714\ufe0f'> \u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 SonarQube \u0438 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430<br><br>JaCoCo \u0438\u0434\u0435\u0430\u043b\u0435\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0433\u0434\u0435 \u0432\u0430\u0436\u043d\u0430 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.<br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5271604874419647061\/thumb.webp?hash=hN1C6cCgAKq-QGFKqDq1WQ&ts=1785278060' alt='\ud83d\udd17'> <a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/github.com\/jacoco\/jacoco\">JaCoCo GitHub<\/a><br><br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/R7n3rw\">\ud83d\udd39 \u041a\u0443\u0440\u0441 \u00ab\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b \u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb<\/a><br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/proglib.academy\/python\">\ud83d\udd39 <\/a><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/o3NQUg\">\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u0446\u0438\u044e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430<\/a><br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/proglib.academy\/python\">\ud83d\udd39 <\/a><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/3AItUA\">\u0421\u0430\u0439\u0442 \u0410\u043a\u0430\u0434\u0435\u043c\u0438\u0438<\/a> <a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/proglib.academy\/python\">\ud83d\udd39 <\/a><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/c5sbKw\">\u0421\u0430\u0439\u0442 Proglib<\/a><br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a> <br><br>#Enterprise","text_length":1000},{"channel_id":1215056194,"post_id":7792,"date":1784559541000,"forwards":"10","views":"2.0K","text":"<b>\u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0431\u044d\u043a\u0435\u043d\u0434-\u043a\u043e\u043c\u044c\u044e\u043d\u0438\u0442\u0438 \u043d\u0430 JVM Day<\/b><br><br>\u0411\u044d\u043a\u0435\u043d\u0434\u0435\u0440\u044b, 29 \u0430\u0432\u0433\u0443\u0441\u0442\u0430 \u0432 \u041c\u043e\u0441\u043a\u0432\u0435 \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0445\u0430\u0440\u0434\u043a\u043e\u0440\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f. \u0416\u0434\u0443\u0442 \u0441\u0432\u043e\u0438\u0445: Java-, Scala- \u0438 Kotlin-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432, \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u0432 \u0438 \u0442\u0438\u043c\u043b\u0438\u0434\u043e\u0432.<br><br>\u0417\u0434\u0435\u0441\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u044f\u0442 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443\u0442:<br>\u2014 \u0410\u043d\u0434\u0440\u0435\u0439 \u041a\u0443\u043b\u0435\u0448\u043e\u0432 \u2014 \u0447\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0432 \u043c\u0438\u0440\u0435 JVM \u0437\u0430 \u0433\u043e\u0434.<br>\u2014 \u0421\u0435\u0440\u0433\u0435\u0439 \u041f\u0435\u0442\u0440\u0435\u043b\u0435\u0432\u0438\u0447 \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u043e Mechanical Sympathy.<br>\u2014 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u041b\u0430\u043d\u0446\u043e\u0432 \u2014 Java \u043f\u043e\u0441\u043b\u0435 Loom: \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 concurrency.<br>\u2014 \u0410\u043d\u0442\u043e\u043d \u041a\u0443\u0440\u0430\u043a\u043e \u2014 \u043a\u0430\u043a \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0438 \u0432\u0432\u043e\u0434\u044f\u0442 \u0432 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435.<br><br>\u0410 \u0432\u0435\u0447\u0435\u0440\u043e\u043c \u0432\u043e \u0434\u0432\u043e\u0440\u0435 T-Space \u2014 \u043f\u043e\u0441\u0438\u0434\u0435\u043b\u043a\u0438, \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u044b \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043c\u0438\u043a\u0440\u043e\u0444\u043e\u043d \u0441 \u0438\u0441\u0442\u043e\u0440\u0438\u044f\u043c\u0438 \u043e\u0448\u0438\u0431\u043e\u043a.<br>\u041c\u0435\u0441\u0442 \u043c\u0430\u043b\u043e, \u0430 \u0446\u0435\u043d\u0430 \u0431\u0438\u043b\u0435\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u0438. <br><br><br><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/meetup.tbank.ru\/conference\/jvm-day\"><b>\u0423\u0441\u043f\u0435\u0432\u0430\u0439 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f<\/b><\/a>","text_length":589,"media":{"root":"\/00b\/cB4AAEJJbEgAAAAAo1Vh2Bef1Fs","video":{"duration":27,"w":1000,"h":600,"is_animation":false,"is_round":false,"mime_type":"video\/mp4","size":14435159,"thumbs":{"m":{"w":320,"h":192,"hash":"oDfxairQ5vPIu_e4QaigzA&ts=1785278060"},"i":{"bytes":"AYACg|Bg57jninFNxGB83QGqyEY4Zmq1bsA4ZhwOmKolIkFvJ04+uasRQrHz1b1pFlVjgHmn5pAPzRTc0UDMYAKo3AA9kFODN5gB78k\/0oooAngckFt3I5q6DkZB4NFFMQ4UUUUAf\/\/Z"}},"streamable":true,"televisor_hash":"i8ZZuh_DgqHQut0bGb7Rww&ts=1785278060"}}},{"channel_id":1215056194,"post_id":7791,"date":1784555480000,"forwards":"1","views":"392","text":"<b>\ud83d\udc27 \u041c\u0430\u0433\u0438\u044f Linux CLI<\/b><br><br>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0436\u0440\u0451\u0442 CPU \u043d\u0430 100%, \u0430 top \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e PID? \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 strace -cp &lt;PID&gt;, \u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u2014 \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u043d\u043e, \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0438\u0441\u0438\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a\u0435, \u0441\u0435\u0442\u0438 \u0438\u043b\u0438 \u0447\u0451\u043c-\u0442\u043e \u0435\u0449\u0451.<br><br><b>\ud83d\udd39 \u0417\u0430\u0447\u0435\u043c \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e<\/b><br><br>\u2014 \u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u043d\u0430 \u043a\u0430\u043a\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u0442\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f: read, write, futex, epoll_wait.<br>\u2014 \u0415\u0441\u043b\u0438 90% \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 futex, \u0442\u043e \u0434\u0435\u0434\u043b\u043e\u043a \u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u043d\u0448\u043d \u043d\u0430 \u043c\u044c\u044e\u0442\u0435\u043a\u0441\u0435.<br>\u2014 \u0415\u0441\u043b\u0438 read\/write, \u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 I\/O, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0439\u0442\u0435 \u0434\u0438\u0441\u043a \u0438\u043b\u0438 NFS.<br>\u2014 \u0415\u0441\u043b\u0438 connect\/sendto, \u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0436\u0434\u0451\u0442 \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u0430.<br><br><b>\ud83d\udd39 \u041a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/b><br><br>\u2014 \u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430: <code>strace -cp &lt;PID&gt;<\/code><br>\u2014 \u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438: <code>strace -p &lt;PID&gt; -e trace=network<\/code><br>\u2014 \u0422\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438: <code>strace -p &lt;PID&gt; -e trace=file<\/code><br>\u2014 \u0421 \u0442\u0430\u0439\u043c\u0441\u0442\u0435\u043c\u043f\u0430\u043c\u0438: <code>strace -p &lt;PID&gt; -T -e trace=write<\/code><br>\u2014 \u0422\u0440\u0435\u0439\u0441\u0438\u0442\u044c \u0441 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438: <code>strace -fp &lt;PID&gt;<\/code><br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5422439311196834318\/thumb.webp?hash=xSXIxfV8c7BtchuV9H6OjQ&ts=1785278060' alt='\ud83d\udca1'> strace \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u043f\u0440\u043e\u0434\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 strace -c (\u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430) \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u2014 \u043e\u0432\u0435\u0440\u0445\u0435\u0434 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439.<br><br><b>\u2550\u2550\u2550\u2550\u2550\u2550 \u041d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044f \u2550\u2550\u2550\u2550\u2550\u2550<br><\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/W7oT6g\"><b>\u0412\u0430\u043a\u0430\u043d\u0441\u0438\u0438<\/b><\/a><b> \u2022 <\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/uddI1Q\"><b>\u0417\u0430\u0434\u0430\u0447\u0438<\/b><\/a><b> \u2022 <\/b><a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/CaEBfg\"><b>\u0421\u043e\u0431\u0435\u0441\u044b<\/b><\/a><br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5202102283411677983\/thumb.webp?hash=-K7y7FljaVKvxf9UCouBow&ts=1785278060' alt='\ud83d\udc38'> <a title=\"\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430 | Java, Spring, Maven, Hibernate\" href=\"\/channels\/@javaproglib\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u0436\u0430\u0432\u0438\u0441\u0442\u0430<\/a> <br><br>#Enterprise","text_length":1039},{"channel_id":1215056194,"post_id":7790,"date":1784450996000,"forwards":"4","views":"296","comments":"2","media":{"root":"\/001\/bh4AAEJJbEgAAAAAq4OQTQ-XANs","photo":{"thumbs":{"m":{"w":240,"h":320,"hash":"RrbsmUlKvxETSg-i7XSfmw&ts=1785278060"},"x":{"w":600,"h":800,"hash":"4We3fi64hiC0WTk9n5DKdA&ts=1785278060"},"y":{"w":960,"h":1280,"hash":"3e9hM8rwbOqunXboPtgBlA&ts=1785278060"},"i":{"bytes":"AoAB4|CcBSMcfnTWVDjJxj3oLKqEjpTEYs5LDjsBVCJUCDcR3GaZa9D+NP3AbjgjA9KS1HBoAr\/aN+FC4yfWlaXb05NTiCMAAjJqJp4EJCruYdeKnmK5REmY5ymeO1T2hBU1DBdJhmmfBY8Ag8CkvCAVKEsWGflOOKLg0Xmwq+lY58y3YhgxHZloopsF1EefzFKqHYnpn\/8AXVyyhKAs4wx4H0ooqL6lLY\/\/2Q=="}}}}},{"channel_id":1215056194,"post_id":7789,"date":1784372624000,"forwards":"2","views":"211","fwd_from":[],"text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5444923748459227433\/thumb.webp?hash=XeILuqvhvN0mqGEzOJolXA&ts=1785278060' alt='\ud83e\uddd1\u200d\ud83d\udcbb'><b> \u0423\u0447\u0438\u0442\u044c\u0441\u044f \u0430\u0433\u0435\u043d\u0442\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u2014 \u0443 \u0442\u0435\u0445, \u043a\u0442\u043e \u0443\u0436\u0435 \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u0442 \u0435\u0451 \u0432 \u0431\u0438\u0433\u0442\u0435\u0445\u0435<br><\/b><br>\u041a\u0443\u0440\u0441 <a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/ga7bgw\"><b>\u00ab\u0418\u0418 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00bb<\/b><\/a> \u0432\u0435\u0434\u0443\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438\u0437 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 IT-\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 <img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5431776939465516694\/thumb.webp?hash=JgE1ImPQVThuXnGiYOAPvA&ts=1785278060' alt='\ud83d\udd25'>  <br><br><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5341541716686029517\/thumb.webp?hash=9sXxmkhtsblfobWtR8jYbg&ts=1785278060' alt='\ud83d\udd35'> \u041e\u043d\u0438 \u043f\u0440\u043e\u0448\u043b\u0438 \u043f\u0443\u0442\u044c <i>\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 AI \u0434\u043e \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432<\/i>, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0430\u0433\u0435\u043d\u0442\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u0434, \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c PR \u0438 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0434\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0438 \u0434\u043e \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0430.<br><br>\u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c \u0432\u0430\u0441 \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u0435\u043c. <a target=\"_blank\" rel=\"noreferrer nofollow\" href=\"https:\/\/clc.to\/ga7bgw\"><b>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043a\u0443\u0440\u0441\u0430 \u2014 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435<\/b><\/a> <img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5237904005509684537\/thumb.webp?hash=mfX4B2UaqL2THgwS1jGYJg&ts=1785278060' alt='\ud83c\udfb9'><br><br><b><img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5445283293056475189\/thumb.webp?hash=InyHI4DMWbqBY7zwdQGQlg&ts=1785278060' alt='\ud83c\udfc3\u200d\u2640\ufe0f'><\/b><b> <\/b><a href=\"https:\/\/t.me\/proglib_academy\" target=\"_blank\" rel=\"noreferrer nofollow\">Proglib Academy<\/a>","text_length":438,"media":{"root":"\/001\/bR4AAEJJbEgAAAAAq4OQTQ-XANs","photo":{"thumbs":{"m":{"w":256,"h":320,"hash":"N4TERNijWm7S-bFnm2iJEA&ts=1785278060"},"x":{"w":640,"h":800,"hash":"EtVZbRMj_loLQLRwiVoRRA&ts=1785278060"},"y":{"w":1024,"h":1280,"hash":"sK36j0ibjtsCezToYohc_w&ts=1785278060"},"w":{"w":1080,"h":1350,"hash":"meWUrIj9sss8ysqIUbcDYg&ts=1785278060"},"i":{"bytes":"AoACA|CGS4KOVCZ980z7U4\/5Z\/rWvbMq265ZVznrU24Yz5iY9f8AJrSU3dkKKsYQu2wf3dWI33Rh8YJrXMi7cggj61DdMrW7dD0NEZu+opRVtBkIJgThiOegB\/nT9smMfPj02rUME6JEFYsCPSpPtUX96SlKLuxqSsTZzwYmAHTkf41HdKFt2x7fzpv2qL+9JTZ7lJIti5yfUUKLuDkrFPNL0FFFdJiA96O9FFAH\/9k="}}}}},{"channel_id":1215056194,"post_id":7788,"date":1784372624000,"views":"198","text":"<img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5312184223648467705\/thumb.webp?hash=dBOXeCTyyTxz8lYKlXc-Zw&ts=1785278060' alt='\ud83d\udccd'> <b>\u041a\u0443\u0440\u0441 \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c\u044b \u0438 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f<\/b><br><br><i>\u0412\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0435\u0433\u043e \u0446\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u043e\u043f\u044b\u0442 \u0442\u0435\u0445, \u043a\u0442\u043e \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u0432\u0435\u0434\u0451\u0442. <br><\/i><br>\u041e\u0431 \u044d\u0442\u043e\u043c \u043a\u0430\u043a \u0440\u0430\u0437 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0441\u0442 Proglib Academy <img class='tg-emoji' loading='lazy' src='https:\/\/televisor.tlgrm.dev\/emoji\/5431776939465516694\/thumb.webp?hash=JgE1ImPQVThuXnGiYOAPvA&ts=1785278060' alt='\ud83d\udd25'>","text_length":171}]