Ruby programlama dilini öğrenmek. Rails öğrenmenin en iyi yolu. Standart veri önbelleğe alma araçları

  • 05.03.2020

İnternetteki ilk ve en kapsamlı Rails eğitimlerinden biri. Ana avantaj, en gerekli konuların ayrıntılı kapsamı, düzenli güncellemeler ve ücretsiz ana içeriktir.

Doğru, kaynak tamamen İngilizce. Ve bunun bir kitap şeklinde yapılandırıldığını anlamak önemlidir - tüm sorunları kendiniz çözmeniz gerekir. Bu nedenle, eğitimin süresi ve karmaşıklığı tahmin edilemez.

2. Raylar

İnternette bilinen başka bir eğitim kaynağı. Birden fazla nesil Rails geliştiricisi bunun üzerinde büyüdü. Ayrıca İngilizce.

Bütünsel bir eğitim kursu olarak değil, bir dizi senaryo şeklinde - belirli bir konuda kısa dersler şeklinde inşa edilmiştir. Çok fazla ders var, hemen hemen her konuyu bulabilirsiniz.

Ne yazık ki, proje 2013'te güncellenmeyi durdurdu.

3. Zombiler için Raylar

Yeni başlayanlar için zombi atmosferine sahip macera tarzı bir oyunda raylara harika bir giriş. Yeni başlayanlar arasında çok popüler.

Elverişli olarak, bilgisayarınıza herhangi bir şey yüklemeniz gerekmez. Tüm görevler tarayıcıda çözülür. Adım adım oyunu gözden geçiriyorsunuz ve Ruby on Rails'in temellerini anlamaya başlıyorsunuz.

Programlamayı hiç anlamıyorsanız, bu sizin seçiminiz. Kursta karmaşık konular yoktur, hiçbir şey temel bilgilerden uzaklaştırmaz. İngilizce.

3. Udemy

Geniş bir video kursları koleksiyonu. Aralarında raylar üzerinde çok sayıda yakut ve yakut vardır. Belirli bağlantılar sağlamanın bir anlamı yoktur - zevkinize göre fiyat veya popülerliğe göre seçim yapın.

Udemy formatı, video eğitimlerine ağırlık vererek oldukça kısa kurslar alır. Öğretmenlerden ciddi ev ödevleri veya hızlı destek beklemeyin.

4. Yakut Bursa

Rails geliştirmenin temelleri üzerine güçlü bir kısa vadeli kurs. Deneyimli öğretmenler, iyi program.

Öğrencinin kursta kişisel varlığı arzu edilir ve sadece büyük Ukrayna şehirlerinde gerçekleşir.

5. Evil Marslılardan Ruby on Rails geliştirmesi

Rusya'daki en deneyimli Ruby on Rails ekiplerinden birinden üç günlük yoğun kurs.

Nadiren gerçekleştirilir. Pahalıdır (incelemelere bakılırsa buna değer). Kişisel mevcudiyet gerektirir. Yalnızca ileri düzey programcılar için uygundur, yeni başlayanların orada yapacak hiçbir şeyi yoktur.

6. "Good Programmer"dan çevrimiçi yoğun Ruby on Rails

Youtube'da yeni başlayanlar için Ruby kurslarıyla tanınan bir ekipten yeni proje.

3 aylık yoğun program, yeni başlayanlar için tasarlanmıştır ve 12 akıllı uygulama portföyüyle sizi genç bir programcı yapmayı vaat eder.

Kurs, video derslerinden, pratik ödevlerden, öğretmen desteğinden ve düzenli web seminerlerinden oluşur.

Youtube kanalına ve kullanıcı yorumlarına bakılırsa bu adamlar ne yaptığını biliyor ve onlardan sıkılmayacak.

Bu, Ruby ve Ruby on Rails'in özelliklerini ele alacağım ve Ruby öğrenmeye nasıl başlayacağınız, soruların yanıtlarını nerede bulacağınız, ihtiyacınız olan deneyimi nasıl edineceğiniz ve nasıl edineceğinizle ilgili ipuçlarını paylaşacağım bir makalenin ilki. Kendinizi diğer adaylardan farklılaştırabilirsiniz. Tavsiyem birinin bir uzmanlığa karar vermesine ve okuyup çalışmak için Ruby'yi seçmesine yardımcı olursa memnun olurum.

Ruby'nin temel özellikleri ve farklılıkları

Sık sık şu soruyu duyuyorum: Ruby öğrenmeye değer mi? Kural olarak, soru şüphelere dayanmaktadır: bu uzmanlıkla iş bulmak ne kadar kolay, ilginç projeler olacak mı vb. Ruby modern, sürekli gelişen bir programlama dilidir, bunun için birçok uygulama vardır. Muhtemelen Chef, Vagrant, Homebrew'u duymuşsunuzdur, ancak çoğu zaman hepimiz Rails'i duyarız. İşte çerçevenin yazarının neden Rails öğrenmeye değer olduğuna dair yorumunu içeren bir gönderi.

Tabii ki, herkes hangi aracı kullanacağına kendisi karar verir. Ve bir teknolojinin neden diğerinden daha iyi olduğu hakkında sonsuza kadar tartışmanın bir anlamı yok. Ruby'yi seçtim çünkü aynı sorunu birçok şekilde çözmenize izin veren inanılmaz derecede etkileyici ve esnek bir dil.

Ruby, net dinamik yazma özelliğine sahip, yorumlanmış, tamamen nesne yönelimli bir programlama dilidir. Perl benzeri sözdizimini nesne yönelimli bir yaklaşımla birleştirir. Ayrıca Python, Lisp, Dylan ve CLU programlama dillerinden bazı özellikler ödünç alınmıştır. Ruby yorumlayıcısının bir çapraz platform uygulaması, açık kaynak terimleri altında dağıtılır. Ruby'de yazılan kod, programlamadan anlamayan bir kişi tarafından bile anlaşılabilir. RoR üzerinde Redmine, Twitter, Shopify, Basecamp, GitHub, Kickstarter, Airbnb ve diğerleri gibi projeler oluşturulmuştur.

Node.js'nin yükselişi ile Ruby on Rails'in popülaritesi biraz azaldı, ancak teknoloji girişimleri prototipleme kolaylığı nedeniyle genellikle RoR kullanıyor. Ruby, TIOBE endeksindeki en popüler 11. dildir.

Ruby'nin faydaları

  • Büyük ve arkadaş canlısı topluluk.
  • Oldukça yüksek bir giriş eşiği, bu da bir Ruby geliştiricisinin en az bir başka programlama dili ile deneyimi olması muhtemel olduğu anlamına gelir.
  • Yalnızca ihtiyacınız olan kitaplıkları ve modülleri kullanırsınız.
  • Kullanıma hazır birçok faydalı kitaplık var (Ruby Gems).
  • İnternette Ruby hakkında yapılandırılmış ve elenmiş bir çok bilgi var.
  • Ruby tartışması bağlamında, en popüler Ruby on Rails çerçevesinden bahsetmek mümkün değil.

