IDE'ye bağımlı olmak. Bana nasıl zarar verebilir?


27

Çok IDE'ye bağımlı bir geliştiriciyim (JAVA dev olduğum gibi NetBeans ve Eclipse). Bir IDE'm varsa düzgün şekilde kodlayabilirim. Geliştirme, hata ayıklama ve dağıtım için buna çok güvenebilirim. Fakat IDE olmadan hiçbir şey yapamam. Basit bir merhaba dünya programını veya bazı basit kullanıcı arayüzü düzenlemelerini kodlayabilir, ancak karmaşık işler yapmak veya daha basit şeyleri uzun süre kodlamak için bir IDE'ye ihtiyacım var.

Bana zarar verdiğini mi düşünüyorsun? 6 yıldan fazla bir süredir geliştirme tecrübesine sahip bazı programcılar zarar verebileceğine inanıyor, ancak bazı karmaşık şeyleri hızlı ve düzgün bir şekilde yapabilirsem neden zaman harcayan bir görevi gerçekleştirmek için not defteri ve komut satırı araçlarına bağlı kalmalıyım? IDE'lerde bunu yapmak için bir düğme var mı?


29
Bunu bir cevap olarak eklemeyeceksiniz, fakat bir Java (sadece) geliştiricisi olmak size zarar verebilecek şey ve çok şey. Gerçek bir dil öğrenin, sadece kötü programcıları kullanmak daha ucuz olduğu için Java kullanarak, başka bir kod maymunu olmayın. Lütfen?
Lacrymology

5
Bu benim için büyüleyici bir soru; Emacs veya Vi dışında hiçbir şeye program yapmadım. Sonuç olarak, bir IDE'nin size bağımlı olabileceğiniz konusunda neler verdiği hakkında hiçbir fikrim yok.
kasterma

8
@kasterma Göreyim: kod yardımı, yeniden düzenleme araçları, kod özetleme, hata ayıklama, parametrelendirilmiş hata ayıklama, yığın izleme, parametre izleme, çözüm yapılandırma, rad, intellisense, kod parçacıkları, derleme ve derleyici hatası yardımı, standartların uygulanması, hızlı başlangıç ​​şablonları, sözdizimi vurgulayarak ve daha fazlası ;-)
Syg

2
Sanırım @Lacrymology başka bir noktaya yaklaşıyor: Java IDE'ye bağımlı. Çoğu kodlayıcının Python, Scheme veya Common Lisp gibi bir IDE kullanmadığı bir dil öğrenmeyi deneyin; bu size yeni bir beceri verecek ve bazen sizi IDE'den uzak tutacaktır.
JasonFruit

7
@Lacrymology: Java IDE'ye bağımlı değildir ve oradaki en popüler dillerden biridir. Şok buluyorum, yeterince "gerçek" olmadığını düşünüyorsun.
Josh K

Yanıtlar:


15

Diğerlerinin de söylediği gibi, IDE'nizde onsuzdan daha hızlı olmak iyidir, işte böyle bir nokta. Verimliliğinizi artırmak için karmaşık araçları doğru kullanabilmek, önemli bir beceridir.

Bununla birlikte, IDE'lere aşırı bağımlılık sorunlara neden olabilir. Artık kullanmadığınız beceriler ve bilgiler kaybolur ve bazı yönleri anlamanız sığ olabilir. Klasik bir örnek komut satırında derleniyor ve çalışıyor - bunu hemen hemen her yaptığımda yanlış bir şey alıyorum (genellikle sınıf yolu ile ilgili), çünkü Eclipse'in bunu benim için yapmasına izin verdiğim zamanın% 99'u.

Bu sadece sizi IDE'den çıktığınızda etkilemez - IDE'nin sizden sakladığı karmaşıklıklar hakkındaki bilginiz sığsa, o zaman yanlış gittiğinde (ve bir noktada yanlış gidecektir) düzeltmek çok daha zor.

Bu iki yolu ele alıyorum:

  1. Yeni araçları en temel şekliyle öğrenin. Örneğin, SVN'den Mercurial'a geçtim, ancak Eclipse eklentisi yerine komut satırı istemcisiyle başladım. Bu, neyin daha derinde olup bittiğini anlamamı sağladı; bu, ne yanlış gittiğini ve IDE hatalar attığında nasıl düzelteceğimi bildiğim anlamına geliyordu.

  2. Temel kodlama becerilerinizi komut satırında uygulayın. Bunu yapmak için güzel bir yer, sözdizimi vurgulamayan, parantez eşleştirme, kırmızı alt çizgi yok, hiçbir şey almadığınız CodingBat . Yine de, bu java ve javac komut satırı becerilerini de kullanmayı unutmayın! (Ve iş akışınıza uygun başkaları - benim için hg ve karınca da dahil)

