Php çalışması. Eğitim kitapları. Genel değişkenleri değil sabitleri kullan

İlk birkaç puan için serbest formda öneriler yazmaya çalışacağım.

İlk ve en önemli şey, PHP programlamasını iyi incelemek için programlamayı iyi incelemeniz gerektiğidir. Bu çok önemli bir şey. PHP'de yazılan çoğu insan programlama hakkında en ufak bir fikre sahip değildir. Kod biçimlendirme, hata ayıklama, profil oluşturma, hata işleme, dosya işlemleri gibi temel şeyler hakkında bile. OOP'dan bahsetmediğimi fark edebilirsiniz. Bu tamamen ayrı bir konudur, OOP özellikle öğretilmelidir. Ne yazık ki, OOP'yi bildiklerini söyleyen 100 kişiden 90'ı sözdizimini öğrenmiş, ancak nesnelerin anlamını anlamayan sıradan kopyala yapıştır erkekleridir. Ancak satranç oynamak için taşların nasıl hareket ettiğini bilmek yeterli değildir.

Soruyu cevaplamak güzel olurdu - neden PHP programlama öğrenmek istiyorsunuz? Soru hiç boş değil. Birçok insan bir sürü farklı kavramı karıştırır. Örneğin, burada CMS'den daha önce bahsedilmişti. ve gerçekten de, para kazanmak söz konusu olduğunda, Gyumly'nin özelleştirilmesi ve govnomoduli'nin finansal olarak ona yazılması, sıfırdan bir şey yazma yeteneğinden çok daha karlı. Her neyse, serbest meslek için.

Genel olarak, PHP çok farklı şekillerde kullanılabilir. Ve her vaka için kendi dili olacak.

  • Bir konuk veya kartvizit sitesini "çıplak" PHP'de perçinleyebilirsiniz - ve bu konuda kötü veya utanç verici bir şey yoktur. Aksine - bu, beş yüz site uğruna birkaç milyon satır kod boyunca sürüklemeden, bu amaçlar için de uygun olan bir dil artıdır.
  • Mevcut çerçevelerden bazılarını temel alarak profesyonel bir portal yazabilir ve geliştirilmesine katılabilirsiniz.
  • Çıplak PHP'ye kendi çerçevenizi tekrar yazmanız gereken özel bir yüksek yük projesi yazabilirsiniz.
  • Daha önce de belirtildiği gibi, siteleri bir tür CMS'ye dayalı olarak perçinleyebilirsiniz.

Birçok seçenek! bu yüzden önce ne istediğinize karar vermelisiniz.

Orada yukarıda JS + CSS hakkında konuştular - dinlemeye gerek yok, bu tam bir saçmalık. Ön uç programlama tamamen ayrı bir şeydir, soyuttan çok daha görseldir. Ve şükürler olsun ki, gittikçe daha fazla işveren bunu anlamaya başlıyor. Yine de, eğer bir serbest yazar ve tüm esnafların bir krikosuysanız - o zaman bu olmadan.

Ancak bir ekipte hardcore sunucu programcısı olarak çalışıyorsanız, HTML / JS / CSS hakkında yalnızca genel bir fikre sahip olmanız gerekir (çünkü bu dillerdeki metinler aslında PHP çalışmasının neredeyse tek sonucudur).

Ancak ilgili teknolojilerden kesinlikle iyi bilmeniz gereken şey, HTTP protokolü, dosya sistemi cihazı, Linux'taki komut satırıyla çalışmaktır.

Şimdi geri kalanı için

Mysql hala web veri depolamasının temel taşıdır. Birleştirmeleri, dizinleri bilmeniz ve anlamanız gerekir

Çerçeveler bir zorunluluktur. Ancak burada bir seçim sorunu var, ancak aralarında temel bir fark yok. Yii iyi bir seçim.

Bir github'a ihtiyacınız yok; bunu bilmenize gerek yok. Git'i bilmen gerek.
  Ancak bir web programcısı için gereken, Google'ı kullanma yeteneğidir. En azından bir hata mesajını arama formuna kopyalama veya “Git nedir” ;-) sorusunu yazma yeteneği düzeyinde

Çünkü bir takımda çalışmak için bazı sürüm kontrol sistemlerini bilmeniz gerekir ve git de facto standardıdır. Çalışma prensibini ve temel komutları anlayın - ödeme, taahhüt, itme.

İyi günler, blogumun sevgili okurları. Bir yerlerde hayatındaki herkesin şiir yazması gerektiğini duydum. Durum değişiyor ve şimdi her saniye kod yazmayı ve kendi sitesini oluşturmayı düşünüyor. Birçok kişi şu anda birleşiyor, diğerleri motora karar veremiyor. Bu makaleyi okuyup önerilerime göre eğitime devam ederseniz, başarılı olacağınızdan neredeyse eminim.

Konu oldukça karmaşık. Bugün sıfırdan nasıl bir php web sitesi yazacağımız hakkında konuşacağız. Bu değerli üç harfin ne anlama geldiğine daha yakından bakacağız ve sadece öğrenmenin değil, php'yi gerçekten anlamanın en iyi yollarını öğreneceksiniz.

PHP nedir?

Makaleye bu soru ile başlamak biraz garip, çünkü her şeyi zaten bildiğiniz ve bu nedenle zorluklara hazır olduğunuz varsayılıyor. Ancak, blogum yeni başlayanlar için. Yumuşak olun, bilgileri tekrarlayalım.

Basit ve erişilebilir kelimelerle php, bir web sunucusunda çalışan bir web uygulaması betiği oluşturmak için özel olarak tasarlanmış bir programlama dilidir. Web sitelerinin% 85'i kullandığı için bu oldukça popüler bir programlama dilidir.

