Endine Apple'i insener tõi välja 6 põhjust, miks iOS 13-l ja macOS Catalinal on nii palju vigu –

Keegi, kes juba kasutab iOS / iPadOS 13 või macOS Catalina 10.15 ja teil pole Apple'i uusima tarkvara kohta kaebusi; teisest küljest on ka grupp kasutajaid (peamiselt tarkvaraarendajad ja insenerid), kes teavad, millal asjad ei lähe ootuspäraselt, isegi kui need ei põhjusta laialt levinud keskpunkti.

See kehtib endise Apple'i kohta David Shayer, kes töötas Cupertinos tarkvarainsenerina enam kui 18 aastat. Sel nädalal jagab ta Apple'i uue süsteemi kohta "plahvatust", tuues välja kuus võimalikku põhjust, miks nad on tavapärasest "lollakamad".

IOS 13 ja macOS 10.15 Catalina on Apple'i väljalase, mis on täis ebatavalisi vigu. Beeta käivitati juunis WWDC-s veaga, mis oli ootamatu, kuid isegi pärast seda, kui Apple eemaldas mõned funktsioonid enne lõplikku väljaandmist septembris, sundisid ettevõtted rohkem probleeme plaastrivärskenduste avaldamisega. Miks Mul on oma 18-aastase Apple'i tarkvarainsenerina töötamise kogemuse põhjal mitu ideed.

Täiustatud funktsioonide rakendamine, mis pole veel lõpule viidud

Shayeri sõnul on Apple "agressiivne", kuna ta lisab oma uude tarkvarasse olulisi funktsioone. See tähendab, et Ma-arendajad peavad väsimatult tööd tegema, et iga väljalaske jaoks õigeaegne töö lõpule viia, kuid sellega peavad kaasnema ka kulud: on vältimatu, et üks või teine ​​ressurss ei ole valmis ja edaspidiste väljaannete jaoks, näiteks iCloud Drive'i kausta jagamiseks, viivitatakse.

Hästi juhitud projekti puhul katkestatakse ressursid hilinemisega, et insenerid saaksid võtta aega, et lihvida ressursid, mis tegelikult kaasatakse.

Insener soovitas, et Apple ei lisaks oma tarkvara igasse versiooni nii palju uusi funktsioone, et selliseid probleeme ei tekiks, kuid ĂĽtles ta eelnevalt, et see pole "Ma" kultuur.

Viga "tuvastatav"

Nii iOS-il kui ka macOS-il on sisemised funktsioonid, mis vastutavad süsteemitõrgete aruannete saatmise eest Apple'ile. Ma näeksin, et sellised aruanded sisaldavad palju andmeid, kuid peamine virna radaTuntud ka kui virna jälgimine, ütleb teile, kus tõrge ilmnes süsteemi täitmise "kaardilt" täpselt ajal, mil tõrge ilmnes.

Lühidalt, need andmed aitavad arendajatel konkreetselt teada saada, kus tõrge tekkis, kuid neil pole mingil viisil võimalust teada saada puudusest, kui konkreetset probleemi ei tuvastata.

Selles mõttes osutab Shayer, et Ma tõrkearuanne ei sisalda andmeid fotode kohta, mida pole iCloudisse kunagi saadetud, kontaktide sünkroonimata jätmise kohta Macist iPhone'ile (ja vastupidi), rikutud Time Capsule'i varukoopiast ja isegi konkreetsetest probleemidest, millega ta silmitsi seisab. kus iPhone 11 konfiguratsiooniekraan nõuab korduvalt iCloudisse sisselogimist.

Osaliselt on see tingitud sellest, et Apple jälgib seda rongiviga vanamoodsalt: koos Apple'i toele saadetud arendaja aruannete ja kaebustega seavad inimesed (kvaliteedikontrolli insenerid) seadet proovile või viivad läbi automatiseeritud teste. Shayeri jaoks raskendab see meetod vigade tuvastamist ja inseneride jaoks nende parandamist.

Vähem oluline viga on "filtreeritud"

Shayer kirjeldas ka muid Apple'i tarkvara loomise protsessi funktsioone, mis võivad aidata kaasa vigade arvule süsteemi lõplikul käivitamisel; selles saavad arendajad Ma erinevat vabadust teatud probleemide lahendamisel, kui tarkvaraarendus toimub.