Şimdi Ruby'nin bazı faydalarından daha detaylı bahsedelim.

Geliştirme hızı

Ruby ve RoR çerçevesinin avantajlarından biri geliştirme hızıdır. Kişisel deneyim ve meslektaşların deneyimi, Rails'deki sorunları çözmenin benzer nitelikteki diğer çerçevelerden bir buçuk kat daha hızlı olduğunu göstermektedir. Ruby bir araç olarak çok basittir ve ayrıca çeşitli görevler için çok sayıda hazır çözüm vardır.

Standart veri önbelleğe alma araçları

Büyük ölçekli bir proje geliştirirken en önemli noktalardan biri önbelleklemedir. Ruby on Rails, standart olarak standart veri önbelleğe alma olanaklarına sahiptir. Yani, projedeki verileri önbelleğe almak için hemen araçlara sahip olacaksınız ve tek tek kod bloklarını ve hatta tüm sayfaları kolayca önbelleğe alabilirsiniz.

Önce testler, sonra kod

Genellikle büyük projeler geliştirme sürecinde, test sorunu ortaya çıkar ve ayrı bir test ekibi için ek fon olmadığında nadir değildir. Rails'in bu soruna da bir çözümü var. Uygulama testi bağlamında RoR'yi diğer çerçevelerle karşılaştırırsanız, entegrasyon veya birim olsun, her tür test için birçok hazır çözüm bulacaksınız. Bu kitaplıkların tümü kutunun dışında çalışır. İdeal olarak, testler yazılana kadar bir Ruby on Rails projesinde hiçbir kod yazılmaz. RoR ideolojisi, BDD (Davranış Odaklı Geliştirme) veya TDD (Test Odaklı Geliştirme) yöntemlerinin ilk kullanımını varsayar.

Ruby Geliştiricileri için Genel Kabul Görmüş Geliştirme Süreci Standartları

Ruby'nin faydalarından bahsederken Ruby topluluğundan tekrar bahsetmeden geçemeyeceğim. Sürekli büyüyor, gelişiyor ve her zaman yardıma hazır. Size sorunu en iyi nasıl çözeceğinizi söyleyecek, herhangi bir konuda deneyimlerini paylaşacak biri her zaman vardır.

Ayrıca, çok önemli bir nokta - Ruby topluluğunda uzun yıllardır geliştirme süreci için standartlar, geliştirmenin gerçekleştirildiği ve işi büyük ölçüde kolaylaştıran topluluğun bazı kuralları / sözleşmeleri olmuştur. Bu standartlar nedeniyle, her proje çok yapılandırılmıştır, buna göre ekipteki yeni bir geliştirici, işin ilk günlerinden itibaren hızla hızlanacak ve faydalı olacaktır. Ve dahası: proje bir ekip tarafından başlatılıp başka bir ekip tarafından tamamlandıysa, bu da hiç sorun değil. Geliştirme, yukarıda belirtilen kurallara ve topluluk anlaşmalarına göre gerçekleştirildiğinden, yeni ekip projeyi hızlı ve kolay bir şekilde inceleyecek ve fazla zaman kaybetmeden başarıyla tamamlayacaktır.

Ayrıca Ruby on Rails'de, kamuya açık alanda çok sayıda çeşitli hazır çözüm bulunmaktadır. Çözümlerin çoğu sizden önce birileri tarafından uygulandı ve ayrıca topluluk tarafından test edildi, bu da sıfırdan geliştirme ihtiyacını azaltıyor. Bunlar, kimlik doğrulama, yetkilendirme, yorum yapma, ödeme sistemleri, posta listeleri vb. sistemleri olabilir.

Çok dilli bir proje için hazır çözümler

Rails, kutudan çıktığı gibi proje yerelleştirmesi için çok güçlü araçlarla birlikte gelir. Hem başlangıçta birkaç dil için destek sağlamak hem de daha sonra uygulamak mümkündür. Proje, terimleri çevirmek için özel dosyalar, farklı dillerde şablonları görüntülemek için araçlar ve çok daha fazlasını içerir.

Yüksek düzeyde veri koruması

Şimdi, çeşitli kaynakların hacklenmesiyle ilgili makaleler genellikle ağda yayınlanmaktadır. Ruby on Rails çerçevesinin geliştiricileri, veri korumasını çok ciddiye aldı. RoR, başlangıçta şifrelerin, kredi kartı verilerinin ve kullanıcının diğer kişisel verilerinin şifrelenmesini içerir, SQL enjeksiyonu ve XSS saldırıları da hariç tutulur. Tüm giriş parametreleri varsayılan olarak kaçar.

Ruby'yi Öğrenmek

Şimdi tam olarak nasıl Ruby öğrenebileceğinizden bahsedelim.

teori

Elbette edebiyatla başlamak gerekir. Bu kaynakları tavsiye ederim:

  • Ruby in 20 dakika yeni başlayanlar için iyi bir kaynaktır. Dilin temel yapılarını tanımanıza ve yarım saatten daha kısa bir sürede kendi küçük programlarınızı yazmaya başlamanıza olanak tanır.
  • Codecademy, saf Ruby ve Rails dahil olmak üzere çeşitli disiplinlerde çevrimiçi kurslar için bir platformdur. Burada öğrenme süreci oldukça ilginç bir şekilde oluşturulur, teorik materyal verilir ve hemen onu pekiştirmek için pratik bir görev verilir. Son görevler ödenir, ancak onlarsız bile gerekli becerileri elde edebilirsiniz.
  • Ruby ve Rails Kaynakları - Ruby ve Rails öğrenmeye ayrılmış çeşitli sitelere ve kitaplara bağlantılar koleksiyonu.
  • Ayrıca Flanagan D., Matsumoto Y. "The Ruby Programming Language" kitabını da önerebilirim. En iyilerinden biri olarak kabul edilir, yazarı - Ruby dilinin yaratıcısı.
  • Google :)

İşte başlamanıza yardımcı olacak birkaç kaynak:

  • w3schools.com/sql, SQL bilginizi okuyabileceğiniz, deneyebileceğiniz ve test edebileceğiniz yerdir.
  • quizful.net/test - Mülakatlarda sıkça sorulan soruları burada bulabilirsiniz.

İngilizce

Bu nokta üzerinde ayrıntılı olarak durmanın bir anlamı olmadığına inanıyorum, çünkü bu ayrı bir makalenin konusu. İngilizce çok önemlidir ve yaygın bir bilgidir. Sadece en önemli iki noktadan kısaca bahsetmek istiyorum.

İlk olarak, İngilizce uluslararası toplumun ana dilidir, bu nedenle faydalı literatürün çoğu da İngilizce olacaktır, birçok haber, rapor ve önemli makaleler de ilk olarak İngilizce olarak görünecektir. Bir sorunun cevabını bilmek istiyorsanız, öncelikle İngilizce'de bulunma ihtimali çok yüksek.

