Czy większość programistów kopiuje i wkleja kod? [Zamknięte]

48

Nauczyłem się bardzo wcześnie, że wycinanie i wklejanie kodu innej osoby zajmuje na dłuższą metę pisanie go samodzielnie. Moim zdaniem, chyba że naprawdę to rozumiesz, w przypadku wycinania i wklejania kodu prawdopodobnie wystąpią problemy, które będą koszmarem do rozwiązania.

Nie zrozum mnie źle, mam na myśli znalezienie kodu innych ludzi i uczenie się z niego jest niezbędne, ale nie wklejamy go tylko do naszej aplikacji. Mamy przepisać te koncepcje w naszej aplikacji.

Ale ciągle słyszę o ludziach, którzy wycinają i wklejają, a oni mówią o tym, jakby to była powszechna praktyka. Widzę także komentarze innych, które wskazują, że jest to powszechna praktyka.

Czy więc większość programistów wycina i wkleja kod?

John MacIntyre
źródło
10
Nawet jeśli wiem, jak coś zrobić, często i tak szukam przykładów kodu w poszukiwaniu najlepszych praktyk. Po przeczytaniu kodu możesz szybko stwierdzić, czy to, co znajdziesz, jest lepsze niż plan.
Nicole,
Niedawno pojawiło się pytanie dotyczące wycinania i wklejania. Dlaczego tego nie sprawdzisz ?
Naurgul,
Jeśli to rozumiem.
Johnny

Odpowiedzi:

46

Dwa ogólne przypadki:

Z jednego projektu do drugiego:

Większość programistów wycina i wkleja kod w tym zakresie. Mogą znaleźć poprzedni projekt lub coś w Internecie i skopiować / wkleić go dokładnie lub skopiować / wkleić i wprowadzić w nim zmiany. Myślę, że ta praktyka jest zazwyczaj w porządku. Jest to szczególnie dobre, gdy jest to sprawdzony kod. (Przykłady: jakiś obiekt narzędziowy z poprzedniego projektu, który działał dobrze, lub ewentualnie z bloga z kilkoma potrzebnymi zmianami). Może to być złe, gdy kopiujesz kod, którego nie rozumiesz, lub gdzie kod jest słaby lub gdzie istnieje znacznie lepsze alternatywne rozwiązanie niż kod, który wklejasz.

Wewnątrz tego samego projektu: Kopiowanie i wklejanie w tym samym projekcie zazwyczaj nie jest dobrym pomysłem. To nieprzyjemny zapach, że kopiowany kod powinien po prostu znajdować się gdzieś w metodzie / klasie i wywoływać go wielokrotnie. Istnieją pewne wyjątki od tego, ale ogólnie programiści powinni myśleć: „ Czy istnieje sposób, aby sparametryzować kod, który kopiuję? ”.

jzd
źródło
5
Zasadniczo jest to prawdą, chyba że piszesz kod, który wymaga anty-wzorców, jak to może być w przypadku kodu antyamperującego, na przykład w przypadku licencjonowania oprogramowania.
Rob Perkins,
+1 Tak, zrobiłem obie te rzeczy. Nie robiłem wycinanego i wklejanego kodu z tego samego projektu przez długi czas (chociaż przyznam się, że rzadko robię to pod ekstremalną presją z zalogowanym błędem, aby do niego wrócić). Jeśli chodzi o klasy narzędzi, mój projekt do kopiowania projektu jest teraz odizolowany od kopiowania kompletnych plików.
John MacIntyre
2
Pisząc kod bazy danych, zwykle wycinam i wklejam go do nowej funkcji i modyfikuję sam sql, aby uzyskać pożądany wynik i nie muszę się martwić ponownym wpisywaniem niektórych wymagań wstępnych, aby wykonać wspomniane wywołania bazy danych. Chociaż ogólnie zgadzam się z obiema uwagami.
Chris
1
@Chris: Skopiuj i zmodyfikuj jego serce, to coś zupełnie innego niż zwykłe wklejenie.
Loren Pechtel 16.01.11
1
@Loren Pechtel: Mimo to nadal wiąże się to z kopiowaniem i wklejaniem kodu.
Chris
37

