{"id":7904,"date":"2021-04-12T14:07:25","date_gmt":"2021-04-12T12:07:25","guid":{"rendered":"https:\/\/redaktioninvent.sn-invent.de\/?p=7904"},"modified":"2021-04-12T14:13:58","modified_gmt":"2021-04-12T12:13:58","slug":"wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen","status":"publish","type":"post","link":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/","title":{"rendered":"Wie JSDoc der IDE hilft, dem Entwickler zu helfen"},"content":{"rendered":"\n

JavaScript (JS) ist bekannterweise eine nicht typsichere Sprache. Variablen werden ohne Typ definiert. Man kann einer Variable nicht ansehen, von welchem Datentyp der Wert ist. Die IDE kann uns bei der Entwicklung nicht so unterst\u00fctzen, wie sie es f\u00fcr eine typsichere Sprache wie z.B. Java kann. Mit JSDoc k\u00f6nnen wir der IDE aber helfen, uns zu helfen.<\/p>\n\n\n\n

\"\"<\/figure><\/div>\n\n\n\n

Mittlerweile gibt es mehrere Erweiterungen von JS, die Datentypen in JS einf\u00fchren und es damit typsicher machen. Die bekannteste d\u00fcrfte TypeScript<\/a> sein. Wenn man aber JS ohne Erweiterungen nutzen muss, bringt einen das nicht weiter. Ohne Erweiterungen wie TypeScript wird JavaScript nicht typsicher. Muss man JS nativ nutzen, helfen nur Konventionen, wie z.B. Verschl\u00fcsselung des Datentyps im Variablennamen (iAlter integer, fBetrag float, sName string) oder eine Dokumentation im Sourcecode. Mit beidem ist das so eine Sache. Namenskonventionen werden schon mal vergessen und rutschen auch bei einem Codereview schnell durch. Sourcecode Dokumentation ist oft schneller veraltet, als der Code geschrieben ist. Selbst wenn Namenskonventionen und Sourcecode Dokumentation konsequent durchgehalten werden und aktuell sind, kann die IDE damit nichts anfangen.<\/p>\n\n\n\n

Sch\u00f6n w\u00e4re es, wenn die Dokumentation der IDE helfen k\u00f6nnte, mir zu helfen. Damit w\u00fcrde die Wahrscheinlichkeit steigen, dass die Sourcecode Dokumentation aktuell und richtig ist. Daf\u00fcr gibt es JSDoc<\/a>. JSDoc ist eine standardisierte Weise zur Dokumentation des Sourcecodes. Die Syntax ist analog Javadoc. JSDoc besitzt auch einen Generator zum Generieren einer separaten Dokumentation im html Format.<\/p>\n\n\n\n

Ein Feature von JSDoc ist die Dokumentation von Datentypen. Diese Dokumentation werten IDEs wie WebStorm<\/a>, IntelliJ IDEA<\/a>, NetBeans<\/a> und Eclipse<\/a> aus. Die IDEs wissen damit, welchen Datentyp ein Funktionsparameter hat, ob der Parameter ggfl. optional ist und welchen Datentyp die R\u00fcckgabe einer Funktion hat. Auch Json-Objekte k\u00f6nnen mit JSDoc beschrieben werden. Erwartet eine Funktion ein Json-Objekt oder liefert sie ein Json-Objekt zur\u00fcck, kennt die IDE den Aufbau des Json Objekts und macht im Content Assist die passenden Vorschl\u00e4ge. <\/p>\n\n\n\n

Mit JSDoc wird JavaScript nicht typsicher. JSDoc zusammen mit der IDE unterst\u00fctzt uns Entwickler aber beim Schreiben des Codes. Das erh\u00f6ht die Effizienz bei der Entwicklung, verbessert die Wartbarkeit und reduziert die Fehlerwahrscheinlichkeit.
Wie sieht das nun konkret aus?<\/p>\n\n\n\n

\"\"
Abbildung 1 Funktion f1<\/em><\/figcaption><\/figure>\n\n\n\n

Die Funktion f1 hat drei Parameter, kundennummer, name und geburtsdatum. Der jeweilige Datentyp ist in den geschweiften Klammern angegeben. Als R\u00fcckgabe hat die Funktion ein Json-Objekt. Die Struktur des Json-Objekts ist mit dieser Typedefinition definiert.<\/p>\n\n\n\n

\"\"
Abbildung 2 TypeDef<\/em><\/figcaption><\/figure>\n\n\n\n

Bei Aufruf der Funktion<\/p>\n\n\n\n

\"\"
Abbildung 3 Aufruf Funktion f1<\/em><\/figcaption><\/figure>\n\n\n\n

wei\u00df die IDE, dass \u201eresult\u201c ein Json-Objekt mit der in JSDoc definierten Struktur ist. Der Content Assist kann die passenden Properties vorschlagen.<\/p>\n\n\n\n

\"\"
Abbildung 4 ContentAssist<\/em><\/figcaption><\/figure>\n\n\n\n

JSDoc ist nat\u00fcrlich wesentlich mehr als nur Funktionsbeschreibungen und Typedefinitionen. F\u00fcr einen Entwickler sind diese beiden Features aber sehr hilfreich und es ist ein erster Schritt in Richtung Dokumentation des JavaScript Sourcecodes. Das freut den Architekten <\/a>und alle, die den Code sp\u00e4ter warten m\u00fcssen.<\/p>\n\n\n\n

Ansprechpartner: Marco K\u00f6nigstein<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

JavaScript (JS) ist bekannterweise eine nicht typsichere Sprache. Variablen werden ohne Typ definiert. Man kann einer Variable nicht ansehen, von welchem Datentyp der Wert ist. Die IDE kann uns bei der Entwicklung nicht so unterst\u00fctzen, wie sie es f\u00fcr eine typsichere Sprache wie z.B. Java kann. Mit JSDoc k\u00f6nnen wir der IDE aber helfen, uns zu helfen.<\/p>\n","protected":false},"author":6,"featured_media":7905,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"yoast_head":"\nWie JSDoc der IDE hilft, dem Entwickler zu helfen - S&N Invent<\/title>\n<meta name=\"description\" content=\"JavaScript ist nicht typsicher. Die IDE kann Entwickler nur unzureichend unterst\u00fctzen. Mit JSDoc k\u00f6nnen wir der IDE helfen, uns zu helfen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wie JSDoc der IDE hilft, dem Entwickler zu helfen - S&N Invent\" \/>\n<meta property=\"og:description\" content=\"JavaScript ist nicht typsicher. Die IDE kann Entwickler nur unzureichend unterst\u00fctzen. Mit JSDoc k\u00f6nnen wir der IDE helfen, uns zu helfen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\" \/>\n<meta property=\"og:site_name\" content=\"S&N Invent\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SNInvent\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-12T12:07:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-04-12T12:13:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/redaktioninvent.sn-invent.de\/wp-content\/uploads\/2021\/04\/jsdoc-ide.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"600\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Barbara Buthmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Barbara Buthmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\"},\"author\":{\"name\":\"Barbara Buthmann\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/person\/a5fbde568abcc21e2963b7e1c0ffe15e\"},\"headline\":\"Wie JSDoc der IDE hilft, dem Entwickler zu helfen\",\"datePublished\":\"2021-04-12T12:07:25+00:00\",\"dateModified\":\"2021-04-12T12:13:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\"},\"wordCount\":502,\"publisher\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#organization\"},\"inLanguage\":\"de-DE\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\",\"url\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\",\"name\":\"Wie JSDoc der IDE hilft, dem Entwickler zu helfen - S&N Invent\",\"isPartOf\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#website\"},\"datePublished\":\"2021-04-12T12:07:25+00:00\",\"dateModified\":\"2021-04-12T12:13:58+00:00\",\"description\":\"JavaScript ist nicht typsicher. Die IDE kann Entwickler nur unzureichend unterst\u00fctzen. Mit JSDoc k\u00f6nnen wir der IDE helfen, uns zu helfen.\",\"breadcrumb\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/redaktioninvent.sn-invent.de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Wie JSDoc der IDE hilft, dem Entwickler zu helfen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#website\",\"url\":\"https:\/\/redaktioninvent.sn-invent.de\/\",\"name\":\"S&N Invent\",\"description\":\"Value Driven Performance\",\"publisher\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/redaktioninvent.sn-invent.de\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#organization\",\"name\":\"S&N Invent GmbH\",\"url\":\"https:\/\/redaktioninvent.sn-invent.de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/redaktioninvent.sn-invent.de\/wp-content\/uploads\/2020\/06\/Logo-rgb-180x180-1.jpg\",\"contentUrl\":\"https:\/\/redaktioninvent.sn-invent.de\/wp-content\/uploads\/2020\/06\/Logo-rgb-180x180-1.jpg\",\"width\":180,\"height\":180,\"caption\":\"S&N Invent GmbH\"},\"image\":{\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SNInvent\/\",\"https:\/\/www.linkedin.com\/company\/sn-invent\/\",\"https:\/\/www.youtube.com\/channel\/UCIbg47wBoxEYO1m1o4Z-pLQ\/featured\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/person\/a5fbde568abcc21e2963b7e1c0ffe15e\",\"name\":\"Barbara Buthmann\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Wie JSDoc der IDE hilft, dem Entwickler zu helfen - S&N Invent","description":"JavaScript ist nicht typsicher. Die IDE kann Entwickler nur unzureichend unterst\u00fctzen. Mit JSDoc k\u00f6nnen wir der IDE helfen, uns zu helfen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/","og_locale":"de_DE","og_type":"article","og_title":"Wie JSDoc der IDE hilft, dem Entwickler zu helfen - S&N Invent","og_description":"JavaScript ist nicht typsicher. Die IDE kann Entwickler nur unzureichend unterst\u00fctzen. Mit JSDoc k\u00f6nnen wir der IDE helfen, uns zu helfen.","og_url":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/","og_site_name":"S&N Invent","article_publisher":"https:\/\/www.facebook.com\/SNInvent\/","article_published_time":"2021-04-12T12:07:25+00:00","article_modified_time":"2021-04-12T12:13:58+00:00","og_image":[{"width":600,"height":315,"url":"https:\/\/redaktioninvent.sn-invent.de\/wp-content\/uploads\/2021\/04\/jsdoc-ide.jpg","type":"image\/jpeg"}],"author":"Barbara Buthmann","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Barbara Buthmann","Gesch\u00e4tzte Lesezeit":"4 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/#article","isPartOf":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/"},"author":{"name":"Barbara Buthmann","@id":"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/person\/a5fbde568abcc21e2963b7e1c0ffe15e"},"headline":"Wie JSDoc der IDE hilft, dem Entwickler zu helfen","datePublished":"2021-04-12T12:07:25+00:00","dateModified":"2021-04-12T12:13:58+00:00","mainEntityOfPage":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/"},"wordCount":502,"publisher":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/#organization"},"inLanguage":"de-DE"},{"@type":"WebPage","@id":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/","url":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/","name":"Wie JSDoc der IDE hilft, dem Entwickler zu helfen - S&N Invent","isPartOf":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/#website"},"datePublished":"2021-04-12T12:07:25+00:00","dateModified":"2021-04-12T12:13:58+00:00","description":"JavaScript ist nicht typsicher. Die IDE kann Entwickler nur unzureichend unterst\u00fctzen. Mit JSDoc k\u00f6nnen wir der IDE helfen, uns zu helfen.","breadcrumb":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/redaktioninvent.sn-invent.de\/wie-jsdoc-der-ide-hilft-dem-entwickler-zu-helfen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/redaktioninvent.sn-invent.de\/"},{"@type":"ListItem","position":2,"name":"Wie JSDoc der IDE hilft, dem Entwickler zu helfen"}]},{"@type":"WebSite","@id":"https:\/\/redaktioninvent.sn-invent.de\/#website","url":"https:\/\/redaktioninvent.sn-invent.de\/","name":"S&N Invent","description":"Value Driven Performance","publisher":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/redaktioninvent.sn-invent.de\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/redaktioninvent.sn-invent.de\/#organization","name":"S&N Invent GmbH","url":"https:\/\/redaktioninvent.sn-invent.de\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/logo\/image\/","url":"https:\/\/redaktioninvent.sn-invent.de\/wp-content\/uploads\/2020\/06\/Logo-rgb-180x180-1.jpg","contentUrl":"https:\/\/redaktioninvent.sn-invent.de\/wp-content\/uploads\/2020\/06\/Logo-rgb-180x180-1.jpg","width":180,"height":180,"caption":"S&N Invent GmbH"},"image":{"@id":"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SNInvent\/","https:\/\/www.linkedin.com\/company\/sn-invent\/","https:\/\/www.youtube.com\/channel\/UCIbg47wBoxEYO1m1o4Z-pLQ\/featured"]},{"@type":"Person","@id":"https:\/\/redaktioninvent.sn-invent.de\/#\/schema\/person\/a5fbde568abcc21e2963b7e1c0ffe15e","name":"Barbara Buthmann"}]}},"_links":{"self":[{"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/posts\/7904"}],"collection":[{"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/comments?post=7904"}],"version-history":[{"count":0,"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/posts\/7904\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/media\/7905"}],"wp:attachment":[{"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/media?parent=7904"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/categories?post=7904"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redaktioninvent.sn-invent.de\/wp-json\/wp\/v2\/tags?post=7904"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}