İkincisi, İngilizceniz ne kadar iyiyse, iş bulma şansınız da o kadar artar. Müşterilerin çoğu yabancıdır, bu nedenle İngilizce bilgisi verimli iletişim, TK'nin net bir şekilde anlaşılması ve müşteri ile iyi iletişim için önemlidir.

Uygulama

Birkaç kaynak keşfettikten sonra, daha önemli olan kısma geçmeye değer. İnternette bir çevrimiçi mağaza veya basit bir blogla ilgili birçok görev örneği var (işte bunlardan biri), özellikle de Rails hakkında konuştuğumuzda. Zaten gerçeğe biraz daha yakın olan görevleri tamamlama sürecinde, kesinlikle bazı sorunlarla karşılaşacaksınız ve ardından en önemli niteliklerden biri olan google yeteneği olan eğitime geçeceksiniz. Ne yazık ki, bu beceriye adanmış herhangi bir eğitim veya kurs bulamadım, ancak günlük işlerde kesinlikle çok önemli bir rol oynuyor.

Dersler

Teoriyi okuduktan ve birkaç "evcil hayvan projesi" yazdıktan sonra, elbette röportajlara gitmeyi deneyebilirsiniz, ancak çoğu zaman bu bilginin yeterli olmadığı görülür. Bunun nedeni büyük aday akını ve rekabet göz önüne alındığında, herkes öne çıkmaya ve elinden gelenin en iyisini yapmaya çalışıyor.

Eğitimde iş ararken avantaj sağlayabilecek bir diğer önemli nokta ise programlama kurslarıdır. Tabii ki, görevler bulmak ve bunları gözden geçirmek için belirli bir süre harcamaya hazır bir akıl hocanız yoksa.

Hemen söylemeliyim ki, hiçbir durumda zaten bir tür bilgi tabanına sahip olmadan kurslara gitmeyi tavsiye etmiyorum. Kursları, kendi kendine çalışma yoluyla kazanılan bilgileri pekiştirmenin harika bir yolu olarak görüyorum. Ve şimdi belirli bir okulun reklamını yapmaya çalışmıyorum, ancak bundan tam olarak hangi faydaların elde edilebileceğini açıklayacağım:

Orada yüksek bir olasılık derecesi ile daha önce bilmediklerini öğreneceksin... Kurslar, yapılandırılmış bir biçimde sunulan ve materyalin daha iyi özümsenmesini mümkün kılan oldukça fazla miktarda materyale sahiptir.

Kurs süresince sahip olacağınız akıl hocası, sorunlarınızın çözümünü gözden geçirecek ve zayıflıklara ve hatalara işaret edecek.

Motivasyon... Bu öncelikle öz disiplin konusunda yardıma ihtiyacı olanlar içindir. Ufukta hangi beklentiler belirirse görünsün, bazen kendinizi bir şeyler yapmaya zorlamak oldukça zordur. Kurslara katılırken, takip etmeniz gereken net bir programınız ve tamamlamanız gereken görevler olacak, aksi takdirde okuldan atılacaksınız. Ücretli kurslar söz konusu olduğunda finansal motivasyon da burada rol oynar. Sonuçta, zor kazanılan paranızı verdiğinizde, konuya karşı zaten tamamen farklı bir tavrınız var ve sadece yürüyüşe çıkma düşünceleri çok daha az ortaya çıkıyor.

Diğer bir avantaj ise sertifika... Sonunda özgeçmişinizdeki kağıt parçalarına göre değil, bilginize göre değerlendirileceğiniz açıktır. Ancak yine de, özellikle benzer düzeyde bilgi birikimine sahip, ancak belgesel onayı olmayan bir aday varsa, bu bir artı olacaktır.

Artı bir GitHub'da proje kumbaranıza. Acemi bir geliştiriciyseniz, büyük olasılıkla kurslarda yazılan proje, teknoloji açısından daha önce yazılmış olanlardan daha ilginç olacaktır.

Ve en önemli şey - ... Kurslardan bahsetmişken, sadece para ödemeniz gerekenleri kastetmiyorum. Şirketler genellikle kendilerini eğitim için işe alırlar, böylece daha sonra en iyilerini işe alabilirler. Bu bir iç kurs veya staj / staj olabilir. Bu seçenek en iyisidir, çünkü hiçbir şey için ödeme yapmanız gerekmemektedir, deneyim ve yukarıda listelenen tüm avantajlara ve ayrıca gerçek bir istihdam olasılığına sahip olursunuz. Onlara ulaşmak daha zordur, ancak beklentiler daha önemlidir.

Toplam

Ruby, güçlü bir şekilde yazılan dillerin getirdiği rahatsızlık ve törenler olmadan çalışmanıza izin veren bir dildir. Özellikle diğer programlama dilleriyle ilgili deneyiminiz varsa ve Ruby on Rails ile hızlı bir şekilde prototip oluşturabiliyorsanız, Ruby'yi kullanmaya başlamak kolaydır. Geldiği Japonya'da, Ruby oyun yaratmak için kullanıldı. Ruby özlüdür ve İngilizce gibi okur, bu da kodu yeni başlayanlar için anlaşılır kılar.

Ruby'yi öğrenmeye gelince, tekrar söylemek istiyorum: Küçükten başlamalısın. Birkaç kitap okuyun, birkaç görevi kendiniz yapın ve daha sonra daha fazla bilgi ve deneyim kazanmaya veya ek motivasyon kazanmaya ihtiyaç duyarsanız, zaten belirli bir miktarda kendi başınıza edindiğiniz kurslara gidebilirsiniz.

İdeal olarak, bunlar, kendinizi iyi gösterirseniz, tamamlandıktan sonra size bir teklifte bulunacak bir şirketten alınan kurslardır. Alternatif bir seçenek, kazanılan bilgileri pekiştirmeye, özgeçmişe başka bir proje eklemeye ve başlangıçta en önemli olan deneyim kazanmaya yardımcı olacak ücretli kurslardır. Ancak ücretli kursların sonunda bir sertifika göstererek mülakatı kolayca geçeceğinizi beklemeyin. Bilgi her durumda değerlendirilecektir.

Aynı zamanda, diğer programlama dillerinde yeterli motivasyona, sabra, yeteneğe ve deneyime sahip olarak, İnternette birçok yararlı ve iyi yapılandırılmış bilgi bulunduğundan, Ruby'de kendi başınıza kolayca ustalaşabilirsiniz. Ayrıca, açık ve geniş Ruby topluluğu sayesinde, muhtemelen birisinin sizden önce sormuş olduğu birçok olası soruya çevrimiçi yanıtları kolayca bulabilirsiniz.

İyi şanslar öğrenme! Ve bir sonraki makalede kod hakkında konuşacağız.

İlginç boş pozisyonları, stajları, kursları, makaleleri kaçırmamak için gençler için Telegram kanalımıza abone olun.

Bugün internette James Fend adlı birinin 12 hafta boyunca Ruby on Rails'i nasıl öğrendiği hakkında bir hikaye buldum. Aşağıda bu hikayenin nispeten doğru bir çevirisini okuyabilir ve umarım bu güzel çerçeveyi (ve güzel dili) öğrenmek için ilham alırsınız.

