Neden popüler bir çerçeve kullanmak gerekiyor?

18 Cevap php

Benim kemer altında birçok araç ile, artık yıllardır bir PHP geliştiricisi oldum; Ben de kendimi, ya da ben güvenmeyi öğrendim serbest kullanımlı çözümler geliştirdik araçları.

Geçenlerde CodeIgniter içine baktı ve geliştirme ile yardım için birçok sınıf ve yardımcı rutinleri olduğunu keşfetti, ama ben kendi araçları ile de kolaylıkla yapamadık örneklerde bir şey gördüm. Vs DB soyutlamalar, e-posta yardımcıları gibi basit şeyler yolları ile ilgili bazı ilginç kod vardı - Doğru kontrolörleri için adresler eşleme; ama bu bile hiç güzel adresler ile bir MVC tarzı web uygulaması yazdım eğer kendiniz kod özellikle zor değil.

Hatta diğer popüler çerçeveler bazı geçirdikten sonra, ben hâlâ bir zaman koruyucu that fazla olurdu bir şey görmüyorum. Hatta forumlarda bakarak, insanların araçları onlar için işe almak için mücadele bkz. Ben tam sistem tasarım becerilerini anlamak için bir süre geçmesi ve tam olarak takdir çünkü onlar, genç geliştiriciler için daha yararlı olacağını anlamak yok.

Yine, sık sık benim çözümler üretmek için bir off-the-raf çerçeve kullanmanız gerektiğini söylediler, ama ben yine de ikna kalır. Benim gibi birisi için gerçek yararı nedir? Ben sadece elitist olmaktan, ya da bu bir ortak görüşü muyum?

Düzenleme: cevapları burada bazı baktığımızda, ben belki bazı belgeleri yazma ve öğreticiler gönderme, onun çok kendi çerçevesi olarak benim araç seti kadar ambalaj düşünmelisiniz? Ben diğer çerçeveler almaya tereddüt ediyorum, bunu açılması ve bunun üzerine daha gözler benim kendi becerileri / araçları geliştirmek için yardım almak istiyorsunuz?

18 Cevap

Altyapıları çeşitli avantajları vardır:

  • Her şeyi yazmak zorunda değilsiniz. Eğer yılda birikmiş kendi çerçevesi var çünkü durumda, bu bir yardım azdır.

  • Altyapıları şeyler yapmanın standart ve test yollar sağlar. Daha kullanıcıların belirli bir çerçevede, karşılaşılan ve kodlanmış olan daha kenar durumlarda vardır. Kendi kodu veya olmayabilir, savaş aynı şekilde sertleşmiş olabilir.

  • Diğerleri standart bir çerçeve ile bir proje üzerine işe ve belgeler, örnekler ve bu çerçevede deneyim erişimi olabilir. Kendi parçacıkları veya tamamen belgelenmiş veya kullanım örnekleri var ... ama diğerleri başlangıçta onlarla rahat o kadar şans değildir olmayabilir.

EDIT:

Kendi çerçevesini ambalaj senin fikrin açısından, kamu tüketimi için o kadar temizlik parası diğerleri kullanmak almanın yararı daha büyük olabilir.

Nedeni basit: Her onlar nasıl bir araya bileşeni, ve ne kadar berrak her parça anlamak için yaklaşık yeniden değerlendirmek sizin varsayımlar gerekir. Eğer çerçeve yayımlamak sonra, başarı o kadar ve çalışan almak için ne kadar kolay kuvvetle bağlı olacaktır.

Küçük bir çaba ile büyük kazanç (bu galibiyetler çerçeve içine daha eski defterleri insanları teşvik edecek) kabulü için gereklidir. Birisi sadece başlarken bunalmış olurdu küçük bir çaba ile böyle büyük kazanç sağlar ve daha sonra özellikleri katmanları gizli bir çerçevede bir örnek Ruby on. (RoR apps kalitesinin soru nokta benimsenmesi hızı hakkında, nokta değil).

