Kötü çoklu kullanım nedeniyle neredeyse / aslında başarısız olan bir projeden hangi dersleri öğrendiniz?
Bazen, çerçeve, işleri büyüklük sırasını düzeltmeyi zorlaştıran belirli bir diş açma modeli uygular.
Bana gelince, henüz son başarısızlıktan kurtuldum ve bu çerçevede çoklu okuma ile ilgili hiçbir şey üzerinde çalışmamamın daha iyi olduğunu hissediyorum.
Basit çatal / birleştirme olan ve verilerin yalnızca bir yönde gittiğini (sinyaller dairesel bir yönde gidebilirken) çok iş parçacıklı problemlerde iyi olduğumu buldum.
Bazı çalışmaların yalnızca kesin olarak serileştirilmiş bir iş parçacığı ("ana iş parçacığı") ve diğer iş yalnızca ana iş parçacığı ("işçi iş parçacığı") ancak herhangi bir iş parçacığı üzerinde yapılabilir GUI işlem yapamıyorum ve burada veriler ve mesajlar N bileşenleri (tümüyle bağlı bir grafik) arasında her yöne gitmek zorundadır.
O projeyi başka bir proje için terk ettiğim zaman, her yerde kilitlenme sorunları vardı. 2-3 ay sonra, diğer birkaç geliştiricinin müşterilere gönderilebilecek noktaya kadar tüm kilitlenme sorunlarını çözmeyi başardığını duydum. Hiç eksik olduğum bilgi parçasını öğrenemedim.
Proje hakkında bir şey: ileti kimliği sayısı (iş parçacığına bakılmaksızın başka bir nesnenin ileti kuyruğuna gönderilebilen bir olayın anlamını tanımlayan tamsayı değerleri) binlerce olur. Benzersiz dizeler (kullanıcı iletileri) de yaklaşık bin kişiyi bulur.
Katma
Başka bir takımdan aldığım en iyi benzetme (geçmiş veya şimdiki projelerimle ilgisi olmayan) "verileri bir veritabanına koymak" idi. ("Veritabanı", merkezileştirme ve atom güncellemelerine atıfta bulunur.) Birden çok görünüme bölünmüş bir GUI'de, hepsi aynı "ana iş parçacığı" üzerinde çalışır ve GUI olmayan tüm ağır kaldırma işlemleri, bağımsız çalışan iş parçacıklarında yapılır. Veritabanı gibi davranan tek bir düzlükte saklanmalı ve "Veritabanı" nın önemsiz olmayan veri bağımlılıklarını içeren tüm "atomik güncelleştirmeleri" işlemesine izin vermelisiniz. GUI'nin diğer tüm bölümleri ekran çizimini ve başka bir şeyi işlemez. Kullanıcı arabirimi parçaları bir şeyleri önbelleğe alabilir ve kullanıcı düzgün bir şekilde tasarlandıysa bir saniye boyunca eskiyse fark etmez. Bu "veritabanı" aynı zamanda "belge" olarak da bilinir Belge Görünümü mimarisinde. Maalesef - hayır, uygulamam aslında tüm verileri Views'da depolar. Neden böyle olduğunu bilmiyorum.
Katkıda bulunanlar:
(Katkıda bulunanların gerçek / kişisel örnekler kullanmasına gerek yoktur. Eğer kendiniz güvenilir olduğuna karar verilirse, fıkra örnekleri ile ilgili dersler de kabul edilir.)