Question

J'ai une pensée que j'ai essayé de demander à SO, mais na pas l'air comme l'endroit approprié. Je pense que les sites de source comme Google Code, GitHub, SourceForge ... ont joué un rôle majeur dans l'histoire de la programmation. Cependant, je trouve qu'il ya une autre mauvaise chose à ce genre de sites, et qui vous pouvez juste code « copier » de presque tout le monde, ne sachant pas s'il est bon (testé) la source ou non.

Cette ligne de pensée m'a pris de croire que les sites Web du code source ont tendance à conduire de nombreux développeurs (les plus susceptibles unexperienced) de copier / coller des quantités massives de code, que je trouve tout simplement faux.

Je sais vraiment comment se concentrer Do not bien la question, mais la pensée de base serait:

Est-ce ok? Open Source contribue à cela ou je suis juste à voir des fantômes ...

Les gens espèrent s'intéresser parce que je pense que cela est un thème important.

Était-ce utile?

La solution

La corrélation ne signifie pas causalité. Les développeurs copier / coller le code qu'ils ne comprennent pas parce qu'ils sont mauvais développeurs. La disponibilité de ce code ne tourne pas bons développeurs mauvais.

S'il n'y avait pas de projets open source, il y aurait encore les messages du forum avec des extraits de code ou des livres de programmation avec des exemples. Nous revenons donc à mon premier paragraphe: mauvais développeurs trouveront un moyen d'être mauvais à écrire de code. Le blâme pour copier et coller des mensonges de code avec les développeurs qui le font, non pas avec les référentiels de code source.

Autres conseils

Je ne pense pas que trop de développeurs copier-coller de grands projets open-source. Il est tout simplement trop de travail pour trouver le bon endroit dans des milliers de lignes de codes, et il pourrait être différent (au moins pour un mauvais développeur) pour savoir quelle partie à copier. Ils coller copie plutôt petites snipplets sur les forums, trouvé des articles, des exemples etc., où tout est bien mis en place.

Pour chaque 100 programmeurs ce code seulement des copies / colle sans savoir ce qu'il fait, il y a presque un qui ne fonctionne pas.

Avant Google Code et Similia il y avait des extraits tout autour du web que les gens copiés / collés, donc je ne vois pas vraiment le problème comme étant relelated à ce genre de sites.

est-ce pas l'un des grands principes de codage « ne pas réinventer la roue »?

Si vous copiez le code mauvais et ne pas apprendre de lui, alors il est votre mauvais. Si vous copiez grand code et en tirer des leçons, alors vous êtes un bon programmeur se passe très bien.

Mon opinion est qu'il ya de bons projets open source et de mauvais projets open source. La disponibilité de bons projets open source qui peuvent être trouvés sur des sites tels que Git Hub permettent le genre de programmeur débutant qui sera un jour finir par un bon programmeur d'avoir une source presque inépuisable de bons du code à regarder et étudier et (le cas échéant ) copie. La chose est que le genre de personne qui finit comme un bon programmeur est presque incapable de simplement copier et coller le code. Ils veulent regarder et démonter et modifier et comprendre ce qui le rend bon et ce qui pourrait le rendre meilleur et ce qui ferait qu'empirer les choses. Au moment où ils sont faits, il est leur code et ils comprennent comment cela fonctionne.

Il ne fait plus pratique pour les mauvais programmeurs pour être mauvais programmeurs mais quoi? Il est un peu comme la faille javascript où

i = 1

crée une i variable globale et

var i = 1

crée une variable locale appropriée. Cela permet de repérer le code de la merde dans une seconde par toutes les variables globales par inadvertance pose partout sur le lieu 1 . Le fait qu'il est plus facile de copier et coller des projets ensemble signifie qu'il est plus facile de repérer le code de la merde, car il sera jonché le genre de membres atrophiés qui ont été adaptés aux conditions qu'il vient et non pas les conditions qu'il vit actuellement.

1 L'absence de variables globales n'implique de cours que le code est bon, mais il est un signe prometteur

Tout le monde a une sorte de motivation pour libérer leur code d'une manière qui permet à d'autres personnes d'utiliser, de modifier et de le redistribuer.