Son olarak, çok fazla endişelenme. Bu şimdiye kadar bu kadar uzun senin kadar, ya NetBeans veya Eclipse olmadan işin büyük bir parça yapmak zorunda ihtimali düşüktür yetenekli onlarsız kodlama ve anlaşılması neyi 'o sen misin önemli değil, IDE sizin için yapıyor ya daha yavaş ya da onsuz daha fazla hata yapın.


2
Bir hobi olarak, zaman ve beyin hücrelerini düşük seviye detaylarını bilmek üzerine harcamak eğlencelidir. Ticari olarak, çok değer kaybeder. İşi öğrenmek için daha iyi harcadığı zaman, ardından IDE'nin sağladığı ekstra verimlilikle uygulama zamanı.
Brian Knoblauch

CodingBat şimdi vurgulayarak sözdizimi vardır.
masterxilo

29

Hayır. Aslında bunun tersi olduğunu düşünüyorum. IDE, kalbinizden (intellisense yoluyla) bir çerçeve bilme gereksinimini ortadan kaldırır ve gerçekten umursamadığınız şeyleri sıkıcı / tekrarlayan / karmaşık işleri (hata ayıklama, dağıtma) basitleştirir. Bu , eldeki işletme problemini çözmeye odaklanmanızı sağlar . Bilmek ve IDE'yi bilmek ve iyi bilmek, bakım kodunu daha hızlı yazmanıza yardımcı olabilir.

Ve elbette bir geliştirici olmakla ilgili değil. Bir geliştirici olarak sahip olduğunuz deneyim, bir problem için doğru çözümü uygulamanıza yardımcı olur. Bence bu gerçek bir yetenek.


2
İntellisense için +1! İstihbaratın bu kadar hızlanacağı bir programda her bir karakteri yazarken izlediğimde insanlar için üzülüyorum.
David

8
Buna geri kalanımız için otomatik tamamlama denir :)
mhitza

4
@David: İnsanların iki karakter yazdıklarını izlemem ve sonra otomatik tamamlamanın ortaya çıkıp aslında ne anlama geldiklerini sorması için yarım saniye beklemem acı verici. Daha sonra fareye geçecekler ve sonunda bir tanesine tıklanana kadar mevcut seçimler arasında dolaşacaklar. Hayır, otomatik tamamlama bir nimettir değildir, hatta gerçekten yararlıdır. Bu tembel bir araçtır.
Josh K

1
@Josh K: Bu doğru. Otomatik tamamlama kötü programcıları daha da kötüleştirebilir, ancak iyi programcıların daha verimli olmalarına yardımcı olabilir. :)
David

2
@Josh Ama elbette yönteminizin ismini bitirdikten sonra intellisense / autocomplete için daha fazlası var mı? Satır içi yöntem açıklamaları (ne yapılır ve hangi parametreleri alır), mevcut olan metot aşırı yüklenir, kod snippet'lerine erişim, hangi yöntemleri geçersiz kılabileceğiniz gibi bilgiler vb. Nasıl gerçekten yardımcı olur, tembel olmakla hiçbir ilgisi yoktur ....
Syg

24

Hayır, sana zarar vermez. Tabii ki, bir IDE olmadan işlerin nasıl yürüdüğünü anlamalısınız (yani, temel derleme sürecini, vb. Anlamalısınız) ama bu konuda mazoşist olamayalım ... eğer bir IDE sizi kullanmaktan daha üretken yaparsa, neden olmasın? t ya sen


17

IDE'ye bağımlı olmak aşağıdaki risklere sahiptir:

  • Belirli bir IDE ve sürüm gerektiren bir yazılım derlemesi oluşturursunuz.
  • Ekibinizdeki diğer insanları sistemi kurmak için bu IDE'yi kullanmaya zorlarsınız.
  • Yazılımınızın yapısını kolayca otomatize edemezsiniz.
  • Yazılım bağımlılığınızın ne olduğu hakkında hiçbir fikriniz yok.

Bu nedenle, yazılımınızı komut satırından da oluşturabildiğinizden emin olun. Örn: Java'da maven veya karınca kullanın. Sonra yukarıdaki riskleri hafifletirsiniz.

Diğer IDE bağımlılığı riskleri:

  • IDE, kodunuzdaki hataları ve uyarıları işaretler ve hızlı düzeltmeler sağlar. Bunlar uygun olmayabilir - belki oyunda bir tasarım veya gereksinim sorunu vardır.
  • temelleri unutursunuz - seçtiğiniz dilin temellerini bilmeniz gerekir, böylece ustalaşabilmeniz ve görüşmelerde uzmanlık kazanmanız için.
  • yeni bir şey veya IDE'niz tarafından desteklenmeyen herhangi bir şeyi denemekten korkan bir IDE sandpit'inde kalmışsınız. Örneğin, IDE'nizin arama ve değiştirme için oldukça kapsamlı işlevleri olabilir. Ancak bunlar grep ve sed gibi komut satırı araçlarının gücü ve hızıyla karşılaştırıldığında hiçbir şey değildir. Seçtiğiniz IDE (örn. Netbeans) onu desteklemediğinden Android geliştirme yapamazsınız.
  • bazı IDE'ler büyük dosyaları idare edemezler - örneğin eclipse'de büyük bir sunucu çıktı dosyasını açmayı deneyin. Sonsuza dek sürer ve / veya belleği tükenir.

3
Puanlarınıza katılıyorum, ancak asıl soruyu ele aldığını sanmıyorum. Soru sahibi sadece Netbeans'a bağlı değildir. Eğer öyleyse, tüm bu noktalar doğru olabilirdi, ama benim anladığım kadarıyla soru, genel olarak bir metin editörü ve komut satırının aksine genel olarak bir IDE kullanıyordu.
jzd

2
Cevabımdaki IDE örnekleri referansları, sadece IDE bağımlılığının riskli olabileceğinin örnekleridir. Özellikle netbeans veya eclipse işaret etmiyorum.
Conor

İşyerinde Netbeans kullanıyorum, ancak tüm Ant scriptlerimi el ile yazdım, böylece herkes NetBeans gerektirmeden projeyi yapabilir. Editör özelliklerini ve kodda kolayca gezinmeyi seviyorum, ancak IDE'yi bağımsız tutmak için elimden geleni yapıyorum.
jonescb

9

Seçtiğiniz araçlarla daha üretken olmakta yanlış bir şey yoktur. Ama onsuz çalışamazsanız, iç bilginiz için çok şüphelenirim.

IDE'den vazgeçme; ancak zaman zaman tarayıcıda sadece bir editör ve dökümantasyon ile birkaç 'kolay' ders yapmayı deneyin.

Unutmayın, en iyi araçlardan daha hızlı bile onları kullanmak zorunda değildir.


Eğer bir IDE'sim yoksa durdurulmam ya da engellemem (% 40'larda), ancak bir IDE'm yoksa hızım önemli ölçüde azalacak. IDE ile on dakika görev yapmak için ide'imin düştüğü zaman bütün gün not defteri ve javac ile geçtim.
Prasham

iyi, not defteri çok düşük gidiyor. notepad ++ gibi bir programcının editörünü deneyin. Bir egzersiz olarak düşünün: eğlenceli değil ama düzenli olarak yaparsanız sizi daha iyi hale getirir.
Javier

4

Fakat IDE olmadan hiçbir şey yapamam.

Karmaşık şeyler yapmak için bir IDE'ye veya daha basit şeyleri uzun süre kodlamaya ihtiyacım var.

Bunu düzeltebilirsin, biliyorsun.

Aslında dili ve çerçeveyi öğrenebilirsin.

Hiçbir şey seni durduramaz.

Tabii ki, IDE'ye bağımlı olmaktan övünmediğiniz sürece.

IDE'ler bunu yapmak için bir düğmeyi tıklattığında zaman alıcı bir görev gerçekleştirmek için neden not defterine ve komut satırı araçlarına bağlı kalmalıyım?

İlgisiz. "Not defteri için sopa" tamamen ilgisiz "IDE ben hiçbir şey yapamaz olmadan" için. Not defterinde hiçbir şey yapmamak, not defterine yapıştırmak gibi bir şey değildir. Hangisi?


3