Bu dilin özelliği, evrensel, öğrenmesi kolay ve sadece bir programcı olarak değil, aynı zamanda bir işadamı olarak da olanaklarınızı açıyor olmasıdır. Sonuç olarak, projelerinizi kendiniz yazabilir ve geliştirebilirsiniz. Herhangi bir yardım olmadan.

Etkili Öğrenme

Birçoğu bu dili öğrenmeye başladı, ancak çok azı sona ulaştı. Etkili eğitim için, bulmanız gereken ilk şey bir bilgi kaynağı, bir kitap, bir eğitim kursu veya videodur, ancak daha sonra daha fazlasıdır.

Sonra derleyiciyi indirmemiz gerekiyor. Bu, komut dosyanızı satır satır okuyan ve yürüten bir programdır.

En yaygın derleyici denver'dir - komut dosyaları yazabileceğiniz gerekli programların basit ve ücretsiz bir paketi. Fikrimi sorarsanız, Open Server'ı indirmenizi tavsiye ederim. İvme kazanıyor. Bu Denver üzerinde bir kesim ve içinde çalışmak için daha uygun olacaktır.

Bu paketler ne işe yarar? Bir sunucu olarak çalışmanıza izin verir. Şu anda bir şey indirmek isteğe bağlıdır. Herhangi bir eğitim kursunda bu serinin yararlı yazılımlarını bir kereden fazla duyacaksınız ve buna ihtiyacınız olacak.

Etkili eğitimin özü, dersi tamamladıktan sonra her şeyi uygulamaya koymanız gerektiğidir. Teori uygulama ile güçlendirilirse, birkaç hafta içinde dilin temel becerisine hakim olabilirsiniz.

Öğrenme kitapları

Ben kitap hayranı değilim diyeceğim. İnternet teknolojisi söz konusu olduğunda. Masai erkeğine wi-fi'nin ne olduğunu açıklamak gibi. Hiçbir resim normal olan her şeyi anlamaya yardımcı olmaz. Yine de, ben profesyoneller arasında alıntı aptallar için küçük bir php kitap listesi sunmak istiyorum.

Hedefinize gerçekten ulaşmanızı istiyorum ve bu eğitim seçeneğinin size daha uygun olacağını düşünüyorsanız, memnuniyetle bilgi vereceğim.

PHP ve MySQL. Web Uygulama Geliştirme - Yeni başlayanlar için uygun harika bir kitap. Her şeyden önce, yazar Apache (HTTP sunucusu), PHP ve MySQL'i (veritabanı) nasıl yapılandıracağını gösterecek, sonra size bir kod düzenleyicisini nasıl seçeceğinizi anlatacak. Kitap tartışıyor: dilin sözdizimi, en kullanışlı fonksiyonlar, kendi motorunuzu yaratma ve bir dizi başka fonksiyon.


Genel olarak, şaşırtıcı bir şey değil mi? Yine de, bu başka hiçbir yerde bulamayacağınız benzersiz bilgilere sahip gerçek bir ders kitabıdır. Bu beşinci baskı, yani eski bir bilgi olmayacak. Kitap 2015 yılında yayınlandı. Kodu kendiniz tanımaya başlamak için - bu kadar.

HTML, JavaScript, PHP ve MySQL. Beyefendi Web Yöneticisi Seti   - Bu daha ayrıntılı bir php öğreticidir. Web uygulamalarının tam olarak oluşturulmasının imkansız olduğu diğer birkaç yararlı olana değinir.

Okuması kolay, bağımsız çalışma ve öğrencilerin eğitimi için uygun. Yazar php temelleri, CSS kullanarak dinamik sayfa oluşturma (basamaklı stil sayfası), veritabanı yönetimi, JavaScript kullanarak dinamik sayfalar oluşturma gibi konuları kapsar.


PHP, MySQL, JavaScript, CSS ve HTML5 kullanarak dinamik web siteleri oluşturuyoruz - Bu kitabı zaten temel HTML mizanpajı becerilerine sahip daha gelişmiş okuyuculara tavsiye ederim. Bunu daha önce okuduysanız ve hala temel ilkeleri hatırlıyorsanız, bu kitap tam size göre.


PHP ve MySQL. Başlangıçtan profesyonele   - ve yazarın bir veritabanı ile web uygulamaları oluşturmaya yönelik güçlü bir önyargı yaptığı Kevin Jank'ın kitabını incelememize son verir.


Kitap çok hafif, kendi kendine çalışma için mükemmel.

YouTube videosu

Kendi deneyimlerime dayanarak, YouTube videolarında php öğrenmenin oldukça zor olduğunu söyleyeceğim. Basit görünseler de. Sevdiğim Photoshop derslerinin aksine, YouTube'da programlama dillerini öğrenmek imkansız. Yalnızca 15 ila 20 dakika uzunluğundaki bir video bile çok rahatsızlık verir.

Bu tür videolar, kodu kendiniz yazmanızı engelleyebilir. Neden yazar sizin için her şeyi yaptıysa: yazılı, lanse edilmiş, somut bir örnekte gösterilen her şey nasıl çalışır? Sonuç olarak, bir şeyi hatırlamak neredeyse imkansızdır.

Eğitim kursu

Bence bu ideal bir öğrenme seçeneğidir. Bir uzman sizinle uğraştığında harika.

Her derse yorumlar eşlik eder, uzmanlara sorular sorabilir, sakin bir şekilde tartışamaz ve anlaşılmaz anları çözebilirsiniz. Bilgi aramak için internette gezinmek zorunda değilsiniz. Hepsi çiğneyin ve ağzınıza koyun, sadece kullanmanız gerekir.