Başlamadan önce, Josh Crius'u (http://joshcrews.com) tanıtmak ve beni Ruby on Rails öğrenmeye ikna ettiği için ona teşekkür etmek istiyorum; O olmasaydı, yardımı ve bana akıl hocalığı yapmak için harcadığı saatler olmasaydı, bugün bunları yazıyor olmazdım. Teşekkürler.

23 Ocak'ta hayalimdeki fikir olan Freelancify.com'u başlattım. Tam 12 hafta önce, yeterli bilgiye sahip olmadığım için düzgün bir MVP (minimum uygulanabilir ürün) yaratmak için binlerce dolar harcayan bir teknoloji girişimcisiydim. Sebeplerden biri (o zaman düşündüğüm gibi) eğitimin benim için çok zor olması veya çok uzun sürmesiydi. Ben (diğerleri gibi) programcıların (ve bazılarının yaptığı) sihirli bir dizi problem çözme ve onları programlama dehası yapan matematik becerileri ile doğduğunu düşündüm. Ve tam olarak 12 hafta önce Uzun, gerçekten uzun bir süre içinde en iyi kararı verdim... Fikirlerimin hiçbiri artık bir fikirden başka bir şey kalmayacak. Artık üretim sürümlerini çalıştırma, barındırma için para harcama ve biraz çaba gösterme yeteneğine sahibim. Bugün, bu beceri seti, California'da altına hücum sırasında, herkes basit kürekler kullanırken bir grup traktör sürmek gibidir. Herkesi kod yazmayı öğrenmeye davet ediyorum... Burada bir açıklama eklemek istiyorum: Daha önce, “Rails'i 8 Haftada Nasıl Öğrendim” başlıklı yazının başlığını koydum, ancak kesin olmak gerekirse, lansman tarihi göz önüne alındığında 12 hafta çıkıyor. Bununla birlikte, 8 hafta içinde yeterince bildiğimi hissettim ve sonraki dört hafta, öğrenmeye değil, edinilen bilgiyi işlemeye daha fazla harcandı.

Rails öğrenmeye başlamadan önce hangi becerilere sahiptim?

HTML ve CSS bilgisi olan ve ağırlıklı olarak UI ve UX tasarımına odaklanan bir web tasarımcısıydım. Gerçek kodla yaptığım en zor şey (HTML'yi saymıyorum) Wordpress'i özelleştirme yeteneğiydi. Kısacası, bir MVC çerçevesinin ne olduğu veya veritabanlarının genel olarak nasıl çalıştığı hakkında hiçbir fikrim yoktu. Freelancify için tasarım, düzen ve HTML, Haziran 2011'de iki hafta içinde benim tarafımdan oluşturuldu.

Neden okumaya karar verdim?

Haziran 2011'de, düzen hazır olduğunda, düzeni işlevsel hale getirmek için bir kodlayıcı aramaya başladım. Düzen neredeyse tamamlanmıştı: Metin kutularım, açılır menülerim, formlarım, düğmelerim, gereken yere giden bağlantılar vb. vardı. Bir geliştirici buldum ve kısacası adam bana uymadı. Çok fazla borçla ve tamamlanmaya yakın bir ürün bile kalmadı. Sonra Josh Krius ile temasa geçtim (onunla Nashville'de düzenlediği bir Ruby on Rails toplantısında tanıştım) ve geliştiriciden geriye kalanlardan en azından bir şeyler yapmanın mümkün olup olmadığını görmek için onunla görüştüm ... Ne yazık ki, kodu düzeltmek ve geliştirmek, yetkin bir programcı tarafından sıfırdan geliştirmeden daha az zaman almaz. Sıfırdan geliştirme için tekrar binlerce dolar harcayamayacağımı fark ederek kalbimi kaybettim. Ve sonra Josh dedi ki ... " Neden Ruby on Rails ile nasıl başa çıkacağınızı öğrenmiyorsunuz, bu proje harika bir yol olurdu" ve daha sonra " Hatta seninle haftada iki kez buluşup öğrenmene yardımcı olabilirim.”. Bütün bir geceyi düşünerek geçirdim. Seçeneklerim şunlardı: rahat bir iş bul ve faturaları öde VEYA Rails'i öğrenmek için her şeyi riske atın ve sonunda İtalya'da şimdiye kadar yapılmış en iyi ramenlerle ziyafet çekin. Karar verdim. Ertesi sabah Josh'u aradım. her şeyi koydum. Kalan birikimden parayı ayırdım ve üç aya böldüm (yalnız ve çocuksuz yaşayan bekar bir adam için ayda bin dolar yeterli). İşe gitme zamanı, şimdi tam zamanlı bir öğrenciyim. Aklınızda bulunsun: Google aramaları, Stackoverflow, IRC #RubyOnRails ve Rails topluluğu sıkışıp kaldığımda beni koruyacak, eminim yeterli olacaktır.

Önümüzdeki üç ayım - Misyon: MVP alın, yeterince çalışın, ancak berbat bir ilk izlenim bırakacak kadar değil.

1 - 3 Hafta

Belki de en zor öğrenme eğrisiydi, ama pes etmedim.

Duvarlar, gerçekten ayrılmak istemeyen insanlar için yapılır.

Yeni başlayanlar için bir Rails masaüstü ortamı kurmak inanılmaz derecede can sıkıcı olabilir. İpucu 1: bir Mac sahibi olun. İpucu # 2: Homebrew, RVM, Git ve Heroku'yu kullanın (aslında başlamak için tek ihtiyacınız olan budur). Yüklemek için birkaç gün harcadım, sonra her şeyi kaldırdım ve yeniden yükledim. Birkaç kez tekrar etmeniz yeterli ve terminal (konsol) komut satırını kullanmaya alışacak ve işlerin neden bu şekilde çalıştığını anlayacaksınız. Sonra ilk yaptığım şey, Michael Hartle'ın TryRuby, Rails for Zombies ve Rails Eğitimi oldu. %120'nin materyali anlaması konusunda endişelenmeyin, siz gerçekten öğrenmeye başlayana kadar bu olmayacak. Rails Eğitimini bitirdim ve ne yaptığımı tam olarak anlamadan yaklaşık bir hafta içinde Twitter benzeri bu uygulamayı oluşturdum. Daha sonra ilerledikçe, her şeyin anlam kazanmaya başladığını fark etmeye başladım.

3 - 6 Hafta