Większość programistów to robi, ale to nie znaczy, że powinieneś

Jedną z moich mantr programistycznych jest: „Jeśli kopiuję i wklejam kod, robię coś złego” . Zasadniczo SUCHO .

Myślę, że powinno być oczywiste, że ponowne użycie kodu oznacza używanie kodu jako zasobu, a nie powtarzanie kodu. Czasami skopiowałem i wkleiłem kod własnego kodu, w większości przypadków kończę kodem płyty kotłowej lub czymś, co wygląda bardzo podobnie.

Po zainwestowaniu trochę więcej czasu w ten kod otrzymuję następujące informacje:

  • Składnik (patrz też oddzielenie dotyczy )
  • Mogę skorzystać z refleksji, aby uczynić rzeczy prostszymi, czystszymi i łatwiejszymi do powtórzenia w przyszłości.
  • Lepszy projekt , ponieważ nawet jeśli działa, dlaczego nie zrobić tego od nowa po nauce?
  • Wzorzec, który mogę wyodrębnić, przekształcić w składnik biblioteki i usunąć zduplikowany kod.

Można dyskutować, czy powinniśmy kopiować i wklejać kod, ponieważ klient / szef nie dba o to (przynajmniej bezpośrednio i krótkoterminowo) i możesz skończyć z tymi samymi wynikami, ale problem naprawdę pojawia się, gdy prowadzi do błędów, utraty modułowości, a ostatecznie do piekła utrzymania.

Co powinieneś zrobić: jak najszybciej refaktoryzować

Nikt nie pisze doskonałego kodu, nawet jeśli działa, nawet jeśli nie kopiujesz i nie wklejasz, a jest to twój własny kod, jeśli nie jesteś z niego w pełni zadowolony, po prostu dodaj notatkę w komentarzach (np. Docblock „@todo”), aby przypomnieć sam, co refaktoryzować i dlaczego ... nawet jeśli sam tego nie refaktoryzujesz, może to być różnica między szczęściem a całkowitą frustracją dla opiekuna.

Ostatecznie skończysz z dobrym kodem , nawet jeśli skopiujesz i wkleisz.

Dobry kod

przez XKCD

dukeofgaming
źródło
15
Często widziałem, jak „refaktor później” zamienia się w „refaktoryzator nigdy”, a nawet gorzej „Jestem taki gorący, że inny SUCKER może refaktoryzować i naprawić mój prawie, ale nie całkiem ok kod”. Jestem zwolennikiem robienia tego od razu, bo inaczej to będzie jak jutro - nigdy nie nadejdzie.
Szybko_niek 15.01.11
1
@quickly_now - re: „Jestem taki gorący, że jakiś inny SUCKER może zreformować i naprawić mój prawie, ale nie całkiem ok kod” ... Nie mogę ci powiedzieć, jak bardzo nienawidzę tych szarpnięć.
John MacIntyre
Hej John. Słyszę cię. Spędziłem lata mojego życia jako frajer ... zapłaciłem o połowę mniej i pociłem się do północy, naprawdę dobrze rozumiejąc, co się dzieje (i ponownie pisząc wielkie płyty z bzdurnymi kodami) - podczas gdy gorący strzał poszedł na marne coś innego. Westchnienie.
szybko_nie
1
Im więcej osób w zespole, tym bardziej „refaktor później” staje się „refaktorem nigdy”, o ile widzę: /
wildpeaks
8

Kiedy utknąłem i szukam rzeczy, które mogłyby rozwiązać mój problem i natrafiłem na jakiś pomocny fragment kodu, który robi to, co chcę, naturalnie go kopiuję. Czasami to tylko sedno. Następnie zmieniam go, aby odpowiadał moim potrzebom. Zdarza się to częściej, gdy zagłębiam się w rzeczy, w których nie jestem ekspertem (obecnie Objective-C).

Zawsze poświęcam czas na naukę czegoś z kodu, więc dla mnie jest to świetny sposób na naukę i unikanie ponownego tworzenia koła.