Certaines des raisons:

  • Vous sentez le code est utile, et serait utile aux autres
  • Vous vous sentez l'idée est utile, et nous espérons que les gens plus expérimentés affiner la mise en œuvre
  • Vous êtes tenu par une licence pour libérer le code pour que les binaires exécutables modifiés que vous avez distribué
  • Vous espérez la disponibilité du code aidera à stimuler votre entreprise

D'autres raisons, de venir bien sûr en jeu, ou peut-être une combinaison de raisons. Votre question semble charnière sur l'hypothèse que le code libéré dans la nature devrait d'une qualité minimale, qui je pense est trop idéaliste.

De plus, je pense que plus « copier-coller » de codage des résultats de la lecture d'un « tutoriel » que quelqu'un posté sur un blog avec des extraits, et non pas de quelqu'un qui a pris le temps de la mienne par github pour trouver quelque chose qui pourrait résoudre un problème. Cependant, en utilisant des exemples d'un guide ancien « démarrage rapide » cinq années que vous avez acheté dans un magasin de livres d'occasion pourrait être tout aussi dangereux.

Les bons programmeurs éviter les erreurs que les programmeurs inexpérimentés ont tendance à faire, ce sera toujours le cas. On apprend souvent comment éviter ces pièges en tombant dans les.

Dans un premier temps il n'y a pas de définition exacte du bon code. Vous pouvez prendre deux parties du bon code et les combiner et obtenir le code mauvais. Tout simplement parce que les styles de code sont différents.

Bad programmeur copier-coller le code mauvais, écrire du mauvais code.

bon programmeur copier-coller bon code, écrire du bon code. Bon programmeur ne sera pas coller le code mauvais.

Mais open source nous donne une grande chance de ne pas écrire même code encore et encore, mais

Cette question est impossible de répondre.

Cependant, si vous demandez par rapport à vous-même, par exemple « La présence d'un code disponible librement qui permet de résoudre les problèmes que je fais face à moi faire un développeur de sloppier ou pire », puis il y a une solution très simple et collaborative à votre anxiété.

Trouver un projet que vous utilisez, le soutien, ou trouver intéressant, et voyez si vous pouvez vous impliquer avec elle. Ecrire un code, écrivez certains cas de test, ou fournir une documentation. Tout ce que vous finissez par faire, vous allez travailler avec et évaluer le code que vous utilisez, et d'aider un projet que vous soutenez.

Open Source tend à bon codage, puisque vous ne pouvez pas cacher votre mauvais code derrière une application de travail, vous devez bien le code sinon vous êtes hors de jeu. Comprendre et copier / coller un bon code ne fait pas plus mal le développeur (ne pas confondre avec le copier / coller au lieu de faire une bonne conception). Et, comme mentionné dans une autre réponse, un mauvais programmeur trouver une autre façon de produire du mauvais code s'il n'y avait pas de code source disponible.

Theodore Sturgeon a déclaré: « 90% de tout est crud » et qui applique aux logiciels open source autant que toute autre chose. Il y a beaucoup, beaucoup de projets sur SourceForge qui sont une décharge d'un code inachevé de une ou deux personnes, et rien ne se passe depuis le premier téléchargement.

Cela ne signifie pas un logiciel open source est intrinsèquement mauvais ou de qualité inférieure. Les bons projets ont supérieur parce que la qualité

  • si vous n'êtes pas d'être payé en argent, la récompense que vous gagnez est le respect de vos collaborateurs
  • tout le monde peut voir votre travail
  • versions se libéré quand ils sont prêts, non pas parce que certaines forces commerciales impératives leur libération fait demi-

Si vous évaluez un logiciel open source, vous voudrez peut-être adopter, vous voulez savoir s'il y a une communauté assez grande de l'utiliser si les développeurs actuels ne peut soutenir ou non, il y aura suffisamment d'intérêt et de la demande dans d'autres moyens de maintenir et développer. Vous poser la même question au sujet des logiciels commerciaux.

Je voudrais souligner le travail de la Fondation Apache Software pour identifier des projets prometteurs open source, leur donner les ressources et le soutien d'aide eux par un stade « incubateur » afin qu'ils puissent développer assez d'élan pour être viable à long terme. Alors que bien sûr il y a beaucoup d'autres excellents projets open source autour, si un projet a obtenu le statut de haut niveau ASF, vous pouvez avoir une certaine confiance quant à sa qualité et à la viabilité.

Licencié sous: CC-BY-SA avec attribution
scroll top