Size bir görev verilecek ve görevi ne kadar doğru tamamladığınızı izleyeceksiniz.

Sana tavsiye edebilirim netoloji kursu . Bu eğitim merkezi profesyoneller arasında değerlidir ve sadece iki ay içinde ihtiyacınız olan her şeyi öğrenebilirsiniz. Gruba işe alımlar sürekli gerçekleşir.

Bir şey anlamıyorsanız endişelenmeyin. Kurs sizin bulmanız için tasarlanmıştır. Bu yeni başlayanlar için gerçek bir adım adım kılavuzdur. İnanmıyor musunuz? Kurs programının tamamını resmi web sitesinden indirin ve bunu göreceksiniz.


Kendiniz olmadan ve php olmadan nasıl site oluşturacağınızı öğrenmeyi hayal ediyorsanız, bu sizin için en iyi seçenektir.

  »PHP öğrenmeye nereden başlamalı?


Web sitesi geliştirme en popüler alanlardan biridir. Web geliştirme, dinamik siteler oluşturmak için PHP programlama dilini kullanan çoğu deneyimli programcı tarafından gerçekleştirilir.

Doğal olarak, sadece profesyonel programcılar değil, aynı zamanda yeni başlayanlar internet projeleri geliştirmek isterken, hemen hemen her acemi web geliştiricisinin pHP öğrenmeye nereden başlamalı?. Bu programlama dilinin öğrenilmesinin oldukça kolay olduğunu belirtmek gerekir, ancak öğrenmek için biraz zaman ve ön hazırlık gerekecektir.

PHP programlamayı öğrenmeye başlamadan önce, HTML köprü metni biçimlendirme dilini ve basamaklı CSS stil sayfalarıyla çalışma prensiplerini incelemeniz önerilir. Bu bilgi web sayfalarının görünümünü kontrol etmek için gereklidir.

Sitede kullanılan bilgileri saklamak için bir veritabanı da geliştirilmektedir, bu nedenle programcı uygun bilgiye sahip olmalıdır. Veritabanı yönetimi yapılandırılmış bir SQL sorgu dili kullanır.

PHP ile çalışmak için neye ihtiyacınız var? Hakkında soruları olan acemi programcılar pHP öğrenmeye nereden başlamalı, siteyi geliştirmek için gereken programlara aşina olmanız gerekir.

PHP dilinde programlama için, yazılım paketini önceden kurmanız gerekir. Bu pakette Apache sunucusu, PHP köprü metni ön işlemcisinin kendisi ve veritabanı yönetim sistemlerinden biri bulunmaktadır.

Yerel bilgisayarlarda, bu yazılımı yüklemek için genellikle özel yazılım paketleri kullanılır. Web geliştiricileri için popüler paketlerden biri Denver. Bu program grubu Windows işletim sisteminde çalışır. Linux kullanıcıları için de yazılım paketleri vardır.

Denver paketi, PHP'de site oluşturmak için gerekli olan birçok yararlı yardımcı programı içerir. Paketi kurmak oldukça basittir ve hazırlıksız bir kullanıcı tarafından bile yapılabilir.

Denver program paketini kurduktan sonra, çevrimiçi bir proje geliştirmeye başlayabilirsiniz. MySQL veritabanlarını yönetmek için uygun phpMyAdmin araç seti kullanılır. PhpMyAdmin'deki tüm veritabanı işlemleri sezgisel bir grafik arayüzü kullanılarak gerçekleştirilir ve doğru menü öğelerini seçmeye gelir.

PHP programlama dilinin sözdiziminin öğrenilmesi.

Gerekli tüm programları yükledikten sonra yapabilirsiniz. Dünyanın sıradan dilleri gibi, programlama dillerinde programlar yazmak için kurallarını incelemek gerekir. Kodda en az bir sözdizimi hatası yapılırsa, program başlatılmaz ve site içeriği yerine kullanıcı tarayıcı tarafından görüntülenen ilgili mesajı görür.

PHP programlama dilinin sözdizimini öğrenmek için ilgili literatürü okumanız gerekecektir. Kitabı web sitemizde kullanabilirsiniz. Küresel ağa erişimi olanlar için, tematik sitelerde yayınlanan birçok bilgi de sağladı. Gerekirse, eğitim sırasında sorulan soruların cevaplarını alabileceğiniz çok sayıda forum ve topluluk vardır.

Literatür çalışmasından istenen etkiyi elde etmek için, tüm teorik dersler bunun için yerel bilgisayarınızı kullanarak pratikte çalışılmalıdır.

PHP programlama dili birçok farklı operatörden ve fonksiyondan oluşur, bu nedenle eğitim kursunu geçtikten sonra programcılar özel referans kitapları kullanır. Bu dizinler, gerekli işlevin sözdizimini ve anlamını hızlı bir şekilde görmenizi sağlar.

Eğitimin son aşaması: Eğitimin son aşamasında, pHP öğrenmeye nereden başlamalı, site sunucuya aktarılıyor. Kural olarak, barındırma sağlayıcılarının sunucuları gerekli tüm yazılımı zaten yüklemiş ve temel ayarları yapmıştır. Geliştirici yalnızca program koduna sahip dosyaları sunucuya kopyalayabilir.

Reg.ru: alanlar ve barındırma

Rusya'nın en büyük kayıt şirketi ve barındırma sağlayıcısı.

Hizmette 2 milyondan fazla alan adı.

Promosyon, alan adı postası, iş çözümleri.

Dünya genelinde 700 binden fazla müşteri zaten seçimini yaptı.