Insanlar bir çerçeve kabul sonra, kullanmaya devam kolaylığı hakkında. Tutarlı parametre kullanım alışkanlıkları gibi küçük ayrıntıları burada tüm fark. Başka yöntemleri çağırmadan önce çağrılacak bekleniyor belirleyiciler sahipken bir sınıf, her yöntemi birçok parametre vardır, onlar başvurmadan belirli bir durumda ne beklendiğini için bir "fikir" alınamıyor, çünkü kullanıcıların kaybedersiniz belgeler.

Hem-kabulü-kolaylığı ve kolaylığı yaşam-ile sorunlar düzgün ele iseniz, sadece insanların çerçeveyi benimsemek için şanslı almak zorunda. Bu sorunlar düzgün ele değilse, çerçeve bile bir başlangıç ​​faiz hızla zayıflamak olacaktır. Onlar haklı olduğun gibi your çerçeve olarak dikkatli olarak (kiti kullanarak başkalarını sahip avantaj kazanmak için dışarı durmak gerekir: neden many çerçeveler var olmasıdır diğerleri).

Eğer üzerinde eksik olacak bir şey popüler bir çerçeve içine gider Doğrulama hepsi bu.

Sizin rutinleri sadece popüler kütüphaneler var aynı poz yok.

Bir örnek olarak phpBB kullanmak için the bb çözüm bana kalırsa, ancak ben birçok gücünü hafife olmaz .... bir nokta olabilir. Neden? Bilgili ve insanların sorunlarını çözmeye yardımcı olabilir bunu kullanarak destek panoları ve birçok insanın üzerinde mesajların pek çok binlercesi var çünkü.

Bu nedenle popüler bir çerçeve kullanmak için sizin durumunuzda tek nedeni kullanmak diğerleri olduğunu, buna karşı rapor böcek, bunu düzeltmek ve bunu destekleyecek. Bu kendi kütüphaneleri aynı kapsama almak zor olacak.

Ben ana nedeni ortak bir çerçeve kullandığınızda, ürün ile anında tanıdık bir sürü insan var olduğunu düşünüyorum.

Bunun dışında ben aslında kullanmak ne olursa olsun araçlar işi bu en önemli olduğunu düşünüyorum. Diğer insanlara tanıdık olursa, o zaman bir bonus.

Ben kendi özel çerçeve kullanmalısınız katılıyorum. Sadece siz değil, anlamak için daha kolaydır, ancak iş güvenliği konusunda nihai sağlar!

Ben hemen aklınıza üç nedenler:

  • Çok iyi bilinen bir çerçeve proje üzerinde çalışmak zorunda diğer geliştiricilerin aşina olacak
  • Çok iyi bilinen bir çerçeve daha fazla bilgi bulmak için kullanılan kitaplar, tartışma panoları, ve diğer uzmanlar gibi kaynaklara sahip olacak
  • Yöneticiler genellikle "tekerleği yeniden icat etmeyin" felsefesi olacaktır. Aslında, mevcut çözümler muhtemelen kendi çözüm oluşturmak eğer keşfetmek istiyorum aynı sorunları çözdük.

Bütün bu dedi, yine kendi çözümleri için bir yer olabilir. Biz hiç kimse yeni bir şey başladı, seçim için pek çok çerçeveler (veya betik dilleri) olmazdı.

Zorlu bir parçasıdır convincing others that it's worth using - Herhangi deneyimli geliştirici bir çerçeve oluşturabilirsiniz. Bunu kullanmak ya da korumak için planı olanlar için dokümantasyon ve bunun için eğitimlerini oluşturmak gerekir. Muhtemelen bu gerekiyordu gibi aslında onun yararlı ve çalıştığını kanıtlamak için bir demo site oluşturmak gerekir.

Yalnız arasındaki açılır olabilir hata dahil değil önemli bir yatırım olabilir. Onun tüm bitti dediğim zaman, buna değer olabilir başka bir çerçeveyi öğrenme yerine kendi yapım zaman harcama.

Sen CodeIgniter'ı sözü - bu oldukça çerçeve gibi ben şahsen hissediyorum - çok daha barebones daha almaz.

