Belirli bir çerçeveyle kullanmayı planladığınız bir sistem veya uygulama geliştirirken, sistemi çerçeveyi düşünmeden tasarlamak en iyi yöntem mi, yoksa sistemi zihniyetle "daha iyi mi tasarlamak" çerçevenin daha kolay bir zaman alacağı Bununla".
Belirli bir çerçeveyle kullanmayı planladığınız bir sistem veya uygulama geliştirirken, sistemi çerçeveyi düşünmeden tasarlamak en iyi yöntem mi, yoksa sistemi zihniyetle "daha iyi mi tasarlamak" çerçevenin daha kolay bir zaman alacağı Bununla".
Yanıtlar:
Sizin tasarım müşterileri karşılamak gerektiği gibi yakından ellerinden geldiğince ihtiyacı vardır. Unutmayın ki tasarım aşağıdaki gibi küçük şeyler içerir:
Bunların hiçbiri çerçeve tarafından dikte edilmemelidir. Bu hedeflere ulaşmak için çerçevenizle mücadele edeceğiniz açıksa, kod yazmaya başlamadan önce bu hedefleri gerçekleştirmenize yardımcı olacak yeni bir çerçeve seçersiniz.
Uygun bir araç takımı seçtiğinizde (çerçeve bir araçtır), araçları kullanmaları için tasarlandıkları şekilde kullanmanızı öneririm. Çerçeve tasarımından ne kadar saparsanız, ekibiniz için öğrenme eğrisini o kadar arttırırsınız ve bir şeylerin yanlış gitme şansı artar.
Kısacası
Diğer Düşünceler:
20 yılı aşkın yazılım mühendisliği ve birkaç çerçeve kullandıktan sonra birkaç ders aldım. Tüm çerçeveler iki ucu keskin bir kılıçtır: ikisi de kısıtlar ve etkinleştirir. Yukarıda bahsettiğim büyük 3'e bakmadan önce çerçevenize karar vermemizdeki sorun, vasat (en iyi ihtimalle) deneyim için iyi bir kullanıcı deneyiminden ödün vermiş olmanız olabilir. Veya belirli bir işlevi yerine getirmek için çerçeveler tasarımından sapmak zorunda kalabilirsiniz.
Altyapılar doğal olarak belirli modüllerin ve alt sistemlerin (bir GUI ön uç gibi) tasarımını etkiler . Bahsedilen diğer cevabın belirttiği gibi, seçtiğiniz çerçeve (ler) e karşı mücadele ederken kendinizi zor anlarsınız.
Bununla birlikte, daha genel olarak, herhangi bir tek bir çerçevenin veya teknolojinin genel sistem mimarinizin "büyük resmini" dikte etmesine veya sürmesine izin vermekten kaçınmalısınız. Çoğu genel amaçlı uygulama çerçevesi bunu desteklememektedir, bu nedenle kendinizi tüm sisteminizi bir çerçeve çevresinde yazıyorsanız, o zaman muhtemelen o çerçevenin yazarlarının istemediği bir şey yapıyorsunuz demektir.
Farklı sorunları çözmek için büyük olasılıkla birçok farklı çerçeve kullanacaksınız; Sisteminiz daha karmaşık hale geldikçe, The Big Ball of Mud (Çamur Topu) inşa etmemeye dikkat etmeniz gerekir . Mümkünse, sisteminizi modüler ve gevşek bir şekilde bağlı tutun. Bazı çerçeveler, Çerçeveye özgü iş akışlarını diğer bileşenlerden uzağa 'gizleyen' sarmalayıcılar ve adaptörler yazarak soyutlamaların ardında daha iyi tutulabilir. GUI araç kitleri yalnızca ön uç GUI işlevselliğine hizmet eder, bu yüzden bu GUI modülleri sistemin geri kalanından uzak tutulmalıdır.
Genel amaçlı çerçeveler (örneğin UI çerçeveleri, veri katmanı çerçeveleri, vb.) Sisteminizin tüm mimarisini belirlemek için mevcut değildir - en çok bir bileşenin veya modülün tasarımını önerebilirler; örneğin, bazı GUI teknolojileri, belirli MV * modellerine yöneliktir.
Sisteminizin genel mimarisi öncelikle işletme gereksinimleriniz tarafından yönlendirilmelidir . Her şeyi bir araya getirmek için kendinizi belirli bir araca (örneğin, bir mesajlaşma yazılımı aracı veya bir ORM çerçevesine) yaslanmış olarak bulabilirsiniz, ancak çerçeveyi bir 'hizmet' sınıfı gibi bir soyutlamada kullandıysanız Sınırlamaları ile karşılaştığınızda kendinizi bu çerçeveyle kısıtladığınızı bulma olasılığınız daha düşüktür.
Büyük resim tasarımınız için aşağıdakileri göz önünde bulundurmaya çalışın:
Evet, çerçevenin size yapmayı "söylediği" şeye mümkün olduğunca yakın durmalısınız .
Bunun nedeni, “düşünme” çerçevesine ne kadar yakın bir şekilde yapışırsanız, diğer geliştiricilerle o çerçeveyi kullanan sorunlarınız / düşünceleriniz hakkında konuşmanız o kadar kolay olacaktır.
Daha sonra kullanan diğer insanlar için birlikte çalışabilirliği ve kullanım kolaylığını arttırırsınız, kullandığınızın temel felsefesine bağlı kalırsanız, öğreticileri veya ortak çözümleri daha iyi anlayacak ve dahil edersiniz.
Neden çerçeveyi “kırdığınızı” düşünebilmemin tek iyi nedeni, “varsayılan” yapılandırma / ilkelerin uygulanması için veremeyecekleri bir şeye ihtiyacınız olması gerektiğidir. Ancak daha sonra başlamak için doğru çerçeve olmayabilir.
Temel olarak, bu diğer kararlara da uygulanabilir. Kullandığınız dili, kullanılması gerektiği gibi kullanmalısınız, çünkü herkesle aynı dili konuşmanız daha kolay .