* Kaydırmayı duraklatmak için fareyi gezdirin.

İleri geri

PHP Öğrenmenin ve Kedi Yavrularını Kurtarmanın 20 Yolu

1700'lerin başlarına dayanan eski bir atasözü var. Şöyle yazıyor: "Bir PHP programcısı en iyi kodlama uygulamalarını her takip etmediğinde, bir yavru kedi ölür."

Tamam, sadece eğlence için, ama hadi ittiğimiz şey bu olalım.

PHP ile çalışmaya başlamak zor bir deneyim olabilir. Bunu göz önünde bulundurarak, 20 iyi ipucu size en iyi uygulamaları nasıl takip edeceğinizi ve hayatları nasıl kurtaracağınızı öğretecektir ... yavruların hayatlarını.


0. Kodu olabildiğince sık yazın.

Okulda yabancı dil okudun mu? Konuşmanın tüm bölümlerini, fiilleri ve basit ifadelerden ve yapılardan yapılmış öğretmenin konuşmasını sürekli dinlerken bunları nasıl eşleştireceğinizi öğrendiniz mi?

O zaman ne kadar bilgi kazandınız?

"Belirli bir amaç için sık sık programlama, bilginin sağlam bir şekilde özümsenmesine yol açacaktır."

Cevabınız “hayır” ise, o zaman bunun aslında dili kullanmadığınızdan kaynaklandığına eminim - sadece çalıştınız. Ancak hala bir konuşma yapabiliyorsanız, bu muhtemelen bir süre için bu dili öğrenme bağlamının dışında konuştuğunuzdan kaynaklanmaktadır. Belki yurtdışında biraz zaman geçirdiniz ya da bu dili bilmeniz gereken bir yerde çalıştınız?

Sebebi ne olursa olsun, sadece gerçek yaşam koşullarında, kişisel bir bağlamda kullandığınız için kurtardınız, bu da gelecekte kilit noktaların hatırlanmasını kolaylaştırır.

"PHP, İspanyolca veya Fransızca gibi yabancı bir dildir. Onunla rahatça çalışabilmek için sınıf dışında pratik yapmanız gerekir.".

Ders kitapları ve örnek projeler - tüm bunlar temel bilgileri öğrenmek için harikadır, ancak siz kendi projelerinizi uygulamak için bilgi uygulamaya başlayana kadar, kafanıza tam olarak yerleşmezler.

Bu nedenle, projeye başlamadan önce “ihtiyacınız olan her şeyi bilmiyorsanız” endişelenmeyin. Projeye karar verdiğinizde, ihtiyacınız olan her şeyi öğrenmek ve uygulamaya koymak için iyi bir nedeniniz var. Belirli bir amaç için sık sık programlama, bilginin sağlam bir şekilde asimile edilmesine yol açacaktır.


1. PHP belgelerine göz atın

Herhangi bir nedenden dolayı yararlı ipuçlarının her listesi bu öğeyi içerir. Ve kesinlikle boşuna değil.

PHP belgelerinde gezinmeyi öğrenmek, bir web programcısı olarak kendiniz için yapabileceğiniz en yararlı şeydir.

Tarayıcımdaki sitelerin geçmişine bakarsanız, en sık ziyaret edilen kılavuz PHP kılavuzu olacaktır. PHP'de programladığım sürece durumun değişmeyeceğinden şüpheleniyorum.

İlk başta, kılavuz karmaşık görünüyor ve navigasyon biraz garip görünüyor, ancak bu geçici bir fenomen ve çok yakında kolayca gezinebileceksiniz.

Belki de el kitabının yararlı bilgilerinden biri, çoğu fonksiyonun şablon kullanılarak bulunabilmesidir. http://php.net/function-name  adres çubuğunda. Örneğin, bir işlevi aramak için strpos ()  adresi kullan http://php.net/strposve için array_key_exists () - http://php.net/array-key-exists. Adreste parantez bulunmadığına ve alt çizginin kısa çizgiye değiştiğine dikkat edin.


1a. Yorumları okuyun!

Yorumları gözden kaçırmak çok kolaydır, ancak kendinize bir iyilik yapın ve bunları inceleyin. Bir işlevin çalışması sonucunda beklenmedik bir sonuç alırsanız, o zaman, muhtemelen, biri bunu fark etti ve yorumlarda ne olduğunu açıkladı.

Ayrıca, başkalarının yorumlarını okuyarak, diğer geliştiricilerden birçok yararlı fikir çizebilirsiniz.


2. Geniş PHP topluluğundan yararlanın

PHP eğitimine ek olarak, internette çok daha fazla geliştirici topluluğu var. Favorilerim arasında: StackOverflow.com  ve forum W3Schools.com.

Artı, Twitter şaşırtıcı bir şekilde PHP hakkında soru göndermek için harika bir yer. Bir tweet için "PHP" etiketlerseniz, büyük olasılıkla topluluktaki biri bunu fark eder ve size yardım eder.

"PHP'de daha iyi olur olmaz iyi olanı geri ödemeniz gerektiğini hatırlamak önemlidir. Topluluğun yaşayabilmesi için olabildiğince çok aktif kişiye ihtiyacınız var. Diğer yeni başlayanların sorularını yanıtlamaya çalışın. Başkalarının sorularına kulak asmayın."


3. Daha sonra kullanmak için iyi uygulamaları ertelemeyin

Eğitim sürecinde muhtemelen PEAR'ın hazır ifadeleri ve standartları gibi iyi alışkanlıkları ve kodlama standartlarını duyacaksınız. Bu noktaları "daha sonra" için çalışmayı ertelemeyin çünkü karmaşık görünüyor.

