Birkaç yıldır üzerinde çalıştığım büyük proje, ürün yazılımının kalbi olan gelişmiş bir cihazın kontrol (ve her şey) uygulamasıdır.
Cihaz oldukça gelişmiş, bellekten söyleyebileceğimden daha farklı işlevselliklere sahip ve bunların% 98'i bu büyük yürütülebilir dosya tarafından işleniyor. Bir yandan, program oldukça bakımlı, içeride iyi modülerleştirilmiş, düzgün bir şekilde belgelenmiş, işlevselliklerin dizinler ve dosyalar tarafından makul bir şekilde ayrılması vb.
Ama sonuçta, tüm bunlar uzak veritabanı iletişimi, dokunmatik ekran kullanımı, bir düzine çeşitli iletişim protokolünü, ölçümleri, çeşitli kontrol algoritmalarını, video yakalamayı, güneşin doğuş saatini ve paskalya tarihini (ciddiyetle ve çok ciddi amaçlar için gereklidir!) ... Genel olarak, çok ince bir şekilde ilişkili olan şeyler, genellikle sadece uzak modüller arasında damlayan bazı verilerle ilişkilidir.
Birbirleriyle iletişim kuran birkaç ayrı çalıştırılabilir, örneğin, soketler üzerinde, daha spesifik bir amaçla, belki gerektiği gibi yüklenebilir / boşaltılabilir, vb. Bu şekilde yapılmasının özel bir nedeni yok.
Bir yandan işe yarıyor ve iyi çalışıyor. Proje, çoklu ikili dosyalar oluşturmadan daha basittir. Yuva veya paylaşılan bellek yerine konuşmak yerine bir yöntemi çağırabileceğiniz veya bir değişkeni okuyabildiğinizde iç yapı da daha kolaydır.
Ama diğer yandan, bu şeyin büyüklüğü, ölçeği beni korkutuyor, Titanik'i pilot gibi hissettiriyor. Her zaman modülerleştirilmem öğretildi ve her şeyi tek bir dev dosyaya toplamak yanlış geliyor. Bildiğim bir sorun, bir (hatta önemsiz) modül ağır bir çökme tüm çöküyor - ama kod kalitesi bu gerçekten sürümlerinde gerçekleşmez garanti eder. Aksi takdirde, dahili ayırma ve defansif programlama, dahili modüllerin yarısı bir nedenden ötürü normal şekilde başarısız olsa bile, bunun çoğunlukla doğru şekilde çalışmasını sağlar.
Başka hangi tehlikeleri gözden kaçırdım? Bu neden beni korkutuyor? Bu sadece akıl dışı bilinmeyen korkusu mu? Bu şekilde ciddi büyük projeler yapmak kabul edilmiş bir uygulama mı? Ya korkularımı sakinleştir ya da sürüm 2.0'ı birden çok daha küçük ikili dosyaya dönüştürmek için iyi bir neden ver.