Rails Eğitimi ile oluşturulmuş bir Twitter uygulamasıyla biraz güven kazandım. Öğretici beni bir geliştirici yapmadı, ancak şimdi uygulamanın kendisini oluşturmaktan Heroku'ya yüklemeye kadar uygulama oluşturmanın genel adımlarını biliyorum. Bu arada olan her şey bulanık kaldı. Şimdi GERÇEKTEN nasıl öğrenmeye başlayabilirim? Benim için bir anlam ifade eden gerçek bir proje üzerinde çalışmak... Josh ve ben Freelancify üzerinde çalışmak ve ne yapabileceğimi görmek için özgür olmam gerektiğine karar verdik. Yaptığım ilk şey, tüm HTML'yi tel kafesten aktarmak ve onu görünümler ve kısmi dosyalar halinde düzenlemekti. Kullanıcılar ve Projeler için (iskeleli) şablon platformları oluşturdum. Sonra ilk gerçek cevherim olan Devise'i incelemeye başladım. Daha sonra, örneğin bir ilişkiye sahip olma yeteneği, her Kullanıcının bir portföyüne sahip olacaktır. Ancak kullanıcılar birden fazla portföye sahip olabilirken, her portföy yalnızca bir Kullanıcıya ait olabilir. Modeller arasındaki ilişkilerin nasıl çalıştığını ve başka bir şeye ait olan şeyleri nasıl çağıracağınızı/göstereceğinizi anladığınızda, hayat çok daha kolay hale geliyor. Bir yerde takılıp kalırsanız ve hareket edemiyorsanız, atlayın, başka bir fırsat geliştirirken, kaçırdığınız şeyi nasıl uygulayacağınızı da anlayacaksınız.

6 - 9 Hafta

Adım adım öğrenmeye, kopyalamaya ve tekrar etmeye devam ettim. İşleri yoluna koyabilirdim ve sonra - bam - ve duvara yapıştım ve bundan sonra ne yapacağım konusunda kesinlikle hiçbir fikrim yoktu. Stackoverflow'a, #RubyOnRails IRC sohbetine, RailsCasts'a veya Josh'a mastürbasyon yaparak nasıl devam edeceğimi buldum. Aynı şeyi tekrar tekrar yapın ve her şeyi oldukça çabuk öğreneceksiniz. İşe yarayıp yaramadığını görmek için birinin cevabını Stackoverflow'ta test etmek için can sıkıcı saatler harcamak gerçekten ödüllendirici. Ne yapmaman gerektiğini anlıyorsun. Ve cevabı bulduğunda, anlamaya başlarsın NİYE ikincisi işe yaramadı. Bu sıralarda, şeylerin resminin ne kadar harika olduğunu anlamaya ve gerçekten anlamaya başladım. NİYE her şey tam olarak çalıştığı şekilde çalışır. Kendimi aptal gibi hissettim, geri döndüm ve daha verimli hale getirmek için daha önce yazdığım kodu yeniden düzenledim. Ve bir noktada her şeyin yerli yerine oturmaya başladığı aşamaya ulaştım.

9 - 12. Haftalar

Freelancify'ı başlatmak için inanılmaz bir güç modundaydım. Bu aşamada uçuyormuş gibi hissettim, fonksiyonları hayata geçirdim. Geçen hafta çeşitli hataların ve gafların ayıklanmasıyla geçti. Bu pazartesi siteyi açtım. Ama hala eğitimimi tamamlamaktan çok uzağım... İşte bu kadar. Küçük ayrıntıları ve teknik noktaları (yazının kısa olması için) atladım. Ancak, yorumlarda soru sormaktan çekinmeyin, kesinlikle cevaplamaya çalışacağım. James Fend.

not "Tanışabileceğim bir akıl hocasının yardımı ile bana çok yardımcı olmuş olsa da, kesinlikle Rails'i onsuz öğrenebilirsiniz. Veya böyle birini bulmaya çalışın, birçok Rails geliştiricisi topluluğa katkıda bulunmayı sever. Yerel konferanslar ve toplantılar arayın.

Bu giriş iki yıldan daha eski (27 Ocak 2012'de yayınlandı), ancak yine de alaka düzeyini kaybetmedi. Bu süre zarfında James Fend, Freelancify'ı satmayı ve yeni bir girişime yatırım yapmayı başardı, bunun hakkında 27 Şubat 2013'te yazdı. Bu makalenin bir kişinin bir hedefe nasıl gidebileceğine dair harika bir örnek olduğunu düşünüyorum. Sadece başlaman gerekiyor. :)

Beyler ateş, tabii ateş, hepsi ateş !!! En temelden başlayıp daha karmaşık şeylere doğru ilerleyen kurs, hem teorik bir temel hem de birçok pratik sağlar. Ders, öğrencinin bir programcı gözüyle kafasında doğru düşünceyi oluşturmasını sağlamaya yöneliktir. Bu kursu gerçekten beğendim, hem yeni başlayanlara hem de programlamanın temellerini zaten bilenlere herkese tavsiye ediyorum. Değerli çalışmaları ve deneyimleri için teşekkürler çocuklar!

Çok iyi bir kurs - çocuklar harika. Yavaş yavaş, bir programcının yaşamı için gereken minimum miktarı beyne koyarlar ve beyne daha gelişmiş çörekler atarlar.

Materyalin sunumu sadece ateş, tüm videoları izlemek ve sonra ödevi gözden geçirmek çok ilginçti, tek bir şey pkhpshnik'in tanınması değeri nedir ve hepsi var.

DZ alımına bireysel bir yaklaşım (resmi olarak değil) - akademik performansınıza bağlı olarak, öğretmenler görevinizi karmaşıklaştırabilir veya daha ileri teknolojiler kullanarak yapmanızı isteyebilir.

Gerçekten harika olan şey - bir boşlukta 24 saat destek!

Bilgilendirmenin gerçekleştiği harika web seminerleri ve sadece - bazılarını birkaç kez izledim çünkü çok önemli bir materyal ve çok iyi açıklanmış.

Ama benim için en önemli şey, kursların beni tamamen farklı bir duruma çekmesiydi - sürekli olarak yeni bir şeyi kavrama durumu, bilgi arzusu - ve bu hepsinden önemlisi - sanki çalıştırılan bir motor gibi. ben ve şimdi onun sayesinde hareket ediyorum. Bana bilgi arzusu, işe yaramayan üzüntü ve düzelttiğim sevinçle dolu yeni bir hayat verdikleri için öğretmenlerime çok teşekkür ederim.

Kurs sadece harika! Karmaşıklığından bağımsız olarak malzemenin net bir açıklaması. Öğretmenlere çok teşekkürler! Soruları hızla yanıtlayın ve gerçekleştirilen görevlerle ilgili bilinçli ve somut geri bildirim sağlayın. Sonuç kendisi için konuşuyor: 5 ay ve görüşmeyi başarıyla geçtim. Harika kurs! Buna değer!

Ruby on Rails geliştiricisi, Taganrog, github

Harika kurs. Doygun, sıkıcı değil, noktaya. Harika öğretmenler. Herhangi bir eksi bulamadım. İnsanca muamele görüyorlar. Tam bir acemi olarak geldim. Şimdi süper bir acemiyim! Ruby'de bir program yazdım (birden fazla), Rails'de bir uygulama yazdım (birden fazla), bir sunucu kurdum, uygulamayı dağıttım, uygulamaya çeşitli işlevleri batırdım, etki alanları, ssl sertifikaları, dns çözdüm , yetkilendirmeler ve çok daha fazlası. Savaşa koşuyorum, bağımsız bir proje üstleniyorum. Genel olarak, çok teşekkür ederim, İyi Programcılar!

Ruby on Rails geliştiricisi, Moskova, github

Prensip olarak, kurslara gitmeyecektim, ancak bu adamların materyali sunma şekli, onlarla çalışmak, öğrenmek ve sadece iletişim kurmak için büyük bir istek uyandırıyor.

Kursun en önemli avantajı, erkeklerin çok düşkün olması ve insanlara öğretmek istemesidir. Kurs, "Eh, size oradaki materyali verdik, sonra kendiniz çözdük" formatında DEĞİLDİR, insanlar yüreklerini koyarlar ve materyali nasıl algıladığınız konusunda endişelenirler. Bu kursu tamamladıktan sonra, Rails geliştiricisi olarak güvenle çalışmaya başlayabilirsiniz.

Ruby on Rails geliştiricisi, Krasnodar, github

Bir web uygulamasının geliştirilmesinde kullanılan ana noktalar kolayca açıklanır. Raylardaki en popüler mücevherler de dikkate alınır.

Ödevi iyi kontrol ederler ve ayrıntılı yorumlar sağlarlar. Kursun bitiminden sonra adamların size çekiçle vurmamalarını ve iletişim halinde olmalarını, söz ve eylemde yardımcı olmalarını takdir ediyorum)) Site, özellikle 71 dersin tamamını bitirdiğinizde, bilgi bulma açısından çok uygun değil, ama bence gerisini adamlar bitirecek, şikayet edecek bir şey yok.