“İyi bir uygulama varsa, bunun nedeni (diğer PHP programcıları) bir araya gelip“ Yeni başlayanlar için hayatı nasıl zorlaştırabiliriz? ”Dememiz değil.

Senaryolarınızı daha esnek, daha güvenli ve daha hızlı hale getirmek için iyi uygulamalar mevcuttur. Onları olabildiğince hızlı öğrenin. Aslında, yanlış bir şekilde antrenmana bile başlamamalısınız.

Çalışmak için harcadığınız zaman mysql_query ()  çalışma süresi ile karşılaştırılabilir PDO  veya MySQLi. Bu nedenle, ikinci seçenekle hemen başlarsanız, bir veritabanı ile çalışmanın temel ilkeleriyle başladığınızdan emin olabilirsiniz ve sonunda bunun için daha az çaba ve zaman harcayabilirsiniz.


4. Daha sonra kullanmak için iyi uygulamaları ertelemeyin!

Sadece ona dikkat ettiğinden emin olmak istedim.

“Cidden, beyler. Bırakma. En iyi uygulamaları her kırdığınızda, çünkü“ çok karmaşık ”görünüyorlar, BP ham petroldeki başka bir kabarık kedi yavrusu dayatıyor.”

Yani bunu kendiniz, projeleriniz, meslektaşlarınız veya bir bütün olarak toplum için yapmazsanız, en azından yavruları hatırlayın.


5. Kodu kendi kendine belgeleme

İlk aşamalarda, elbette, değişkenlerin ve fonksiyonların isimleriyle “oynamak” cazip gelebilir. Belki de performans makalelerini okudunuz veya sadece iki satır kodda (ama sooooooo uzun :)) bir ton iş yapan bir kod parçası gördünüz veya kendi "kurumsal tarzınızı" oluşturmak mı istiyorsunuz?

"Komut dosyası çalışma süresini 0.2 ms azaltmak için değişken adlarındaki tüm karakterlerden hayatta kalmak istiyorsanız, büyük sorunlarla karşılaşmanız olasıdır."

Günaha ne olursa olsun, her ne pahasına olursa olsun direnmek gerekir.

Aşağıdaki kod snippet'ini düşünün:

Burada neler olduğunu hemen anlıyor musunuz?

Tabii ki, bunun nasıl çalıştığını anlayacaksınız, ancak neden kodunuzu inceleyen diğer kişileri “c” adı verilen bir değişkenin ne içerdiğini anlamak için fazladan bir dakika harcamaya zorlasınız?

Bu kodu alalım ve kendi kendini belgeleyelim:

İşte burada. Çok daha iyi. Şimdi, sadece koda bakarak, neler olup bittiğine dair genel bir fikir edinebilirsiniz. Alnını ovalama ve lanetleyen lanetler ve en önemlisi de fark yok.

Tabii ki, kısa değişken isimlerini kullanarak birkaç bayt kazanabilirsiniz. Ancak, açıkçası, genel komut dosyası çalışma süresini 0,2 ms azaltmak için değişken adlarından tüm karakterlerden hayatta kalmak istiyorsanız, büyük olasılıkla büyük sorunlarla karşılaşacaksınız.


6. Düşünmeniz gereken her şeye yorum ekleyin.

Yorumlar yeni başlayanların ayırt edici özelliği değildir. Aksine, diğer insanların kodlarının büyük bir kısmını inceleyerek, yorumların yetkili bir web programcısının bir işareti olduğu sonucuna varıyorum.

Kodunuz kendi kendini belgeliyorsa, çok fazla yoruma ihtiyacınız yoktur. Bununla birlikte, işlevlerinizin ve değişkenlerinizin adları ne kadar açık ve anlaşılır olursa olsun, mükemmel eylem tamamen açık olduğunda her zaman bazı “beyaz noktalar” olacaktır.

"Yorumlar, yetkili bir web programcısının işaretidir."

Bu olduğunda, kod hakkında yorum yapın. “Future You”, senaryoyu değiştirme zamanı geldiğinde “Size Sunuyoruz” der.

"Kural olarak, betiğin olması gerektiği gibi çalışması için ne yapılması gerektiği hakkında birkaç saniye düşünürseniz, bu bir not almanız gerektiğinin kesin bir işaretidir."

Bakalım:

   $ pieces \u003d patlayabilir (".", $ resim_adı); $ extension \u003d dizi_pop ($ adet);

Burada neler oluyor? Durup kodu düşünmek zorunda mıydınız? Değişkende neler olduğundan hala emin değilsiniz $ uzantı?

Kısa bir açıklama ile aşağıdaki kod parçasına tekrar bakın:

   // Resim dosya uzantılarını alın $ pieces \u003d explode (".", $ Resim_adı); $ extension \u003d dizi_pop ($ adet);

Şimdi, bazı kodların nasıl çalıştığını tam olarak bilmeseniz bile, en azından değişkenin içinde ne olduğunu bileceksiniz $ uzantı  resim uzantısıdır. Bu, Sizin için Gelecek'e yardımcı oluyorsa veya başka bir geliştiriciye birkaç saniye zaman kazandırıyorsa, yorum eklemek için 7 saniye harcamak mantıklıdır.

Her zaman olduğu gibi, anahtar ılımlılıktır.

Çok az yorum - ve diğer geliştiriciyi (ve “Geleceğinizi”) belirli kod parçaları hakkında şaşkın bırakma riskiyle karşı karşıyasınız. Bu, yanlışlıkla kod kırılmasına neden olabilir. hiçbir açıklama yoksa, kod aptalca veya gereksiz görünebilir.

"Denetleme her şeyin anahtarıdır."

Çok fazla yorum var - ve kodunuzun “taranması” zorlaşıyor, bu da işe engel oluyor.


7. Docblock'u keşfedin ve kullanın.

Docblock bir yorum standardıdır (devamı).

Bu standardı kullanmak için birkaç nedenim var:

1. Her dosya, işlev, yöntem vb. İçin “ne” ve “neden” hakkında düşünmemizi sağlar.

2. Fonksiyonlar / yöntemler için beklenen parametrelerin ve dönüş değerlerinin açık tanımlarını verir.

3. Belirli bir kodun ne yaptığının kısa bir açıklamasını verir.

4. Dockblock'u destekleyen geliştirme ortamı (IDE) ile birlikte, kod ipuçlarımız var (kullandığımız işlevler ve yöntemler için açıklamaları, beklenen parametreleri ve dönüş değerlerini görmemizi sağlar).

Bu noktaya "yüksek seviyeli yeni başlayanlar" için bir kısıtlama denebilir, ancak bunu mümkün olan en kısa sürede öğrenilmesi gereken en iyi uygulamalarla ilişkilendiririm.

Bu adımı atlamaktan çekinmeyin, ancak yavru kedi hatırlayın.

Docblock, sınıfları belgelemek için kullanıldığında çok yönlülüğünü gösterir:

   / ** * $ _foo değişkeninin toplamını veya farkını ve bir miktar değeri hesaplamak için basit bir sınıf * * @author Jason Lengstorf * @copyright 2011 Helikopter Laboratuarları * @license http://www.opensource.org/licenses/mit-license.html * / class CopterLabs_Test (/ ** * Toplama ve çıkarma için kullanılan değer * @var int * / private $ _foo \u003d 0; / ** * $ _foo'ya bir değer ekler ve toplamı döndürür * @param int $ add_me $ _foo * @return int'e eklenen değer $ _foo ve $ add_me * / public function add_to_foo ($ add_me \u003d 0) ( $ this -\u003e _ foo + \u003d $ add_me;) / ** * Değeri $ _foo'dan çıkarın ve farkı döndürün * @param int $ subtract_me $ _foo * @return int Farkdan Çıkar $ _foo ve $ subtract_me * / public işlevi subtract_from_foo ($ subtract_me \u003d 0) ($ return -\u003e _ foo - \u003d $ subtract_me;))

İlk bakışta, bu iç karartıcı görünebilir, ancak bu sözdizimine alışmak için zaman ayırmanın avantajları çok değerlidir.

Netbeans'de kullanıldığında yukarıdaki Docblock bize kod için böyle ipuçları verecektir:


8. IDE'yi reddetmek için enkoder o kadar sert olmayın

Henüz bilmiyorsanız, böyle bir inanç var: gerçek programcılar gibi düşünen sabit kodlayıcılar IDE kullanmaz.

Şimdi bakın: insanları etkilemek istiyorsanız, hokkabazlık yapmayı öğrenseniz iyi olur.

Komut satırında Emacs dışında her şeyi komut dosyası yazmak için kullanmamanız, kızların sizi takmasına neden olmaz veya hemen havalı bir hacker statüsü alırsınız, ancak bu, meslektaşlarınızın alnınıza bir uyarı vermesi için bir fırsat olacaktır. "Tuhaf adam."

"Tuhaf bir adam" olma.

"Anında sözdizimi vurgulama, hata denetimi ve kod ipuçlarını sağlayan bir yazılım kullanmanın yanlış bir yanı yok."

IDE'nin ne kadar güçlü kullanılacağı tamamen size bağlıdır. Şahsen Netbeans'i çok seviyorum. Mac için Coda için tonlarca övgü duydum (tam olarak bir IDE olmasa da), ama kendim Eclipse'yi kullandım (Netbeans'e geçmeden önce).

Hangi IDE'yi kullanırsanız kullanın, hızda bir artış ve küçük hataların sayısında bir azalma göreceksiniz. Daha sonra, kod kitaplıklarınız yenilendiğinde, tüm uygulamalarınız için kod ipuçlarınız olacaktır (çünkü Docblock kullandığınızdan, değil mi?

IDE'nin havalı olmadığını düşünmeyin - Tuhaf Adamın size ne söylediği önemli değil.


9. Yinelenen kodu işlevlere gruplayın

Bir uygulama yazmaya yeni başladığınızda, yukarıdan aşağıya doğru hareket ederek kolayca çalışabilir ve gerekli kodu doğru yerlere ekleyebilirsiniz.

Ancak, bunu yaptığınızda, kodun belirli bölümlerinin tekrar tekrar göründüğünü çok yakında fark edeceksiniz. Bakım ve değişiklikler söz konusu olduğunda bu yaklaşım mayın tarlası haline gelir. Aslında, bu durumda, uygulamanın işlevselliğini değiştirmek için aynı kod parçalarının tüm oluşumlarını bulmak için her dosyaya ve her dosyaya bakmanız gerekir.

Eylemin en az iki kez bile tekrarlandığını görürseniz, bu kodu bir işleve taşıma sorunuyla ciddi bir şekilde ilgilenmeniz gerekir.

Aşağıdaki örneği düşünün:

   $ unclean1 \u003d "Beni tıkla!"; $ detagged1 \u003d strip_tags ($ unclean1); $ deslashed1 \u003d stripslashes ($ detagged1); $ clean1 \u003d htmlentities ($ deslashed1, ENT_QUOTES, "UTF-8"); $ unclean2 \u003d "Hadi Bjorn'u arayalım!"; $ detagged2 \u003d strip_tags ($ unclean2); $ deslashed2 \u003d stripslashes ($ detagged2); $ clean2 \u003d htmlentities ($ deslashed2, ENT_QUOTES, "UTF-8"); echo $ clean1 , "
", $ clean2;

Gördüğünüz gibi, her iki satırın da güvenli olarak değerlendirilebilmesi için bazı işlemlere ihtiyacı vardır. Aynı zamanda, aynı işlevlerin her iki işlem için de kullanıldığını görürsünüz.

Bir işlevi kullanmak çok daha arzu edilir olduğunda durum budur:

   $ unclean1 \u003d "Beni tıkla!"; $ unclean2 \u003d "Hadi Bjorn'u arayalım!"; $ clean1 \u003d sanitize_input ($ unclean1); $ clean2 \u003d sanitize_input ($ unclean2); echo $ clean1, "
", $ clean2; işlev sanitize_input ($ input) ($ detagged \u003d strip_tags ($ input); $ deslashed \u003d stripslashes ($ detagged); dönüş htmlentities ($ deslashed, ENT_QUOTES," UTF-8 ");)

Tekrarlayan kodları işleve ekledikten sonra, gelen verileri temizlemek için attığınız adımlarda gezinmek ve düzenlemek çok daha kolaydır.


10. Benzer özellikleri sınıflara ayırın

OOP (nesne yönelimli programlama) ile aşinalık, "mümkün olduğunca erken öğrenme" kategorisine atfedilebilecek bir diğer noktadır.

"Bir veritabanı ile çalışan bir dizi fonksiyonunuz varsa, bunları sınıflara ayırarak tonlarca zaman ve emek tasarrufu yapabilirsiniz."

Öğrenme kesinlikle bu makalenin kapsamı dışındadır, ancak yeni başlayanlar için bu listenin bir parçası olarak belirtmenin çok önemli olduğuna inanıyorum.


11. Genel değişkenleri değil sabitleri kullanın.

Büyük projeler geliştirmeye yeni başladığımda, arkamda küresel değişkenleri gereğinden fazla kullandığımı fark ettim. Bu sorunu tanımak, çözmenin ilk adımıdır.

Değişmez olarak veritabanına bağlanmak için kimlik bilgilerinin yanı sıra değişmez veriler (sitenin adı ve resmin maksimum genişliği gibi) tuttum, bu da bir dizi kullanmak zorunda kalmamı sağladı GLOBALS  ihtiyacınız olan bilgilere erişmek için.

Sonra PHP bir işlevi kullanarak sabitleri tanımlamak için izin fark define ().

Sabit, uygulama boyunca değişmeyen bilgileri depolamanın harika bir yoludur. Ek bir avantaj, sabitlerin değiştirilememesidir, bu nedenle komut dosyasının yürütülmesi sırasında veritabanına erişmek için parolayı yanlışlıkla yeniden yazamazsınız.

İyi uygulamalar hakkında konuşursak, küresel değişkenlerin yaygın kullanımı işin ilk aşamalarında hoş karşılanmaz, bu nedenle sabitleri kullanmaya başlamak her zaman daha iyidir. Her şeyi kendiniz değerlendirmek için bu koda bakın:

\\ n ". $ global;)?\u003e

12. Kullanmaktan korkmayın

Neredeyse her zaman, büyük projeler oluşturduğunuzda, bunları dahil edilen dosyaları kullanarak daha küçük parçalara ayırmak mantıklıdır.

Web geliştiricileri tarafından benimsenen tipik bir yaklaşım, birçok komut dosyasında kullanılan her tamamlanmış kod parçasını ayrı bir içerme dosyasına yerleştirmektir (örneğin, genellikle tüm site için aynı olan veritabanına, altbilgiye ve başlığa bağlanma verileri) , gelen verileri kontrol etme işlevi gibi çeşitli yardımcı işlevler).

Böylece, aynı kod parçasını kopyalayıp yapıştırmak yerine, gerekli kodu doğru yerlere tek bir satıra bağlayabilirsiniz.

Örneğin, çok sayfalı bir sitede, tipik bir şablon şöyle görünebilir:


13. Performans nedeniyle delirmeyin

Bu, bazı geliştiriciler için ciddi bir engel. Etkili kod yazma ile komut dosyası yürütme süresini 5 ms azaltmaya çalışan zaman kaybı arasında çok ince bir çizgi vardır.

Kesinlikle performans konusundaki birkaç iyi makaleye göz atmaya ve uygulamadan uygulamaya sürüklediğiniz ana hataları bulmaya değer, ancak çift tırnakları tek tek değiştirmek için kodu dikkatlice yeniden düzenleyerek çok fazla zaman harcamamalısınız, çünkü biraz daha hızlı olacak.

"Büyük sorunlardan kaçınmak için başınızı açın ve uygulamayı hızlandıracak teknikleri duyuyorsanız kulaklarınızı açık tutun, ancak performans için bu yarışı yapmayın."

25 veya 40 ms'de bir sayfa yüklerken hiç kimse farkı göremez. 700 ms olmadığından emin olun. ve daha önemli şeyler yapın.


14. Komut dosyalarınızda HTML'yi "evlendirmeyin".

Bu çok fazla yaratıcılık gerektirebilir, ancak PHP kodunda işaretlemenin yaygın olarak kullanılmasından kaçınmaya çalışın. PHP dosyalarından tamamen kaldırmak neredeyse imkansızdır, ancak kodda önemsiz HTML işaretlemesini içermemek için mümkün olan her şeyi yaptığınızdan emin olun.

Aşağıdaki örneği düşünün:

Yankı "

İşte içerik geliyor.

";