Martin Wickman
źródło
4
Zawsze mówiłem: „dobry programista to leniwy programista”. Nie wymyślam na nowo koła, jeśli ktoś już to zrobił. Ale utrzymuję ją małą ... Nigdy nie kopiuję więcej niż kilku linii kodu i nigdy niczego, czego nie rozumiem całkowicie.
morganpdx
Jestem za uczeniem się od innych, ale czy nie uważasz, że chyba, że ​​szukasz konkretnego problemu, po prostu obejście tego, co zrobiła ta druga osoba, zajmuje więcej czasu niż samo tworzenie od zera? (zauważ, że mówię o „kodzie”, niekompletnych jednostkach funkcjonalności, takich jak klasy itp.)
John MacIntyre
@John MacIntyre Może być, ale zwykle, kiedy wkładam jakiś mały fragment kodu, formuję go, dopóki nie jestem z niego zadowolony. Często i tak trzeba go dostosować (do funkcji, bardziej ogólnej, ulepszonej, zoptymalizowanej itp.).
Martin Wickman,
@John: Fragmenty kodu dostarczają tych elementów, które pokazują, jak to zrobić. Oczywiście kroimy i wklejamy. Ale jak zauważa Martin - dowiedz się, co robi ten kod. Spędzisz znacznie więcej czasu na poszukiwaniu konkretnej metody, której nie znasz. Kiedy nie wiesz, co znaczy słowo; przeglądasz to w słowniku. Definicje są w 100% jasne; ale jak często patrzysz na próbki użycia? Przykłady kodu są podobne do przykładów użycia słownika. MSDN nie zawsze zawiera przykłady użycia lub często są niekompletne.
IAbstract
6

Będę tutaj mówić o kopiowaniu / wklejaniu kodu innych osób. Pobieranie części własnej pracy z mojej osobistej biblioteki to uczciwa gra. Znam je i rozumiem z definicji.

Uważam, że najczęstszą sytuacją, w której „wycinam i wklejam” kod jest sytuacja, gdy mam konkretny problem i napotykam post na blogu, który go rozwiązuje. Większość razy przepisuję rozwiązanie do mojego projektu (w końcu prawdopodobnie jest napisane w stylu autora bloga, jeśli nic więcej). To nie jest tak naprawdę mój kod, ale nie czuję się źle, używając go w tym scenariuszu.

Wyjście i pobranie całych metod lub systemów w celu wklejenia ich do mojego obecnego projektu i nazwanie go wykonanym jest czymś, czego nie rozumiem. Pewnego dnia na StackOverflow pojawiło się pytanie, które doskonale ilustruje problem z robieniem czegoś takiego.

Łączenie potwora Frankensteina z różnych części kodu po prostu nie może być aż tak wydajne. Mam na myśli to, że jeśli jesteś w tym dobry, oznacza to, że albo powtarzasz to samo rozwiązanie od nowa, albo masz wystarczającą wiedzę na temat kodu innych osób, że ten sam poziom kopiowania / wklejania nie powinien być dłużej potrzebny, a Twój produktywność poprawiłaby się bez konieczności rozwiązywania problemów między niekompatybilnymi próbkami kodu.

Osobiście nie spotkałem wielu programistów, którzy kopiują / wklejają na dużą skalę. Widziałem wielu, którzy kodują się w najgłębsze i najciemniejsze zakątki, ale to inna historia. Opierając się na moich osobistych anegdotach, powiedziałbym, że większość programistów nie kopiuje / wkleja razem całych aplikacji, ale naprawdę trudno powiedzieć na pewno.