Her iki IDE'niz de açık kaynak olduğundan, o kadar “bağımlı” değilsinizdir, bu yüzden kullanılamaz olma noktasına gelmek için sadece kaybolmazlar veya yanlışlıkla “iyileştirilmezler”. Ve seçtiğiniz dil size herhangi bir seçenek bırakmıyor - sizler milyonlarca kütüphaneye bağımlısınız ve size yardım edecek bir IDE olduğunda bu kadar önemsiz şeyleri hatırlamaya çalışmak aptalca. Java çok zahmetli, ayrıntılı ve gereksiz ayrıntılardan yararlanan akıllı araçlar olmadan üretken olamazsınız.


başka bir dil için aynı şeyi söyler misiniz? (benim durumumda PHP düşünüyorum) ama bunun genel bir kural olarak iyi bir tavsiye olduğundan emin değilim. JAVA burada bir istisna olabilir
Quamis

1
Aynı C # için de söyleyebilirim, PHP için de olabilir. Bir dilin ve çok çeşitli kitaplıkların kullanılması gereken bir sorun alanının herhangi bir kombinasyonu akıllı araçlar gerektirir. Bazı diller çok sayıda kütüphane olmadan kullanılabilecek kadar güçlü ve etkileyicidir - ve basit şeyleri IDE'ler olmadan kodlayabilirsiniz. Bazı diller, en basit şeyler için bile her zaman yardıma ihtiyaç duyar. Lisp'te kod yazdığımda emacs veya hatta bir CLI REPL ile iyiyim. C # veya Java kodlarken, iyi bir IDE (msvs veya eclipse) olmadan hiçbir şey yapmayacağım.
SK-mantık

ancak "intellisense" veya "form tasarımcısı" ihtiyacı, kötü organize edilmiş (veya adlandırılmış) nesne üyeleri için bir uyarı oluşturmamalı mı? Çok fazla intellisense kullanan insanların daha uzun ve daha ayrıntılı isimler kullanma eğiliminde olduklarını gördüm. Bunun da iyi bir alışkanlık olduğunu anlamalı mıyım?
Quamis

Quamis: Tersi değil mi? Yazmak zorunda kalmak, uzun bir adın yanı sıra sınıfı / yöntemi tanımlayan kısa isimler seçmenizi sağlar.
DistantEcho

@Niphra: evet, ve ben pesonally kısa isimleri daha fazla severim :) Bence kodun okunmasını kolaylaştırır .. Eğer yöntem kısa bir şekilde tarif edilemeyecek bir şey yaparsa, o zaman evet, daha uzun bir isim kabul edilebilir, ancak ben temelde kısa tutmaya çalışıyorum ve yanlış bir şey göremiyorum.
Quamis

3

Bir IDE'ye aşırı bağımlılıktan kaynaklanan zararın, sizin için kod üretmek için sihirbazlara dikkatsizce güvendiğiniz zaman ortaya çıktığını düşünüyorum. Hem NetBeans hem de Eclipse, IMO için iyi bir şey olanlara oldukça açık. Başka bir zarar, yalnızca bir IDE'yi tanıyorsanız ve başkalarını kullanamıyorsanız olacaktır. Bazı şirketler ne kullanacağınızı belirleyen politikalara sahiptir. Daha iyisi ya da kötüsü, budur.

Bir IDE sizi daha üretken yapmazsa, değersiz olduğunu savunuyorum . Örneğin, JetBrains IDEA ile en üretken olanıyım, ancak Eclipse uzun bir yol kat etti ve bu konuda oldukça üretken olabilirim. Eclipse ayrıca geniş bir kullanım yelpazesi için de adapte edilmiştir - ki bu çift faydadır. VIM'de veya başka bir metin editöründe dolaşabilirken, refactoring desteği gibi mevcut IDE'lerin çoğunda yeri doldurulamaz bulduğum başka özellikler de var.


2

Kendine bir iyilik yaptığını sanmıyorum. Verilmiş, serbestçe kullanılabilen ve JVM'nizin olduğu her yerde çalışan Eclipse kullanıyorsunuz. Ancak daha önce X sunucusuz bir terminal oturumu aracılığıyla başka bir makineye kumanda etmek zorunda kaldığım durumlara rastladım, yani vi gibi düz bir metin editörü kullanmak ve komut satırını oluşturmak zorunda kaldım. Ayrıca, geliştirme ağının fiziksel olarak dünyanın geri kalanından izole edildiği bir ortamda çalışıyorum ve onunla kamu ağı arasındaki tüm transferler fiziksel medya yoluyla gerçekleştiriliyor. Bu ağda Eclipse olmasının tek nedeni, önce birkaç onay katmanından geçmesidir.

C ve Fortran 77'de dişlerimi komut satırı ortamında (VAX / VMS) kestim, bu yüzden bir IDE'ye ihtiyaç duyma fikrini biraz şüpheli buluyorum . Ancak, bunlar Java olan canavara göre küçük dillerdir; En son Java Nutshell kitabını taşımak için bir forklift kullanmanız gerektiğine göre, IDE'nin kullanılabilir olmasını yaşamın nasıl daha kolay hale getirdiğini anlayabiliyorum.


2

Bu "zarar" Eğer gerçekten olmayabilir, ama aynı zamanda şeyler yapıyor aşina eğer kazanabilir olmadan IDE. Ufkunuzu genişletmekten korkmayın.

Çoğu dev aracının komut satırı araçları olarak yazıldığını unutmayın. IDE'ler iyi sonuç veriyor. Öte yandan, sık sık işaretleyip tıklayıp tıklayamayacağınızı asla bulamayacağınız bazı "gizli mücevher komut satırı anahtarları" veya "gelişmiş püf noktaları" bulacaksınız.

Yani "Bana nasıl zarar verebilir?" Tüm komut satırı araçlarının, düğmelere tıklamaktan daha yavaş olacağına inandığınız, komut satırı araçlarını (kökenleri olan) öğrenmekten kaçındığınız noktaya o kadar bağlı olduğunuzda size zarar vereceğini düşünüyorum.

Tıpkı bir programcı olarak montajı öğrenmek gibi - bugün çok azımız el ile montaj yazıyoruz, ama montajı anlayanların hangi dilde kullanıyorlarsa o kadar iyi programcılar olduğuna inanıyorum.


2

Bilgisayara bağımlı olmak zaten oldukça zararlıdır. Ben her zaman büyük bir taş tablet ve çekiçle işlenmiş bir bezle programlarım. Kodun parçalanması biraz zaman alıyor, ancak özellikle büyük bir yöntemi bitirdiğinizde genellikle bir şeyler yiyorsunuz. Orada süpermarketten ve bu tür şeylerden bağımsız olmaya çalışıyorum, bu yüzden bütün buğdayımı evde yetiştiriyorum ve sadece onu yiyorum. Tabii ki, buğday tohumu ve su tedarikçileri bu bağımlılık döngüsünden çıkmanın mümkün olmadığını düşünmemi sağladı.

Cidden: Eğer <disclaimer>bir IDE kullanıyorsanız ve </disclaimer>kendinizi bir IDE'siz bulursanız ve ZORUNLU bir program kullanıyorsanız, kendinizi sadece oyunun üzerinde

  1. BT'yi arayın veya
  2. IT ise sorunu kendiniz düzeltin

Sadece gerekli gördüğü araçlar olmadan program yapmamalı, ayrıca diş macununu termal macun olarak kullanamazsınız.


1

IDE'ye bağımlı olmak size mutlaka zarar vermeyebilir, ancak seçim ortamınız olmadan çalışabilmek hayati bir beceridir.

IDE'ler sizi genellikle önemsiz olan 'küçük şeyleri' öğrenmekten alıkoyabilir ve işe yaramaz yazı yazmaktan / kazandan kaçındığınız için işi daha hızlı bitirmenize yardımcı olabilir. Ayrıca genellikle ortaya çıkan sorunları çözebilirsiniz, örneğin bir fonksiyonun yanlış yazılması.

Herhangi bir dil / çerçeve / vb öğrenirken benim kişisel kural ilk önce zor yoldan öğrenmektir. Bunu hakim olduğunuz Sonra bir kez, ben var düştü kazanılan bunu kolay yoldan yapmaya hakkım. Mesele şu ki, küçük nitty-gritty detaylarından bazılarını bilmiyorsanız, kanalizasyon şebekeniz mutfak lavabosundan sıçramaya başladığında, SOL olacaksınız. Potansiyel bir nedenin altında yatan operasyonların ne olduğunu biliyorsanız, sorunu çözebilir veya tamamen oluşmasını durdurabilirsiniz.


0

İyi bir metin editörü, örneğin MS-Windows için PSPad (ücretsiz), Mac OS X için TextMate , GNU Masaüstü için Geany (açık kaynak) veya KDE (açık kaynak) için Kate deneyelim.

MS-DOS için MultiEdit4.0 birkaç yıl önce hayatımı değiştirdi, o zamandan beri metin editörleri için çok duyarlıyım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.