Bir paragrafı etiketle sarmak gerçekten gerekli mi? div? Kodu, metnin içeriği için yalnızca paragraf etiketleri içerecek şekilde değiştirmek mümkün müdür? Bir alternatife bakalım:

İşte içerik geliyor.

"; ?>

Not: Bu örnek büyük ölçüde basitleştirilmiştir. Temel fikir, PHP dosyasına gerekenden çok daha fazla işaretleme eklemek için günaha karşı koymaktır.

Çoğu durumda, komut dosyalarınızın okunmasını ve bakımını kolaylaştıracak şekilde HTML'yi PHP'den ayırabilirsiniz.


15. Her yeni projede en az bir yabancı konsept kullanmaya çalışın.

Aynı şeyleri yapmaya devam ederseniz asla yeni bir şey öğrenemezsiniz. Her yeni projeyi geliştirirken, sizin için alışılmadık en az bir yeni teknoloji, yeni bir teknik kullanın.

Bu aşırı hırslı olmakla ilgili değildir - sadece kasıtlı olarak kendinizi rahatlık alanınızın ötesine geçmeye zorlayın.

Bu, aynı eylemleri tekrarlamaktan sıkılmanıza izin vermeyecek ve bir web geliştiricisi olarak gelişiminize katkıda bulunacak bir rekabet olacaktır.


16. Değiştirmekten gurur duyma

Yanlış olacaksın. Ve sık sık. Ama bu o kadar da kötü değil.

Büyüdüğünüzde, daha önce karşılaştığınız sorunlara yeni, daha iyi çözümler bulursunuz. Aptal gibi hissetme: sürekli yeni şeyler öğreniyorsun.

Burada yazdığınız koda bağlı olmamak çok önemlidir. Kodunuzu yazdığınız için daha iyi olduğunu düşünmeyin. Bazı sorunlara serin bir çözüm bulursanız kullanın! Başkalarının bunu nasıl yaptığına ve kendiniz için neler geliştirebileceğinize dikkat edin.

"Asla profesyonel olmayan bir kararın kabul edilebilir olduğunu düşünmenize izin vermeyin, çünkü bu sizindir. Kibirdir (kural olarak iyi bir şeye yol açmaz)."


17. Doğrulama

Bir web programcısıysanız, girişinizi mümkün olduğunca erken doğrulamayı öğrenmeye başlayın.

unutmayın:  Doğrulama, sanitasyonla aynı şey değildir.

"Gelen verilerin doğrulanması, bu verinin, girilen değerin geçerli bir e-posta adresi olup olmadığını veya giriş alanının Latin alfabesi veya sayılarının 8 ila 20 karakterini içerip içermediğini kontrol etmek gibi belirli bir formatla eşleşip gerçekleşmediğinin kontrolüdür."

Yorucu ve karmaşık olabilir, ancak daha fazla işlem için komut dosyasına yalnızca doğru format verilerinin gönderildiğinden emin olursanız, web sitenizin ziyaretçileri için "hizmet kalitesini" önemli ölçüde artıracak ve bu verileri kullanarak komut dosyalarınızın çalışmasında birçok hatayı önleyebilirsiniz.


18. Ne yasak - izin verilir?

Birçok durumda, belirli karakterlerden, metin parçalarından, etiketlerden vb. Kurtulmanız gerekir.

Tipik bir çözüm, sözde “kara liste” oluşturmaktır: yasaklanmış etiket, karakter vb.

"Kara listenizi sürekli olarak yenilemez ve izlemezseniz, bu güvenlik açıklarıyla doludur."

Ancak bu ek zorluklar yaratır. "Yasadışı" bir şey yapmak isteyenlerden daha akıllı olmalısınız. Örneğin, yorumlarda JavaScript'i devre dışı bırakmak için OnClick etkinliklerinin ve benzerlerinin kullanımını yasaklayabilirsiniz, ancak bir şeyi kaçırırsanız ne olur? Gelecekte spesifikasyona bazı yeni etkinlikler eklenirse ne olur?

Kara listenizi sürekli olarak doldurmaz ve izlemezseniz, bu güvenlik açıkları ile doludur.

Bu nedenle, gelecekte baş ağrısından kurtulmak için mümkünse beyaz listeyi kullanın. Beyaz liste kara listenin tam tersidir: parmak izleri, karakterler vb.

Örneğin, bir işlevde   strip_tags (), satırlarda hangi etiketlere izin verildiğini açıkça belirtebilirsiniz:

Strip_tags ($ string, " ");

Şimdi probleminiz, büyük olasılıkla, istediğinizden daha az yaptığınız olacaktır :) Ancak, bu yaklaşım çok daha güvenlidir ve gelecekte daha az hoş olmayan durumlara neden olacaktır.

Tabii ki, bu yaklaşımı her yerde kullanmak imkansızdır, ancak yasak olanın yerine neye izin verildiğini belirterek, daha fazla gönül rahatlığı elde edersiniz ve senaryolar üzerindeki kontrolü arttırırsınız.


20 yol mu arıyorsunuz? PHP'de neredeyse her zaman ve her yerde geri sayımın sıfırdan geldiğini unutmayın, bu yüzden bu 20 yoldur. Neredeyse tüm dillerde durumun böyle olduğunu göreceksiniz, bu yüzden kafanızın karışmasına izin vermeyin!


Özetlemek gerekirse

Yeni başlayan biriyseniz, yukarıda tartışılan ipuçları, işinize iyi uygulamalar uygulama konusunda önemli ilerlemeler kaydetmenize yardımcı olacaktır.

Burada yazılan her şey sizin için bir meraksa endişelenmeyin: her seferinde bir adım atın (bkz. Paragraf 15).


üst