AirBnB, San Francisco'da Takım Lideri

Çevrimiçi öğrenme konusunda önemli bir deneyimim var - bu şimdiye kadar tanıştığım en iyi çevrimiçi kurs. Her şey halledildi - iyi seçilmiş malzeme, mükemmel sunum. Ve en önemlisi, kurstan sonra gerçekten bir programcı olabilirsiniz!

Silikon Vadisi'nde yaşıyorum, çeşitli buluşmalara ve atölye çalışmalarına gidiyorum, övülen yerel eğitim kamplarından mezun olanlarla tanışıyorum (bu arada, 4 ay boyunca 12.000 dolardan başlıyor) ve kurstan sonraki bilgilerimin birçok kattan daha üstün olduğunu anlıyorum. Bu ünlü bootcamp'ların mezunları Silikon vadileri, sıfırdan başlamama ve "İyi Programcı" ya kadar terminali hiç açmadım))

Çalışma izni için bekleyeceğim ve kesinlikle bir iş bulacağım. Kurstan sonra bunu yapacak gücü hissediyorum, bunun mümkün olduğunu biliyorum! Sağolun beyler!

Benim düşünceme göre, çocuklar hem tamamen acemi programcılar hem de diğer diller ve kütüphanelerle çalışırken arkalarında deneyim sahibi olanlar için uygun harika bir kurs oluşturdular.

Harika malzeme ve sunum, genel olarak tutum ve web seminerlerindeki atmosfer. Çocuklar her öğrenciye yardım etmek için çok çalışıyorlar, gerekirse en küçük ayrıntıya kadar çiğniyorlar. Kurslardan sonra yeteneklerinize güveniyorsunuz, bilişim sektöründe iş bulmanın oldukça mümkün olduğunu anlıyorsunuz, bir istek olacak.

Temel bir programlama anlayışı için temel bilgiler mükemmel bir şekilde sağlanmıştır. Çözümü gelecekte yardımcı olacak ve kullanışlı olacak ilginç ve gerçek problemler verilmiştir.

Özetleyeyim. Bu kursu en iyilerden biri olarak görüyorum ve hayatını programlama alanına adamaya karar vermiş herkese kesinlikle tavsiye ediyorum. Şu anda aktif bir iş aramada talep oldukça yüksek, bu nedenle her şey sizin elinizde! Çocuklara minnettarlığımı ifade ediyor ve gelecekte başarılar diliyorum!

Ruby on Rails geliştiricisi

Kurs yardımcı oldu, Ruby ve on Rails'de programlamayı öğrendim, süper havalı bir programcı değilim, ama her şeyi yazabileceğimi biliyorum, fazladan bir şeyler okumanız gerekebilir.

Zorluk, "programlamayı öğrenmek ve bir iş bulmak" idi. Görev %100 tamamlandı, programlamayı öğrendim, işe alındım.

"Merhaba! Ne yapıyorsun?" - "Evet, yani, bir parçayı pirzola için programlıyorum." - "Bu bulaşıcı:-)"
Bugün bir arkadaşımla böyle bir diyalog yaşadım. Neden yakut?

Ruby'yi neden öğrenmelisiniz?

Bu soru, uzun süredir PHP'de başarılı bir şekilde programlama yapanları ilgilendirmektedir. Bir dilde ustalaştınız, bu harika, ama orada durmanıza gerek yok. Birçoğu, dili bildiklerini, ona rehberlik edildiğini ve onunla tüm tırmıkları zaten öğrendiklerini iddia edebilir. Size Ruby'yi öğrenmeniz için birkaç neden vereceğim.

  1. Merak... Örneğin açık sınıflarla çalışmak benim için çok ilginçti. Yönteminizi sistem sınıfına nasıl alacağınız ve enjekte edeceğiniz budur - bence bu harika. Karışıklık olacak mı? Ama nasıl yapmalı? Genel olarak, yeni olan her şey ilginçtir.
  2. ... Çünkü Uzun zamandır PHP'de programlama yapıyorum, Ruby'nin PHP hakkında neyle övünebileceğini merak ediyorum /
  3. yakut hızı... Twitter, Ruby'ye dayanmaktadır (son zamanlarda terk edilmiş olmasına rağmen). Gerçekte performansını test etmek istiyorum.
  4. Çözülmesi gereken görev sınıfı... Ruby, web uygulamaları için iyidir. Bu öyle mi?
  5. Metaprogramlama. Belki de en önemli sebep.

Ruby nasıl öğrenilir. Müfredat.

Buradaki ilk hatam, çerçeveyi dili bilmeden öğrenmeye başlamamdı. Şimdi bunu yapmanın gerekli olmadığını anladım. Bir süre Ruby on Rails'i unutup Ruby'nin kendisini incelemeye başladım, çünkü bilet sistemi uzun süredir php'de çözmesi zor olan bir sistem görevine sahipti. Gerçekten ona kök hakları vermek istemedim Yani plan şu.

  1. Fonksiyonlar, sınıflar, genel sınıflar. Nitelikler (erişimciler ve mutatörler).
  2. Dizilerle, dizilerle çalışma. Alt dizeleri bulma ve değiştirme vb. Tür dönüştürme.
  3. Dosyalarla çalışma.
  4. Sistem ortamıyla çalışma.
  5. Uygulama tasarımı, değerli taşlarla (modüller) çalışın.
  6. Veritabanı ile çalışma.
  7. Ruby on Rails Kurulumu,.

