Nasıl verimliliği artırmak için bir betik dili (PHP, Python, vb) kullanıyorsunuz?

9 Cevap php

Ben, Windows platformu üzerinde Delphi geliştirici değilim son zamanlarda W3CSchools de PHP öğretici okumak, ilginç görünüyor.

Biz tüm betik dilleri web sitesi geliştirme çok iyi biliyorum, ama ben de benim verimliliği artırmak ya da bazı sıkıcı görevler belki bazı kirli hızlı-ve-string / dosya işleme, hızlı yapılması için kullanmak istiyorum?

What do you usually do with scripting languages apart from software development? And we need a responsive, decent IDE/editor in order to gain productivity when writing scripts for this purpose?

9 Cevap

Ben Windows üzerinde Python ile benim verimlilik ettik nasıl anlatacağım. Ben ölçekli olmayacak biliyorum ve ben daha verimli araçları gerekir sürece, ben gereken her uygulama (Ben şahsen C + + kullanmak bu durumda, ama aynı zamanda C # / Delphi kullanabilirsiniz) - Ben sadece Python her şeyi yazmak için deneyin.

Bu araçlar ve yardımcı programlar (% 95>) çoğu için, ihtiyaç (GUI için PyQt ile birleştiğinde) Python yeterince iyi olduğunu çıkıyor, ve C + + daha benim için çok daha verimli bir dildir. Anahtar bir "betik dili" olarak Python düşünmeyi durdurmak. Hiçbir C + + / Java / C # / Delphi / ne demek daha az bir programlama dilidir. Bu güçlü sahiptir ve kendi sınırlamaları vardır. Sürece bunların farkındayız ve bu iş için uygun aracı almak için nasıl bildiği gibi, sadece iyi yapacağız.

Herhangi bir özel IDE gerekmez. I Scite tüm Python (arada, Windows'un and Linux üzerinde) kodlama için kullanmak, ve o inşaat büyük.

  1. Sen KESİNLİKLE betik dilleri ile görevleri bir sürü otomatize ederek kendinize yardımcı olabilir.

    Lütfen dikkat: bu "scripting" dillerinden bazılarını - Perl gibi - are actually very powerful general purpose software development languages which just happen to be labeled "scripting" onların ilk niş ve / veya soy scripting (çünkü ve onlarla basit komut yapmak kolaydır çünkü).

    Şahsen ben hızlı betik otomasyon (2% kullanım), web geliştirme (% 8 kullanım) ve (% 90 kalan) Sirketin finansal yazılım geliştirme hem de Perl kullanmak.

  2. Ne yapabilirim örnekleri gibi - cevap "oldukça çok şey" olduğunu ve büyük ölçüde otomatik hale ihtiyaçları tipik çalışma ne bağlıdır. Ben ilgili dosya sistemi şeyler içeriği manipülasyon (Perl kökeni ve güçlü suit hala olmanın metin işleme biri) ve çeşitli raporlama (Perl "R", "Raporlama" anlamına gelir) dosya (file organizasyon / temizleme / yeniden adlandırma) için Perl kullanmak ve çeşitli veri çatırdayan için o Excel'de hızlı bir şekilde yapmak için sadece çok zorluk.

    Perl ekmek ya da zaman yolculuğu kızartıyor dışında hemen hemen her şeyi yapmak için kullanılabilir CPAN yoluyla mevcut (modüller denir) kütüphanelerinin son derece geniş bir yelpazeye sahiptir unutmayın; ciddi bir yazılım geliştirme yanı sıra çok sayıda çerçeveler.

    Python cevap ayna, Perl, Windows GUI şeyler için kullanılabilir - SO Perl ile gitmeye karar vermelidir konuyla ilgili çok kapsamlı tartışmalar beri ben burada durmayacağım.

  3. Dosya adları, meta-veri ve içeriği endeksli ve dizin arama için bir yol sağlanan bir very specific example Yukarıdaki gösteren, kendim için yaptığım son 2 proje endekslenmesi edildi sistemleri gibi. İlk bir yerel kod arama (Google Code Search cihazın yoksul adamın versiyonu) idi, ikincisi benim mp3s için bir dosya toplama yönetim sistemi (Ben köpek katına izin amaç için mevcut herhangi bir yazılım cesaret oldu etiketi ile beni rastgele düzenli ifade arama anahtar kelimeler). Hem indeksleme ve ön ucu için SQLite back-end ve Perl kullanılır. İkincisi belirli bir örnek ben StackOverflow Belirli bir etiketi vardı kaç kadar oy sayma 2-liner oldu :)

  4. Sen iyi bir IDE büyük fayda ya da sadece HERHANGİ programlama için programlama editörü olacak, komut dosyası dahil. Windows Not Defteri'ni + + veya UltraEdit kullanmak veya daha fazla - SO bir liste yerde olmalıdır. "Intellisense" (akıllı workd tamamlama) ile herhangi bir editör bir kenar alır.

Betik dilleri çok güçlü olabilir. İşte Lua benim verimliliği artırır inanıyorum nasıl:

  • Merkezi veri ilişkisel dizi (değişken karma tablosu). LUA'ın uygulama olağanüstü verimli ve iyi karma, masa, seti, ve liste olarak hizmet vermektedir.

  • Düzenli ifadeler olarak neredeyse, güçlü ve çok daha okunabilir: dize işleme mükemmel bir tatlı yerinde oturur. Desen kaçış karakteri % dize çıkış karakter \ farklıdır. LUA'ın "çekimi ile model" POSIX regexplerinin daha basit ve Perl regexplerde daha much basittir, ve bu benim dize tarama ihtiyaçları% 90 karşılamaktadır. Mühendislik tasarım süper bir örnek.

Bu iki özellik önemli verileri kapsamaktadır. Bunun üzerine,

  • Tablo hakkında akıl programları kolaylaşır, tek değişken türüdür.

  • Lua birinci sınıf, iç içe işlevleri vardır, bu yüzden bunu ama gerek bunu kullanmak istemiyorsanız, siz ödemezseniz fonksiyonel paradigmanın tüm gücü mevcuttur.

  • Lua koleksiyonları üzerinde, dosya sistemleri, bunu adı yinelenmesi için uygun dili, yerli yerleşik bir yineleme yapı vardır. "Yineleyici yöntemleri" ile bazı "yineleyici nesne" olması çok daha iyi. Yineleme Ben buna adamış bir dil yapısı (jenerik for döngü) olan büyük fayda yeterince önemlidir.

  • Dil yeterince mütevazı çalışmanın ardından, ben all bunu anlamak bu kadar basit değildir.

  • Bir yıldırım hızlı interaktif uygulama yoktur.

  • Ihtiyacı, ben Lua içine varolan herhangi bir C kitaplığı alabilirsiniz.

  • Anlaşılır olması için yeterince küçük kalırken standart Lua kütüphaneler benim ihtiyaçlarını çoğunu karşılamak. Ben bir özel amaçlı kütüphane (XML, HTTP, ayrıştırma) gerekiyorsa, mevcut ve kolay anlamak için yeterlidir zaten genellikle.

  • Yine gerek, ben kolayca kendi veri türleri ile uzatabilirsiniz.

Ben tüm sed Ben sh ile halletmek için kullanılan görevler, awk, perl, ve o kalabalık için Lua kullanıyorum bulabilirsiniz. Ben de zaman% 90 ben çok daha hızlı, basit, yararlı C programı daha basit, kullanışlı Lua program yazmak bulabilirsiniz. (Ben çoğunlukla sistem aramalar yapıyorum zaman diğer% 10'dur.)

Ben dil sayısı sayısı kaybettim rağmen (kod 10.000 hatları üzerinden yazılı) iyi biliyorum, bu gün hemen hemen tüm ihtiyaçları sadece 3 tarafından karşılanmaktadır:

  • Eğer söz kirli hızlı ve-string / dosya işleme dahil olmak üzere hemen hemen tüm hafif programlar, Lua

  • Öğretim için C (I öğretmek gerekir, çünkü C)

  • Prototip (ve bazen uygulamak) sofistike ya da büyük sistemlerin, özellikle derleyiciler için Haskell

Ben de nbibtex ve noweb 3 gibi oldukça önemli uygulamalar için Lua ve C karışımı kullandım.

Kısa cevap betik dilleri ile pek çok şey yapabilirsiniz, olacak - ama hala programlama veya yazılım geliştirme arayabilirsiniz.

Ama benim verimliliği artırmak için benim iş en yararlı bulmak ne sorularını, yanıtlayan, kabuk / perl / python komut çok olduğunu.

I think the most common use of scripts are various kinds of reports (in a broad sense), say having a logfile and wanting to retrieve certain information (or some sort of statistics), script can help you to achieve that in very short time.

Sizin için bazı ipucu anahtar kelimeler: shell scripting, düzenli ifadeler, çıkış biçimlendirme.

Teşekkürler

Yani muhtemelen betik dili kullanarak çok daha hızlı, belirli görevleri gerçekleştirmek, zaten resmi var (ve kelime scripting ile ilgili: Ben sadece, artık aşağılayıcı oldukça aykırı düşünmüyoruz). Lanet, hala yerine yazma dakika çift, tekrar tekrar, Delphi sınıfları ve formları yazma saat harcama üzerinden derleme ve, vb metin dosyaları arama, bazı defalık görevleri gerçekleştirmek için Delphi kullanarak bazı arkadaşlar (yanlışlıkla Delphi sadece programcılar) var Python / Ruby / Perl tek gömlekleri.

Ama (doğru seçim verilmiş) ona daha da önemli bir şey olduğunu düşünüyorum: you will learn new programming concepts. Eğer bir programcı olarak büyüyecek. O eski "Eğer çekiç var, bu yüzden her şeyi bir çivi gibi görünüyor" büyümek olacak bakış açısı. Tekrar nefes öğreneceksiniz.

Derken MEZUNLARI, "doğru seçim verilen" Ben kuvvetle güçlü fonksiyonel programlama kavramlarını bir şekilde tasarlanmış dil seçerek tavsiye. Yani gerçekten PHP atlamak ve Python ya da Ruby ya gitmek istiyorum.

Yani, sık sık (doğru bazı diğer programlama dilinde tüm çan ve ıslık ile uygulamadan önce algoritmasını almak için iyi) çeşitli programlama görevleri için prototip çözümleri için Python kullanıyorum, ve ben çeşitli otomatikleştirmek için BASH kabuk komut dosyası kullanıyorum (örneğin, vb grep boru ve diğer yardımcı programları, sonuçları kaydetme, girdi birden değişik setleri üzerinde bir programı çalıştıran) görevleri.

Bu bezginlik gelince, gerçekten ben şiddetle BASH tavsiye ediyorum. Sen Cygwin yükleyerek Windows alabilirsiniz. Örneğin, sık sık kendimi benim çeşitli kurslar için aşağıdaki gibi şeyler yapıyor bulabilirsiniz:

for i in {1..10} ; do
    ./process_data input-$i.txt | tee result-$i.transcript
done

Herhangi bir metin editörü sadece iyi yapacak ... iyi bir editör gerekmez. Bu iyi bir Python editörü arıyorsanız, Pydev ile Eclipse oldukça iyi olduğunu söyledi. Şahsen, ben sadece gerçekten tabii, Windows üzerinde Xcode yok ... Python veya bash kabuk komut dosyaları için masaya şey getirmez bile ... her şey için genel amaçlı bir kod editörü olarak Xcode kullanın. Ancak, Not Defteri'ni + +, Not Defteri veya Wordpad kullanabilirsiniz.

Ben yazmak neredeyse her şeyi çapraz-platform olduğunu, ve ayrıca pencereler gerçekten çok yararlı bir kabuk dili yok çünkü iş yerinde bir 50/50 windows / linux kullanıcısı olarak, piton, özellikle yararlıdır. PyQt ile, sadece birkaç saat içinde oldukça etkileyici bir GUI oluşturabilirsiniz. Ben önümüzdeki birkaç yıl içinde daha eminim, piton dünyada alacaktır.

I TextMate kullanıcı ve aktif php, yakut ve javascript benim kendi kullanımı için bunun için uzantıları ("demetleri") gelişebilir değilim.

Ben veri öncesi / sonrası işleme bir sürü yapmak için komut dosyası dillerini kullanabilirsiniz. Küçük veya büyük.

Neredeyse tüm betik dilleri vb süper / hızlı dosya, metin, grafik, taşıma var. Ve Kazan plaka kodu ve derleme adım kitleler olmadan çok çok kolay.

Birisi belirttiğim gibi, kaslarınızı esneme ve olanakları yeni bir dünya öğrenme olacak.

Ben bazen sadece ben daha hızlı yapılması istediklerini elde etmek, onları karıştırmak, başka bir betik dili diğerine atlamak. Eğer aklınıza gelebilecek bir çok şey yapabilir bilerek beni korkusuz yapar. Eğer orada her zaman stackoverflow edemez ve daha fazla dil (dil agnostik etiketi) daha hızlı (ve daha genelde) bir çözüm için kabul edebilir eğer bir tane alırsınız.