39 postitust kokku

Programmeerimine

Sildid

Kotlini invoke() operaator

Kotlinis on olemas operaator nimega invoke. Kui klassis defineerida see operaator, siis on koods võimalik kutsuda klassi instantse välja ilma meetodi nime defineerimata. Kui klass teeb ainult ühte tegevust ja klassi enda nimi on piisavalt arusaadav, võib kaaluda invoke() operaatori definee ...

Kotlini vaikeväärtused JSONi deserialiseerimisel

Kotlinis vaikeväärtuste lisamine võimaldab andmeobjekte muuta ning lisada välju koos piirangutega, et antud väli ei ole kunagi väärtustamata (null). Selline lahendus töötab väga hästi näiteks andmebaasist loetavate andmetega, kuna andmeobjektide loomise üle on täielik kontroll ning väärtus ...

Ajagraafikute konflikt

Arendajate ja juhtkonna ajaplaneerimine toimuvad väga erinevalt. Kui arendajad teevad süvenemist vajavat tööd, siis nende päevaplaan koosneb suurtest töötegemise ajablokkidest. Katkestus sellise bloki keskel tähendab, et suur osa sellest läheb raisku. Peale katkestust ei ole võimalik tööd ...

Kotlini tüübialias

Kotlinis on võimalik defineerida andmetüübi nimedele aliaseid ja seega viidata samale tüübile teise nimega. See on väga praktiline kui olemasolev tüübinimi on juba väga pikk ja lohisev. Näiteks: Või anda näiteks primitiivsetele andmetüüpidele olukorda paremini kirjeldav nimi: Kuna tüübi ...

Testkeskkonna taastamine

Üritades tarkvara ehitamise protsess üle viia GitHub Actions keskkonda, tekkis probleem integratsioonitestidega, mis järku enam ei töötanud. Esialgu kahtlustasime pikalt probleemi kasutuses oleva SpringBoot embedded Kafka või Wiremockiga. Aga lõpuks selgus, et viga oli hoopis Ping veebires ...

Vananenud lahenduste märkimine Kotlinis

Vahepeal selgub uus ja parem viis kuidas, mingeid probleeme lahendada. Peale uue lahenduse realiseerimist saab selle küll kohe kasutsuel võta, aga tekkib küsimus, et mida teha kohe kõigi teiste kohtadega, mis kasutavad eelmist ja nüüdseks aegunud lahendust. Üks variant on võtta aega ja uue ...

Probleemide tükeldamine

Tarkvaaraarenduses on vana ja levinud arusaam, et suured probleemid või ülesanded on vaja lahutada väiksemateks ja hoomatavateks tükkideks. Enamasti on kõik sellega nõus, kuid selle põhimõtte rakendamine igapäevases töös on oluliselt raskem kui teoorias. Väljamõeldud näidisolukorras on lih ...

Paralleelsete muudatuste muster

Paralleelsete muudatuste muster aitab liidestes (interface) teha muudatusi selliselt, et need on alati tagasiühilduvad. Selleks jagatakse muudatusete tegemine 3 faasi: laienda, migreeri, koonda. Vahel kutsutaksegi seda ka "laienda ja koonda" mustriks. See on alternatiiv näiteks liideste ve ...

Kotlini tühjad tüübid

Kui Java's on meetodi tagastustüübiks, mis mitte midagi ei tagasta, tühitüüp void, siis Kotlinis on tühje tagastustüüpe kaks - Unit ja Nothing. Unit - Sisaldab ainult 1 väärtust, mis indikeerib, et meetod lõpetas oma töö edukalt. Seega mingit muud lisainfot tagastada ei ole võimalik Nothin ...

Kotlini platvormitüüp

Javas võivad kõik muutujad lisaks defineeritud tüübile ka viidata null ehk tühjale väärtusele. Kuna aga Kotlinis käsitletakse null'itavad tüübidefinitsioone eraldi (need märgistatakse ? sümboliga), siis oleks Kotlinist Java objektide kasutamine väga tüütu - alati tuleks koodis kasutada kas ...