{"id":14669,"date":"2025-03-09T12:45:14","date_gmt":"2025-03-09T09:45:14","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/"},"modified":"2025-03-09T12:45:14","modified_gmt":"2025-03-09T09:45:14","slug":"angularda-kuru-bilesenler-signal-ve-directive-composition-api","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/","title":{"rendered":"Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API"},"content":{"rendered":"<p><body><\/p>\n<p>Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API<\/p>\n<p>Merhaba! Ben Fatih Soysal ve bu makalede Angular&#8217;da  Signal ve Directive Composition API&#8217;sini kullanarak nas\u0131l DRY (Don&#8217;t Repeat Yourself &#8211; Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m.  Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor.  \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor.  Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir.  Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.<\/p>\n<h2>Signal ve Directive Composition API Nedir?<\/h2>\n<p>Angular&#8217;\u0131n Signal API&#8217;si, uygulaman\u0131zdaki de\u011fi\u015fkenleri izlemek ve de\u011fi\u015fikliklere tepki vermek i\u00e7in daha reaktif ve performansl\u0131 bir yol sunar.  Bu sayede, karma\u015f\u0131k veri ak\u0131\u015flar\u0131n\u0131 daha temiz ve okunabilir hale getirebilirsiniz.  Directive Composition API ise, direktiflerin daha mod\u00fcler ve tekrar kullan\u0131labilir olmas\u0131n\u0131 sa\u011flar.  Bile\u015fenlerinizin davran\u0131\u015flar\u0131n\u0131 daha k\u00fc\u00e7\u00fck, ba\u011f\u0131ms\u0131z par\u00e7alara b\u00f6lebilir ve bu par\u00e7alar\u0131 farkl\u0131 yerlerde yeniden kullanabilirsiniz.<\/p>\n<h2>\u00d6rnek Senaryo: Form Do\u011frulama<\/h2>\n<p>Bir form do\u011frulama bile\u015feni olu\u015fturaca\u011f\u0131m\u0131z\u0131 d\u00fc\u015f\u00fcnelim.  Bu bile\u015fen, farkl\u0131 alanlar i\u00e7in (\u00f6rne\u011fin, e-posta, \u015fifre) farkl\u0131 do\u011frulama kurallar\u0131 i\u00e7erebilir.  Tradisyonel y\u00f6ntemle her alan i\u00e7in ayr\u0131 bir do\u011frulama mant\u0131\u011f\u0131 yazmam\u0131z gerekirdi.  Ancak Signal ve Directive Composition API ile bu durumu daha iyi y\u00f6netebiliriz.<\/p>\n<h3>Directive Composition API ile Mod\u00fcler Do\u011frulama<\/h3>\n<pre><code class=\"language-typescript\">\n\/\/ validation.directive.ts\n@Directive({\n  selector: '[appValidation]'\n})\nexport class ValidationDirective {\n  constructor(private el: ElementRef, private renderer: Renderer2) { }\n\n  @HostListener('input') onInput() {\n      \/\/ Do\u011frulama mant\u0131\u011f\u0131 burada yer al\u0131r.\n      \/\/ \u00d6rne\u011fin, e-posta format\u0131 do\u011frulamas\u0131 veya bo\u015fluk kontrol\u00fc.\n  }\n}\n<\/code><\/pre>\n<p>Bu direktif, herhangi bir input eleman\u0131na eklenerek, ona do\u011frulama yetene\u011fi kazand\u0131rabilir.  Farkl\u0131 do\u011frulama kurallar\u0131,  bu direktifin i\u00e7inde veya farkl\u0131 yard\u0131mc\u0131 fonksiyonlarda belirlenebilir.  Bu, kodu \u00e7ok daha mod\u00fcler ve tekrar kullan\u0131labilir hale getirir.<\/p>\n<h3>Signal ile Reaktif G\u00fcncelleme<\/h3>\n<pre><code class=\"language-typescript\">\n\/\/ my-form.component.ts\nimport { signal } from '@angular\/core';\n\nexport class MyFormComponent {\n  email = signal('');\n  isValidEmail = signal(false);\n\n  constructor() {\n      \/\/ Email de\u011fi\u015fkenindeki her de\u011fi\u015fiklikte isValidEmail g\u00fcncellenir.\n      effect(() => {\n        this.isValidEmail.set(this.validateEmail(this.email()));\n      });\n  }\n\n\n  validateEmail(email: string): boolean {\n    \/\/ E-posta do\u011frulama mant\u0131\u011f\u0131\n    return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(email);\n  }\n}\n\n<\/code><\/pre>\n<p>Bu \u00f6rnekte, email de\u011fi\u015fkeni bir Signal olarak tan\u0131mlanm\u0131\u015ft\u0131r.  effect fonksiyonu ile, email de\u011fi\u015fkenindeki her de\u011fi\u015fiklik isValidEmail de\u011fi\u015fkenini g\u00fcnceller.  Bu sayede, UI&#8217;y\u0131 manuel olarak g\u00fcncellemek zorunda kalmadan, veri de\u011fi\u015fikliklerine an\u0131nda tepki verebiliriz. Bu, kodun okunabilirli\u011fini ve bak\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Angular&#8217;da Signal ve Directive Composition API&#8217;si kullanarak, DRY prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturman\u0131n bir\u00e7ok avantaj\u0131 vard\u0131r.  Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azalt\u0131r, bak\u0131m\u0131 kolayla\u015ft\u0131r\u0131r ve  uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini art\u0131r\u0131r.  Umar\u0131m bu makale size yard\u0131mc\u0131 olmu\u015ftur. Daha fazla Angular geli\u015ftirme ipucu ve \u00f6\u011fretici i\u00e7in <a href=\"https:\/\/fatihsoysal.com\">fatihsoysal.com<\/a> adresini ziyaret edebilirsiniz.<\/p>\n<p>Faydal\u0131 bulabilece\u011finiz ek kaynaklar:<\/p>\n<ul>\n<li><a href=\"https:\/\/angular.io\/guide\/signals\">Angular Signals Resmi Dok\u00fcmanlar\u0131<\/a><\/li>\n<li><a href=\"https:\/\/dev.to\/railsstudent\/built-dry-components-with-signal-and-directive-composition-api-in-angular-4j8l\">\u0130ngilizce Kaynak Makale<\/a><\/li>\n<\/ul>\n<p>#Etiketler: Angular, Signal, Directive Composition API, DRY, Temiz Kod, Tekrar Kullan\u0131labilir Bile\u015fenler, Angular Uygulamas\u0131, Angular Geli\u015ftirme, Form Do\u011frulama, Reaktif Programlama<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API Merhaba! Ben Fatih Soysal ve bu makalede Angular&#8217;da Signal ve&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-14669","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Angular&#039;da Kuru Bile\u015fenler: Signal ve Directive Composition API<\/title>\n<meta name=\"description\" content=\"Merhaba! Ben Fatih Soysal ve bu makalede Angular&#039;da Signal ve Directive Composition API&#039;sini kullanarak nas\u0131l DRY (Don&#039;t Repeat Yourself - Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor. \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor. Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir. Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular&#039;da Kuru Bile\u015fenler: Signal ve Directive Composition API\" \/>\n<meta property=\"og:description\" content=\"Merhaba! Ben Fatih Soysal ve bu makalede Angular&#039;da Signal ve Directive Composition API&#039;sini kullanarak nas\u0131l DRY (Don&#039;t Repeat Yourself - Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor. \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor. Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir. Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-09T09:45:14+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API\",\"datePublished\":\"2025-03-09T09:45:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\"},\"wordCount\":494,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\",\"name\":\"Angular'da Kuru Bile\u015fenler: Signal ve Directive Composition API\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-03-09T09:45:14+00:00\",\"description\":\"Merhaba! Ben Fatih Soysal ve bu makalede Angular'da Signal ve Directive Composition API'sini kullanarak nas\u0131l DRY (Don't Repeat Yourself - Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor. \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor. Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir. Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Angular'da Kuru Bile\u015fenler: Signal ve Directive Composition API","description":"Merhaba! Ben Fatih Soysal ve bu makalede Angular'da Signal ve Directive Composition API'sini kullanarak nas\u0131l DRY (Don't Repeat Yourself - Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor. \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor. Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir. Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.","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:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/","og_locale":"tr_TR","og_type":"article","og_title":"Angular'da Kuru Bile\u015fenler: Signal ve Directive Composition API","og_description":"Merhaba! Ben Fatih Soysal ve bu makalede Angular'da Signal ve Directive Composition API'sini kullanarak nas\u0131l DRY (Don't Repeat Yourself - Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor. \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor. Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir. Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.","og_url":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-03-09T09:45:14+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API","datePublished":"2025-03-09T09:45:14+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/"},"wordCount":494,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/","url":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/","name":"Angular'da Kuru Bile\u015fenler: Signal ve Directive Composition API","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-03-09T09:45:14+00:00","description":"Merhaba! Ben Fatih Soysal ve bu makalede Angular'da Signal ve Directive Composition API'sini kullanarak nas\u0131l DRY (Don't Repeat Yourself - Kendi Kendini Tekrar Etme) prensibine uygun, temiz ve tekrar kullan\u0131labilir bile\u015fenler olu\u015fturabilece\u011finizi ad\u0131m ad\u0131m anlataca\u011f\u0131m. Bu yakla\u015f\u0131m, kod tekrar\u0131n\u0131 azaltarak, bak\u0131m maliyetini d\u00fc\u015f\u00fcr\u00fcyor ve kod kalitesini art\u0131r\u0131yor. \u00d6ncelikle DRY prensibinin \u00f6nemini anlamak gerekiyor. Kodunuzda ayn\u0131 mant\u0131\u011f\u0131 veya i\u015flevi bir\u00e7ok kez tekrarl\u0131yorsan\u0131z, bu DRY prensibini ihlal ediyorsunuz demektir. Bu durum, hatalara ve bak\u0131m zorluklar\u0131na yol a\u00e7ar.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/angularda-kuru-bilesenler-signal-ve-directive-composition-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular&#8217;da Kuru Bile\u015fenler: Signal ve Directive Composition API"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/14669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=14669"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/14669\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=14669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=14669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=14669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}