Täpsemalt ütles ta, et alguses oli arendajatel peaaegu täielik vabadus vigade parandamiseks, kuid seda võimalust vähendati, kuna see oli üha keerukam, tehnilistel põhjustel ja väga lihtne: programmeerimisel kipute te midagi muutma ja blokeerima midagi muud, mis on tasemel ette kujutatud. operatsioonisüsteem.

Seetõttu parandatakse enne uue iOS / macOS turuletulekut ainult kõige tõsisemad vead, just seetõttu, et Apple ei saa riskida kõigi varem tehtud toimingute häirimisega, kui näiteks kasutaja on otsustanud iPhone'i kuupäevaks seada 1. jaanuari 1970 ja on täiesti ummikus.

Ettevõttena "sorteerimissüsteem" tõugatakse tagaplaanile vead, mis on haruldased või mitte "väga tõsised", näiteks need, mis põhjustavad andmete kaotamise asemel segadust.

Vanad vead pĂĽsivad igavesti

Ülaltoodud funktsioon viib teiseni: kui probleem on elanud piisavalt kaua rohkem kui ühe põlvkonna iOS / macOS-i jaoks, on Apple selle parandamise võimalus väga väike. Shayeri sõnul oli Cupertino hiiglane "vanade vigade parandamisel halb" just seetõttu, et need olid majanduslikult teostamatud ja mõned parandused võivad uusimat tarkvara takistada.

Täpsemalt ütles ta, et kui kvaliteedikontrolli insener tegi kindlaks, et viga oli olemas ainult OS vanas versioonis, märgiti teda kui "mitte regressiivset", see tähendab, et selle uue süsteemi mõjutamise võimalus oli madal ja seega ei määratud tõenäoliselt ühtegi professionaali selle parandamiseks. .

Mõned automatiseeritud testid

Shayer teeb siin rohkem avaldusi kui kriitikat. Tema sõnul on automatiseeritud testid praegu tõusuteel, kuid Apple, nagu juba öeldud, eelistab mingit analüüsi teha käsitsi, mis võib osutuda ettevõtte jaoks kahe teraga mõõgaks.

Insener tunnistas, et piirkond, kus Ma viis läbi palju automatiseeritud teste, oli seotud tema toodete akuga. Niisiis, iga kord, kui operatsioonisüsteemis on suuri muudatusi, jookseb meeskond testimisseadmega, et kontrollida, kas muudatus ei mõjuta aku jõudlust; Isegi siis analüüsib see test ainult Apple'i koodi, püüdes simuleerida "pärismaailmas" toimuvat interaktsiooni, mis võib kasutajatele põhjustada olulisi probleeme.

Lisaks patareidele on veel üks sektor, mis kasutab sageli automatiseeritud teste, Safari arendamine, kus iga uus brauserile lisatud kood nõuab jõudlustesti jõudlust. Sellisena soovitab Shayer, et automatiseeritud testimine võib aidata parandada Apple'i tarkvara kvaliteeti.

Suurenev keerukus

Ei saa eitada, et iOS 13 pakub rohkem funktsioone kui eelmine versioon ja nii on ju sihtasutusel järjestikune uus versioon koos uute funktsioonidega. Samal ajal on see ka käivitaja uute probleemide ilmnemisel, mida varem ei olnud või mis polnud nii tõsised.

Sellisena väidab insener, et kaasaegsel Apple'i opsüsteemil on kümneid miljoneid koodiridu. Lisaks vestlevad kõik Mac, iPhone, iPad, Apple Watch, AirPods ja HomePod iCloudiga ja sellega. Kõik rakendused on mitme keermega ja suhtlevad Interneti kaudu, millel on ka probleeme.

Kõik see raskendab kõigi funktsioonide arendamist ja testimist, samuti uute vigade otsimist. Sellega koos on asünkroonne sündmus, mis ei sõltu Apple'ist, võimaldades mitmetel tõrgetel Ma filtri insenerist mööda minna, aidates neil lõpptarbijani jõuda.

Jah, see pole ka lihtne ole õun. Lisaks sellele võib kõiki ülalnimetatud tegureid mõista võimalike põhjustena 1) mis tahes opsüsteemi tõrkele ja 2) Ma poolt välja antud suurima arvu tarkvarauuenduste jaoks.

Sel juhul veendus Shayer, et Apple avaldas rohkem veaparandusi (tarkvarauuenduste näol) kui tavaliselt, kuid see oli ka positiivne märk, sest see tõestas, et ettevõttel puuduvad tõrked.

Inseneri täielikku aruannet saate vaadata siit.

Fireball Online'i kaudu