Kvailai neaiškus programavimas sunkiais laikais (2018 m.)
komentarai
Mewayz Team
Editorial Team
„Scala“ supratimo galia ir skausmas
Scala „už“ supratimą yra elegantiško, funkcionalaus programavimo kertinis akmuo. Tai leidžia kūrėjams sekti operacijas su monadiniais tipais, tokiais kaip „Option“, „Future“ ir „List“ su švariu, būtinu stiliumi. Vietoj susipainiojusios įdėtų „flatMap“ ir „map“ iškvietimų netvarkos, galime parašyti kodą, kuris būtų skaitomas ir išraiškingas. Tačiau šis sintaksinis cukrus, nors ir skanus, turi paslėptų išlaidų. Kompiliatorius įtraukia „už“ žymėjimą į savo pagrindinę monadinę grandinę, tačiau šis procesas yra nelankstus, apsiriboja fiksuotu metodų rinkiniu ir kartais gali užgožti tikrąją skaičiavimo struktūrą. Komandoms, kuriančioms sudėtingas sistemas, pvz., modulinę verslo OS įmonėje Mewayz, suprasti ir valdyti šį cukraus pašalinimą yra labai svarbu, norint rašyti tvirtą, našų ir prižiūrimą kodą.
Kas yra taikomasis cukraus pašalinimas ir kodėl tai svarbu?
Tradiciškai „for“ supratimas sujungiamas su „flatMap“ iškvietimų grandine, kurios pabaigoje yra „žemėlapio“ iškvietimas. Tai reiškia monadinę seką, kai kiekvienas supratimo žingsnis priklauso nuo ankstesnio rezultato. O kas, jei jūsų operacijos yra nepriklausomos? Apsvarstykite galimybę patvirtinti vartotojo registracijos formą: turite patikrinti vartotojo vardą, el. pašto adresą ir slaptažodį. Šie patvirtinimai nepriklauso vienas nuo kito; jie gali ir turi būti atliekami savarankiškai, o jų rezultatai derinami. Tai yra taikomųjų funkcijų sritis. Taikomasis programavimas leidžia lygiagrečiai patvirtinti ir derinti, siūlydamas galimą našumo naudą ir deklaratyvesnį klaidų tvarkymą. Standartinis „for“ žymėjimas, susietas su monadine seka, negali išreikšti šio šablono savaime.
"Gebėjimas pakeisti supratimo cukrų į taikomąsias operacijas, jei įmanoma, yra žaidimo keitiklis. Jis atrakina daugiau deklaratyvaus kodo ir gali žymiai pagerinti efektyvumą, atskleidžiant nepriklausomus skaičiavimus." - Mewayz platformos inžinierius
Taikymas „Taikyti per“: nauja cukraus mažinimo strategija
„Taikyti viduje“ koncepcija yra skirta „Scala“ kompiliatoriaus patobulinimui. Užuot aklai pašalinus kiekvieną generatorių ("<-") "už" supratimą į "flatMap", pažangesnė cukraus šalinimo strategija analizuotų priklausomybes tarp eilučių. Jei vertė, sugeneruota vėlesnėje eilutėje, nepriklauso nuo vertės iš ankstesnės eilutės, cukraus šalinimui gali būti naudojamas taikomasis „ap“ (arba labiau pažįstamas „produkto“ ir „žemėlapio“ derinys), o ne monadinis „flatMap“. Tai paverčia nuoseklią grandinę į lygiagrečiai pritaikytą skaičiavimo grafiką. Įrankiai, tokie kaip kačiukų biblioteka, ištyrė tai automatiniam išvedimui, tačiau idėja stumiama link svarbesnių pačios kalbos galimybių.
Mewayz, kur mūsų verslo OS moduliai dažnai tikrina ir kaupia duomenis iš kelių nepriklausomų šaltinių, taikomojo stiliaus naudojimas lemia:
- Aiškesnis tikslas: kodas aiškiai parodo, kada operacijos yra nepriklausomos, todėl verslo logika lengviau pagrįsta.
- Patobulintas našumas: nepriklausomas patvirtinimas arba duomenų gavimas gali būti vykdomi lygiagrečiai, taip sumažinant delsą.
- Geresnis klaidų kaupimas: skirtingai nuo monadinių grandinių, kurios greitai sugenda, taikomasis patvirtinimas leidžia iš karto surinkti visas klaidas, o tai yra gyvybiškai svarbi naudotojams skirtų formų ir API galinių taškų funkcija.
Expressive Computation Scala ateitis
Savąjį taikomąjį cukraus pašalinimą įtraukti į „Scala“ žymėjimą „už“ yra įdomi riba. Tai reiškia žingsnį link labiau niuansuotų ir galingesnių funkcinių programavimo konstrukcijų tiesiai pagal labiausiai prieinamą kalbos sintaksę. Tokiai platformai kaip Mewayz, kuri sukurta remiantis moduliškumo ir aiškumo principu, ši raida puikiai atitinka mūsų tikslus. Tai įgalintų mūsų kūrėjus sukurti dar deklaratyvesnę verslo logiką, kai kodas ne tik aprašo, ką daryti, bet ir nurodo, kaip jį galima optimaliai vykdyti – nuosekliai, kur reikia, ir lygiagrečiai, jei įmanoma. Tai tokia technologinė pažanga, kuri leidžia sudėtingoms sistemoms išlikti paprastoms, suprantamoms ir veiksmingoms.
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →