<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Іс on AZ-Way</title><link>https://az-way-blog.web.app/tags/wealth/</link><description>Recent content in Іс on AZ-Way</description><generator>Hugo</generator><language>kk</language><lastBuildDate>Mon, 09 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://az-way-blog.web.app/tags/wealth/index.xml" rel="self" type="application/rss+xml"/><item><title>Angular 6 → 22: жаңарту жолы және неден сүрінесің</title><link>https://az-way-blog.web.app/posts/angular-6-to-22/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/angular-6-to-22/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Angular-ды көп нұсқадан аттап жаңартудың бір ғана жолы бар: бір уақытта бір мажорлық нұсқа, әрқайсысынан кейін жасыл құрастыру мен тесттер. Үлкен бұзылулар сирек болады, бірақ оларды алдын ала болжауға болады: рендеринг қозғалтқышының ауысуы, құрастырушының ауысуы, standalone, сигналдар, zone.js. Төменде — 6-дан 22-ге дейінгі жол картасы, соңғы қадамдарда бізде не бұзылды (импорт сақиналары, бәрінің үстіндегі оверлейлер, zone.js) және монорепозиторийде мұның неге он рет емес, бір рет жасалатыны.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="бірінші-ереже-бір-бірден-нұсқа"&gt;Бірінші ереже: бір-бірден нұсқа&lt;/h2&gt;&#10;&lt;p&gt;Angular мажорлық нұсқаны шамамен жарты жылда бір рет шығарады. Жаңарту командасы:&lt;/p&gt;</description></item><item><title>Angular-монорепозиторийдегі Sentry: «пайдаланушылар шағымданбайды» дегеннен бір топтағы 6889 оқиғаға дейін</title><link>https://az-way-blog.web.app/posts/sentry-angular-monorepo/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/sentry-angular-monorepo/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Пайдаланушылар багтар туралы ешқашан дерлік жазбайды: олар бетті жаңартып, ренжиді де, әрі қарай кетеді. Sentry әр пайдаланушының браузерінен қателерді түсінікті стекпен және контекстпен жинайды. Төменде — оны бір монорепозиторийдің 17 қолданбасына бірден қалай қостық, source maps-сыз ол неге пайдасыз, дұрыс жіберілмеген бір қате 157 адамнан 6889 оқиғаны қалай жинады және Sentry пайдаланушы туралы нені білмеуі керек.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="бұл-не-үшін-керек"&gt;Бұл не үшін керек&lt;/h2&gt;&#10;&lt;p&gt;Пайдаланушы браузеріндегі &lt;code&gt;console.error&lt;/code&gt;-ді ешкім көрмейді. Тестілеуші бір браузерді және бір деректерді тексереді. Нақты пайдаланушылар — жүздеген комбинация: жұмыс компьютеріндегі ескі Chrome, кешеден бері ашық тұрған қойынды, баяу желі, командада ешкімде жоқ құқықтар.&lt;/p&gt;</description></item><item><title>Java OCA 8 frontend-әзірлеушінің көзімен</title><link>https://az-way-blog.web.app/posts/java-oca-8-frontend/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/java-oca-8-frontend/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Мен Angular мен TypeScript-тегі frontend-әзірлеушімін және Boyarsky мен Selikoff кітабы бойынша Oracle Java SE 8 Programmer I (1Z0-808) сертификаттауына дайындалып жүрмін. Мақсат — Java (Spring) backend бойынша junior/тағылымдамашы сұхбаты. Жазбада — сандармен прогресс, алты тараудың әрқайсысында не бар, TypeScript әдеттері қай жерде қате жауапқа апарады және әр тарауды кодпен бекіту үшін бір-екі LeetCode есебінен. Java мен TypeScript-тің синтаксисі ұқсас, сондықтан ең қулық жерлер — код таныс көрінетін, бірақ басқаша жұмыс істейтін жерлер.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="неге-java-және-неге-осы-емтихан"&gt;Неге Java және неге осы емтихан&lt;/h2&gt;&#10;&lt;p&gt;Мақсат — тек frontend емес, Java/Spring-де backend жаза білу. Сертификаттың өзі жұмыс бермейді. Бірақ оған дайындық тілдің негізін «Stack Overflow деңгейінде» емес, ұсақ-түйегіне дейін үйренуге мәжбүрлейді. Емтихан дәл ұсақ-түйекті тексереді: бұл код компиляцияланады ма, не басып шығарады, қандай ерекшелік лақтырады.&lt;/p&gt;</description></item><item><title>Nx affected-пен нөлден CI: «пайплайн жоқтан» барлық staging-қолданбаларға 9 минутқа дейін</title><link>https://az-way-blog.web.app/posts/ci-nx-affected/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/ci-nx-affected/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Ондаған қолданбасы бар монорепозиторийде әр коммитке бәрін құрастыру — ұзақ әрі мағынасыз: қолданбалардың көбін өзгеріс қозғамаған. Nx нені қозғағанын санай алады — &lt;code&gt;nx affected&lt;/code&gt;. Қиындық командада емес, «неге қатысты қозғалған?» деген сұрақта. Төменде — скриптермен қолмен деплой жасаудан MR-ды тексеретін және тек керегін құрастыратын пайплайнға дейінгі жол, және жолда басқан төрт тырма.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="нөлдік-нүкте-қолмен-деплой"&gt;Нөлдік нүкте: қолмен деплой&lt;/h2&gt;&#10;&lt;p&gt;Алғашында пайплайн болған жоқ. Shell-скрипт болды: қолданбаны жергілікті құрастырып, файлдарды серверге көшіру. Мәселелер айқын:&lt;/p&gt;</description></item><item><title>Ерік-жігердің орнына профиль: AZ-Way Lock iPhone, iPad және Mac-та назарды қалай ұстайды</title><link>https://az-way-blog.web.app/posts/az-way-lock/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/az-way-lock/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Мен «телефонда аз отыруға» ерік-жігер арқылы тырыспаймын. Apple Configurator-да iPhone, iPad және Mac-тан ойын-сауықты алып тастайтын және оның оралуын қымбатқа түсіретін конфигурация профилін жинадым. Ішінде не бар екенін санасаң, бастысы көрінеді: бұғатталған сайттардың 44 %-ы және бұғатталған қолданбалардың 31 %-ы мазмұнның өзі емес, оған апаратын айналма жолдар. Профильді орнатқаннан кейін az-log-та &lt;code&gt;phone&lt;/code&gt; себебі дерлік жоғалды: алғашқы күні 5 жағдайдың 4-еуі, ал келесі сегіз күнде 24-тің 1-еуі.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="неге-ерік-жігер-емес-профиль"&gt;Неге ерік-жігер емес, профиль&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://az-way-blog.web.app/posts/az-log/"&gt;az-log&lt;/a&gt; жазбасында кестенің алғашқы жолы-ақ нені көрсеткенін айттым: бес намаздың төртеуін телефон кесірінен қаза қылдым не кейінге қалдырдым. Қорытынды «көбірек тырысу керек» емес, «жағдайды өзгерту керек» болды.&lt;/p&gt;</description></item><item><title>Көшірілген 10+ Angular-жобадан бір Nx-монорепозиторийге</title><link>https://az-way-blog.web.app/posts/nx-monorepo-from-copies/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/nx-monorepo-from-copies/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Бізде бір Angular-қолданбаның оннан астам көшірмесі болды — әр аймақтық тапсырыс берушіге біреуден. Багты он рет түзейтінбіз, фичаны он рет қосатынбыз, әр жолы бір жерде ұмытып кететінбіз. Бәрін бір Nx-монорепозиторийге жинадық: ортақ код кітапханаларда, ал аймақ қолданбасы ~25 файлдан тұратын жұқа қабыққа айналды. Төменде — қандай ретпен көшіру керек, кітапханалар арасындағы шекараны қалай жүргізу керек және неден күйіп қалдық.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="мәселе-көшірме--өсіп-отыратын-қарыз"&gt;Мәселе: көшірме — өсіп отыратын қарыз&lt;/h2&gt;&#10;&lt;p&gt;Сызба таныс. Бірінші тапсырыс берушіге арналған қолданба бар. Екіншісі келеді: «бізге де дәл осындай, бірақ біздің логотиппен және бір-екі айырмашылықпен». Ең жылдамы — папканы көшіру. Бір жылдан кейін көшірмелер он болады, және:&lt;/p&gt;</description></item><item><title>Қайталанатын қателерден қорғаныс ретінде өз ESLint-ережелерің</title><link>https://az-way-blog.web.app/posts/custom-eslint-rules/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/custom-eslint-rules/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Код-ревью қатені бір рет ұстайды. Линтер ережесі оны әрдайым ұстайды: әр коммитте, әр әзірлеушіде, CI-да. Менің ережем қарапайым: бір қате ревьюге екінші рет жетсе, бұл енді адамның қатесі емес, құралдардағы саңылау. Әрі қарай — үш сатылы баспалдақ (дайын ереже → хабарламасы бар шектеу → өз ережең), өз ережеңді қадамдап талдау және оның жалпы жұмыс істейтінін қалай түсінуге болатыны.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="неге-ревью-жеткіліксіз"&gt;Неге ревью жеткіліксіз&lt;/h2&gt;&#10;&lt;p&gt;Ревьюді адам жасайды. Адам шаршайды, асығады, логикаға қарап, он рет көрген ұсақ-түйекті өткізіп алады. Ал командадағы жаңа әзірлеуші бұл ұсақ-түйекті мүлде білмейді: ол бір кезде соның кесірінен продты жөндеген адамдардың басында ғана өмір сүреді.&lt;/p&gt;</description></item><item><title>Өздері жөндейтін ESLint-ережелер: fixer, suggestions және Angular-шаблондар</title><link>https://az-way-blog.web.app/posts/eslint-fixer-angular-templates/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/eslint-fixer-angular-templates/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Өткен &lt;a href="https://az-way-blog.web.app/posts/custom-eslint-rules/"&gt;custom-eslint-rules&lt;/a&gt; жазбасында ереже қатені тек табатын. Келесі қадам — оны түзетуі. Мұнда басты нәрсе техника емес, шекара: &lt;code&gt;eslint --fix&lt;/code&gt;-ке тек &lt;strong&gt;код мінез-құлқын ешқашан өзгертпейтін&lt;/strong&gt; түзетуді ғана сеніп тапсыруға болады. Қалғанының бәрі — адам өзі қолданатын кеңес (suggestion). Қосымша Angular-шаблондарға арналған ережелер: олар да солай құрылған, тек ағашы басқа.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="көмектің-үш-деңгейі"&gt;Көмектің үш деңгейі&lt;/h2&gt;&#10;&lt;p&gt;Ереже үшеуінің бірін істей алады:&lt;/p&gt;&#10;&lt;div class="az-table-wrap"&gt;&#10; &lt;table class="az-table"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th&gt;Деңгей&lt;/th&gt;&lt;th&gt;Не істейді&lt;/th&gt;&lt;th&gt;Кім шешеді&lt;/th&gt;&lt;th&gt;Қашан қолданылады&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;Тек хабарлама&lt;/td&gt;&lt;td&gt;Қатені ерекшелейді&lt;/td&gt;&lt;td&gt;Адам қолмен түзейді&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;strong&gt;Suggestion&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;1+ түзету нұсқасын ұсынады&lt;/td&gt;&lt;td&gt;Адам редакторда таңдайды&lt;/td&gt;&lt;td&gt;Шерткенде, &lt;code&gt;--fix&lt;/code&gt; оларға &lt;strong&gt;тиіспейді&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Өзі түзейді&lt;/td&gt;&lt;td&gt;Машина&lt;/td&gt;&lt;td&gt;&lt;code&gt;eslint --fix&lt;/code&gt;, «fix on save», CI&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10; &lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Таңдау ережесі біреу: &lt;strong&gt;fix — тек түзету 100 % жағдайда қауіпсіз болса ғана.&lt;/strong&gt; Егер ол кем дегенде бір жағдайда мінез-құлықты өзгертуі мүмкін болса, бұл suggestion. &lt;code&gt;--fix&lt;/code&gt; жиі өзі іске қосылады — файлды сақтағанда немесе pre-commit-хукта. Оның әр түзетуіне ешкім қарамайды, сондықтан автофикс қатесі — ешкім байқамаған баг.&lt;/p&gt;</description></item><item><title>Үлкен монорепозиторийде Tailwind v3 → v4 миграциясы</title><link>https://az-way-blog.web.app/posts/tailwind-v3-to-v4-monorepo/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/tailwind-v3-to-v4-monorepo/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Tailwind v4 конфигурацияны JavaScript-тен CSS-ке көшірді және кластарды файлдардан өзі іздейді. Қарапайым жобада бұл ыңғайлы. Кластар қолданбадан тыс ондаған кітапханада тұратын монорепозиторийде бұл жаңартудан кейін «стильдер жоғалып кетуінің» бірінші себебі. Төменде — не өзгереді, онсыз болмайтын төрт директива (&lt;code&gt;@import&lt;/code&gt;, &lt;code&gt;@config&lt;/code&gt;, &lt;code&gt;@source&lt;/code&gt;, &lt;code&gt;@reference&lt;/code&gt;), Sass-пен не істеу керек және нәтижені CI-дағы тексеріспен қалай бекіту керек.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="v4-те-не-өзгерді-қарапайым-тілмен"&gt;v4-те не өзгерді, қарапайым тілмен&lt;/h2&gt;&#10;&lt;p&gt;Tailwind — CSS генераторы. Ол файлдарыңды оқып, ішінен кластарды (&lt;code&gt;flex&lt;/code&gt;, &lt;code&gt;bg-primary&lt;/code&gt;, &lt;code&gt;px-4&lt;/code&gt;) табады және тек шынымен қолданылатындарына ғана CSS жазады.&lt;/p&gt;</description></item><item><title>az-log: күніне бір жол және телефонымды құлыптаған профиль</title><link>https://az-way-blog.web.app/posts/az-log/</link><pubDate>Sat, 07 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/az-log/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;az-log — бұл Google-кесте: бір жол бір күнге тең, ал бағандар төрт салаға бөлінген: сенім, денсаулық, отбасы және табыс. Алғашқы күні-ақ кесте бес намаздың бәрін өткізіп алғанымды көрсетті, оның төртеуінің себебі біреу еді: телефон. Содан кейін iPhone мен iPad-қа Apple Configurator арқылы профиль орнаттым: ол ойын-сауық қолданбалары мен сайттарын алып тастайды және өзін өшіртпейді.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="кесте-қайдан-шықты"&gt;Кесте қайдан шықты&lt;/h2&gt;&#10;&lt;p&gt;Жылдық мақсаттарым жазбаларда төрт сала бойынша жазылған. Мәселе мынада: ай соңында оларды орындадым ба, жоқ па — адал жауап бере алмайтынмын. «Жаман емес сияқты» деген сезім болатын, ал сезім ештеңені дәлелдемейді.&lt;/p&gt;</description></item><item><title>OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide</title><link>https://az-way-blog.web.app/books/java-oca-8/</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/books/java-oca-8/</guid><description>&lt;h2 id="неге-оқып-жүрмін"&gt;Неге оқып жүрмін&lt;/h2&gt;&#10;&lt;p&gt;Мақсат — тек frontend емес, Java/Spring-де backend жаза білу. Сертификаттың өзі жұмыс бермейді. Бірақ оған дайындық тілдің негізін «Stack Overflow деңгейінде» емес, ұсақ-түйегіне дейін үйренуге мәжбүрлейді.&lt;/p&gt;&#10;&lt;h2 id="тараулар-бойынша-жазбалар"&gt;Тараулар бойынша жазбалар&lt;/h2&gt;&#10;&lt;p&gt;Алты тараудың әрқайсысының талдауы — TypeScript әдеттері қай жерде қате жауапқа апаратыны және тарауды қандай LeetCode есептері бекітетіні — &lt;a href="https://az-way-blog.web.app/posts/java-oca-8-frontend/"&gt;Java OCA 8 frontend-әзірлеушінің көзімен&lt;/a&gt; жазбасында.&lt;/p&gt;</description></item></channel></rss>