Endised Apple’i insenerid tõid välja 6 põhjust, miks iOS 13-l ja macOS Catalinal on nii palju vigu

Mõni juba kasutab iOS / iPadOS 13 või macOS Catalina 10.15 ja neil pole kaebusi uusima Apple’i tarkvara suhtes; teisest kĂĽljest on ka rĂĽhm kasutajaid (peamiselt tarkvaraarendajad ja insenerid), kes teavad, kui midagi ei lähe ootuspäraselt, isegi kui see ei põhjusta laialdast fänni.

See on endise Apple’i juhtum David Shayer, kes töötas Cupertinos tarkvarainsenerina ĂĽle 18 aasta. Sel nädalal jagas ta oma “buumi” Apple’i uute sĂĽsteemide kohta, tuues välja kuus võimalikku põhjust, miks need on tavapärasest rohkem “lollakad”.

IOS 13 ja macOS 10.15 Catalina on Apple’i väljaanded, mis on täis ebatavalisi vigu. Beetaversioon ilmus juba juunis WWDC-s veaga, mis oli ootamatu, kuid isegi pärast seda, kui Apple enne septembris avaldatud lõplikku väljaandmist mõned funktsioonid eemaldas, sundisid suuremad probleemid ettevõtet plaastri värskendusi välja andma. Sest? Tuginedes oma 18-aastasele kogemusele Apple’i tarkvarainsenerina töötamisel, on mul mõned ideed.

Täpsemate funktsioonide lõpetamata rakendamine

Shayeri sõnul oli Apple “agressiivne”, lisades oma uude tarkvarasse olulisi funktsioone. See tähendab, et Apple’i arendajad peavad väsimatult tööd tegema, et töö iga väljalaske jaoks õigeaegselt tehtud saaks, kuid selle eest tuleb ka maksta: on paratamatu, et ĂĽks või teine ​​funktsioon pole valmis ja see lĂĽkatakse tulevaste versioonide jaoks välja, näiteks iCloud Drive’i kaustade jagamine.

Hästi teostatud projektis on varasemad ressursid ära lõigatud, nii et insenerid saavad pühendada oma aega tegelikult kaasatavate ressursside lihvimisele.

Insener soovitas, et Apple ei sisaldaks oma tarkvara igasse versiooni nii palju uusi funktsioone just selliste probleemide vältimiseks, kuid ta oli varem öelnud, et see pole Apple’i “kultuur”.

“Tuvastatavad” vead

Nii iOS-is kui ka macOS-is on sisseehitatud funktsioon, mis vastutab sĂĽsteemi tõrketeadete saatmise eest Apple’ile. On tõsi, et aruanne sisaldab palju andmeid, kuid peamine on jälgede hunnik, Tuntud ka kui virna jälitamine, ĂĽtleb see täpselt, kus viga ilmnes sĂĽsteemi käivitamise kaardil selle tekkimise ajal.

Lühidalt öeldes aitavad just need andmed arendajatel täpselt teada, kus viga tekkis, kuid neil pole mingit võimalust teada tõrke tõenäosust, kui konkreetset probleemi ei tuvastata.

Selles mõttes juhib Shayer tähelepanu sellele, et Apple’i veaaruanne ei sisalda andmeid iCloudi kunagi saatmata jäänud fotode kohta, kontaktide sĂĽnkroonimata jätmise kohta Macist iPhone’i (ja vastupidi), rikutud Time Capsule’i varukoopiaid ja isegi konkreetset tĂĽĂĽpi probleeme, millega see silmitsi seisab. kus iPhone 11 seadete ekraan nõuab korduvalt iCloudi sisselogimist.

See on osaliselt tingitud asjaolust, et Apple jälgib neid vigu vanamoodsalt: kui inimesed (kvaliteedikontrolli insenerid) testivad seadmeid või teevad automaatseid teste, koos arendajate aruannete ja kaebustega, mis saadetakse Apple’i tugiteenusele. Shayeri jaoks raskendab see meetod vigade tuvastamist ja inseneride jaoks nende parandamist.

Vähem tähtsad vead “filtreeritakse välja”

Shayer illustreeris ka uue Apple’i tarkvara loomise protsessi muid funktsioone, mis võiksid aidata kaasa sĂĽsteemi lõpliku väljalaske vigade arvule; selles on Apple’i arendajatel tarkvara arendamisel teatud vabadus teatud probleeme lahendada.

Täpsemalt öeldes ĂĽtles ta, et alguses olid arendajad praktiliselt täiesti vabad vigade parandamiseks, kuid see võimalus väheneb, kuna see muutub ĂĽha keerukamaks, tehnilistel ja väga lihtsatel põhjustel: programmeerimisel on täiesti võimalik, et ajate midagi sassi ja takerdute millelegi muule – kujutage ette operatsioonisĂĽsteemi tasemel.

Seetõttu fikseeriti uue iOS / macOSi turuletoomise eelõhtul ainult kõige tõsisemad vead just seetõttu, et Apple ei saanud riskida kõigega, mida ta varem oli teinud, sekkumist, kui näiteks kasutaja oleks otsustanud iPhone’i kuupäevaks määrata 1. jaanuari 1970 ja see kukuks täielikult kokku.

Seega tõrjuvad vead, mis on haruldased või mitte eriti tõsised – näiteks need, mis andmekao asemel segadust tekitavad – ettevõtte „sorteerimissĂĽsteemi“ abil tagaplaanile.

Vanad vead jäävad igaveseks

Ăślaltoodud omadused viitavad teisele: kui probleem on elanud piisavalt kaua rohkem kui ĂĽhe iOS / macOS-i põlvkonna jaoks, on tõenäosus, et Apple selle lahendab, väga väike. Shayeri sõnul on Cupertino hiiglased “vanade vigade parandamisel kohutavad” just seetõttu, et need pole majanduslikult tasuvad ja mõned parandused võivad takistada uusimat tarkvara.

Täpsemalt öeldes kinnitab ta, et kui kvaliteedikontrolli insener tuvastab, et viga eksisteerib ainult OS-i vanemas versioonis, on see märgitud kui “mitte-regressiivne”, mis tähendab, et selle tõenäosus uude sĂĽsteemi on väike ja seetõttu on see ebatõenäoline selle parandamiseks määratakse professionaal.

Mitu automatiseeritud testi

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

Insener tunnistab, et piirkond, kus Apple teeb kõige rohkem automatiseeritud teste, on seotud tema toodete akuga. Nii et alati, kui opsĂĽsteemis on tehtud suuri muudatusi, teeb meeskond testijatega koostööd, et kontrollida, kas muudatus ei mõjuta aku jõudlust; see test vaatas siiski ainult Apple’i koodi, pĂĽĂĽdes simuleerida reaalse maailma interaktsioone, mis võivad kasutajale olulisi probleeme tekitada.

Peale aku on teine ​​sektor, mis kasutab mitut sagedust enesekontrolli, Safari arendus, kus kõik brauserisse lisatud uued koodid vajavad jõudlustesti. Sellisena soovitab Shayer, et automatiseeritud testimine võib aidata Apple’i tarkvara kvaliteeti parandada.

Suurenenud keerukus

Ei saa eitada, et iOS 13 pakub rohkem funktsioone kui eelmised versioonid ja kaugemalgi – see on siiski aluseks järjestikuste uute versioonide ja uute funktsioonidega. Samal ajal on see ka käivitaja uute probleemide tekkeks, mida varem ei olnud või polnud nii tõsised.

Seega väidab insener, et kaasaegne Apple’i operatsioonisĂĽsteem sisaldab kĂĽmneid miljoneid koodiridu. Lisaks vestlevad kõik Mac, iPhone, iPad, Apple Watch, AirPods ja HomePod omavahel ja iCloudiga. Kõik rakendused on mitmekeermelised ja suhtlevad Interneti kaudu, millel on samuti probleeme.

See kõik muudab kõigi funktsioonide väljatöötamise ja testimise ning uute vigade leidmise keeruliseks. Lisaks võimaldavad Apple’ist sõltumatud asĂĽnkroonsed sĂĽndmused Apple’i inseneride sõelal läbida mitu riket, aidates neil jõuda lõpptarbijani.

· • ·

Noh, see pole ka nii lihtne olla Apple. Peale selle võib kõiki ĂĽlalnimetatud tegureid mõista võimalike põhjustena 1) nõrkuse esinemisele mis tahes operatsioonisĂĽsteemis ja 2) kõige suurema hulga Apple’i välja antud tarkvarauuenduste jaoks.

Sellega seoses garanteerib Shayer, et Apple vabastab rohkem veaparandusi (tarkvarauuenduste näol), kui oleme harjunud, kuid see on ka positiivne märk, kuna see tõestab, et ettevõttel on puudusi napilt.

Inseneri täielikku aruannet saate vaadata siit.

veebipõhise tulekera kaudu