Bu yazıda ilk Ruby uygulamamı yayınlayacağım ve herkesi tartışmaya davet edeceğim. Hatalara dikkat edin, en iyi uygulamayı önerin, sorular sorun.

Ruby'yi birlikte öğrenelim!

Ders 1. İlk Ruby uygulaması.

Görev aşağıdaki gibidir. Hosting üzerinde bir DNS sunucusu var ve Ruby üzerinde konsol yardımcı programını çağırdığınızda, alan adı için bir bölge ve bölge listesine bölge girişi (domains.list) eklemeniz ve veritabanındaki bir kaydı değiştirmeniz gerekiyor. , bu etki alanının kaydedilmesi gereken yer. Veritabanı erişim ayarları, php uygulamasında, özellikle INI dosyasında saklanır. Tüm adımlardan sonra DNS sunucusunu (bind) yeniden başlatmanız gerekir.

Ruby için bir çalışma ortamı

IDE olarak JetBrains'ten RubyMine kullanacağım. Onları gerçekten beğendim. phpStorm ile ilgili olmasına rağmen, kalite hemen görülebilir. Ruby'yi önce tüm kullanıcılar için RVM'ye koyduk, sonra root ve kullanıcımız için kurduk.

Genel Ruby sınıflarını genişletme

Ruby'de INI dosyalarıyla çalışmak için gem inifile kullanıyoruz. Ama bununla ilgili küçük bir sorun var. ZF INI dosyasında sabitleri güvenle kullanabilirsiniz ve satırlar şöyle görünecektir:

IncludePaths = APPLICATION_PATH "/../vendors/Doctrine/"

Bu, mücevher ayrıştırıcısını yok eden APPLICATION_INI'den. Spesifik olarak, bu satır herhangi bir kalıpla eşleşmiyor:

@rgxp_comment =% r / \ A \ s * \ z | \ A \ s * [# (@ yorum)] / @rgxp_section =% r / \ A \ s * \ [([^ \]] +) \] / o @rgxp_param =% r / \ A ([^ # (@ param)] +) # (@ param) \ s * "? ([^"] *) "? \ z /

Bu, genel sınıfları kullanmanın durumudur. IniFile :: parse fonksiyonunu kendi fonksiyonumuzla değiştirelim. Tüm eklemeleri fucntion.rb dosyasına ekleyeceğim

Sınıf IniFile özel # # call-seq # ayrıştırma # # ini dosyasının içeriğini ayrıştırın. # def ayrıştırma, eğer File.file? (@ fn) bölüm = nil tmp_value = "" tmp_param = "" fd = (RUBY_VERSION> = "1.9" && @kodlama)? File.open (@fn, "r",: kodlama => @encoding): File.open (@fn, "r") while line = fd.gets line = line.chomp # mutline start # belirtmek için tmp değişkenleri oluşturun bir multine'nin başladığını # ve ini dosyasının sonraki satırlarının diğer muline rgxps'lerine karşı # kontrol edileceğini. line = ~ @rgxp_multiline_start ise tmp_param = $ 1.strip tmp_value = $ 2 + "\ n" # mutline uç sınırlayıcı bulunur # tmp değişkenlerini temizleyin ve param / değer çiftini elsif satırına ekleyin satır = ~ @ rgxp_multiline_end && tmp_param! = "" o zaman bölüm = tmp_value + $ 1 tmp_value, tmp_param = "", "" # multiline start ve end arasındaki herhangi bir şey elsif line = ~ @rgxp_multiline_value && tmp_param! = "" sonra $ tmp_value + "\ n" # boş satırları ve yorum satırlarını yoksay elsif satırı = ~ @rgxp_comment sonra sonraki # bu bir bölüm bildirimidir elsif satırı = ~ @rgxp_section sonra bölüm = @ini [$ 1.strip] # aksi takdirde bir elsif satırı parametremiz olur = ~ @rgxp_param daha sonra bölüm başlangıcı [$ 1.strip] = $ 2.strip kurtarma NoMethodError yükseltme Hatası, "birinci bölümden önce parametre ile karşılaşıldı" elsif satırı sonu = ~% r / APPLICATION_ / sonra başka yükseltme Hatası, "ayrışamadı line" # (line) " end end # iken fd.close tanımlıysa? fd ve fd end end

Etki alanlarının doğrulanabilmesi için String sınıfını da genişleteceğim.

Sınıf Dize def geçerli_alan_adı? domain_name = self.split (".") name = /(?:+)+/.match(domain_name).nil? tld = / (? :( 2) | aero | ag | asya | at | be | biz | ca | cc | cn | com | de | edu | eu | fm | gov | gs | işler | jp | in | bilgi | ben | mil | mobi | müze | ms | isim | net | nu | nz | org | tc | tw | tv | uk | us | vg | ws) /. maç (domain_name) .nil? (domain_name.count> 1 ve name! = false ve tld! = false) bitiş sonu

Kaynak kodları

Peki, şimdi size gerçek kaynak kodunu göstereceğim.
index.rb

#coding: utf-8 "mysql2" gerektirir "soket" gerektirir "inifile" gerektirir "./functions.rb" gerektirir # Sunucu makine adreslerinin karma değeri hosts = (: üretim => "83.168.22.1",: test => " 84.22 .11.1 ") util = Util.new (ana bilgisayarlar) util.releative_config_path =" / site.com/application/config/application.ini "# Parametreler kontrol ediliyor if (ARGV.count! = 2) etki alanı = ARGV ana bilgisayar adı = ARGV .split (".") çık ("Geçersiz alan adı") if (domain.valid_domain_name değil mi?) # Veritabanında bir şirket arayın sonucu = Mysql2 :: Client.new (util.get_db_settings) .query ("SELECT id" FROM` siteler` WHERE `hostname` =" # (hostname) "") çıkın ("Şirket bulunamadı") ise sonuç.count! = 1 # Güncelleme ana bilgisayar adı satırları = Dizi.yeni sonuç.each (| satır | satırlar)<< row} company_id = rows["id"] result = Mysql2::Client.new(util.get_db_settings).query("UPDATE `dbname`.`sites` SET `domain` = "#{domain}" WHERE `dao_companies`.`id` =#{company_id};") # Добавление зоны bind_config_path = "/etc/bind" default_zone_file = bind_config_path + "/zones/DEFALT" new_zone_file = bind_config_path + "/zones/#{domain}.zone" zones_list_file = bind_config_path + "/domains.lst" quit("File with default zone does not exists") unless File.exist?(default_zone_file) quit("File with zones list does not exists") unless File.exist?(zones_list_file) zone = IO.read(default_zone_file).gsub("SERIAL",Time.now.strftime("%Y%m%d%S")).gsub("DOMAIN", domain) if not File.exist?(new_zone_file) then File.open(new_zone_file, "w") {|f| f.puts(zone) } else quit("Domain "+domain+" zone already exists!") end # Добавление зоны в список zone = "zone \"#{domain}\" { type master; file \"/etc/bind/zones/#{domain}.zone\"; };" if not IO.read(zones_list_file).include?(domain) then File.open(zones_list_file, "a") {|f| f.puts(zone) } end # Перезапуск сервисов (bind9) system("service bind9 restart") puts "Completed"

Gem dosyası
Bu dosya proje bağımlılıklarını açıklar.

Kaynak: rubygems gem "mysql2", "0.2.6" gem "inifile"

Aslında dahil olan fonksiyonlar.
fonksiyonlar.rb

#coding: utf-8 sınıfı Dize def geçerli_alan_adı? domain_name = self.split (".") name = /(?:+)+/.match(domain_name).nil? tld = / (? :( 2) | aero | ag | asya | at | be | biz | ca | cc | cn | com | de | edu | eu | fm | gov | gs | işler | jp | in | bilgi | ben | mil | mobi | müze | ms | isim | net | nu | nz | org | tc | tw | tv | uk | us | vg | ws) /. maç (domain_name) .nil? (domain_name.count> 1 ve name! = false ve tld! = false) son sınıf IniFile private # # call-seq # parse # # ini dosyasının içeriğini ayrıştırın. # def ayrıştırma, eğer File.file? (@ fn) bölüm = nil tmp_value = "" tmp_param = "" fd = (RUBY_VERSION> = "1.9" && @kodlama)? File.open (@fn, "r",: kodlama => @encoding): File.open (@fn, "r") while line = fd.gets line = line.chomp # mutline start # belirtmek için tmp değişkenleri oluşturun bir multine'nin başladığını # ve ini dosyasının sonraki satırlarının diğer muline rgxps'lerine karşı # kontrol edileceğini. line = ~ @rgxp_multiline_start ise tmp_param = $ 1.strip tmp_value = $ 2 + "\ n" # mutline uç sınırlayıcı bulunur # tmp değişkenlerini temizleyin ve param / değer çiftini elsif satırına ekleyin satır = ~ @ rgxp_multiline_end && tmp_param! = "" o zaman bölüm = tmp_value + $ 1 tmp_value, tmp_param = "", "" # multiline start ve end arasındaki herhangi bir şey elsif line = ~ @rgxp_multiline_value && tmp_param! = "" sonra $ tmp_value + "\ n" # boş satırları ve yorum satırlarını yoksay elsif satırı = ~ @rgxp_comment sonra sonraki # bu bir bölüm bildirimidir elsif satırı = ~ @rgxp_section sonra bölüm = @ini [$ 1.strip] # aksi takdirde bir elsif satırı parametremiz olur = ~ @rgxp_param daha sonra bölüm başlangıcı [$ 1.strip] = $ 2.strip kurtarma NoMethodError yükseltme Hatası, "birinci bölümden önce parametre ile karşılaşıldı" elsif satırı sonu = ~% r / APPLICATION_ / sonra başka yükseltme Hatası, "ayrışamadı line" # (satır) " end end # while tanımlıysa fd.close emin olun? fd ve fd end end def çık (mesaj = sıfır) banner = "=== ========================= | DNS Ekleme aracı | ============================ Kullanım: ruby ​​./index.rb domain.com olddomain.site.com "eğer mesaj değilse .nil ? sonra afiş = mesaj sonu koyar afiş çıkış bitiş sınıfı Util attr_accessor: hosts,: releative_config_path,: ortam def initialize (hosts = Array.new) self.hosts = hosts end # Yerel IP adresini al def local_ip orig, Socket. do_not_reverse_lookup = Socket.do_not_reverse_lookup, true # ters DNS çözümlemesini geçici olarak kapat UDPSocket.open do | s | s.connect "64.233.187.99", 1 s.addr.last end Socket.do_not_reverse_lookup = orig end # Ortamı al def get_environment if @ çevre.nil? sonra hosts = self.hosts.invert if (hosts.include? (self.local_ip)) sonra @environment = hosts else @environment = "development" end else @ Environment.to_s end end def get_config_path local_username = get_local_username "/ home /" + local_username + "/ sandbox" + self.releative_config_path end # Yardımcı program rvmsudo aracılığıyla çalıştırıldıysa kullanıcı adını döndürür veya ENV ["SUDO_USER"] ise doğrudan def get_local_username.nil? çıkın ("Util, rmvsudo, \ r \ nexample: rvmsudo ruby ​​​​./index.rb domain.ru some.subdomain.ru") başka ENV ["SUDO_USER"] end end def get_db_settings config = IniFile :: load ( self.get_config_path) Section_name = self.get_environment.to_s + ": bootstrap" çıkış ("Yapılandırma dosyasında uygun bölüm yok"), config.has_section? (bölüm_adı) olmadığı sürece dsn = config.to_h ["resources.doctrinedata.connections. varsayılan. dsn "] # dsn dsn.sub! (" mysql: // "," ") arr = dsn.split (" @ ") dbconfig = (: kullanıcı adı => arr.split (": "),: password = > arr.split (":"),: ana bilgisayar => arr.split ("/"),: veritabanı => arr.split ("/")) bitiş sonu

PHP'ye ne dersin?

Bu yazı PHP'yi bırakıp Ruby öğrenmekle ilgili değil. PHP en popüler web programlama dilidir, üzerinde binlerce ilginç şey ve algoritma uygulanmaktadır. hatta sinir ağları. Ve onu seviyorum) Yıllar geçtikçe tüm eksikliklerine rağmen ona benzediğimi söyleyebiliriz. Ancak bu, kendiniz için yeni bir şey öğrenmenize gerek olmadığı anlamına gelmez.

Son zamanlarda bana Ruby'yi hangi kitaplardan öğreneceğim sorusu soruldu. Şu an bunu okuyorum.

Bu kitap, dinamik programlama dili Ruby için resmi kılavuzdur. Yazı ekibi gerçekten harika: David Flanagan tanınmış bir programlama uzmanı ve çok satan JavaScript ve Java kitaplarının yazarıdır; Yukihiro "Matz" Matsumoto, Ruby'nin yaratıcısı ve baş geliştiricisidir.
Kitap, dilin tüm yönlerinin ayrıntılı bir açıklamasını sunar: Ruby'nin sözcüksel ve sözdizimsel yapısı, veri türleri ve temel ifadeler, yöntemlerin, sınıfların ve modüllerin tanımları. Ayrıca kitap, Ruby platformunun API işlevleri hakkında bilgiler içerir.

Yayın, yeni Ruby dilini kendileri için tanıyan deneyimli programcılar için olduğu kadar, Ruby'de zaten program yapan ve daha yüksek düzeyde bir anlayış ve çalışma ustalığı elde etmek isteyenler için de ilgi çekici olacaktır. Ozon veya Biblio-Globe hakkında bir kitap bulabilirsiniz.

Kod ve ilginç fikirler hakkındaki yorumlarınızı bekliyorum!)

Teşekkürler!

Bu makale size yardımcı olduysa veya araştırmamı ve blogumu desteklemek istiyorsanız, bunu yapmanın en iyi yolu: