Çoğu programcı kodu kopyalayıp yapıştırır mı? [kapalı]


48

Çok erken yaşta öğrendim, başkasının kodunu kesip yapıştırmak uzun vadede kendinizin yazması daha uzun sürüyor. Bana göre gerçekten anlamadığınız sürece, kes & yapıştır kodunun muhtemelen çözülmesi gereken bir kabus olacak sorunları olacaktır.

Beni yanlış anlamayın, başkalarının kodunu bulmak ve ondan öğrenmek esastır, ancak sadece uygulamanıza yapıştırmayız. Biz yeniden yazmak kavramları bizim app içine.

Ama sürekli kesip kesip geçen insanları duyuyorum ve ortak bir uygulama gibi konuşuyorlar. Ayrıca , bunun ortak uygulama olduğunu gösteren başkalarının yorumlarını da görüyorum .

Peki, çoğu programcı kodu kesip yapıştırıyor mu?


10
Bir şeyi nasıl yapacağımı bilsem bile, yine de en iyi uygulamalar için kod örnekleri arayacağım. Bir kez kod okuyabilirseniz, bulduğunuz planın planından daha iyi olup olmadığını hızla anlayabilirsiniz.
Nicole

Son zamanlarda kes ve yapıştır ile ilgili bir soru vardı. Neden kontrol etmiyorsun ?
Naurgul

Eğer anlarsam.
johnny

Yanıtlar:


46

İki genel durum:

Bir projeden diğerine:

Çoğu programcı bu kapasitede kod keser ve yapıştırır. Önceki bir projeyi veya çevrimiçi bir şeyi bulabilir ve tam olarak kopyalayıp yapıştırabilir veya kopyalayıp yapıştırabilir ve üzerinde değişiklik yapabilir. Bence bu uygulama genelde iyidir. Bu özellikle kanıtlanmış kod olduğunda iyidir. (Örnekler: Eski bir projeden işe yarayan bir tür yardımcı program nesnesi ya da muhtemelen birkaç değişikliğe ihtiyaç duyan bir blogdan). Bunun kötü olabileceği yer, anlamadığınız kodu kopyalarken veya kodun zayıf olduğu yerlerde veya yapıştırdığınız koddan daha iyi bir alternatif çözüm olduğu zamandır.

Aynı projenin içinde: Aynı projede kopyalayıp yapıştırmak genellikle iyi bir fikir değildir. Bu, kopyalanmakta olan kodun bir yerde bir yöntem / sınıfta olması ve tekrar tekrar çağırılması gerektiği gibi kötü bir koku. Bunun bazı istisnaları var, ancak genellikle programcının şunu düşünmesi gerekir: “ Kopyaladığım bu kodu parametreleştirmenin bir yolu var mı? ”.


5
Genel olarak, bu, yazılım lisansı için olduğu gibi, anti-sıkıştırma kodunda olduğu gibi, anti-paternler gerektiren bir kod yazmıyorsanız geçerlidir.
Rob Perkins,

+1 Evet, her ikisini de yaptım. Uzun süredir aynı proje içinde kesilmiş ve yapıştırılmış kod yapmadım (her ne kadar geri dönüş yapmak için günlüğe kaydedilen hatayla aşırı baskı altında nadiren yaptığımı itiraf edeceğim). Yardımcı sınıflara gelince, proje kopyalamaya olan projem artık tüm dosyaları kopyalamaktan izole edilmiştir.
John MacIntyre

2
Veritabanı kodunu yazarken, genellikle bir kısmını kesip yeni bir işleve yapıyorum ve istenen sonucu elde etmek için sql'nin kendisini değiştiriyorum ve belirtilen veritabanı çağrılarını yapmak için önkoşulların bazılarını tekrar yazmakla ilgilenmem gerekmiyor. Her ne kadar genel olarak her iki yoruma da katılıyorum.
Chris

1
@Chris: Kalbini kopyala ve değiştir, olduğu gibi yapıştırmaktan çok farklı.
Loren Pechtel

1
@Loren Pechtel: Yine de, yine de kodun kopyalanması ve yapıştırılması işini içerir.
Chris

37

Çoğu programcı yapar, ama bu yapman gerektiği anlamına gelmez.

Programlama mantralarımdan biri: "Kod kopyalayıp yapıştırıyorsam yanlış bir şey yapıyorum" . Esasen, DRY .

Kod yeniden kullanımının, kodu kod tekrarlamak yerine bir kaynak olarak kullanmak anlamına geldiği açık olmalıdır. Bazen kodu kendi kodumu kopyalayıp yapıştırdım, çoğu durumda kazan plakası koduyla veya gerçekten benzer görünen şeylerle sonlandırıyorum .

Bu kodla biraz daha zaman harcadıktan sonra aşağıdakilerle sonuçlanıyorum:

  • Bir bileşen (ayrıca bakınız: endişelerin ayrılması )
  • Ben çare olabilir yansıma şeyler daha basit daha temiz ve gelecekte reapeat daha kolay hale getirmek için.
  • Daha iyi bir tasarım , çünkü çalışsa bile, dersleri aldıktan sonra neden her şeyi tekrar yapmıyorsunuz?
  • Soyutlayabildiğim, bir kütüphane bileşenine dönüştüğüm ve yinelenen kodu kaldırabileceğim bir kalıp .

Müşteri / patronun umrunda (en azından doğrudan ve kısa vadede) umursamadığından ve kopyalayıp yapıştırmamamız gerekip gerekmediği ve aynı sonuçlarla sonuçlanabileceği tartışılabilir. böcek, modülerlik kaybı ve sonuçta bakım cehenneme yol açar.

Yapmanız gerekenler: asap refactor

Kimse mükemmel kod yazıyor, çalışsa bile, kopyalayıp yapıştırmadığınızda ve kendi kodunuz olsa bile, ondan memnun kalmadıysanız, hatırlatmak için yorumlara (örneğin bir docblock "@todo") bir not koyun. kendinize neyin refaktöre neden olacağını ve niçin ... onu kendinize zarar vermemeniz bile, bu, bakımcı için mutluluk ve toplam hayal kırıklığı arasındaki fark olabilir.

Sonunda, kopyalayıp yapıştırsanız bile, sonunda iyi bir kodla biteceksiniz.

İyi kod

XKCD üzerinden


15
Sık sık "daha sonra refactor" ı "asla refactor" haline getirmedim, hatta daha da kötüsü "Başka bir SUCKER'ın refactor ve neredeyse değil ama tamam değil kodumu düzeltebilirim. Ben tam olarak bunu yaparken inanıyorum, çünkü aksi halde yarın gibi - asla gelmez.
hızla

1
@quickly_now - re: "Başka bir SUCKER'ın neredeyse-ama-değil-tamam-ok kodumu düzeltmek ve düzeltmek için kullanabileceği sıcak bir atışım" ... Size bu gerizekalılardan ne kadar nefret ettiğimi söyleyemem.
John MacIntyre

Selam John. Seni duyuyorum. Hayatımın yıllarını o enayi olmak için harcadım ... yarısı kadar para ödeyerek ve gece yarısına kadar terleyenlerin neler olup bittiğini çok iyi anladım (ve büyük kod kodlarını tekrar yazdım) - sıcak çekim batmaya başladı başka bir şey. İç çekmek.
hızla_15

1
Ekipte ne kadar fazla kişi olursa, "refactor sonradan" ne kadar fazla olursa, o kadarıyla "refactor asla" olur: /
wildpeaks

8

Sıkışıp sorunumu çözmek için şeyler aradığımda ve istediğimi yapan kodun yararlı bir parçası üzerine geldiğinde, doğal olarak kopyalarım. Bazen sadece bunun özüdür. Daha sonra ihtiyaçlarımı karşılayacak şekilde değiştiriyorum. Bu, uzman olmadığım şeylere daldığımda daha sık olur (şu anda Amaç-C).

Her zaman koddan bir şeyler öğrenmek için zaman ayırırım, bu yüzden benim için tekerleği yeniden icat etmenin ve öğrenmenin harika bir yolu.


4
Her zaman 'iyi bir geliştirici tembel bir geliştiricidir' dedim. Daha önce başkası yapmışsa, tekerleği yeniden icat etmiyorum. Ama küçük tutuyorum ... Asla birkaç satırdan fazla kod kopyalamam ve asla anlamadığım hiçbir şeyi.
morganpdx

Ben diğerlerinden öğrendiğim için, ama belirli bir sorun aramıyorsanız, sadece başınızı diğer kişinin yaptığı şeyin etrafına sarmak, sadece onu sıfırdan yapmaktan daha fazla zaman harcamak olduğunu görmüyor musunuz? (fark ediyorum 'kod' hakkında konuşuyorum, sınıflar, vb. gibi işlevsellik birimlerini tamamlamıyorum ...)
John MacIntyre

@John MacIntyre Olabilir, ama genellikle küçük bir kod parçacığını açtığımda, memnun oluncaya kadar kalıplarım. Genelde yine de adapte edilmesi gerekir (bir fonksiyona, daha genel, geliştirilmiş, optimize edilmiş vb.).
Martin Wickman

@John: Kod parçacıkları, size işlerin nasıl yapıldığını gösteren parçaları sağlar. Tabii ki, kes ve yapıştır. Fakat Martin'in işaret ettiği gibi - bu kodun ne yaptığını öğrenin. Adını bilmediğiniz belirli bir yöntemi ararken çok daha fazla zaman harcayacaksınız. Bir kelimenin ne anlama geldiğini bilmediğinizde; sözlükte görünüyorsun. Tanımlar% 100 açıktır; peki kullanım örneklerine ne sıklıkla bakıyorsunuz? Kod örnekleri aynı sözlük kullanım örnekleri gibidir. MSDN her zaman kullanım örneklerini içermez veya genellikle eksiktir.
IA

6

Burada başkalarının kodunu kopyalamak / yapıştırmak hakkında konuşacağım. Çalışmamın bir kısmını kişisel kütüphanemden almak adil bir oyundur. Onları tanıyorum ve tanımlarına göre anlıyorum.

"Kesip yapıştır" kodunun bulunduğu en sık karşılaşılan durumun, belirli bir sorunum olduğunda ortaya çıktığını ve bunu çözen bir blog yazısına rastladığımı görüyorum. Çoğu zaman çözümü projeme yeniden yazıyorum (sonuçta, muhtemelen blog yazarının tarzında yazıyor). Bu gerçekten benim kodum değil , ama bu senaryoda kullanmak konusunda kendimi kötü hissetmiyorum.

Projeme olduğu gibi yapıştırmak için yapılan tüm yöntemleri veya sistemleri ortaya çıkarmak ve bunları kapmak, anlamadığım bir şey. Geçen gün StackOverflow'ta , böyle bir şeyi yapmanın problemini mükemmel bir şekilde gösteren bir soru vardı.

Frankenstein canavarı farklı kod bölümlerinden bir araya toplanırken bu kadar verimli olamaz. Demek istediğim, bu konuda başarılı olursanız, aynı çözümü tekrar tekrar kopyaladığınız veya başkalarının kodları hakkında yeterli miktarda bilgi edindiğiniz anlamına gelir; Uyumsuz kod örnekleri arasındaki sorunları çözmek zorunda kalmamakla verimlilik artar.

Şahsen büyük ölçüde kopyala / yapıştır yapan pek çok programcıyla tanışmadım. Kendilerini en derin ve en karanlık köşelere kodlayan bir çok şey gördüm, ama bu farklı bir hikaye. Kişisel anekdatama dayanarak, çoğu programcının tüm uygulamaları kopyalayıp yapıştırmadığını söyleyebilirim, ancak kesin olarak söylemesi gerçekten zor.


1
Belki de birçok programcı gerçek kodu büyük ölçüde kopyalamaz / yapıştırmaz, ancak tek bir kod satırına bakmadan hazır bir kütüphaneden (ücretsiz ya da başka şekilde)
faydalanabilirler

1
@Stuart Doğru, ama bence buradaki fark, o kütüphanenin programcının kendi eseri olarak talep edilemeyeceğidir. Ve dürüst olmak gerekirse, kütüphane çalıştığında ve yapmam gerekeni yaptığı sürece, özellikle kaynağını da göz önünde bulundurmaya da önem vermem. (İlk olarak, kütüphanenin ne kadar saygın / güvenilir olduğu konusunda durum tespiti yapıldığını varsayalım.)
Adam Lear

Bir bakıma, hem yayıncı hem de tüketici tarafında bir niyet meselesidir :)
hplbsh

@stuart - Bu tartışmaya bir kütüphane içermez, çünkü bu birleşik bir birimdir ... ne demek istediğimi biliyorsanız, gerçekten 'kaybedilmeyen' kod değil.
John MacIntyre

Aslında yorumlarınızı düşününce, bir programcının tüm sistemi kesip yapıştırması mümkün mü diye merak ediyorum. Bence kocalarının ağırlığı hızlı bir şekilde çığlaşacak ve ilerleyişlerini durduracaklarını düşünüyorum.
John MacIntyre

4

Kötü: Aynı kod bloğunu tekrar tekrar kopyalayıp yapıştırmak

Kendinizi bunu yaparken bulursanız, kopyalanmakta olan koddan ne çıkarılabileceğini düşünmek için muhtemelen bir saniye ayırmanız ve onu işlemek için bir işlev / yöntem oluşturmanız gerekir. DRY (Kendini Tekrar Etme) prensibinin saydığı nokta budur.

İyi: Çalışdığı bilinen bir kod bloğunu kopyalamak

KURU (Kendinizi Tekrar Etmeyin) de burada farklı bir anlamda geçerlidir. IE, daha önce yapmış olduğunuz işleri tekrar etmeyin. Bir kod bölümü yazmak için zaman harcadıysanız, hata ayıklayın, test edin ve bir üretim kod tabanında çalıştığı kanıtlandı; Tekrar kullanmamak aptallık olur.

Çoğu insan kopyalamayı yapıştırma işlemine kötü bir rap atıyor çünkü çoğu yeni başlayan programcı, internetteki ağı taramak ve gerçekte ne yaptığını anlamadan başkalarının kodunu karıştırmak / yapıştırmak için zaman harcıyor.

Her seferinde her şeyi sıfırdan yazmak daha iyi değil. Çok sayıda eski okul purist programcısı olduğunu biliyorum, her şeyin sıfırdan yazılması gereken şeyler ve umarım onlarla çalışmamaya başlamam. 5 yıllık programlama deneyimine sahipseniz, yeniden kullanım için en önemli olan oldukça önemli bir kod kütüphaneniz olmalıdır. Deneyimli bir programcının masaya getirebileceği en iyi varlıklardan biridir çünkü potansiyel olarak çok fazla geliştirme zamanı kazanacaktır.

Eski kodunuzu ilk önce anlayamıyorsanız, yorumları okumak ve kendinizi yeniden tanımak için bir dakikanızı ayırın. Yorumlarınız emilirse ... peki, bu tamamen bir başka konu.


Kod kopyalamak ve yapıştırmak yerine, yeniden kullanılabilir bir şekilde yazmak tamamen mümkündür. Sonra kopyalayıp yapıştırmak yerine bunu kullanın.
Bjorn

1
@BjornTipling Evet, bu işlem karmaşıklık eklemez ve kod asla yeniden kullanılmayacaksa, kodu tekrar kullanılabilir işlevlere bölmek genellikle tercih edilir
Evan Plaice

Kopyalayıp yapıştırıyorsanız, yeniden kullanıyorsunuzdur. İnsanların kafalarını kullanmaları ve koşulların bunu gerektirebileceği konusunda hemfikirim. Testler yazarken kendimi kopyalama ve yapıştırma yaparken buldum, ancak orada bile yeniden kullanılabilir işlevler oluşturmaya çalışıyorum, ancak o zaman neredeyse aynı olan iki veya üç satır var, ancak bunu bir hale getirecek kadar genelleyemiyorum yeniden kullanılabilir işlev
Bjorn

3

25 yıl kod yazdıktan sonra (önceki bir işveren için yazdığım koda erişim olmadan) kesip yapıştırmak istediğim zamanlar oldu. Ancak, bu çok nadir olmuştur (ve okumaya devam edin).

Belki de en iyi örnek, unix işletim sistemleri için yıllar önce karşılaştığım, gerçekten basit bir komut satırı çözümleyicisidir. Arpların arasından geçen ve seçenekleri işleyen basit bir döngü. Sade bir şekilde basit ve zarifti ve o zamandan beri (edebi bir kes ve yapıştır gibi bir kalıp olarak) kullandım. Kuraldan ziyade istisna budur.

Genellikle düz bir ole kes ve yapıştır tamamen uygunsuzdur - daha önemli olan kavramı veya algoritmasını kesmek ve yapıştırmak.

Gurur duymuyorum - gerçekten hızlı bir eşlik veya hamming kodu bulmak için algoritmayı veya bunun gibi egzotik bir şeyi doğrulamak için mutlu bir şekilde arama yapacağım. Öyleyse birkaç saatini, gerçekten peşimde olduğum muazzam hızlı hızlı bir şey mi yoksa saf bir hurda yığını mı olduğunu anlamak için harca.

Ne zaman birileri bunu anlamak için durmadan sadece kod kopyalarsa endişeleniyorum. Onlar bir dahi (bir bakışta tüm inceliklerini anlayın) veya bir aptal. Arada hiçbir şeye yer yok. Oh, ve pek de gerçek dahiler yok.

Anlama olmadan, sadece mutlu değil, aynı zamanda mutsuz koşullar ya da girdi koşulları altında GERÇEKTEN ne attığınızı gerçekten bilmiyorsunuz. Bazen bu önemli değil çünkü şanslısın. Ve bazen bu çok uzun süreli acı verir.


4
Öte yandan, kodu kendileri yazan ve hala anlamayan programcılar var ...
hplbsh

3

Üretken olmak için temelde ihtiyaç duyduğunuz ortak bir durum var.

Size tanıdık gelmeyen herhangi bir teknolojiyi, işe başlamak için çalışan bir örneğiniz olmadığı sürece öğrenmeniz zordur. Bu nedenle, gerçekten çalışan bir şeye sahip olmak için kopyalayıp yapıştırın ve sonra onunla bağlantı kurmaya başlayın.


Düzeltme: Üretken olmak için aslında İHTİYACINIZI düşündüğünüz gerçek bir belediye var . Bu nedenle, bir şekilde işe yarayan bir şeyi serbest bırakmak için yolunuzu kopyalayıp yapıştırın ve hasarı onarmak için acı çeken bir enternity harcayın.
Newtopian

3

Yeni bir programcı olarak (ilk işime 4 ay kaldı), çok yardımcı oldum (SO ya da başka yerlerden). Diğerlerinin kodunu kör kopyalayıp yapıştırma OLMAMANIN bir noktaya değiniyorum. Sağlanan kod benim kullanacağım kod olsa bile, programıma yazacağım ve sonra ne yaptığını ve nedenlerini tamamen anladığımdan emin olmak için biraz zaman harcayacağım.

Sürekli öğrendiğimden ve sadece kes ve yapıştır konusunda uzman olmadığımdan emin olmak istiyorum


1

Bu konu hakkında çok fazla hislerim var ve dürüst olmak gerekirse, hiçbirinin tamamen objektif olduğunu söyleyemem.

Diğer kişilerin kodlarını kesmek ve uygulamanıza yapıştırmak için birçok argüman vardır. Bazıları mantıklı olabilir, bazıları olmayabilir. Örneğin, birinin blogundan bir girdi alan ve matematiksel yeteneklerinizin dışında kalan ve karmaşık bir matematiksel algoritma çalıştıran bir yönteminiz varsa ve bir sonuç çıkarıyorsa - bu kesme ve yapıştırma için bir argümandır - yazarın kullanmasına izin ver Kodlayın ve gerektiğinde onları ödünç verin - yapılması gereken onurlu şey.

Tekerleği yeniden icat etmemenin argümanları var - yine, teoride bu mantıklı geliyor. Ancak, kesip yapıştırdığınız kodu yakından tanımak için zaman ayırmazsanız, bu sorunu çözmenin daha iyi bir yolu olup olmadığını bilmiyorsunuz, kodda hata olup olmadığını bilmiyorsunuz. . Ya yapıştırdığınız tekerlek kırılırsa?

Hız ve verimlilik için argümanlar var - başkalarının kodunu söktüğün, çalındığın, çalınan ya da başka bir şeyin kodunu içeren bir kitaplık oluşturuyorsun, düşünmeye başla, bazı uygulamaların ötesinde nasıl programlanacağını bile bilmen gerekmeyebilir geri kazanılmış parçalardan birlikte.

Bu davranışı tamamen kabul edebileceğim yerler ve yerler var. Uzun ömürlülük için tasarlanmamış, ancak şu anda kanca veya sahtekarlık bir görevi yerine getirmek için tasarlanmamış hızlı fırlatma araçlarını bir araya getirmek için. Prototip oluşturma ve konsentrasyon çalışmaları için, teorik bir bağlamda öğrenmek ve ilerlemek için bunun tamamen adil bir oyun olduğunu düşünüyorum.

Başkalarının kodunu kesip yapıştırmak, intihaldır - onların nezaketine sahipseniz ve yapıştırdığınız kodu anlıyorsanız ve başvurunuz için kodlama standartlarının yapısına uygunsa, o zaman sorun değil, bunun adil bir oyun olduğunu kabul edeceğim.

Profesyonel bir yazılım mühendisi olarak standart ve etik kuralları yerine getirmem için bana para ödeniyor. Müvekkilimi kovuşturma riski altına sokarak başkalarının telif hakkını çalmak, intihal etmek veya ihlal etmek için para almıyorum. Bunun yanı sıra, belirtilen kesik / yapıştırılan kodları çalıştırdığınızda felaket yan etkilerinin ortaya çıkması çok gerçek bir risktir.

Bu cevabı size hedeflememek John, bunun gibi konulara gelince çok etik davrandığınızı biliyorum, bu yüzden bu gerçekten sorunun kendisi yönünde genel bir rant.

Ek : Bu, projeler arasında kendi kodunuzu kesip yapıştırmanın oldukça kabul edilebilir olduğunu düşünüyorum - başka biri için işe alınacak iş olarak yazılmadığı sürece, bu durumda telif hakkına sahip değilsiniz ve izin almalısınız. kodladığınız kişinin Kodun mülk sahibi işlevsel kavramlarla ilgili olmadığı sürece, çoğu işveren, diğer müşteriler için kendi fikirlerinizi yeniden kullanmanın sizin için uygun olduğunu öğrendim.


Karşılaştığınız belirli bir sorunu çözen blog yazılarındaki kodları kullanmaya ne dersiniz? Kodu fiziksel olarak kopyalayıp / yapıştırmak, bir etik ihlali olarak kabul edeceğiniz bir şey mi yoksa çözümü projenize yeniden yazmak aynı kategoriye giriyor mu? "Ödünç alınan" kodun boyutu (yani küçük bir pasaja karşı tam bir program / işlev) fikirlerinizi etkiler mi?
Adam Lear

2
Bir blog yazısı varsa o zaman yazarın halka açık olması gerektiğini düşünüyorum, bu yüzden eğer sizin için faydalıysa o zaman adil bir oyundur. Bununla birlikte, neredeyse hiç kopyalanabilecek kod parçacıkları ile karşılaştım. Genellikle küçük bir finisaj gerektirirler.
PEMDAS

Öğreticilerden veya kullanılan blog yayınlarından gelen kodla ilgili bir sorunum yok - ne işe yaradığını anlayın. Muhtemelen gönderildiyse, müsait.
Çabucak_

“Bu cevabı sana hedeflememek John” ... aslında sanmıştım ki ... en azından bunu okuyana kadar. LOL
John MacIntyre

İntihal hakkındaki yorumları beğeniyorum ve kodu tamamen anlıyorum, ancak gerçekten başkasının kodunu kopyalamanın / yapıştırmanın sadece kendiniz yazmanın daha etkili olduğunu düşünüyor musunuz? Tam olarak anlayamayacağınızı ve daha sonra sorun yaşayacağınızı veya YA DA tam olarak anlama girişimlerinizin sadece kendiniz yazmanızdan daha uzun süreceğini biliyorum. KWIM?
John MacIntyre


0

Kod iyiyse, kopyalayıp yapıştırmak yerine, ortak bir kitaplığa dönüştürülmelidir. Ancak insanlar yeniden yapılanma ile rahatsız edilemezler ve kopya ve yöntem ile aynı işlevselliğe sahip olmayı tercih ederler.

Evrensel bir mutlak kopyala ve yapıştır yasası olması yerine, ne zaman kullanılacağına bakılmalıdır.

Kopyalama ve yapıştırma artıları: Hızlı ilerlemenizi sağlar Eksileri: Aynı kod birden fazla yere yayılır ve eğer kopyalayıp yapıştırmak yerine ortak kütüphane olarak kullanırsanız güncelleme her yerde çözülmelidir. her yere yay. Aynı kodu her yere dağıtmak yerine kütüphane kullanmak için yapılan küçük bir ilk yatırım için manifoldlar.

Seçim, başlangıçta çok sonraya oranla biraz zaman kazanıp kazanmamayı, sonra kopyalayıp yapıştırmanın gitme yoludur, aksi halde yeniden tazelemek ve ortak bir kütüphaneye koymaktır.


Ortak kütüphaneye kesinlikle katılıyorum, ancak bu kodu kesip yapıştırmanız mı yoksa sıfırdan mı oluşturmalısınız?
John MacIntyre

Kod almanın en hızlı yolu kopyalayıp yapıştırmaktır, ancak bir gözden geçirmeli ve gerektiğinde bir projeye girmeden önce kodu değiştirmeli ve unutmalısınız.
Arjang,

0

Çoğu durumda, internette bulacağınız kod tam amaçlarınıza uymaz.

Kendimi çok yaparken görüyorum, birinden kod kopyalamak, en özüne doğru soymak ve sonra gereksinimlerimi karşılayana kadar kod eklemek. Her zaman adlandırma kurallarım ve kodlama stilime uyacak şekilde düzelteceğim.

Bir öğretici okuduğumda kişisel olarak nefret ediyorum ve karmaşık bir durum için kod göstererek başlıyorlar. Özüyle başlayın ve kodu genişletmek için yapı taşlarını gösterin. Kendi bloguma başlasam, insanlara ne yapmak istediğimin özünü, nasıl işlevsellik / özel durumlar ekleyebileceğinizi ve temel özelliklerin tam olarak çalışan bir örneğini gösteren yorumlanmış bir kod örneği sunacağım.


-1

Kodun ne yaptığını anlıyorsanız neden kodu yeniden icat edin, kodu tekrar kullanma iznine sahip olun (ya da açık olanı) ve diğer kişinin yazdığı tüm kodların tümüne gerek yoktur. Bir algoritma uygulamasını sık sık kopyalayıp kendi ihtiyaçlarıma göre değiştiriyorum. Genellikle sadece kesip yapıştırdığımda, örnekte olan her şeye ihtiyacım olmadığı için başka bir dosya eklemek israf olur (ya da bir işlevin içindeki bir şeydir). Aynı projede kendi kodunuzu kesip yapıştırıyorsanız jzd ile aynı fikirdeyim, o zaman bir şeyler yanlış olabilir ve muhtemelen onu serbest bırakmanın ya da işlevi paylaşmanın ekonomik bir yolunu bulmalısınız.


-1

" Bütünleşme " ekip üyelerinin ya da kod ya da programlama konusunda fazla tecrübesi olmayanların daha sık kopyalayıp yapıştırma eğiliminde olduklarını ve ne yaptıklarını anlamadıklarını (sorunuzda belirtilen sorunlara girerken) buluyorum .

Ayrıca programcıların sıklıkla kes ve yapıştır işleminden kendi zincirlerine kadar uzak durduğunu biliyorum çünkü kodu çok seviyorlar ve tekerleği yeniden icat ediyorlar, çünkü daha iyisini yapmak veya daha fazla bilgi edinmek istiyorlar.


Yeniden keşif için +1. Ayrıca kendime internetten kopya yapıştırma yerine bir sürü zaman kodunu yeniden yazıyorum. Sanırım bunu yapıyorum çünkü son tarihler ile sınırlı değilim. Kendi kendime özgürce öğrenebilirim ve ne istersem öğrenebilirim.
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.