Фильтр публикаций


Assalomu alaykum, salomatmisizlar?

Bizda (Najot Ta'lim o'quv markazida) Flutter Bootcamp guruhini bitirib chiqayotgan o'quvchilar bor.

Agarda kimdadir internship yoki Junior darajada Flutter dasturchi uchun ehtiyoj bo'lsa, murojaat qilsangiz xursand bo'lar edik.

English:

Hello, how are you?

We (at "Najot Ta'lim" Learning Center) have students graduating from the Flutter Bootcamp group.

If anyone has an internship or a need for a Flutter developer at the Junior level, we would be happy to hear from you.




Kimda qanday natija bõlgan?

Bilaman, kõplar topshirib, reject olgan ekan )


~ EPAMda intervyu jarayoni haqida yozgan edik.

~ Ikkinchi marta intervyuga kirgandan keyin esa boshqa savollar tushganini kòrdim. Boshqalar bilan maslahatlashib bildimki, har xil intervyu oluvchi developerlar har xil savollar berar ekan. Hindlar bilan interyvu qilishdan õzi asrasin 😁.

~ Men ba'zi savollar va ularga javoblarni notionda yozib qóygan edim. Ammo, qarasam, barbir intervyuda biror qolib yõq. Oxiri barbir tajriba va bilimga borib uriladi.


Yaqin orada ushbu video darslarni taqdim etishni boshlaymiz.

Asosiy urğu esa test yozishga qaratiladi.

Hech bõlmasa bir insonni test yozishga chaqira olsak, missiyamizga erishgan bôlamiz 😁


EPAMda intervyu jarayoni:
1) Dastlab, Òzbekistonda yashashimni bilgani uchun qaysi tilda gapirishimni afzal kòrishimni sòradi ( rus yoki ingliz ).
2) Bòladigan intervyu haqida qisqacha ma'lumot berib òtildi. Unga kòra, intervyu uch qismga: tanishish, texnik intervyu va kod yozish qismlariga bòlinishi aytildi.
~ Tanishuv qismi:
3) Qayerlarda ishlaganim, qanday proyektlarda qatnashganim ( agar proyektlar maxfiy saqlanishi kerak bòlgan bòlsa, aytsangiz tushunishadi ), Flutterni nega tanlaganim va Software Engineering bilan qancha vaqtdan beri shuğullanishimni sòrashdi. Proyektlarda mening ahamiyatim, kim sifatida qatnashishim, jamoada va yolģiz ishlaganda qanday ishlashim haqida qiziqishdi.
~ Texnik Intervyu
4) Test Driven Development:
  - Testlarning proyektdagi ahamiyati
  - Test qachon yozilishi kerakligi
  - Mockito
  - Unit Test va Widget Test orasidagi farq
5) Static Alaysys ( Linter rules ) - ahamiyati, qanday ishlatilishi, undagi qoidalar. Masalan, info, warning, erro va hokazo
6) Git.
    - Git haqida
    - merge va rebase orasidagi asosiy farq
7) State Managements
- BLoC, Provider va GetX haqida fikrimni sòrashdi ( agar middle kerak bòlsa, GetX haqida ular istayotgan narsani ayting )
8) REST Api, GraphQL, WebSocket
9) Dio va http package'lar haqida
10) Dio va http orasidagi farq. Qaysi biri afzalroq va buning sabablari haqida
11) Retrofit
12) Interceptors
13) Packages for local database. SharedPreference, SQFlite, ObjectBox, Hive.
14) Relational va NoSQL database'lar orasidagi farq.
15) Deeplinks. Navigator 2.0 orqali deeplinking qilishning yòli haqida
16) Implementing Native Code -> Method Channels, Event Channels
17) App LifeCycle for deeplinking ( foreground, background, cool restart )
18) Flutterni mobile ilovalardan boshqa maqsadlarda foydalanish haqida
19) SOLID haqida
20) Dependency Inversion va Dependency Injection orasidagi farq 😅
21) Statefull Widget Lifecycle.
22) Statefull Widget Lifecycle step by step explanation ( rebuilding times and so on )
Qolgan texnik savollar esimda emas.
~ Koding qismi:
1) Data member'lari hashlanmagan class'lar orasida compering ( equations )
2) Future, Future microtask, async await, sync vs async kodlash, logging qilish
Qolgan savollar aniq esimda emas. Yodimdan kòtarilibdi.
  Recruiter menga yuborgan xabardan parcha:
  "Hello!
Thank you for taking time to pass a technical interview in our company. Our expert have estimated you as a middle Flutter developer. Unfortunately, now we are looking for senior+ developers and can not make you an offer. Let's be in touch so that in the future we will be able to connect with and offer an interesting position for you!!!"


( 2022 yil, Iyul oyi )


#tests #flutter_tests

* Ancha vaqtdan beri deyarli hech narsa yozilmagan ekan. Inshaalloh yaqin orada ko'pchiligimiz qilishdan qochadigan, ko'p vaqt oladi deb o'zimizni ishontirib qo'ygan mavzu - testing bo'yicha darslik chiqarmoqchiman.

* Unda testlarning turlari, ahamiyati, testlar aslida vaqt oluvchi emas, uni ancha tejovchi ekani haqida ba'zi bilimlarni bo'lishib o'tmoqchiman.

* Video darslik davomida "Weather App" qilib ko'rsatishni rejalashtirdim. Unda biror-bir yerning ob-havosini aniqlash, o'z lokatsiyasi orqali kerakli ob-havoni olib kelish, ob-havoni keshlash va internetsiz ishlatish haqida, interceptorlarni ishlatish, SOLID, GRASP va ba'zi Design Patternlar haqida ham qo'limdan kelgancha ma'lumot berib o'tmoqchiman. App kichkina bo'lishi mumkin, ammo kattaroq app uchun ishlatishga kerakli barcha bilimlarni berishga yetarli bo'ladi deb umid qilaman.


Prefer widget composition over functions
( Widget classlarni funksiyalardan afzal biling )
Kõpchilik biladiki, kod duplikatsiya yaxshi emas. Flutterda ishlash davomida esa biz kòpincha qayta ishlatiladigan widgetlar yaratamiz. Misol uchun, ilovada kòp ishlatilishi mumkin bòlgan CustomButton. Ammo, biz bu widgetni ikki xil yôl bilan yaratishimiz mumkin:
1) Widget class'lar orqali
2) Widget return type'iga ega funksiyalar orqali
Ammo, siz hech qachon widget class yaratish imkoniyati turganda widget qaytaruvchi funksiya yozmasligingiz tavsiya qilinadi. Buning sabablari quyidagilar:
1) Aniqki, funksiyalarda const constructor mavjud emas
2) Flutter funksiya orqali qaytarilgan widgetlarni har doim qayta build qilishga majbur. Sababi, u funksiya haqida hech qanday ma'lumotga ega emas.
3) Class'lar Widget tree'da òz òrinlariga egalar. Ammo, funksiyalarda bunday emas! Shu sababli, ularda BuildContext ham mavjud emas.
————————————————————
P.s: const constructor'larga rahmat deymiz, sababi widget class'larni keshlasa bòladi, ammo funksiyalar keshlanmaydi. Shu sababli, funksiyalar har doim qayta ishga tushadi.


#flutter #hot_reload
"Hot reload" kòp hollarda tõģri ishlaydi, ammo ba'zi qismlarda ilovani butunlay tòxtatib, qaytadan "run" qilishingiz kerak("Hot Restart"). Ushbu holatlar:
1) Qachonki siz, initState() metodiga òzgartirish kiritsangiz
2) Qachonki siz, class'ni enum'ga almashtirsangiz, yoki aksi bõlsa
3) Qachonki siz class'dagi static òzgaruvchilarni qiymatini òzgartirsangiz
4) Qachonki siz " void main(){} " ichidagi kodni òzgartirsangiz...
————————————————————
P.s: Easy_localization ishlatuvchi dòstlarimning ba'zilarida lifecycle'lar haqida yetarlicha bilim bòlmasa, sòzlarni tarjima qilish uchun kerak bòladigan "tr()" funksiyasini initState() ichida yozib ketish ehtimoli bor ( ba'zan òzgaruvchilarni initState ichida "initialize" qilamiz ). Ammo, initState() widget lifecycle'ida faqat bir martagina ishga tushishini hisobga olsak, til òzgartirgandan keyin tepada ta'kidlagan widget'lardagi string qiymatlarni òzgarmagan holda topasiz. Sababi, bu widgetdagi initState qayta ishlashi uchun bu widget asosiy "widget tree"da qayta paydo bòlishi kerak bòladi.

Показано 9 последних публикаций.

82

подписчиков
Статистика канала