--- title: Klasör Mimarisi info: Klasör mimarimize detaylı bir bakış image: /images/user-guide/fields/field.png --- Header In this guide, you will explore the details of the project directory structure and how it contributes to the organization and maintainability of Twenty. Bu klasör mimarisi konvansiyonunu takip ederek, belirli özelliklerle ilgili dosyaları bulmak daha kolay hale gelir ve uygulamanın ölçeklenebilir ve sürdürülebilir olması sağlanır. ``` front └───modules │ └───module1 │ │ └───submodule1 │ └───module2 │ └───ui │ │ └───display │ │ └───inputs │ │ │ └───buttons │ │ └───... └───pages └───... ``` ## Sayfalar Uygulama rotaları tarafından tanımlanan üst düzey bileşenleri içerir. They import more low-level components from the modules folder (more details below). ## Modüller Her bir modül, belirli bileşenlerini, durumlarını ve operasyonel mantığını içeren bir özellik veya özellik grubu temsil eder. Hepsi aşağıdaki yapıyı takip etmelidir. Modüller içinde modüller (alt modül olarak adlandırılan) yerleştirebilirsiniz ve aynı kurallar uygulanacaktır. ``` module1 └───components │ └───component1 │ └───component2 └───constants └───contexts └───graphql │ └───fragments │ └───queries │ └───mutations └───hooks │ └───internal └───states │ └───selectors └───types └───utils ``` ### Bağlamlar Bir bağlam, bileşen ağacı boyunca verileri, her seviyede elle geçmek zorunda kalmadan geçmenin bir yoludur. Daha fazla detay için [React Context](https://react.dev/reference/react#context-hooks) öğesine bakın. ### GraphQL Parçalar, sorgular ve mutasyonları içerir. Daha fazla bilgi için [GraphQL](https://graphql.org/learn/) sayfasına bakın. - Parçalar Bir parça, farklı yerlerde kullanabileceğiniz, bir sorgunun yeniden kullanılabilir bir parçasıdır. Parçaları kullanarak, kodun kopyalanmasını önlemek daha kolaydır. Daha fazla bilgi için [GraphQL Parçaları](https://graphql.org/learn/queries/#fragments) sayfasına bakın. - Sorgular Daha fazla bilgi için [GraphQL Sorgular](https://graphql.org/learn/queries/) sayfasına bakın. - Mutasyonlar Daha fazla bilgi için [GraphQL Mutasyonlar](https://graphql.org/learn/queries/#mutations) sayfasına bakın. ### Kancalar Daha fazla bilgi için [Kancalar](https://react.dev/learn/reusing-logic-with-custom-hooks) sayfasına bakın. ### Durumlar Durum yönetim mantığını içerir. [RecoilJS](https://recoiljs.org) bunu ele almaktadır. - Seçiciler: Daha fazla bilgi için [RecoilJS Seçiciler](https://recoiljs.org/docs/basic-tutorial/selectors) sayfasına bakın. React'ın yerleşik durum yönetimi, bir bileşen içinde hala durumu ele alır. ### Yardımcılar Sadece yeniden kullanılabilir saf fonksiyonları içermelidir. Aksi takdirde, `kancalar` klasöründe özel kancalar oluşturun. ## Kullanıcı Arayüzü Uygulamada kullanılan tüm tekrar kullanılabilir UI bileşenlerini içerir. Bu klasör, `veri`, `görüntü`, `geri bildirim` ve `girdi` gibi bileşen türleri için alt klasörler içerebilir. Her bir bileşen, kendi içinde bağımsız ve yeniden kullanılabilir olmalı, böylece uygulamanın farklı kısımlarında kullanılabilir. UI bileşenlerini diğer bileşenlerden `modüller` klasöründe ayırarak, tutarlı bir tasarım sağlamak ve kullanıcı arayüzündeki değişiklikleri yapmak, kod tabanının diğer bölümlerini (iş mantığı) etkilemeden daha kolay hale gelir. ## Arayüz ve bağımlılıklar Diğer modül kodlarını, `ui` klasörü hariç, herhangi bir modülden ithal edebilirsiniz. Bu, kodunun test edilmesini kolaylaştıracaktır. ### Dahili Her bir parça (kancalar, durumlar, ...) bir modül, yalnızca modül içinde kullanılan kısımları içeren bir `dahili` klasöre sahip olabilir.