Ne var aslında, kendi çerçevedir. Zaten çerçeve geliştirmek için zaman geçirdim çünkü Yani, bu, SİZİN İÇİN zaman tasarrufu değildir. Sizden oluşturmak için bu yoktu, kesinlikle daha kolay ve kendi rulo daha varolan çerçeve kullanmak daha hızlı olacaktır.

Ne bakmak için gereken çerçeve orada diğer seçenekleri daha iyi olup olmadığı ve olup olmadığına bakarak diğer gözlere sahip, ve diğer insanlar kadar farklı şekillerde kullanarak ağır basar kendi kodu ile aşinalık herhangi bir olasılığı bulundu ve düzeltildi varlık problemleri çok daha yüksektir.

Lütfen çerçeve herkes çok daha iyi olup olmadığını da, birinin 'sen ;) topluma senin açılması düşünebilirsiniz

Ben bina yazılım işinizin çekirdek Eğer, kendi özel çerçeve kullanmak gerekir, burada tahıl karşı gitmek, ve söyleyebilirim. Joel dediği gibi, "Find the dependencies - and eliminate them". Eğer sadece küçük bir şirket için web sitesi ve size iş sürdürmek web siteleri değil koyarak yapıyorsanız, o zaman devam edin ve bir çerçeve kullanın. Bu web sitesi işiniz olduğunda ancak, o zaman işi izin başkasından bir çerçeve bağlı olmamalıdır.

Bildiğiniz gibi: "vakit nakittir". Yani yardımcıları bir çok popüler bir çerçeve kullanarak, web ve daha az zamanda daha fazlasını büyük bir topluluk kod örnekleri çok.

Bazen ok eğer daha verimli hale çünkü çerçeveler kullanmak, ancak bazı gelişmiş ve zor projelerde bu çerçeve yolda kalır ve geçici çözümler bulmak zorunda böylece ortaya çıkabilir.

Ben kesin bir cevap olduğunu düşünüyorum. Sen dengede artılarını ve eksilerini koymak ve proje için doğru bir karar almalıdır.

Genellikle projelerin kritik bölgelerinde çok hızlı ama popüler çerçeveler benimsemeye ve zamanla onların kullanımını yaygınlaştırmak.

Ben size bir çerçeve kullanmak için bir gerek görmüyorum o zaman olmadığını düşünüyorum.

Onlar daha kolay ve daha hızlı onlar uygulamaları yazmak için yapmak çünkü Python ya da Ruby veya Webforms ve ASP.net için MVC için Ruby örneğin Django için bir çerçeve kullanmak nedenidir. Ruby ve Python benim için bir çerçeve kullanarak değil durumunda beni deli gitmek yapacak.

Eğer çalışan bir şey var ve ben iyi hissediyorum ne sopa ile söyleyebilirim bir çerçeve kullanmak için bir ihtiyaç görmüyorum. Ama hala çerçeveler ile güncel tutmak istiyorum.

Ben sıfırdan başlıyor ve kendi yazmak için zaman yoksa onlar daha yararlı olduğunu düşünüyorum. Eğer zaten yılda geliştirilen bir kod temeli varsa, onlar çok daha az yararlı olabilir, ama yine de bir göz atın ve ne yaptıklarını görmek için yararlı olabilir.

Örneğin, ben, bunlar yeterli değildir, çünkü büyük oyun geliştirme atölyeleri, üçüncü parti araçları, motorları ve çerçeveler değil kullanarak değil, ama onlar zaten 80 ya da her neyse beri kendi inşa etmişlerdir eminim.

Eğer bir off-the-raf bileşeni kullanıyorsanız Artı, kendi özel alanda bunu aşmak için hiçbir yolu yoktur. Belirli bir boyutta bir pazar lideri olması gerekiyorsa, o boyutta kendi çözüm bina edilmelidir, böylece yol açabilir. Sizinki sürece kolay bir geçiş olduğu gibi iyi bir çözüm olabilir gibi iyi bir üçüncü taraf bileşen kullanılarak, bu yeteneği ihtiyacınız yoksa. Yeni araç ve huyların ile yaşayan yetiştirmek için zaman ya da olsa buna değer olmayabilir.