Adam Lear
źródło
1
Być może wielu programistów nie kopiuje / wkleja rzeczywistego kodu na dużą skalę, ale chętnie wykorzysta gotową bibliotekę (darmową lub inną) bez patrzenia na pojedynczy wiersz kodu ...
hplbsh
1
@Stuart Prawda, ale myślę, że różnica polega na tym, że biblioteki tej nie można uznać za własną pracę programisty. I szczerze mówiąc, tak długo, jak biblioteka działa i robi to, co jest mi potrzebne, nie dbam też specjalnie o jej źródło. (Zakładając, że należyta staranność jest wykonywana w inny sposób w odniesieniu do tego, jak wiarygodna / niezawodna jest biblioteka).
Adam Lear
W pewnym sensie jest to kwestia intencji, zarówno ze strony wydawcy, jak i konsumenta :)
hplbsh 15.01.11
@stuart - Nie uwzględniałbym biblioteki w tej dyskusji, ponieważ jest to spójna jednostka ... nie bardzo „gubię” kod, jeśli wiesz, co mam na myśli.
John MacIntyre
Właściwie myśląc o twoich komentarzach, muszę szczerze zastanawiać się, czy programista może wyciąć i wkleić razem cały system. Myślę, że ciężar ich pychy szybko lawinowy, miażdżąc ich postęp do zatrzymania.
John MacIntyre
4

Źle: Ciągłe kopiowanie i wklejanie tego samego bloku kodu

Jeśli to robisz, prawdopodobnie powinieneś poświęcić chwilę na zastanowienie się, co można wyodrębnić z kopiowanego kodu i stworzyć funkcję / metodę do obsługi tego. Tutaj liczy się zasada DRY (Don't Repeat Yourself).

Dobrze: Kopiowanie bloku kodu, o którym wiadomo, że działa

SUCHO (Don't Repeat Yourself) dotyczy również tutaj, tylko w innym znaczeniu. IE, nie powtarzaj pracy, którą już wykonałeś w przeszłości. Jeśli poświęciłeś czas na napisanie sekcji kodu, debugowanie, przetestowanie go, a okazało się, że działa on w bazie kodu produkcyjnego; głupio byłoby nie używać go ponownie.

Większość ludzi źle traktuje kopiowanie-wklejanie, ponieważ wielu początkujących programistów spędza czas na przeszukiwaniu sieci i kopiowaniu / wklejaniu miszmaszu kodu innych ludzi, nie rozumiejąc, co to właściwie robi.

Pisanie wszystkiego od podstaw za każdym razem nie jest lepsze. Wiem, że jest wielu purystycznych programistów oldschoolowych, którzy wszystko powinni pisać od zera i mam nadzieję, że nie utknę z nimi. Jeśli masz 5 lat doświadczenia w programowaniu, powinieneś mieć dość pokaźną bibliotekę kodu, który jest idealny do ponownego użycia. Jest to jeden z najlepszych zasobów, jaki doświadczony programista może wnieść do stołu, ponieważ potencjalnie pozwoli zaoszczędzić wiele czasu na programowanie.

Jeśli na początku nie rozumiesz swojego starego kodu, poświęć chwilę na przeczytanie komentarzy i ponowne zapoznanie się. Jeśli twoje komentarze są do bani ... cóż, to zupełnie inna kwestia.

Evan Plaice
źródło
Zamiast kopiować i wklejać kod, można go napisać w sposób wielokrotnego użytku. Następnie użyj tego zamiast kopiować i wklejać.
Bjorn,
1
@BjornTipling Tak, zwykle lepiej jest podzielić kod na funkcje wielokrotnego użytku, chyba że proces ten zwiększy złożoność, a kod nigdy nie zostanie ponownie użyty
Evan Plaice,
Jeśli go kopiujesz i wklejasz, ponownie go używasz. Zgadzam się, że ludzie powinni używać głów i że warunki mogą to uzasadniać. Podczas pisania testów zacząłem kopiować i wklejać, ale nawet tam staram się tworzyć funkcje wielokrotnego użytku, ale są też dwa lub trzy wiersze, które są prawie takie same, ale nie jestem w stanie uogólnić wystarczająco, aby zmienić się w funkcja wielokrotnego użytku.
Bjorn,
3

Po 25 latach pisania kodu były chwile, kiedy (bez dostępu do kodu, który napisałem dla poprzedniego pracodawcy) żałowałem, że nie mogę wycinać i wklejać. JEDNAK było to bardzo rzadkie (i czytaj dalej).

Być może najlepszym przykładem jest naprawdę prosty parser wiersza poleceń, na który natknąłem się lata temu dla systemów operacyjnych unix. Prosta pętla przesuwająca się między argumentami i przetwarzająca opcje. To było diabelnie proste i eleganckie, i od tego czasu wiele razy używałem tego (bardziej jako wzoru niż dosłownego cięcia i wklejania). To raczej wyjątek niż reguła.

Zwykle zwykłe wycinanie i wklejanie ole jest całkowicie nieodpowiednie - jego bardziej wycinanie i wklejanie jest istotną koncepcją lub algorytmem.

Nie jestem zbyt dumny - chętnie będę się rozglądał, aby znaleźć naprawdę szybką parzystość lub algorytm weryfikacji kodu Hamminga lub coś takiego egzotycznego. Potem poświęć kilka godzin na zrozumienie, czy to naprawdę bardzo szybka rzecz, której szukałem, czy też naiwny stos śmieci.

Martwię się za każdym razem, gdy ktoś po prostu kopiuje kod, nie przerywając, aby go zrozumieć. Są albo geniuszem (zrozum to i wszystkie jego subtelności na pierwszy rzut oka), albo głupcem. Pomiędzy nimi nie ma zbyt wiele miejsca. Och, i nie ma też wielu prawdziwych geniuszy.

Bez zrozumienia, naprawdę nie masz pojęcia, co właśnie rzuciłeś NAPRAWDĘ, pod nie tylko szczęśliwymi, ale także nieszczęśliwymi okolicznościami lub warunkami wejściowymi. Czasami to nie ma znaczenia, ponieważ masz szczęście. A czasem powoduje to długotrwały ból.

szybko
źródło
4
z drugiej strony są programiści, którzy sami piszą kod i wciąż go nie rozumieją ...
hplbsh 15.01.11
3

Często zdarza się, że Zasadniczo POTRZEBUJESZ to zrobić, aby być produktywnym.

Trudno się nauczyć jakiejkolwiek nieznanej Ci technologii, chyba że masz praktyczny przykład na początek. Dlatego kopiujesz i wklejasz to, aby mieć coś, co faktycznie działa , a następnie zaczynasz majstrować przy tym.

użytkownik1249
źródło
Korekta: Istnieje fakt, że w zasadzie uważasz, że POTRZEBUJESZ to zrobić, aby być produktywnym. Dlatego kopiujesz i wklejasz swój sposób, aby uwolnić coś, co w jakiś sposób działa, i poświęcić się cierpieniu, aby naprawić szkody.
Newtopian
3

Jako nowy programista (4 miesiące do mojej pierwszej pracy) bardzo polegam na pomocy (czy to z SO czy z innych miejsc). Chodzi mi o to, aby NIE ślepo kopiować i wklejać inne kody. Nawet jeśli podany kod będzie tym, którego będę używać, napiszę go w moim programie, a następnie poświęcę trochę czasu, upewniając się, że całkowicie rozumiem, co robi i jakie są tego przyczyny.

Chcę mieć pewność, że ciągle się uczę, a nie tylko ekspert od wycinania i wklejania

Darren Young
źródło
1

Mam wiele odczuć na ten temat i nie mogę szczerze powiedzieć, że którekolwiek z nich jest całkowicie obiektywne.

Istnieje wiele argumentów za wycinaniem i wklejaniem kodu innej osoby do aplikacji. Niektóre z nich mogą mieć sens, inne nie. Na przykład, jeśli masz metodę z czyjegoś bloga, która pobiera dane wejściowe i uruchamia skomplikowany algorytm matematyczny, który znacznie wykracza poza twoje zdolności matematyczne i wyrzuca wynik - to argument za wycinaniem i wklejaniem - uzyskaj zgodę autora na użycie ich zakoduj je i przypisz w odpowiednim czasie - to zaszczyt.

Istnieją argumenty przemawiające za tym, by nie wymyślać koła na nowo - teoretycznie ma to sens. Ale jeśli nie poświęcisz czasu na dokładne zapoznanie się z kodem, który wycinasz i wklejasz, nie wiesz, czy istnieje lepszy sposób na rozwiązanie tego problemu, nie wiesz, czy w kodzie są błędy . Co się stanie, jeśli koło, które wklejasz, jest zepsute?

Istnieją argumenty przemawiające za szybkością i wydajnością - tworzysz bibliotekę kodu innych osób, który zgubiłeś, ukradłeś, plagiat lub w inny sposób, pomyśleć, nigdy nie będziesz musiał wiedzieć, jak programować poza Frankensteining razem z odzyskanych części.

Są chwile i miejsca, w których uważam to zachowanie za całkowicie akceptowalne. Do hakowania razem narzędzi szybkiego wyrzucania, które nie są zaprojektowane z myślą o długowieczności, ale do wykonania zadania, teraz hakiem lub oszustem. W celu prototypowania i studiowania treści, aby uczyć się i robić postępy w kontekście teoretycznym, myślę, że jest to całkowicie uczciwa gra.

Wycinanie i wklejanie kodu innych osób jest plagiatem - jeśli masz ich błogosławieństwo i rozumiesz kod, który wklejasz i pasuje do konstrukcji standardów kodowania twojej aplikacji, to w porządku, przyznaję, że jest to uczciwa gra.

Jako profesjonalny inżynier oprogramowania otrzymuję wynagrodzenie za utrzymanie standardu i kodeksu etycznego. Nie otrzymuję zapłaty za kradzież, plagiat lub naruszanie praw autorskich innych osób, co naraża mojego klienta na postępowanie sądowe. Poza tym istnieje bardzo realne ryzyko, że uruchomienie tego wyciętego / wklejonego kodu ma katastrofalne skutki uboczne.

Nie kierując do ciebie tej odpowiedzi John, wiem, że jesteś bardzo etyczny, jeśli chodzi o takie tematy, więc tak naprawdę jest to tylko ogólny zwrot w kierunku samego pytania.

Dodatek : Powiedziałem, że uważam, że wycinanie i wklejanie własnego kodu między projektami jest całkiem do przyjęcia - chyba że został napisany jako praca do wypożyczenia dla kogoś innego, w którym to przypadku nie jesteś właścicielem praw autorskich i powinieneś uzyskać pozwolenie osoby, dla której kodowałeś. Przekonałem się, że o ile kod nie dotyczy zastrzeżonych koncepcji funkcjonalnych, większość pracodawców jest w porządku, jeśli ponownie wykorzystujesz własne pomysły dla innych klientów.

BenAlabaster
źródło
Jak oceniasz kod z postów na blogu, który rozwiązuje konkretny problem? Czy fizycznie skopiowanie / wklejenie kodu uważane jest za naruszenie etyki lub czy przepisanie rozwiązania do projektu należałoby do tej samej kategorii? Czy rozmiar „pożyczonego” kodu (tj. Kompletnego programu / funkcji w porównaniu do małego fragmentu kodu) wpływa na twoją opinię?
Adam Lear
2
Wydaje mi się, że jeśli jest on na blogu, autor chciał, aby był on publiczny, więc jeśli jest on przydatny, to jest to uczciwa gra. Jednak prawie nigdy nie spotkałem fragmentów kodu, które można skopiować dosłownie. Zwykle wymagają trochę finaglingu.
Pemdas,
Nie mam problemu z użyciem kodu z samouczków lub postów na blogu - po prostu zrozum, co robi. Prawdopodobnie jeśli został opublikowany, jest dostępny.
Szybko_niek 15.01.11
„Nie celuję w tę odpowiedź, John” ... Właściwie nie sądziłem, że byłeś… cóż, przynajmniej dopóki nie przeczytam tego. LOL
John MacIntyre
Lubię twoje komentarze na temat plagiatu i pełnego zrozumienia kodu, ale czy naprawdę uważasz, że bardziej efektywne jest kopiowanie / wklejanie czyichś kodów, niż pisanie ich samemu? Uważam, że albo nie zrozumiesz go w pełni i będziesz mieć problemy później, albo twoje próby pełnego zrozumienia tego będą trwały dłużej niż samo napisanie go. KWIM?
John MacIntyre
0

Jeśli kod jest dobry, zamiast kopiować i wklejać, należy go utworzyć we wspólnej bibliotece. Ale ludzie nie mogą przejmować się refaktoryzacją i wolą mieć tę samą funkcjonalność rozłożoną według kopii i metody.

Zamiast uniwersalnego bezwzględnego prawa kopiowania i wklejania jest dobre lub złe, należy sprawdzić, kiedy go użyć.

Zalety kopiowania i wklejania: Szybka praca Wady: Ten sam kod jest rozpowszechniany w wielu miejscach, a każdy znaleziony / rozwiązany problem musi zostać rozwiązany wszędzie, jeśli zamiast skopiować i wkleić jeden użył go jako wspólnej biblioteki, aktualizacja będzie rozmnażaj się wszędzie. Za niewielką początkową inwestycję polegającą na użyciu biblioteki zamiast rozpowszechniania tego samego kodu w różnych miejscach.

Wybór polega na tym, czy początkowo zaoszczędzić trochę czasu w porównaniu do dużo później, a następnie skopiować i wkleić, w przeciwnym razie przejrzyj ponownie i umieść je we wspólnej bibliotece.

Arjang
źródło
Zdecydowanie zgadzam się co do wspólnej biblioteki, ale czy należy wyciąć i wkleić ten kod, czy utworzyć go od podstaw?
John MacIntyre,
Najszybszym sposobem na zaimportowanie kodu jest skopiowanie i wklejenie, ale należy go przejrzeć iw razie potrzeby zmodyfikować kod przed umieszczeniem go w projekcie i zapomnieć o nim.
Arjang,
0

W większości przypadków kod, który znajdziesz w sieci, nie pasuje dokładnie do Twoich celów.

To, co widzę, robię dużo, to kopiowanie kodu od kogoś, sprowadzanie go do samej istoty, a następnie dodawanie kodu, aż spełni moje wymagania. Zawsze zmieniam go tak, aby pasował do moich konwencji nazewnictwa i stylu kodowania.

Osobiście nienawidzę tego, gdy czytam samouczek, a zaczynają od pokazania kodu dla skomplikowanej sprawy. Zacznij od esencji i pokaż bloki konstrukcyjne, aby rozszerzyć kod. Jeśli kiedykolwiek założę własnego bloga, podam ludziom kod z komentarzem, który pokazuje istotę tego, co chcę zrobić, jak możesz dodać funkcjonalność / przypadki specjalne oraz w pełni działający przykład podstawowej funkcji.

J. Maes
źródło
-1

Po co wymyślać koło, jeśli rozumiesz, co robi kod, masz pozwolenie na ponowne użycie kodu (lub jego otwarcia) i niekoniecznie potrzebujesz całego kodu napisanego przez drugą osobę. Często kopiuję implementację algorytmu i modyfikuję ją do własnych potrzeb. Zwykle jednak, kiedy po prostu wycinam i wklejam, dzieje się tak, ponieważ nie potrzebuję wszystkiego, co było w przykładzie, więc dodanie innego pliku byłoby po prostu marnotrawstwem (lub jest czymś wewnątrz funkcji). Zgadzam się z jzd, jeśli wycinasz i wklejasz swój własny kod w tym samym projekcie, to coś jest nie tak i prawdopodobnie powinieneś wymyślić ekonomiczny sposób na jego lib lub współdzielenie funkcji.

złom
źródło
-1

Uważam, że członkowie zespołu „ integracji ” lub ci, którzy nie mają dużego doświadczenia z kodem lub programowaniem, częściej kopiują i wklejają i nie rozumieją, co zrobili (wchodząc w problemy wymienione w pytaniu).

Uważam również, że programiści często trzymają się z daleka od wycinania i wklejania własnych szyderstw, ponieważ uwielbiają kod i często odkrywają koło, tylko dlatego, że chcą to zrobić lepiej lub dowiedzieć się więcej.

John K.
źródło
+1 za ponowne wynalezienie. Mam też mnóstwo czasu na przepisywanie kodu z Internetu zamiast wklejania kopii. Chyba to robię, bo nie jestem ograniczony terminami. Mogę swobodnie uczyć się sam i mogę dowiedzieć się, co en, kiedy chcę.