Přísnější typování objektů na základě tříd

Automaticky přeloženo z Deepl

Ve verzi 4D 20 R10 se psaní objektů posunulo o velký krok kupředu, což vám dává větší jistotu a kontrolu nad kódem. Namísto pouhé kontroly, zda je hodnota objektem, nyní 4D ověřuje, zda se jedná o instanci konkrétní třídy. To odemyká inteligentnější automatické dokončování, inline ověřování a přísnější kontroly kompilace, což vám pomůže včas odhalit chyby a psát přehlednější a lépe udržovatelný kód.

Výhody nekončí u proměnných a výsledků funkcí. Toto vylepšení se týká také datového modelu: nyní můžete přiřadit uživatelsky definovanou nebo nativní třídu (například novou třídu 4D.Vector pro implementaci umělé inteligence) přímo do pole objektu v editoru struktury. 4D pak rozumí celému tvaru objektu, a to od doby návrhu až po dobu běhu, což umožňuje typově bezpečnější a spolehlivější vývoj.

Pole typového objektu HDI

Syntaxe a kontroly překladače pro atributy objektového pole

4D nyní kontroluje typ objektu i na následujících místech:

  • editoru kódu, při psaní

  • Překladač, během úplné kontroly syntaxe

Nesprávné použití objektu nebo překlepy se nyní zobrazí jako včasné varování nebo chyba, což zvyšuje spolehlivost při refaktoringu a ladění.

Poznámka: Objekt z jedné třídy můžete přiřadit objektu jiné třídy, pokud jedna třída dědí z druhé. To podporuje jak upcasting (přiřazení podtřídy do proměnné nadřazené třídy), tak downcasting (přiřazení nadřazené třídy do podtřídy, je-li to vhodné). Protože například třída Pes dědí od třídy Zvíře, můžete bezpečně zapsat obě:
var $animal:cs.Animal:=cs.Dog.new()  // upcasting
// or
var $dog:cs.Dog:=cs.Animal.new()  // downcasting

Definovat třídu pro pole objektů

Když ve své datové struktuře deklarujete pole typu objekt, inspektor editoru Struktura nyní obsahuje nové vstupní pole Třída. To vám umožní přiřadit pole ke konkrétní třídě, například k obchodnímu objektu nebo nativní třídě 4D.

Jako příklad můžete poli s názvem Vector přiřadit typ 4D.Vector:

blank

Poznámka: Pole Třída je k dispozici pouze při práci v režimu projektu.

Chytřejší editor kódu: Automatické dokončování atributů

Díky asociaci tříd nyní editor kódu při psaní kódu zahrnujícího pole objektu navrhuje atributy definované v zadané třídě.

blank

Závěr

Tato aktualizace představuje zásadní vylepšení způsobu, jakým se v rámci 4D zachází s objektovými poli. Díky podpoře přísnějšího typování pomocí tříd poskytuje 4D robustnější, udržovatelnější a inteligentnější vývoj od návrhu struktury až po spuštění.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.