Dikkate başka bir şey bir şey inşa edebilirsiniz eğer, bunu gerçekten anlamak olmasıdır. Aksi takdirde yok. Şimdi, tam olarak o kadar uzun süre "sadece iş" olarak, bunları kullanmak için malzeme anlamak gerekmez, ama biz bütün bu gider biliyorum ... :)

Eğer kamu çerçeveler daha güvenilir, daha hızlı ve daha fazla kod var verilmektedir sorunları çözebilir?

Eğer evet ise, o zaman kendi kullanmaya devam.

Eğer hayır ise, o zaman daha iyi bir iş yapar çerçeveyi bulmak ve bu proje için onunla çalıştırın.

Her hangi Codebase işi iyi yapmış olur aşağı gelir (müşteri tarafından verilen daha iyi bir değer. ;))

Dezavantajları.

En çerçeve işleri nesne odaklı değildir. (Kod ateşleyici bazı Promiss göstermektedir)

Kod çoğu içerir üzerinden yapılır. Sorunu izini çalışırken bir kazak bir iplik üzerinde çekme, ve tam oluşturulmasını anlamak için tüm giysi çözülmeye sahip olmak gibidir.

En çerçeve işleri kötü belgeleri yazdım.

En çerçeve işleri çok çok çok şeyler yapmaya çalışın.

Ben çerçeve ile gelişen bu kod tabanının üstüne almak için iyi bir 3-6 ay sürer bu işler benim deneyimlerinden bulabilirsiniz. Ve onun sadece size bir yuvarlak deliğe bir kare peg uygun çalıştığınız hava bulacaksınız o süre sonra. En php projeleri bu süre dolmadan önce bitmiş olmasını istediğiniz göz önüne alındığında, bu semere için büyük bir "çerçeve iş" kullanarak herhangi bir proje almak için işverenlerin daha fazla mal olacak.

Php Çerçeve eserlerin birçoğu php 4 için yazılmış ve farklı bir ortamda yazılmıştır. Bunlar büyük ölçüde genişletilmiştir, ancak kökenleri gösteriyor. Küresel kısıtlamaların kullanımı, özellikle yaygındır. Ben php 6 ölüme çoğu koyar umuyorum. Kod ateşleyici çoğu bu kaçar, ama yeni ve nesne odaklı parçaları vardır.

Bazı çerçeve işleri gerekli değildir kod yazılı ve sorunlara neden var .. örn: KEK en mükemmel bir model görünümü denetleyicisi olan, ancak oturum yönetimi bir felaket. Ne yazık ki çerçeve işleri modüler bir şekilde yazılı değildir. Sık sık bir ya hep ya hiç seçenek.

Çoğu programers çerçeve çalışma ne istediklerini yapmak için almak için "hack". Bu onların başlarını sractching gelecekteki programers bırakır. Ayrıca çerçeve çalışma imkânsızlık "yükseltme" yapar.

Ben birim test uygulayan bir çerçeve çalışmalarını görmek için henüz. (Nasıl bunu kırık değil biliyorum).

iyi yazılmış bir nesne her zaman ver. En azından onları doğru yarasa kapalı kapsamını biliyoruz.

Avantajları zaten yazılı ve eğilimli hata olması dolayısıyla daha az muhtemel birden fazla kişi tarafından test edildi vardır.

Dezavantajları bu uygulama için özel olarak inşa edilmiş değil ve bu nedenle büyük olasılıkla daha kötü performans olacağını vardır.

Başkalarının hata denetimi mümkün ve tavsiye iyileştirmeler yüzden bu açık kaynak bırakmadan değer olabilir, ancak bütün olarak, ben gerçekten ... Zaten kendi sahip düşünüyor birini kullanmak için çok sebep göremiyorum.

İşte kendi çerçevesi oluşturmak için başka bir sebep not bulunuyor. Linus' Law - "yeterli gözbebekleri göz önüne alındığında, tüm hatalar sığ". Diğer bir deyişle, belirli bir çerçeve kullanmak daha fazla insan, daha sağlam ve bug-free olması muhtemeldir.

Java için kaç tane web çerçeveleri gördünüz mü? Herhangi bir yarım terbiyeli geliştirici / mimar kendi özel web framework yazmak için geri günde, bu moda oldu. Ve günün sonunda, bunların% 95 Struts özel bir uygulama (anda en popüler Java web çerçeve) gibi görünüyordu. Yani temelde bir Struts klon oluşturuldu: 1) özel; ve 2) gibi iyi belgelenmiş ve test edilmemiştir.

Şunu kabul edelim ki - kendi müşteri çerçeve eğlenceli, ama sonra ne olur yazmaya? Bu çerçeve ile kendinizi (ya da sizi değiştirir kötü ruh) yetişmek için bir bakım yük olur. Ve yazılım bakımı çok, çok daha pahalı, bu özel çerçeveler söz konusu olduğunda olduğunu. Etki alanı sorunları çözmek veya çerçeveleri muhafaza iş için iş şirket mi?

Kimin söylediğini unutur, ama ben bir kez büyük bir teklif duydum - "Kendi çerçevesi oluşturmak için ilk kural: yapamaz". Bir başkası muhtemelen bu yüzden ve muhtemelen yapardı aynı işi yapmış yapmanın çaba geçirdi. Kendinize zaman, çaba ve test kaydedin.

Çerçeve kodu da test edilmiş ve nispeten hataların serbest olması muhtemeldir. Bunu kullanarak aynı şeyi yapmak için kendi kodunuzu korumak / kendinize zaman test kaydedin.

Ve kaydedilen her zaman iyidir. Tembellik programlama kapalı öder.

Orada bir çerçeve kullanmanın avantajları burada birçok yorum var, ve kesinlikle ben onlar mükemmel doğru, bir çok durumda düşünüyorum.

ANCAK

Tüm çerçeveler onları içine monte edilebilir sorunlar bir etki alanı var dezavantajı ile gelir. Sorunun etki kapsam içinde iyi ise o zaman bir çerçeve kullanarak bir sorun değildir, ve senin sorunun etki alanı dışında iyi ise onu kolayca fark bulunuyor yüzden çoğu zaman bunu bir düşünce vermeyin. Bu durumda kodun tam% 90 gerçekten çok hızlı sonra ettik her zaman harcamak - Eğer sadece oldukça uyması ya da olağandışı olmayan standart özelliği vardır olmayan bir çerçeve içine bir sorun zorlamaya çalıştığınızda sorunları ortaya bazı karanlık gereksinimi başarmak böylece çerçeveyi bükmeyin veya uzatmak için nasıl bulmaktan kurtardı. Bu durumda çözüm / uzantısı genellikle bağımsız buna gelseydi daha kod daha zor olabilir çerçeveye takmak için vardır çünkü.

Yanlış durumlarda bu aslında felaket olabilir. Örneğin bir müşteri bir çerçeve çözüm uyacak inanıyorum bir proje için sorar ve bunu müşteri olduğunu, bazı özellik, özellikle, daha sonra% 90 tamamladıktan sonra yakaladım o zaman gerçekten dere kadar olabilir bulmak, buna göre teklif eğer üzerine ısrarlı (ve her zaman). Bu konular size bir çerçeve kullanıyorsanız, özellikle eğer daha az aşina (ve zaman zaman var), gotchas yalan olabilir gitmek kelime her zaman belirgin değildir, çünkü ortaya eğilimindedir.

Bir projede herhangi bir üçüncü parti yazılım dağıtımı ile ortaya çıkar Bu gerçekten aynı sorundur. Kendim deneyim ben çerçeveler veya benzer kullanma konusunda hiçbir sakınca görmezler, ancak seçimi verilen ben her zaman ben ne gerek yapacak bulabilirsiniz hafif, en ince, sarıcı için gidecek. Ben sorunları ortaya yapmak (ve genellikle daha az muhtemel bir ince sargı ile vardır) o zaman bunları bir çözüm için nasıl sergiyi noktasına kapsamlı bir kod tabanı öğrenme daha kolay olması muhtemeldir bilerek iken, avantaj kazanmak bu şekilde Ben güvenle değiştirebilirsiniz nerede.